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.dtx3345
1 files changed, 1255 insertions, 2090 deletions
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx
index c89b94151c4..940d1c81e2d 100644
--- a/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{1323}
+% \CheckSum{1266}
% \iffalse meta-comment
%
% ============================================================================
@@ -18,13 +18,13 @@
%
% ----------------------------------------------------------------------------
%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
-% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
-% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
-% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
-% oder spaeter und dieses Werks. Dieses Werk hat den LPPL-Verwaltungs-Status
-% "author-maintained", wird somit allein durch den Autor verwaltet. Der
-% aktuelle Verwalter und Autor dieses Werkes ist Falk Hanisch.
+% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
+% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
+% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
+% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
+% oder spaeter und dieses Werks. Dieses Werk hat den LPPL-Verwaltungs-Status
+% "author-maintained", wird somit allein durch den Autor verwaltet. Der
+% aktuelle Verwalter und Autor dieses Werkes ist Falk Hanisch.
%
% ============================================================================
%
@@ -51,28 +51,24 @@
%<*driver>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\ProvidesFile{tudscr-fonts.dtx}[%
- 2015/11/29 v2.04c TUD-KOMA-Script\space%
+ 2016/07/15 v2.05 TUD-KOMA-Script\space%
%</driver>
-%<package&identify>\NeedsTeXFormat{LaTeX2e}
-%<package&identify>\ProvidesPackage{%
-%<package&identify&!fontsizes> tudscrfonts%
-%<package&identify&fontsizes> tudscrfontsizes%
-%<package&identify>}[%
+%<package&identify>\ProvidesPackage{tudscrfonts}[%
%<*driver|package&identify>
-%!TUDVersion
-%<package> package
-%<!fontsizes> (corporate design fonts)%
-%<fontsizes> (creatings fontsize files)%
+%!TUD@Version
+%<package> package (corporate design fonts)%
]
%</driver|package&identify>
%<*driver>
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
-\documentclass[english,ngerman]{tudscrdoc}
+\documentclass[english,ngerman,xindy]{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-}
+\usepackage{microtype}
+\usepackage{bookmark}
\CodelineIndex
\RecordChanges
\GetFileInfo{tudscr-fonts.dtx}
@@ -85,9 +81,9 @@
%
% \selectlanguage{ngerman}
%
-% \changes{v2.02}{2014/06/23}{Unterstützung für \pkg{titlepage} entfernt}^^A
-% \changes{v2.02}{2014/07/08}{Optionen nutzen \cs{FamilyKeyState}}^^A
-% \changes{v2.02}{2014/08/29}{Verwendung von \pkg{mweights} entfernt}^^A
+% \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
+% \changes{v2.02}{2014/08/29}{Verwendung von \pkg{mweights} unnötig}^^A
% \changes{v2.02}{2014/08/29}{Unterstützung für \pkg{fontspec}}^^A
% \changes{v2.04}{2015/02/27}{Interaktion mit Paketen insbesondere für
% den Mathematiksatz verbessert}^^A
@@ -96,25 +92,24 @@
%
% \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.
+% Für das \CD der Technischen Universität Dresden werden die Schriften \Univers
+% und \DIN 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.
%
% Die Schriften des \CDs können nicht nur mit den \TUDScript-Klassen sondern
% auch mit anderen \LaTeX-Dokumentklassen verwendet werden. Hierfür wird das
% Paket \pkg{tudscrfonts} bereitgestellt. Damit kann auf die Installtion der
% Schriftfamilien für die alten Klassen verzichtet werden. Im Vergleich zu
% dieser Installation werden dabei fehlende Glyphen ergänzt und Probleme beim
-% Kerning behoben.
+% Kerning behoben.
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \StopEventually{\PrintIndex\PrintChanges\PrintToDos}
%
% \iffalse
-%<*!fontsizes>
%<*class&option>
% \fi
%
@@ -122,7 +117,7 @@
%
% \begin{macrocode}
\PreventPackageFromLoading[%
- \ClassWarning{\TUDClassName}{%
+ \ClassWarning{\TUD@Class@Name}{%
The package `tudscrfonts' must not be used with\MessageBreak%
a TUD-KOMA-Script class%
}%
@@ -135,18 +130,39 @@
% \fi
%
% Sollte keine \KOMAScript-Klasse genutzt werden, wird zusätzlich das Paket
-% \pkg{scrextend} benötigt. Das Paket \pkg{trimspaces} ist für die alternative
-% Schriftauswahl mit \cs{cdfont} bzw. \cs{textcdfont} notwendig.
+% \pkg{scrextend} benötigt.
% \begin{macrocode}
-\ifcsname KOMAClassName\endcsname\else%
- \RequirePackage{scrextend}[2013/12/19]%
+\ifcsname KOMAClassName\endcsname\else
+ \RequirePackage{scrextend}[2013/12/19]
\fi
-\RequirePackage{trimspaces}[2009/09/17]
+% \end{macrocode}
+% Wird das Paket \pkg{tudscrfonts} nach einer der Klassen verwendet, welche die
+% veralteten Schriftfamilien für \Univers und \DIN definieren, so wird eine
+% Warnung mit dem Hinweis auf das Paket \pkg{fix-tudscrfonts} ausgegeben.
+% \begin{macrocode}
+\@tempswafalse%
+\@for\@tempa:={%
+ tudbook,tudbeamer,tudfax,tudform,tudhaus,tudletter,%
+ tudposter,tudmathposter,tudscrbookold,tudscrreprtold,tudscrartclold%
+}\do{%
+ \@ifclassloaded{\@tempa}{%
+ \if@tempswa\else\@tempswatrue\let\@tempb\@tempa\fi%
+ }{}%
+}%
+\if@tempswa%
+ \@ifpackageloaded{fix-tudscrfonts}{}{%
+ \PackageWarning{tudscrfonts}{%
+ As you loaded class `\@tempb', you should\MessageBreak%
+ load `fix-tudscrfonts' before the class\MessageBreak%
+ with `\string\RequirePackage'%
+ }%
+ }%
+\fi%
% \end{macrocode}
%
% \iffalse
%</package&identify>
-%<*(class|package)&option>
+%<*option>
% \fi
%
% \subsection{Schriftauswahl im \TUDScript-Bundle}
@@ -160,987 +176,260 @@
% 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}
+%
+% \begin{macro}{\if@tud@x@fontspec@enabled}
% \changes{v2.02}{2014/08/29}{neu}^^A
+% Wird das Paket \pkg{fontspec} durch den Nutzer geladen, wird der passende
+% Schlüssel gesetzt und die Schrifteinstellungen erfolgen mit den dazugehörigen
+% Befehlen. Dies wurde in früheren Versionen mit der Option \opt{fontspec}
+% realisiert, die auch weiterhin bereitgehalten wird. Deshalb muss der Schalter
+% bereits vor der Abarbeitung der Optionen definiert werden.
+% \begin{macrocode}
+\newif\if@tud@x@fontspec@enabled
+\AfterPackage*{fontspec}{\@tud@x@fontspec@enabledtrue}
+% \end{macrocode}
+% \end{macro}^^A \if@tud@x@fontspec@enabled
+%
+% \iffalse
+%</option>
+%<*body>
+% \fi
+%
+% \begin{macro}{\tud@univers}
% \begin{macro}{\if@tud@univers}
+% \begin{macro}{\if@tud@universmath}
+% \changes{v2.05}{2015/12/14}{neu}^^A
+% \begin{macro}{\tud@dinbold}
% \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}
-% \changes{v2.04}{2015/02/19}{entfernt}^^A
-% Mit der Option \opt{fontspec} kann die explizite Verwendung des Paketes
-% \pkg{fontspec} aktiviert werden. Alternativ kann das Paket auch durch den
-% Nutzer selbst geladen werden. Zu Beginn werden Schalter und Hilfsmakros
-% definiert.
+% \begin{macro}{\if@tud@dinboldmath}
+% \changes{v2.05}{2015/12/14}{neu}^^A
+% Zu Beginn werden Schalter und Hilfsmakros definiert.
% \begin{macrocode}
-\newif\if@tud@univers
-\newif\if@tud@dinbold
\newcommand*\tud@univers{lun}
+\newif\if@tud@univers
+\newif\if@tud@universmath
\newcommand*\tud@dinbold{0m6}
+\newif\if@tud@dinbold
+\newif\if@tud@dinboldmath
% \end{macrocode}
-% Hier kommt die eigentliche Option.
-% \begin{macrocode}
-\newif\if@tud@fontspec
-\TUD@key{fontspec}[true]{%
-%<*class>
- \ClassWarning{\TUDClassName}%
-%</class>
-%<*package>
- \PackageWarning{tudscrfonts}
-%</package>
- {%
- The option key `fontspec' is deprecated.\MessageBreak%
- You should load the package `fontspec' manually%
- }%
- \TUD@set@ifkey{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%
-%</class>
-%<*package>
-\AtEndOfPackage%
-%</package>
-{%
- \TUD@key{fontspec}[]%
- {%
-%<*class>
- \ClassError{\TUDClassName}%
-%</class>
-%<*package>
- \PackageError{tudscrfonts}%
-%</package>
- {Option `fontspec' too late}{%
- Option `fontspec' can only be set while loading the\MessageBreak%
-%<*class>
- class `\TUDClassName'
-%</class>
-%<*package>
- package `tudscrfonts'
-%</package>
- but you have tried to set it up later.%
- }%
- \FamilyKeyStateProcessed%
- }%
- \if@tud@fontspec%
- \RequirePackage{fontspec}[2014/06/21]%
- \fi%
-}
-% \end{macrocode}
-% Sobald das Paket \opt{fontspec} manuell geladen wurde, wird auch der passende
-% Schlüssel gesetzt.
-% \begin{macrocode}
-\AfterPackage*{fontspec}{\@tud@fontspectrue}
-% \end{macrocode}
-% \end{macro}^^A \tud@mathenc
-% \end{macro}^^A \tud@dinbold
-% \end{macro}^^A \tud@univers
+% \end{macro}^^A if@tud@dinboldmath
% \end{macro}^^A if@tud@dinbold
+% \end{macro}^^A if@tud@universmath
% \end{macro}^^A if@tud@univers
-% \end{macro}^^A \if@tud@fontspec
-% \end{option}^^A fontspec
-%
-% \iffalse
-%</(class|package)&option>
-%<*(class|package)&body>
-% \fi
+% \end{macro}^^A \tud@dinbold
+% \end{macro}^^A \tud@univers
+% \begin{macro}{\tud@font@check}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@x@fontspec@noerror}
+% \changes{v2.05}{2015/12/14}{neu}^^A
+% Mit \cs{tud@font@check} wird überprüft, ob die benötigten Schriften \Univers
+% und \DIN im PostScript- bzw. OTF-Format installiert sind und die passenden
+% Schalter gesetzt. Beim Nichtvorhandensein der Schriften wird im eine Warnung
+% ausgegeben und eine Rückfallebene definiert.
%
-% \begin{macro}{\tud@font@greek@loop}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% Um ggf. Anpassungen an den griechischen Majuskeln vornehmenzu können, wird
-% das Makro \cs{tud@font@greek@loop} definert, mit dem eine Namensliste der
-% Buchstaben durchlaufen wird.
-% \begin{macrocode}
-\newcommand*\tud@font@greek@loop[1]{%
- \@for\@tempa:={%
- Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega%
- }\do{#1{\@tempa}}%
-}
-% \end{macrocode}
-% \end{macro}^^A \tud@font@greek@loop
-% \begin{macro}{\tud@font@greek@declare}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@Gamma}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@Delta}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@Theta}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@Lambda}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@Xi}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@Pi}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@Sigma}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@Upsilon}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@Phi}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@Psi}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@upOmega}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@upGamma}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@upDelta}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@upTheta}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@upLambda}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@upXi}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@upPi}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@upSigma}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@upUpsilon}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@upPhi}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@upPsi}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@upOmega}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@varGamma}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@varDelta}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@varTheta}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@varLambda}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@varXi}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@varPi}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@varSigma}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@varUpsilon}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@varPhi}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@varPsi}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@varOmega}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% In Anlehnung an verschiedene Pakete für Mathematikschriften werden Symbole
-% für aufrechte und kursive Majuskeln der griechischen Lettern definiert. Damit
-% auch bei diesen Buchstaben ein Umschalten für die unterschiedlichen Schriften
-% möglich ist, wird eine interne Version definiert und im Bedarfsfall der
-% dazugehörige \LaTeX-Befehl mit dieser überschrieben.
-% \begin{macrocode}
-\newcommand*\tud@font@greek@declare[1]{%
- \edef\@tempb{%
- \noexpand\DeclareMathSymbol{\csname tud@up#1\endcsname}%
- {\noexpand\mathalpha}{operators}{\the\@tempcnta}%
- }\@tempb%
- \edef\@tempb{%
- \noexpand\DeclareMathSymbol{\csname tud@var#1\endcsname}%
- {\noexpand\mathalpha}{letters}{\the\@tempcnta}%
- }\@tempb%
- \csletcs{tud@#1}{tud@up#1}%
- \advance \@tempcnta by 1%
-}
-\@tempcnta=\z@\relax
-\tud@font@greek@loop\tud@font@greek@declare
+% Da das Paket \pkg{fontspec} keinen Befehl zum Prüfen auf das Vorhandensein
+% einer bestimmten Schrift bereitstellt, muss hier etwas getrickst werden. Bei
+% der Wahl einer nicht installierten Schrift wird normalerweise ein Fehler
+% ausgegeben. Mit \cs{tud@x@fontspec@noerror} wird dies verhindert, indem die
+% erzeugte Fehlermeldung mit \cs{msg\_redirect\_name:nnn} unterdrückt wird.
+% \begin{macrocode}
+\newcommand*\tud@x@fontspec@noerror{}
+\IfFileExists{expl3.sty}{\@tempswatrue}{\@tempswafalse}
+\if@tempswa
+ \RequirePackage{expl3}[2016/05/18]
+ \ExplSyntaxOn
+ \renewcommand*\tud@x@fontspec@noerror{%
+ \__fontspec_font_suppress_not_found_error:
+ \msg_redirect_name:nnn {fontspec}{font-not-found}{none}
+ }%
+ \ExplSyntaxOff
+\fi
% \end{macrocode}
-% \end{macro}^^A \tud@varOmega
-% \end{macro}^^A \tud@varPsi
-% \end{macro}^^A \tud@varPhi
-% \end{macro}^^A \tud@varUpsilon
-% \end{macro}^^A \tud@varSigma
-% \end{macro}^^A \tud@varPi
-% \end{macro}^^A \tud@varXi
-% \end{macro}^^A \tud@varLambda
-% \end{macro}^^A \tud@varTheta
-% \end{macro}^^A \tud@varDelta
-% \end{macro}^^A \tud@varGamma
-% \end{macro}^^A \tud@upOmega
-% \end{macro}^^A \tud@upPsi
-% \end{macro}^^A \tud@upPhi
-% \end{macro}^^A \tud@upUpsilon
-% \end{macro}^^A \tud@upSigma
-% \end{macro}^^A \tud@upPi
-% \end{macro}^^A \tud@upXi
-% \end{macro}^^A \tud@upLambda
-% \end{macro}^^A \tud@upTheta
-% \end{macro}^^A \tud@upDelta
-% \end{macro}^^A \tud@upGamma
-% \end{macro}^^A \tud@Omega
-% \end{macro}^^A \tud@Psi
-% \end{macro}^^A \tud@Phi
-% \end{macro}^^A \tud@Upsilon
-% \end{macro}^^A \tud@Sigma
-% \end{macro}^^A \tud@Pi
-% \end{macro}^^A \tud@Xi
-% \end{macro}^^A \tud@Lambda
-% \end{macro}^^A \tud@Theta
-% \end{macro}^^A \tud@Delta
-% \end{macro}^^A \tud@Gamma
-% \end{macro}^^A \tud@font@greek@declare
-% \begin{macro}{\tud@font@check}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% Mit diesem Makro wird überprüft, ob die relevanten PostScript"=Schriften
-% Univers und DIN~Bold installiert sind. Beim Nichtvorhandensein der Schriften
-% wird im Normalfall eine Warnung ausgegeben und eine Rückfallebene definiert.
-% Wird das Paket \pkg{fontspec} verwendet, werden die Schriften nur für den
-% Mathematiksatz verwendet. Sollten diese nicht vorhanden sein, wird eine
-% Info in die Log-Datei geschrieben.
+% Jetzt kann es mit dem eigentlichen Überprüfen der Schriften losgehen. Für das
+% Prüfen der Mathematikschriften ist es unerheblich, ob \pkg{fontspec} genutzt
+% wird, da hier immer die PostScript-Schriften zum Einsatz kommen.
% \begin{macrocode}
\newcommand*\tud@font@check{%
- \if@tud@fontspec%
- \edef\@tempa{%
- \lowercase{\noexpand\IfFileExists{OT1\tud@univers.fd}}%
- }%
- \edef\@tempb{%
- \lowercase{\noexpand\IfFileExists{OT1\tud@dinbold.fd}}%
- }%
- \def\@tempc##1{%
+ \edef\@tempa##1##2{\lowercase{\noexpand\IfFileExists{##1##2.fd}}}%
+ \def\@tempb##1{%
+ \ifnum\tud@cdfont@num>\z@\relax% true/heavy
+ \if@tud@cdmath%
%<*class>
- \ClassInfoNoLine{\TUDClassName}%
+ \ClassWarningNoLine{\TUD@Class@Name}%
%</class>
%<*package>
- \PackageInfoNoLine{tudscrfonts}%
+ \PackageWarningNoLine{tudscrfonts}%
%</package>
- {%
- `##1' fonts for math typesetting not found\MessageBreak%
- Please use one of the installation scripts for the\MessageBreak%
- tudscr-bundle mentioned in the manual%
- }%
- }%
- \else%
- \edef\@tempa{%
- \lowercase{\noexpand\IfFileExists{\encodingdefault\tud@univers.fd}}%
- }%
- \edef\@tempb{%
- \lowercase{\noexpand\IfFileExists{\encodingdefault\tud@dinbold.fd}}%
- }%
- \def\@tempc##1{%
- \@tempswafalse%
- \ifstr{OT1}{\encodingdefault}{\@tempswatrue}{}
- \ifstr{T1}{\encodingdefault}{\@tempswatrue}{}
-%<*class>
- \ClassWarningNoLine{\TUDClassName}%
-%</class>
-%<*package>
- \PackageWarningNoLine{tudscrfonts}%
-%</package>
- {%
- `##1' fonts not found for encoding `\encodingdefault'.\MessageBreak%
- \if@tempswa%
+ {%
+ `##1' fonts for math typesetting not found\MessageBreak%
Please use one of the installation scripts for the\MessageBreak%
- tudscr-bundle mentioned in the manual.\MessageBreak%
- \else%
- Please choose a possible encoding (`OT1' or `T1').\MessageBreak%
- \fi%
- A fallback layout is used%
- }%
- }%
- \fi%
- \@tempa{\@tud@universtrue}{\@tempc{Univers}}%
- \@tempb{\@tud@dinboldtrue}{\@tempc{DIN Bold}}%
- \undef\tud@font@check%
-}
-% \end{macrocode}
-% \end{macro}^^A \tud@font@check
-% \begin{macro}{\tud@font@init}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\textuln}
-% \begin{macro}{\texturn}
-% \begin{macro}{\textubn}
-% \begin{macro}{\textuxn}
-% \begin{macro}{\textuls}
-% \begin{macro}{\texturs}
-% \begin{macro}{\textubs}
-% \begin{macro}{\textuxs}
-% \begin{macro}{\textdbn}
-% Das Makro \cs{tud@font@init} wird für die Defintion aller Befehle zur Auswahl
-% der Schriften des \CDs verwendet. Er wird als Hook genutzt und abhängig vom
-% Schalter \cs{if@tud@fontspec} entweder für die Verwendung von \pkg{fontspec}
-% oder des NFSS-Schemas mit \cs{preto}\cs{tud@font@init}\marg{Makro} angepasst.
-% \begin{macrocode}
-\newcommand*\tud@font@init{%
-% \end{macrocode}
-% 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{}%
- \newcommand*\textdbn{}%
- \DeclareTextFontCommand{\textuln}{\univln}%
- \DeclareTextFontCommand{\texturn}{\univrn}%
- \DeclareTextFontCommand{\textubn}{\univbn}%
- \DeclareTextFontCommand{\textuxn}{\univxn}%
- \DeclareTextFontCommand{\textuls}{\univls}%
- \DeclareTextFontCommand{\texturs}{\univrs}%
- \DeclareTextFontCommand{\textubs}{\univbs}%
- \DeclareTextFontCommand{\textuxs}{\univxs}%
- \DeclareTextFontCommand{\textdbn}{\dinbn}%
-% \end{macrocode}
-% Nach der optionsabhängigen Definition der Schriftauswahlbefehle werden die
-% Initialisierungsbefehle undefiniert gesetzt.
-% \begin{macrocode}
- \undef\tud@font@init@fontspec%
- \undef\tud@fontface%
- \undef\tud@fontspec@flag%
- \undef\tud@fontspec@error%
- \undef\tud@font@init@nfss%
- \undef\tud@font@init%
-}
-% \end{macrocode}
-% \end{macro}^^A \textdbn
-% \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
-% \end{macro}^^A \tud@font@init
-% \begin{macro}{\univln}
-% \begin{macro}{\univrn}
-% \begin{macro}{\univbn}
-% \begin{macro}{\univxn}
-% \begin{macro}{\univls}
-% \begin{macro}{\univrs}
-% \begin{macro}{\univbs}
-% \begin{macro}{\univxs}
-% \begin{macro}{\dinbn}
-% \begin{macro}{\@dinbn}
-% Es 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 und DIN~Bold definiert. Diese können so im
-% Dokument unabhängig von der Option \opt{cdfont} genutzt werden. Bei der
-% Schriftauswahl der DIN~Bold wird neben dieser noch die entsprechende
-% Mathematikschrift aktiviert. Dabei ist zu beachten, dass die Schriften evtl.
-% gar nicht installiert sind und für diesen Fall eine Rückfallebene notwendig
-% ist.
-% \begin{macro}{\tud@font@init@fontspec}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\if@tud@fontspec@missing}
-% \changes{v2.04c}{2015/11/29}{neu}^^A
-% \begin{macro}{\tud@fontface}
-% \changes{v2.04c}{2015/11/29}{neu}^^A
-% \begin{macro}{\tud@fontspec@flag}
-% \changes{v2.04c}{2015/11/29}{neu}^^A
-% \begin{macro}{\tud@fontspec@error}
-% \changes{v2.04c}{2015/11/29}{neu}^^A
-% Leider exisitiert im Paket \pkg{fontspec} keine einfache Möglichkeit, auf das
-% Vorhandensein von Schriften zu testen. Deshalb wird hier etwa getrickst, um
-% die Schriften nur zu laden, falls diese auch tatsächlich existieren und die
-% ggf. auftrtende Fehlermeldung zu unterdrücken.
-% \begin{macrocode}
-\newif\if@tud@fontspec@missing
-\newcommand*\tud@font@init@fontspec{}
-% \end{macrocode}
-% Alles etwas umständlich, aber leider geht es nicht anders. Um die Fehler
-% zu unterdrücken, ist die Syntax von \LaTeX{}3 notwendig. Es wird mit
-% dem Paket \pkg{xparse} der Befehl \cs{tud@fontface} welcher eigentlch den
-% Befehl \cs{newfontface} nutzt und für denn Fall, dass keine Schrift
-% exisitiert, den entsprechenden Befehl leer definiert.
-% \begin{macrocode}
-\IfFileExists{xparse.sty}{\@tempswatrue}{\@tempswafalse}%
-\if@tempswa
- \RequirePackage{xparse}
- \newcommand*\tud@fontspec@flag{\global\@tud@fontspec@missingtrue\@gobbletwo}%
- \NewDocumentCommand\tud@fontface{mmo}{%
- \global\@tud@fontspec@missingfalse%
- \newfontface#1{#2}[#3]%
- \if@tud@fontspec@missing%
- \renewrobustcmd*#1{}%
- \fi%
- }%
-% \end{macrocode}
-% Um die Fehler bei dem Laden der Schrift zu unterdrücken, wird der dafür
-% verantwortliche Befehl gesichertr und anschließend passend neu definiert.
-% \begin{macrocode}
- \ExplSyntaxOn
- \renewcommand*\tud@font@init@fontspec{%
- \cs_set_eq:NN \tud@fontspec@error \__fontspec_error:nx
- \cs_set_eq:NN \__fontspec_error:nx \tud@fontspec@flag
-% \end{macrocode}
-% Für die Schriften werden feste NFSS-Namen vergeben, um diese unter anderem
-% auch beim Setzen des Kopfes im \CD der \TnUD explizit auswählen zu können.
-% \begin{macrocode}
- \tud@fontface\univln{Univers Light}[NFSSFamily=UniversLight]%
- \tud@fontface\univrn{Univers}[NFSSFamily=UniversRegular]%
- \tud@fontface\univbn{Univers Bold}[NFSSFamily=UniversBold]%
- \tud@fontface\univxn{Univers Black}[NFSSFamily=UniversBlack]%
- \tud@fontface\univls{Univers Light Oblique}[NFSSFamily=UniversLightOblique]%
- \tud@fontface\univrs{Univers Oblique}[NFSSFamily=UniversRegularOblique]%
- \tud@fontface\univbs{Univers Bold Oblique}[NFSSFamily=UniversBoldOblique]%
- \tud@fontface\univxs{Univers Black Oblique}[NFSSFamily=UniversBlackOblique]%
-% \end{macrocode}
-% Nach der Univers-Schriftfamilie wird für DIN~Bold äquivalent verfahren. Da
-% dieser Schriftschnitt zwingend für die Überschriften benötigt wird, sollte
-% dieser zumindest auch auf deren Stil schalten.
-% \begin{macrocode}
- \tud@fontface\@dinbn{DIN Bold}[NFSSFamily=DINBold,BoldFont = DIN Bold]%
- \if@tud@fontspec@missing%
- \newrobustcmd*\dinbn{\sectfont}%
- \else%
- \if@tud@dinbold%
- \newrobustcmd*\dinbn{\@dinbn\mathversion{dinbold}}%
- \else%
- \newrobustcmd*\dinbn{\@dinbn}%
+ tudscr-bundle mentioned in the manual%
+ }%
\fi%
\fi%
-% \end{macrocode}
-% Zum Schluss wird noch die Fehlermeldungen auf ihre ursprüngliche Definition
-% gesetzt und damit ist der ganze Zauber vorbei.
-% \begin{macrocode}
- \cs_set_eq:NN \__fontspec_error:nx \tud@fontspec@error
}%
- \ExplSyntaxOff
-\fi%
% \end{macrocode}
-% \end{macro}^^A \tud@fontspec@error
-% \end{macro}^^A \tud@fontspec@flag
-% \end{macro}^^A \tud@fontface
-% \end{macro}^^A \if@tud@fontspec@missing
-% \end{macro}^^A \tud@font@init@fontspec
-% \begin{macro}{\tud@font@init@nfss}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% Falls \opt{fontspec} nicht aktiv ist, werden die Schriften klassisch nach dem
-% NFSS definiert. Sind die Univer-Schriften installiert, dann werden dazu
-% passende Schalter erstellt.
-% \begin{macrocode}
-\newcommand*\tud@font@init@nfss{%
- \if@tud@univers%
- \newrobustcmd*\univln{\usefont{\encodingdefault}{\tud@univers}{l}{n}}%
- \newrobustcmd*\univrn{\usefont{\encodingdefault}{\tud@univers}{m}{n}}%
- \newrobustcmd*\univbn{\usefont{\encodingdefault}{\tud@univers}{b}{n}}%
- \newrobustcmd*\univxn{\usefont{\encodingdefault}{\tud@univers}{eb}{n}}%
- \newrobustcmd*\univls{\usefont{\encodingdefault}{\tud@univers}{l}{sl}}%
- \newrobustcmd*\univrs{\usefont{\encodingdefault}{\tud@univers}{m}{sl}}%
- \newrobustcmd*\univbs{\usefont{\encodingdefault}{\tud@univers}{b}{sl}}%
- \newrobustcmd*\univxs{\usefont{\encodingdefault}{\tud@univers}{eb}{sl}}%
-% \end{macrocode}
-% Ansonsten werden die Schalter für die Rückfallebene so definert, dass diese
-% einfach nichts machen.
+% Existieren die Schriften, werden die Schalter auf \val{true} gesetzt, sonst
+% wird eine Warnung ausgegeben, falls die Schriften eigentlich verwendet werden
+% sollen.
% \begin{macrocode}
- \else%
- \newrobustcmd*\univln{}%
- \newrobustcmd*\univrn{}%
- \newrobustcmd*\univbn{}%
- \newrobustcmd*\univxn{}%
- \newrobustcmd*\univls{}%
- \newrobustcmd*\univrs{}%
- \newrobustcmd*\univbs{}%
- \newrobustcmd*\univxs{}%
- \fi%
+ \@tempa{OT1}{\tud@univers}{\@tud@universmathtrue}{\@tempb{Univers}}%
+ \@tempa{OT1}{\tud@dinbold}{\@tud@dinboldmathtrue}{\@tempb{DIN Bold}}%
% \end{macrocode}
-% Nach der Univers-Schriftfamilie wird für DIN~Bold äquivalent verfahren.
+% Für jede der OTF-Schriften wird eine Warnung ausgegeben, falls diese nicht
+% installiert ist. Um sicher zu gehen, dass das Layout komplett genutzt werden
+% kann, ist es hinreichend, wenn eine der benötigten Schriften nicht existiert,
+% um die Rückfallebene zu aktivieren.
% \begin{macrocode}
- \if@tud@dinbold%
- \newrobustcmd*\dinbn{%
- \usefont{\encodingdefault}{\tud@dinbold}{b}{n}%
- \mathversion{dinbold}%
- }%
- \else%
- \newrobustcmd*\dinbn{\sectfont}%
- \fi%
-}
-% \end{macrocode}
-% \end{macro}^^A \tud@font@init@nfss
-% \end{macro}^^A \@dinbn
-% \end{macro}^^A \dinbn
-% \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}{\cdfont}
-% \changes{v2.04}{2015/03/04}{neu}^^A
-% \begin{macro}{\tudfont}
-% \changes{v2.04}{2015/04/24}{\cls{tudmathposter} wird unterstützt}^^A
-% \begin{macro}{\textcdfont}
-% \changes{v2.04}{2015/03/04}{neu}^^A
-% \begin{macro}{\@cdfont}
-% \changes{v2.04}{2015/03/04}{neu}^^A
-% \begin{macro}{\tud@trimfontname}
-% \changes{v2.04}{2015/03/04}{neu}^^A
-% \begin{macro}{\tud@@trimfontname}
-% \changes{v2.04}{2015/03/04}{neu}^^A
-% Die Klassen \cls{tudposter} und \cls{tudmathposter} definieren den Befehl
-% \cs{tudfont}, mit welchem die Schriften des \CDs der \TnUD auch mit Klarnamen
-% ausgewählt werden können. Zur Kompatibilität wird der Befehl \cs{cdfont}
-% definiert, welcher die gleiche Funktionalität bereitstellt. Zusätzlich wird
-% der Befehl \cs{textcdfont} bereitgestellt, der die Auswahl der Schrift als
-% Textbefehl ermöglicht.
-% \begin{macrocode}
-\newcommand*\cdfont[1]{%
- \@cdfont{#1}%
- \ifx\@tempc\relax\else%
- \ifstr{\@tempc}{dinbn}{\dinbn}{\@nameuse{univ\@tempc}}%
- \fi%
-}
-\providecommand*\tudfont[1]{\cdfont{#1}}
-\newcommand*\textcdfont[2]{%
- \@cdfont{#1}%
- \ifx\@tempc\relax\else%
- \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\@nameuse{textu\@tempc}{#2}}%
- \fi%
-}
-\newcommand*\@cdfont[1]{%
- \tud@trimfontname\@tempa{#1}%
- \ifstr{\@tempa}{45}{\def\@tempc{ln}}{%
- \ifstr{\@tempa}{55}{\def\@tempc{rn}}{%
- \ifstr{\@tempa}{65}{\def\@tempc{bn}}{%
- \ifstr{\@tempa}{75}{\def\@tempc{xn}}{%
- \ifstr{\@tempa}{45oblique}{\def\@tempc{ls}}{%
- \ifstr{\@tempa}{55oblique}{\def\@tempc{rs}}{%
- \ifstr{\@tempa}{65oblique}{\def\@tempc{bs}}{%
- \ifstr{\@tempa}{75oblique}{\def\@tempc{xs}}{%
- \ifstr{\@tempa}{oblique45}{\def\@tempc{ls}}{%
- \ifstr{\@tempa}{oblique55}{\def\@tempc{rs}}{%
- \ifstr{\@tempa}{oblique65}{\def\@tempc{bs}}{%
- \ifstr{\@tempa}{oblique75}{\def\@tempc{xs}}{%
- \ifstr{\@tempa}{din}{\def\@tempc{dinbn}}{%
- \ifstr{\@tempa}{din65}{\def\@tempc{dinbn}}{%
- \let\@tempc\relax%
- \PackageWarning{tudscrfonts}{The font `#1' is unknown}%
- }}}}}}}}}}}}}}%
-}
-\newcommand*\tud@trimfontname[2]{%
- \protected@edef\@tempa{\trim@spaces{#2}}%
- \tud@lowerstring{\@tempa}{\@tempa}%
- \tud@@trimfontname{ }{}%
- \tud@@trimfontname{-}{}%
- \tud@@trimfontname{_}{}%
- \tud@@trimfontname{~}{}%
- \tud@@trimfontname{ce}{}%
- \tud@@trimfontname{ff}{}%
- \tud@@trimfontname{univers}{}%
- \tud@@trimfontname{60}{65}%
- \tud@@trimfontname{light}{45}%
- \tud@@trimfontname{regular}{55}%
- \tud@@trimfontname{bold}{65}%
- \tud@@trimfontname{black}{75}%
- \tud@@trimfontname{4545}{45}%
- \tud@@trimfontname{5555}{55}%
- \tud@@trimfontname{6565}{65}%
- \tud@@trimfontname{7575}{75}%
- \tud@@trimfontname{italic}{oblique}%
- \tud@@trimfontname{slanted}{oblique}%
- \let#1\@tempa%
-}
-\newcommand*\tud@@trimfontname[2]{%
- \def\@tempb##1#1##2\relax{\def\@tempa{##1#2##2}}%
- \@expandtwoargs\in@{#1}{\@tempa}%
- \@whilesw\ifin@\fi{%
- \expandafter\@tempb\@tempa\relax%
- \@expandtwoargs\in@{#1}{\@tempa}%
- }%
-}
-% \end{macrocode}
-% \end{macro}^^A \tud@@trimfontname
-% \end{macro}^^A \tud@trimfontname
-% \end{macro}^^A \@cdfont
-% \end{macro}^^A \textcdfont
-% \end{macro}^^A \tudfont
-% \end{macro}^^A \cdfont
-% \begin{macro}{\tud@font@math@init}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\mv@univers}
-% \begin{macro}{\mv@universbold}
-% \begin{macro}{\mv@dinbold}
-% \changes{v2.02}{2014/06/27}{Symbole \val{symbols} werden aus Schriftart
-% DIN~Bold verwendet}^^A
-% Für die Mathematikschriften im Fließtext werden für die lateinischen 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}
-\newcommand*\mv@univers{}%
-\newcommand*\mv@universbold{}%
-\newcommand*\mv@dinbold{}%
-\newcommand*\tud@font@math@init{%
- \if@tud@fontspec\if@tud@univers\if@tud@dinbold%
- \@ifpackagewith{fontspec}{no-math}{}{%
+ \if@tud@x@fontspec@enabled%
+ \def\@tempc##1##2{%
+ \fontspec{##1}%
+ \expandafter\ifx\the\font\nullfont%
+ ##2%
+ \ifnum\tud@cdfont@num>\z@\relax% true/heavy
%<*class>
- \ClassWarningNoLine{\TUDClassName}%
+ \ClassWarningNoLine{\TUD@Class@Name}%
%</class>
%<*package>
- \PackageWarningNoLine{tudscrfonts}%
+ \PackageWarningNoLine{tudscrfonts}%
%</package>
- {%
- It's recommended to load package `fontspec' with\MessageBreak%
- option `no-math'%
- }%
+ {%
+ `##1' fonts not found for encoding `\encodingdefault'\MessageBreak%
+ It seems, you haven't installed the required\MessageBreak%
+ OTF-font on your system. A fallback layout is used%
+ }%
+ \fi%
+ \fi%
}%
- \fi\fi\fi%
- \if@tud@univers%
- \DeclareMathVersion{univers}%
- \DeclareMathVersion{universbold}%
- \SetSymbolFont{operators}{univers}{OT1}{\tud@univers}{l}{n}%
- \SetSymbolFont{operators}{universbold}{OT1}{\tud@univers}{b}{n}%
- \SetSymbolFont{letters}{univers}{OML}{\tud@univers}{l}{sl}%
- \SetSymbolFont{letters}{universbold}{OML}{\tud@univers}{b}{sl}%
- \SetSymbolFont{symbols}{univers}{OMS}{\tud@univers}{l}{n}%
- \SetSymbolFont{symbols}{universbold}{OMS}{\tud@univers}{b}{n}%
- \SetSymbolFont{largesymbols}{univers}{OMX}{iwona}{m}{n}%
- \SetSymbolFont{largesymbols}{universbold}{OMX}{iwona}{b}{n}%
- \SetMathAlphabet{\mathcal}{univers}{OMS}{lmsy}{m}{n}%
- \SetMathAlphabet{\mathcal}{universbold}{OMS}{lmsy}{b}{n}%
- \SetMathAlphabet{\mathbf}{univers}{OT1}{\tud@univers}{b}{n}%
- \SetMathAlphabet{\mathbf}{universbold}{OT1}{\tud@univers}{eb}{n}%
- \SetMathAlphabet{\mathsf}{univers}{OT1}{\tud@univers}{l}{n}%
- \SetMathAlphabet{\mathsf}{universbold}{OT1}{\tud@univers}{b}{n}%
- \SetMathAlphabet{\mathit}{univers}{OT1}{\tud@univers}{l}{sl}%
- \SetMathAlphabet{\mathit}{universbold}{OT1}{\tud@univers}{b}{sl}%
- \SetMathAlphabet{\mathtt}{univers}{OT1}{\tud@univers t}{l}{n}%
- \SetMathAlphabet{\mathtt}{universbold}{OT1}{\tud@univers t}{b}{n}%
-% \end{macrocode}
-% Das Paket \pkg{cmbright} bringt zusätzlich noch Schriftschnitte für die
-% \pkg{ams}"=Pakete mit. Diese werden gegebenenfalls geladen.
-% \begin{macrocode}
- \@ifpackageloaded{amsfonts}{%
- \DeclareFontFamily{U}{\tud@univers a}{}%
- \DeclareFontShape{U}{\tud@univers a}{m}{n}{<->cmbras10}{}%
- \SetSymbolFont{AMSa}{univers}{U}{\tud@univers a}{m}{n}%
- \SetSymbolFont{AMSa}{universbold}{U}{\tud@univers a}{m}{n}%
- \DeclareFontFamily{U}{\tud@univers b}{}%
- \DeclareFontShape{U}{\tud@univers b}{m}{n}{<->cmbrbs10}{}%
- \SetSymbolFont{AMSb}{univers}{U}{\tud@univers b}{m}{n}%
- \SetSymbolFont{AMSb}{universbold}{U}{\tud@univers b}{m}{n}%
- \SetMathAlphabet{\mathfrak}{univers}{U}{euf}{m}{n}%
- \SetMathAlphabet{\mathfrak}{universbold}{U}{euf}{b}{n}%
- }{}%
- \fi%
-% \end{macrocode}
-% 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}
- \if@tud@dinbold%
- \DeclareMathVersion{dinbold}%
- \SetSymbolFont{operators}{dinbold}{OT1}{\tud@dinbold}{b}{n}%
- \SetSymbolFont{letters}{dinbold}{OML}{\tud@dinbold}{b}{sl}%
- \SetSymbolFont{symbols}{dinbold}{OMS}{\tud@dinbold}{b}{n}%
- \SetSymbolFont{largesymbols}{dinbold}{OMX}{iwona}{ebc}{n}%
- \SetMathAlphabet{\mathbf}{dinbold}{OT1}{\tud@dinbold}{b}{n}%
- \SetMathAlphabet{\mathsf}{dinbold}{OT1}{\tud@dinbold}{b}{n}%
- \SetMathAlphabet{\mathit}{dinbold}{OT1}{\tud@dinbold}{b}{sl}%
- \fi%
-% \end{macrocode}
-% Wird das Paket \pkg{unicode-math} verwendet, werden keine Einstellungen für
-% die Mathematikschriften vorgenommen\dots
-% \begin{macrocode}
- \@ifpackageloaded{unicode-math}{%
- \let\tud@font@math@set\relax%
- \bool@set@lock{@tud@cdmath}{false}%
- }{%
-% \end{macrocode}
-% Für die griechischen Buchstaben wird geprüft, ob durch ein Paket diese auf
-% die kursive Variante gesetzt wurden. Ist dies der Fall, wird der Standardwert
-% für die Option \opt{slantedgreek} auf \val{true} gesetzt. Anschließend
-% erfolgt die \emph{Intialisierung} der griechischen Großbuchstaben mit dem
-% Befehl \cs{tud@font@greek@init}.
-% \begin{macrocode}
- \let\@tempb\relax%
- \let\@tempc\relax%
- \DeclareMathSymbol{\@tempb}{\mathalpha}{letters}{0}%
- \DeclareMathSymbol{\@tempc}{\mathord}{letters}{0}%
- \@tempswafalse%
- \ifnum\Gamma=\@tempb\relax\@tempswatrue\fi%
- \ifnum\Gamma=\@tempc\relax\@tempswatrue\fi%
- \if@tempswa%
- \bool@std@lock{@tud@slantedgreek}{true}%
- \fi%
- \tud@font@greek@loop\tud@font@greek@init%
-% \end{macrocode}
-% Zum Schluss werden abhängig von der gewählten Einstellung für die Schriftart
-% der Option \opt{cdfont} die benötigten Mathematikversionen geladen.
-% \begin{macrocode}
- \tud@font@math@set%
- }%
-% \end{macrocode}
-% Daran anschließend werden die DIN-Bold-Schriften in einer Box verwendet, um
-% das Laden der Schriftdefinitionen am Dokumentbeginn zu forcieren.
-% \begin{macrocode}
- \sbox\z@{\dinbn$ $}%
-% \end{macrocode}
-% Zuletzt wird der Befehl für die Initialisierung der Mathematikschriften
-% undefiniert gesetzt.
-% \begin{macrocode}
- \undef\tud@font@math@init%
-}
-% \end{macrocode}
-% \end{macro}^^A \mv@dinbold
-% \end{macro}^^A \mv@universbold
-% \end{macro}^^A \mv@univers
-% \end{macro}^^A \tud@font@math@init
-% Samtliche Schrifteinstellungen erfolgen erst am Ende der Präambel, um etwaige
-% Einstellungen irgendwelcher Schriftpakete beachten zu können. Dabei erfolgt
-% das Setzen der Mathematikschriften druch \cs{AtBeginDocument} innerhalb von
-% \cs{AtEndPreamble} am Ende \emph{aller} \cs{AtBeginDocument}.
-%
-% Für das Paket müssen zuvor einige Einstellungen angepasst werden, damit bei
-% der Verwendung einer alten Klasse alles reibungslos funktioniert.
-% \begin{macrocode}
-%<*package>
-\ifbool{@tud@oldscrclass}{%
- \let\univln\relax%
- \let\univrn\relax%
- \let\univbn\relax%
- \let\univxn\relax%
- \let\univls\relax%
- \let\univrs\relax%
- \let\univbs\relax%
- \let\univxs\relax%
- \let\dinbn\relax%
- \let\textuln\relax%
- \let\texturn\relax%
- \let\textubn\relax%
- \let\textuxn\relax%
- \let\textuls\relax%
- \let\texturs\relax%
- \let\textubs\relax%
- \let\textuxs\relax%
- \let\textdbn\relax%
- \AtBeginDocument{%
- \cmd@restore{rmdefault}%
- \cmd@restore{sfdefault}%
- \cmd@restore{bfdefault}%
- \cmd@restore{mddefault}%
- \cmd@restore{familydefault}%
- \cmd@restore{seriesdefault}%
- \cmd@restore{shapedefault}%
- \cmd@restore{rmfamily}%
- \cmd@restore{sffamily}%
- \cmd@restore{ttfamily}%
- }%
-}{}
-%</package>
-% \end{macrocode}
-% Jetzt kommt es zur eigentlichen Initialisierung der Schriften.
-% \begin{macrocode}
-%<class>\AtEndPreamble%
-%<package>\AtBeginDocument%
-{%
- \tud@font@check%
-% \end{macrocode}
-% Es erfolgt das optionsabhängige Voranstellen von \cs{tud@font@init@fontspec}
-% respektive \cs{tud@font@init@nfss} bei \cs{tud@font@init}.
-% \begin{macrocode}
- \if@tud@fontspec%
- \preto\tud@font@init\tud@font@init@fontspec%
+ \begingroup%
+ \tud@x@fontspec@noerror%
+ \global\@tud@universtrue%
+ \@tempc{Univers Light}{\global\@tud@universfalse}%
+ \@tempc{Univers}{\global\@tud@universfalse}%
+ \@tempc{Univers Bold}{\global\@tud@universfalse}%
+ \@tempc{Univers Black}{\global\@tud@universfalse}%
+ \@tempc{Univers Light Oblique}{\global\@tud@universfalse}%
+ \@tempc{Univers Oblique}{\global\@tud@universfalse}%
+ \@tempc{Univers Bold Oblique}{\global\@tud@universfalse}%
+ \@tempc{Univers Black Oblique}{\global\@tud@universfalse}%
+ \global\@tud@dinboldtrue%
+ \@tempc{DIN Bold}{\global\@tud@dinboldfalse}%
+ \endgroup%
\else%
- \preto\tud@font@init\tud@font@init@nfss%
- \fi%
% \end{macrocode}
-% Nachdem auf die Schriften geprüft wurde, erfolgt die Verarbeitung der Option
-% \pkg{fontspec}. Da es so gut wie keine freien OpenType"=Schriften für den
-% mathmatischen Formelsatz gibt, werden unabhängig vom Status der Option
-% \emph{immer} die PostScript"=Schriften verwendet, falls diese installiert
-% sind. Damit \pkg{tudscrfonts} reibungslos mit den nachfolgenden Definitionen
-% funktioniert, wird im Bedarfsfall der Befehl \cs{sectfont} vorgehalten.
+% Ist \pkg{fontspec} nicht aktiv, wird auf die Schriften für den Fließtext im
+% gleichen Maße geprüft.
% \begin{macrocode}
+ \def\@tempc##1{%
+ \ifnum\tud@cdfont@num>\z@\relax% true/heavy
+ \@tempswafalse%
+ \ifstr{OT1}{\encodingdefault}{\@tempswatrue}{}%
+ \ifstr{T1}{\encodingdefault}{\@tempswatrue}{}%
+%<*class>
+ \ClassWarningNoLine{\TUD@Class@Name}%
+%</class>
%<*package>
- \ifdef{\sectfont}{}{\let\sectfont\relax}%
+ \PackageWarningNoLine{tudscrfonts}%
%</package>
- \tud@font@init%
-% \end{macrocode}
-% Damit die Schrift im Dokument später noch umgestellt werden kann, werden
-% sämtliche Einstellungen erst am Ende der Präambel gesichert. Deshalb wird
-% der dafür verantwortliche Befehl \cs{tud@font@set} 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. Die Einstellungen für den Mathematiksatz erfolgen erst zu Beginn
-% des Dokumentes, um insbesondere auf Einstellungen des Paketes \pkg{fontspec}
-% reagieren zu können.
-% \begin{macrocode}
- \tud@font@set[nomath]%
-%<class> \AtBeginDocument{\tud@font@math@init}%
-%<package> \tud@font@math@init%
-}
-% \end{macrocode}
-% \begin{macro}{\tud@font@greek@init}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\upDelta}
-% \begin{macro}{\upGamma}
-% \begin{macro}{\upLambda}
-% \begin{macro}{\upOmega}
-% \begin{macro}{\upPhi}
-% \begin{macro}{\upPi}
-% \begin{macro}{\upPsi}
-% \begin{macro}{\upSigma}
-% \begin{macro}{\upTheta}
-% \begin{macro}{\upUpsilon}
-% \begin{macro}{\upXi}
-% \begin{macro}{\varDelta}
-% \begin{macro}{\varGamma}
-% \begin{macro}{\varLambda}
-% \begin{macro}{\varOmega}
-% \begin{macro}{\varPhi}
-% \begin{macro}{\varPi}
-% \begin{macro}{\varPsi}
-% \begin{macro}{\varSigma}
-% \begin{macro}{\varTheta}
-% \begin{macro}{\varUpsilon}
-% \begin{macro}{\varXi}
-% Dieses Makro sorgt dafür, dass neben den normalen Makros für die griechischen
-% Majuskeln die zusätzlichen Befehle für das explizite Auswählen aufrechter und
-% kursiver Buchstaben.
-% \begin{macrocode}
-\newcommand*\tud@font@greek@init[1]{%
- \ifcsdef{up#1}{}{%
- \if@tempswa%
- \csletcs{up#1}{tud@up#1}%
- \else%
- \csletcs{up#1}{#1}%
- \fi%
- }%
- \ifcsdef{var#1}{}{%
- \if@tempswa%
- \csletcs{var#1}{#1}%
- \else%
- \csletcs{var#1}{tud@var#1}%
- \fi%
- }%
+ {%
+ `##1' fonts not found for encoding `\encodingdefault'\MessageBreak%
+ \if@tempswa%
+ Please use one of the installation scripts for the\MessageBreak%
+ tudscr-bundle mentioned in the manual.\MessageBreak%
+ \else%
+ Please choose a possible encoding (`OT1' or `T1').\MessageBreak%
+ \fi%
+ A fallback layout is used%
+ }%
+ \fi%
+ }%
+ \@tempa{\encodingdefault}%
+ {\tud@univers}{\@tud@universtrue}{\@tempc{Univers}}%
+ \@tempa{\encodingdefault}%
+ {\tud@dinbold}{\@tud@dinboldtrue}{\@tempc{DIN Bold}}%
+ \fi%
+ \undef\tud@font@check%
}
% \end{macrocode}
-% \end{macro}^^A \varXi
-% \end{macro}^^A \varUpsilon
-% \end{macro}^^A \varTheta
-% \end{macro}^^A \varSigma
-% \end{macro}^^A \varPsi
-% \end{macro}^^A \varPi
-% \end{macro}^^A \varPhi
-% \end{macro}^^A \varOmega
-% \end{macro}^^A \varLambda
-% \end{macro}^^A \varGamma
-% \end{macro}^^A \varDelta
-% \end{macro}^^A \upXi
-% \end{macro}^^A \upUpsilon
-% \end{macro}^^A \upTheta
-% \end{macro}^^A \upSigma
-% \end{macro}^^A \upPsi
-% \end{macro}^^A \upPi
-% \end{macro}^^A \upPhi
-% \end{macro}^^A \upOmega
-% \end{macro}^^A \upLambda
-% \end{macro}^^A \upGamma
-% \end{macro}^^A \upDelta
-% \end{macro}^^A \tud@font@greek@init
+% \end{macro}^^A \tud@x@fontspec@noerror
+% \end{macro}^^A \tud@font@check
%
% \iffalse
-%</(class|package)&body>
-%<*(class|package)&option>
+%</body>
+%<*option>
% \fi
%
-% \begin{macro}{\tud@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
-% \begin{macro}{\@uclcnotmath}
-% 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.
-% \begin{macrocode}
-\RequirePackage{textcase}[2004/10/07]
-\newcommand*\tud@uclcnotmath{%
- \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}%
- \def\@footnote##1{\NoCaseChange{\the\toks@{##1}}}%
- \def\@mkboth##1##2{\NoCaseChange{\@mkboth{##1}{##2}}}%
-}
-\patchcmd{\@uclcnotmath}{\@nonchangecase\ensuremath}{%
- \@nonchangecase\ensuremath\tud@uclcnotmath
-}{}{\tud@patch@wrn{@uclcnotmath}}%
-% \end{macrocode}
-% \end{macro}^^A \@uclcnotmath
-% \end{macro}^^A \tud@uclcnotmath
-% \begin{macro}{\tud@font@heading}
-% Mit \cs{tud@font@heading} wird die Schriftart für Überschriften im Layout des
-% \CDs definiert. Normalerweise wird hierfür DIN-Bold verwendet, was allerdings
-% per Option auch deaktiviert werden kann.
-% \begin{macrocode}
-\newcommand*\tud@font@heading{\dinbn\tud@raggedright}
-% \end{macrocode}
-% \end{macro}^^A \tud@font@heading
+% \subsubsection{Schriften für den Fließtext}
+%
+% Hier werden die Optionen und Befehle zur Schriftauswahl definiert.
+%
% \begin{option}{cdfont}
% \changes{v2.02}{2014/07/08}{Schlüsselwerte für \opt{cdhead}}^^A
% \changes{v2.02}{2014/08/29}{Schlüsselwerte für \opt{fontspec}}^^A
-% \begin{macro}{\tud@cdfont}
+% \changes{v2.05}{2016/04/04}{Schlüsselwerte für \val{ultrabold}}^^A
+% \begin{macro}{\tud@cdfont@num}
+% \begin{macro}{\if@tud@cdfont@din}
+% \begin{macro}{\if@tud@cdfont@ultrabold}
+% \changes{v2.05}{2016/04/04}{neu}^^A
% 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.
+% \DIN 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{1}
+\newif\if@tud@cdfont@din
+\newif\if@tud@cdfont@ultrabold
+\@tud@cdfont@dintrue
+\newcommand*\tud@cdfont@num{1}
\TUD@key{cdfont}[true]{%
\TUD@set@numkey{cdfont}{@tempa}{%
\TUD@numkey@bool,%
{light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},%
- {heavy}{2},{heavyfont}{2},%
- {nodin}{3},{nodinbold}{3},{noDIN}{3},{noDINBold}{3},%
- {din}{4},{dinbold}{4},{DIN}{4},{DINBold}{4},%
+ {heavy}{2},{heavyfont}{2},{bold}{2},{boldfont}{2},%
+ {normalbold}{3},{boldnormal}{3},%
+ {ultrabold}{4},{boldultra}{4},{heavybold}{4},{boldheavy}{4},%
+ {extendedbold}{4},{boldextended}{4},%
+ {nodin}{5},{nodinbold}{5},{noDIN}{5},{noDINBold}{5},%
+ {din}{6},{dinbold}{6},{DIN}{6},{DINBold}{6},%
%<*class>
- {nohead}{5},{nocdhead}{5},{noheadfont}{5},{noheadcdfont}{5},%
- {nocdheadfont}{5},{nobar}{5},{nobarfont}{5},%
- {head}{6},{headfont}{6},{cdhead}{6},{headcdfont}{6},{cdheadfont}{6},%
- {bar}{6},{barfont}{6},%
- {lighthead}{6},{lightheadfont}{6},{lightfonthead}{6},%
- {lightcdhead}{6},{lightheadcdfont}{6},{lightcdheadfont}{6},%
- {lightbar}{6},{lightbarfont}{6},{lightfontbar}{6},%
- {headlight}{6},{headfontlight}{6},{headlightfont}{6},%
- {cdheadlight}{6},{headcdfontlight}{6},{cdheadfontlight}{6},%
- {barlight}{6},{barfontlight}{6},{barlightfont}{6},%
- {litehead}{6},{liteheadfont}{6},{litefonthead}{6},%
- {litecdhead}{6},{liteheadcdfont}{6},{litecdheadfont}{6},%
- {litebar}{6},{litebarfont}{6},{litefontbar}{6},%
- {headlite}{6},{headfontlite}{6},{headlitefont}{6},%
- {cdheadlite}{6},{headcdfontlite}{6},{cdheadfontlite}{6},%
- {barlite}{6},{barfontlite}{6},{barlitefont}{6},%
- {noheavyhead}{6},{noheavyheadfont}{6},{noheavyfonthead}{6},%
- {noheavycdhead}{6},{noheavyheadcdfont}{6},{noheavycdheadfont}{6},%
- {noheavybar}{6},{noheavybarfont}{6},{noheavyfontbar}{6},%
- {headnoheavy}{6},{headfontnoheavy}{6},{headnoheavyfont}{6},%
- {cdheadnoheavy}{6},{headcdfontnoheavy}{6},{cdheadfontnoheavy}{6},%
- {barnoheavy}{6},{barfontnoheavy}{6},{barnoheavyfont}{6},%
- {heavyhead}{7},{heavyheadfont}{7},{heavyfonthead}{7},%
- {heavycdhead}{7},{heavyheadcdfont}{7},{heavycdheadfont}{7},%
- {heavybar}{7},{heavybarfont}{7},{heavyfontbar}{7},%
- {headheavy}{7},{headfontheavy}{7},{headheavyfont}{7},%
- {cdheadheavy}{7},{headcdfontheavy}{7},{cdheadfontheavy}{7},%
- {barheavy}{7},{barfontheavy}{7},{barheavyfont}{7},%
+ {nohead}{7},{nocdhead}{7},{noheadfont}{7},{noheadcdfont}{7},%
+ {nocdheadfont}{7},{nobar}{7},{nobarfont}{7},%
+ {head}{8},{headfont}{8},{cdhead}{8},{headcdfont}{8},{cdheadfont}{8},%
+ {bar}{8},{barfont}{8},%
+ {lighthead}{8},{lightheadfont}{8},{lightfonthead}{8},%
+ {lightcdhead}{8},{lightheadcdfont}{8},{lightcdheadfont}{8},%
+ {lightbar}{8},{lightbarfont}{8},{lightfontbar}{8},%
+ {headlight}{8},{headfontlight}{8},{headlightfont}{8},%
+ {cdheadlight}{8},{headcdfontlight}{8},{cdheadfontlight}{8},%
+ {barlight}{8},{barfontlight}{8},{barlightfont}{8},%
+ {litehead}{8},{liteheadfont}{8},{litefonthead}{8},%
+ {litecdhead}{8},{liteheadcdfont}{8},{litecdheadfont}{8},%
+ {litebar}{8},{litebarfont}{8},{litefontbar}{8},%
+ {headlite}{8},{headfontlite}{8},{headlitefont}{8},%
+ {cdheadlite}{8},{headcdfontlite}{8},{cdheadfontlite}{8},%
+ {barlite}{8},{barfontlite}{8},{barlitefont}{8},%
+ {noheavyhead}{8},{noheavyheadfont}{8},{noheavyfonthead}{8},%
+ {noheavycdhead}{8},{noheavyheadcdfont}{8},{noheavycdheadfont}{8},%
+ {noheavybar}{8},{noheavybarfont}{8},{noheavyfontbar}{8},%
+ {headnoheavy}{8},{headfontnoheavy}{8},{headnoheavyfont}{8},%
+ {cdheadnoheavy}{8},{headcdfontnoheavy}{8},{cdheadfontnoheavy}{8},%
+ {barnoheavy}{8},{barfontnoheavy}{8},{barnoheavyfont}{8},%
+ {heavyhead}{9},{heavyheadfont}{9},{heavyfonthead}{9},%
+ {heavycdhead}{9},{heavyheadcdfont}{9},{heavycdheadfont}{9},%
+ {heavybar}{9},{heavybarfont}{9},{heavyfontbar}{9},%
+ {headheavy}{9},{headfontheavy}{9},{headheavyfont}{9},%
+ {cdheadheavy}{9},{headcdfontheavy}{9},{cdheadfontheavy}{9},%
+ {barheavy}{9},{barfontheavy}{9},{barheavyfont}{9},%
%</class>
- {nomath}{8},{nocdmath}{8},%
- {serifmath}{8},{serif}{8},{nosansmath}{8},{nosans}{8},%
- {math}{9},{cdmath}{9},{sansmath}{9},{sans}{9},%
- {upgreek}{10},{upright}{10},{uprightgreek}{10},{uprightGreek}{10},%
- {slgreek}{11},{slanted}{11},{slantedgreek}{11},{slantedGreek}{11},%
- {fontspec}{12},{luatex}{12},{lualatex}{12}{xetex}{12},{xelatex}{12},%
- {nofontspec}{13},{nfss}{13},{pdftex}{13},{pdflatex}{13}%
+ {nomath}{10},{nocdmath}{10},%
+ {serifmath}{10},{serif}{10},{nosansmath}{10},{nosans}{10},%
+ {math}{11},{cdmath}{11},{sansmath}{11},{sans}{11},%
+ {upgreek}{12},{upright}{12},{uprightgreek}{12},{uprightGreek}{12},%
+ {slgreek}{13},{slanted}{13},{slantedgreek}{13},{slantedGreek}{13},%
+ {fontspec}{14},{luatex}{14},{lualatex}{14}{xetex}{14},{xelatex}{14},%
+ {nofontspec}{15},{nfss}{15},{pdftex}{15},{pdflatex}{15}%
}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
% \end{macrocode}
@@ -1148,21 +437,36 @@
% den Fließtext.
% \begin{macrocode}
\ifcase\@tempa\relax% false
- \def\tud@cdfont{0}%
- \if@atdocument\tud@font@set\fi%
+ \renewcommand*\tud@cdfont@num{0}%
+ \TUD@SpecialOptionAtDocument{tud@font@set}%
\or% true
- \def\tud@cdfont{1}%
- \if@atdocument\tud@font@set\fi%
+ \renewcommand*\tud@cdfont@num{1}%
+ \TUD@SpecialOptionAtDocument{tud@font@set}%
\or% heavy
- \def\tud@cdfont{2}%
- \if@atdocument\tud@font@set\fi%
+ \renewcommand*\tud@cdfont@num{2}%
+ \TUD@SpecialOptionAtDocument{tud@font@set}%
+% \end{macrocode}
+% Die Definition des fetten Schriftschnittes.
+% \begin{macrocode}
+ \or% normalbold
+ \@tud@cdfont@ultraboldfalse%
+ \ifcase\tud@cdfont@num\relax% false to true
+ \renewcommand*\tud@cdfont@num{1}%
+ \fi%
+ \TUD@SpecialOptionAtDocument{tud@font@set}%
+ \or% ultrabold
+ \@tud@cdfont@ultraboldtrue%
+ \ifcase\tud@cdfont@num\relax% false to true
+ \renewcommand*\tud@cdfont@num{1}%
+ \fi%
+ \TUD@SpecialOptionAtDocument{tud@font@set}%
% \end{macrocode}
-% Hier wird die Verwendung von DIN~Bold für die Überschirften festgelegt.
+% Hier wird die Verwendung von \DIN für die Überschirften festgelegt.
% \begin{macrocode}
\or% nodin
- \renewcommand*\tud@font@heading{\tud@RaggedRight}%
+ \@tud@cdfont@dinfalse%
\or% din
- \renewcommand*\tud@font@heading{\dinbn\tud@raggedright}%
+ \@tud@cdfont@dintrue%
% \end{macrocode}
% Die Schrift für den Querbalken.
% \begin{macrocode}
@@ -1170,14 +474,23 @@
%<*class>
\TUDoptions{cdhead=false}%
%</class>
+%<*package>
+ \PackageWarning{tudscrfonts}{Option `cdfont=nohead' is not available}%
+%</package>
\or% head
%<*class>
\TUDoptions{cdhead=true}%
%</class>
+%<*package>
+ \PackageWarning{tudscrfonts}{Option `cdfont=head' is not available}%
+%</package>
\or% heavyhead
%<*class>
\TUDoptions{cdhead=heavy}%
%</class>
+%<*package>
+ \PackageWarning{tudscrfonts}{Option `cdfont=heavyhead' is not available}%
+%</package>
% \end{macrocode}
% Die Mathematikschriften.
% \begin{macrocode}
@@ -1205,38 +518,75 @@
% dass es sich bei diesem um die gewünschte Schriftgröße handelt.
% \begin{macrocode}
\else%
- \KOMAoptions{fontsize=#1}%
- \ifcase\tud@cdfont\relax% false to true
- \def\tud@cdfont{1}%
- \if@atdocument\tud@font@set\fi%
- \fi%
+ \ifdimen{#1}{%
+ \ifdim#1>\z@\relax%
+ \TUD@KOMAoptions{fontsize=#1}%
+ \csname @tud@fontsize@settrue\endcsname%
+ \ifcase\tud@cdfont@num\relax% false to true
+ \renewcommand*\tud@cdfont@num{1}%
+ \TUD@SpecialOptionAtDocument{tud@font@set}%
+ \fi%
+ \FamilyKeyStateProcessed%
+ \fi%
+ }{}%
\fi%
}
% \end{macrocode}
-% \end{macro}^^A \tud@cdfont
+% \end{macro}^^A \if@tud@cdfont@ultrabold
+% \end{macro}^^A \if@tud@cdfont@din
+% \end{macro}^^A \tud@cdfont@num
% \end{option}^^A cdfont
+% \begin{option}{relspacing}
+% \changes{v2.05}{2015/12/17}{neu}^^A
+% \begin{macro}{\if@tud@relspacing}
+% \changes{v2.05}{2015/12/17}{neu}^^A
% \begin{option}{fontsize}
% \changes{v2.04}{2015/04/24}{Option aus \KOMAScript{} erweitert}^^A
-% Mit der \KOMAScript-Option \opt{fontsize} kann die Schriftgröße eingestellt
-% werden. Durch \TUDScript werden bei aktiven Schriften im \CD verschiedene
-% Abstände mit \cs{tud@font@skip@set} schriftgrößenabhängig definiert.
-% \begin{macrocode}
+% Die Option \opt{relspacing} setzt einige Abstände und Längen in Abhängigkeit
+% der aktuellen Grundschriftgröße, wenn sie aktiviert wurde. Die Schriftgröße
+% kann mit der \KOMAScript-Option \opt{fontsize} eingestellt werden. Durch das
+% Makro \cs{tud@font@skip@set} wird die Definiton der Längen vorgenommen.
+% \begin{macrocode}
+\newif\if@tud@relspacing
+\TUD@key{relspacing}[true]{%
+ \TUD@set@numkey{relspacing}{@tempa}{%
+ \TUD@numkey@bool,%
+ {absolute}{0},{classic}{0},{standard}{0},%
+ {relative}{1},{fontsize}{1},{font}{1},{size}{1}%
+ }{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \ifcase\@tempa\relax% false
+ \@tud@relspacingfalse%
+ \or% true
+ \@tud@relspacingtrue%
+ \fi%
+ \TUD@SpecialOptionAtDocument{tud@font@skip@set}%
+ \fi%
+}
\DefineFamilyMember{KOMA}
\DefineFamilyKey{KOMA}{fontsize}{%
- \AtEndOfFamilyOptions{\if@atdocument\tud@font@skip@set\fi}%
+ \TUD@SpecialOptionAtDocument{tud@font@skip@set}%
\FamilyKeyStateProcessed%
}
% \end{macrocode}
% \end{option}^^A fontsize
+% \end{macro}^^A \if@tud@relspacing
+% \end{option}^^A relspacing
%
% \iffalse
-%</(class|package)&option>
-%<*(class|package)&body>
+%</option>
+%<*body>
% \fi
%
+% Mit dem Paket \pkg{trimspaces} werden für die alternative Schriftauswahl mit
+% \cs{cdfont} bzw. \cs{textcdfont} eventuell vorhandene Leerzeichen aus dem
+% Argument entfernt. Auch beim Einlesen von Feldern wird dies genutzt.
+% \begin{macrocode}
+\RequirePackage{trimspaces}[2009/09/17]
+% \end{macrocode}
% \begin{macro}{\tud@font@set}
% \changes{v2.04}{2015/03/01}{Unterstützung für das Paket \pkg{mweights}}^^A
-% \begin{macro}{\if@tud@mweights}
+% \begin{macro}{\if@tud@x@mweights@enabled}
% \changes{v2.04}{2015/04/24}{Erkennung des Paketes \pkg{mweights}}^^A
% \begin{macro}{\bfseries@rm}
% \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A
@@ -1263,22 +613,40 @@
% Mit diesem Befehl werden entweder die normalen oder aber die Schriften des
% \CDs aktiviert. Dabei wird die Option \opt{fontspec} beachtet.
% \begin{macrocode}
-\newif\if@tud@mweights
-\AfterPackage*{mweights}{\@tud@mweightstrue}
-\newcommand*\tud@font@set[1][]{%
- \if@tud@mweights%
- \ifdef{\bfseries@rm}{}{\edef\bfseries@rm{\bfdefault}}%
- \ifdef{\bfseries@sf}{}{\edef\bfseries@sf{\bfdefault}}%
- \ifdef{\bfseries@tt}{}{\edef\bfseries@tt{\bfdefault}}%
- \ifdef{\mdseries@rm}{}{\edef\mdseries@rm{\mddefault}}%
- \ifdef{\mdseries@sf}{}{\edef\mdseries@sf{\mddefault}}%
- \ifdef{\mdseries@tt}{}{\edef\mdseries@tt{\mddefault}}%
+\newif\if@tud@x@mweights@enabled
+\AfterPackage*{mweights}{\@tud@x@mweights@enabledtrue}
+\newcommand*\tud@font@set{%
+% \end{macrocode}
+% Wurde die Option \opt{cdfont} nicht in der Präambel genutzt, wird im Fall,
+% dass die Schriften des \CDs nicht installiert sind, eine Warnung erzeugt.
+% \begin{macrocode}
+ \if@atdocument%
+ \ifnum\tud@cdfont@num>\z@\relax% true/heavy
+ \if@tud@univers\else%
+%<*class>
+ \ClassWarning{\TUD@Class@Name}%
+%</class>
+%<*package>
+ \PackageWarning{tudscrfonts}%
+%</package>
+ {`Univers' fonts not found}%
+ \fi%
+ \if@tud@dinbold\else%
+%<*class>
+ \ClassWarning{\TUD@Class@Name}%
+%</class>
+%<*package>
+ \PackageWarning{tudscrfonts}%
+%</package>
+ {`DIN Bold' fonts not found}%
+ \fi%
+ \fi%
\fi%
% \end{macrocode}
% Werden die Schriften des \CDs deaktiviert, wird auf die zu Dokumentbeginn
% gesicherten Schriften\footnote{mit und ohne Serifen} zurückgeschaltet.
% \begin{macrocode}
- \ifcase\tud@cdfont\relax% false
+ \ifcase\tud@cdfont@num\relax% false
\tud@cmd@restore{rmdefault}%
\tud@cmd@restore{sfdefault}%
\tud@cmd@restore{ttdefault}%
@@ -1288,7 +656,7 @@
\tud@cmd@restore{familydefault}%
\tud@cmd@restore{seriesdefault}%
\tud@cmd@restore{shapedefault}%
- \if@tud@mweights%
+ \if@tud@x@mweights@enabled%
\tud@cmd@restore{bfseries@rm}%
\tud@cmd@restore{bfseries@sf}%
\tud@cmd@restore{bfseries@tt}%
@@ -1301,10 +669,15 @@
% \begin{macrocode}
\bool@std@lock{@tud@cdmath}{false}%
% \end{macrocode}
-% Innerhalb der Klassen wird auch die Schrift im Querbalken zurückgsetzt.
+% Innerhalb der Klassen wird auch die Schrift im Querbalken zurückgsetzt, wenn
+% kein Layout im \CD genutzt wird.
% \begin{macrocode}
%<*class>
- \cs@std@lock{tud@head@font}{0}%
+ \ifcase\tud@cd@num\relax% false
+ \cs@std@lock{tud@head@font@num}{0}%
+ \else% !false
+ \cs@std@lock{tud@head@font@num}{1}%
+ \fi%
%</class>
% \end{macrocode}
% Ist die Verwendung der Schriften des \CDs gewünscht, werden die Schnitte der
@@ -1321,7 +694,7 @@
\tud@cmd@store{familydefault}%
\tud@cmd@store{seriesdefault}%
\tud@cmd@store{shapedefault}%
- \if@tud@mweights%
+ \if@tud@x@mweights@enabled%
\tud@cmd@store{bfseries@rm}%
\tud@cmd@store{bfseries@sf}%
\tud@cmd@store{bfseries@tt}%
@@ -1338,96 +711,86 @@
% Die Schrift im Querbalken wird bei den Klassen angepasst.
% \begin{macrocode}
%<*class>
- \cs@std@lock{tud@head@font}{\tud@cdfont}%
+ \cs@std@lock{tud@head@font@num}{\tud@cdfont@num}%
%</class>
% \end{macrocode}
% Danach erfolgt die Definition der Schriften des \CDs entweder mit dem Paket
% \pkg{fontspec} oder\dots
% \begin{macrocode}
- \if@tud@fontspec%
- \ifnum\tud@cdfont=\@ne\relax% true
- \setsansfont{Univers Light}[%
- BoldFont = Univers,%
- ItalicFont = Univers Light Oblique,%
- BoldItalicFont = Univers Oblique,%
- ]%
- \setmonofont{LMMonoLt10-Regular}[%
- BoldFont = LMMono10-Regular,%
- ItalicFont = LMMonoLt10-Oblique,%
- BoldItalicFont = LMMonoSlant10-Regular,%
- ]%
-% \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>
- \else% heavy
+ \if@tud@univers%
+ \if@tud@x@fontspec@enabled%
\setsansfont{Univers}[%
- BoldFont = Univers Bold,%
- ItalicFont = Univers Oblique,%
- BoldItalicFont = Univers Bold Oblique,%
+ FontFace = {l}{\updefault}{Univers Light},%
+ FontFace = {m}{\updefault}{Univers},%
+ FontFace = {b}{\updefault}{Univers Bold},%
+ FontFace = {bx}{\updefault}{Univers Bold},%
+ FontFace = {eb}{\updefault}{Univers Black},%
+ FontFace = {l}{\sldefault}{Univers Light Oblique},%
+ FontFace = {m}{\sldefault}{Univers Oblique},%
+ FontFace = {b}{\sldefault}{Univers Bold Oblique},%
+ FontFace = {bx}{\sldefault}{Univers Bold Oblique},%
+ FontFace = {eb}{\sldefault}{Univers Black Oblique},%
+ NFSSFamily = \tud@univers%
]%
\setmonofont{LMMono10-Regular}[%
- BoldFont = LMMonoLt10-Bold,%
- ItalicFont = LMMonoSlant10-Regular,%
- BoldItalicFont = LMMonoLt10-BoldOblique,%
+ FontFace = {l}{\updefault}{LMMonoLt10-Regular},%
+ FontFace = {m}{\updefault}{LMMono10-Regular},%
+ FontFace = {b}{\updefault}{LMMonoLt10-Bold},%
+ FontFace = {bx}{\updefault}{LMMonoLt10-Bold},%
+ FontFace = {eb}{\updefault}{LMMonoLt10-Bold},%
+ FontFace = {l}{\sldefault}{LMMonoLt10-Oblique},%
+ FontFace = {m}{\sldefault}{LMMonoSlant10-Regular},%
+ FontFace = {b}{\sldefault}{LMMonoLt10-BoldOblique},%
+ FontFace = {bx}{\sldefault}{LMMonoLt10-BoldOblique},%
+ FontFace = {eb}{\sldefault}{LMMonoLt10-BoldOblique},%
+ NFSSFamily = \tud@univers t%
]%
- \fi%
% \end{macrocode}
% \dots nach dem NFSS.
% \begin{macrocode}
- \else%
- \if@tud@univers%
+ \else%
\renewcommand*\sfdefault{\tud@univers}%
\renewcommand*\ttdefault{\tud@univers t}%
- \ifnum\tud@cdfont=\@ne\relax% true
+ \fi%
+ \ifnum\tud@cdfont@num=\@ne\relax% true
+ \if@tud@cdfont@ultrabold% ultrabold
+ \renewcommand*\bfdefault{b}%
+ \else% normalbold
\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}%
- \if@tud@mweights%
- \def\bfseries@rm{m}%
- \def\bfseries@sf{m}%
- \def\bfseries@tt{m}%
- \def\mdseries@rm{l}%
- \def\mdseries@sf{l}%
- \def\mdseries@tt{l}%
- \fi%
- \else% heavy
+ \fi%
+ \renewcommand*\mddefault{l}%
+ \if@tud@x@mweights@enabled%
+ \def\bfseries@rm{m}%
+ \def\bfseries@sf{m}%
+ \def\bfseries@tt{m}%
+ \def\mdseries@rm{l}%
+ \def\mdseries@sf{l}%
+ \def\mdseries@tt{l}%
+ \fi%
+ \else% heavy
+ \if@tud@cdfont@ultrabold% ultrabold
+ \renewcommand*\bfdefault{eb}%
+ \else% normalbold
\renewcommand*\bfdefault{b}%
- \renewcommand*\mddefault{m}%
- \if@tud@mweights%
- \def\bfseries@rm{b}%
- \def\bfseries@sf{b}%
- \def\bfseries@tt{b}%
- \def\mdseries@rm{m}%
- \def\mdseries@sf{m}%
- \def\mdseries@tt{m}%
- \fi%
+ \fi%
+ \renewcommand*\mddefault{m}%
+ \if@tud@x@mweights@enabled%
+ \def\bfseries@rm{b}%
+ \def\bfseries@sf{b}%
+ \def\bfseries@tt{b}%
+ \def\mdseries@rm{m}%
+ \def\mdseries@sf{m}%
+ \def\mdseries@tt{m}%
\fi%
\fi%
+ \renewcommand*\rmdefault{\sfdefault}%
+ \renewcommand*\itdefault{\sldefault}%
\fi%
- \renewcommand*\rmdefault{\sfdefault}%
\renewcommand*\familydefault{\sfdefault}%
\renewcommand*\seriesdefault{\mddefault}%
\renewcommand*\shapedefault{\updefault}%
\fi%
- \if@tud@mweights%
+ \if@tud@x@mweights@enabled%
\edef\rmdef@ult{\rmdefault}%
\edef\sfdef@ult{\sfdefault}%
\edef\ttdef@ult{\ttdefault}%
@@ -1439,11 +802,12 @@
% definiert. Danach erfolgt die Behandlung der Mathematikschriften und die
% gewählte Standardschrift aktiviert. Zum Schluss wird das Layout erneuert.
% \begin{macrocode}
+ \ifdef{\tud@font@math@init}{}{\tud@font@math@set}%
\tud@font@skip@set%
- \ifstr{#1}{nomath}{}{\tud@font@math@set}%
\normalfont\selectfont%
%<*class>
\tud@layout@process%
+ \global\@tud@head@font@settrue%
%</class>
}
% \end{macrocode}
@@ -1458,7 +822,7 @@
% \end{macro}^^A \bfseries@tt
% \end{macro}^^A \bfseries@sf
% \end{macro}^^A \bfseries@rm
-% \end{macro}^^A \if@tud@mweights
+% \end{macro}^^A \if@tud@x@mweights@enabled
% \end{macro}^^A \tud@font@set
% \begin{macro}{\tud@font@skip@set}
% \changes{v2.04}{2015/02/17}{neu}^^A
@@ -1484,39 +848,35 @@
% Es werden die Standardeinstellungen abhängig von \opt{cdfont} entweder
% wiederhergestellt oder gesichert und neu definiert.
% \begin{macrocode}
- \tud@ifverlower{2.04}{}{%
- \ifcase\tud@cdfont\relax% false
- \tud@skip@restore{smallskipamount}%
- \tud@skip@restore{medskipamount}%
- \tud@skip@restore{bigskipamount}%
- \tud@skip@restore{abovecaptionskip}%
- \tud@skip@restore{belowcaptionskip}%
- \tud@skip@restore{columnsep}%
- \else% true/heavy
- \tud@skip@store{smallskipamount}%
- \tud@skip@store{medskipamount}%
- \tud@skip@store{bigskipamount}%
- \tud@skip@store{abovecaptionskip}%
- \tud@skip@store{belowcaptionskip}%
- \tud@skip@store{columnsep}%
- \tud@font@skip@@set%
- \fi%
- }%
+ \if@tud@relspacing%
+ \tud@skip@store{smallskipamount}%
+ \tud@skip@store{medskipamount}%
+ \tud@skip@store{bigskipamount}%
+ \tud@skip@store{abovecaptionskip}%
+ \tud@skip@store{belowcaptionskip}%
+ \tud@skip@store{columnsep}%
+ \tud@font@skip@@set%
+ \else%
+ \tud@skip@restore{smallskipamount}%
+ \tud@skip@restore{medskipamount}%
+ \tud@skip@restore{bigskipamount}%
+ \tud@skip@restore{abovecaptionskip}%
+ \tud@skip@restore{belowcaptionskip}%
+ \tud@skip@restore{columnsep}%
+ \fi%
}
% \end{macrocode}
% Hiermit erfolgt das eigentliche Setzen der Abstände.
% \begin{macrocode}
\newcommand*\tud@font@skip@@set{%
- \setlength{\@tempdimb}{\f@baselineskip}%
- \scr@setlength\smallskipamount{\dimexpr\@tempdimb/4\relax}%
- {\dimexpr\@tempdimb/12\relax}{\dimexpr\@tempdimb/12\relax}%
- \scr@setlength\medskipamount{\dimexpr\@tempdimb/2\relax}%
- {\dimexpr\@tempdimb/6\relax}{\dimexpr\@tempdimb/6\relax}%
- \scr@setlength\bigskipamount{\@tempdimb}%
- {\dimexpr\@tempdimb/3\relax}{\dimexpr\@tempdimb/3\relax}%
- \tud@skip@set\abovecaptionskip{\dimexpr4\@tempdimb/5\relax}%
- \tud@skip@set\belowcaptionskip{\z@}%
- \tud@skip@set\columnsep{1.1\baselineskip}%
+ \smallskipamount=\partopsep%
+ \medskipamount=\partopsep%
+ \multiply\medskipamount by 2%
+ \bigskipamount=\partopsep%
+ \multiply\bigskipamount by 4%
+ \tud@skip@set{abovecaptionskip}{\dimexpr\bigskipamount*5/6\relax}%
+ \tud@skip@set{belowcaptionskip}{\z@}%
+ \tud@skip@set{columnsep}{1.1\baselineskip}%
}
% \end{macrocode}
% \end{macro}^^A \columnsep
@@ -1527,75 +887,270 @@
% \end{macro}^^A \smallskipamount
% \end{macro}^^A \tud@font@skip@@set
% \end{macro}^^A \tud@font@skip@set
-% \begin{macro}{\tud@font@math@set}
-% Mit diesem Befehl werden die Einstellungen für den Mathematiksatz übernommen.
-% Die Option \opt{cdmath} wird ausgewertet, 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 respektive wiederhergestellt.
+% \begin{macro}{\tud@font@init}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@font@fallback}
+% \changes{v2.05}{2015/12/14}{neu}^^A
+% \begin{macro}{\tud@font@wrn}
+% \changes{v2.05}{2015/12/14}{neu}^^A
+% \begin{macro}{\univln}
+% \begin{macro}{\univrn}
+% \begin{macro}{\univbn}
+% \begin{macro}{\univxn}
+% \begin{macro}{\univls}
+% \begin{macro}{\univrs}
+% \begin{macro}{\univbs}
+% \begin{macro}{\univxs}
+% \begin{macro}{\dinbn}
+% \begin{macro}{\tud@dinbn}
+% \begin{macro}{\textuln}
+% \begin{macro}{\texturn}
+% \begin{macro}{\textubn}
+% \begin{macro}{\textuxn}
+% \begin{macro}{\textuls}
+% \begin{macro}{\texturs}
+% \begin{macro}{\textubs}
+% \begin{macro}{\textuxs}
+% \begin{macro}{\textdbn}
+% Das Makro \cs{tud@font@init} wird für die Defintion aller Befehle zur Auswahl
+% der Schriften des \CDs verwendet.
+% \begin{macrocode}
+\newcommand*\tud@font@init{%
+% \end{macrocode}
+% Es werden mehrere Schalter zur expliziten Auswahl für die Schriftschnitte
+% \textuln{Univers~45~Light}, \texturn{Univers~55~Regular},
+% \textubn{Univers~65~Bold}, \textuxn{Univers~75~Black},
+% \textuls{Univers~45~Light~Oblique}, \texturs{Univers~55~Regular~Oblique},
+% \textubs{Univers~65~Bold~Oblique} sowie \textuxs{Univers~75~Black~Oblique}
+% und \DIN definiert. Diese können so im Dokument unabhängig von der Option
+% \opt{cdfont} genutzt werden. Bei der Schriftauswahl der \DIN wird neben
+% dieser noch die entsprechende Mathematikschrift aktiviert.
% \begin{macrocode}
-\newcommand*\tud@font@math@set{%
\if@tud@univers%
- \if@tud@cdmath%
- \tud@cmd@store{mv@normal}%
- \tud@cmd@store{mv@bold}%
- \let\mv@normal\mv@univers%
- \let\mv@bold\mv@universbold%
- \tud@font@greek@loop\tud@font@greek@set%
+ \newrobustcmd*\univln{\usefont{\encodingdefault}{\tud@univers}{l}{n}}%
+ \newrobustcmd*\univrn{\usefont{\encodingdefault}{\tud@univers}{m}{n}}%
+ \newrobustcmd*\univbn{\usefont{\encodingdefault}{\tud@univers}{b}{n}}%
+ \newrobustcmd*\univxn{\usefont{\encodingdefault}{\tud@univers}{eb}{n}}%
+ \newrobustcmd*\univls{\usefont{\encodingdefault}{\tud@univers}{l}{sl}}%
+ \newrobustcmd*\univrs{\usefont{\encodingdefault}{\tud@univers}{m}{sl}}%
+ \newrobustcmd*\univbs{\usefont{\encodingdefault}{\tud@univers}{b}{sl}}%
+ \newrobustcmd*\univxs{\usefont{\encodingdefault}{\tud@univers}{eb}{sl}}%
+% \end{macrocode}
+% Sind die notwendigen Schriften nicht installiert, werden die Schalter für die
+% Rückfallebene so definiert, dass diese eine Warnung ausgeben.
+% \begin{macrocode}
+ \else%
+ \newrobustcmd*\univln{\tud@font@fallback{Univers Light}{md}{up}}%
+ \newrobustcmd*\univrn{\tud@font@fallback{Univers}{md}{up}}%
+ \newrobustcmd*\univbn{\tud@font@fallback{Univers Bold}{bf}{up}}%
+ \newrobustcmd*\univxn{\tud@font@fallback{Univers Black}{bf}{up}}%
+ \newrobustcmd*\univls{\tud@font@fallback{Univers Light Oblique}{md}{sl}}%
+ \newrobustcmd*\univrs{\tud@font@fallback{Univers Oblique}{md}{sl}}%
+ \newrobustcmd*\univbs{\tud@font@fallback{Univers Bold Oblique}{bf}{sl}}%
+ \newrobustcmd*\univxs{\tud@font@fallback{Univers Black Oblique}{bf}{sl}}%
+ \fi%
+% \end{macrocode}
+% Nach der Univers-Schriftfamilie wird für DIN~Bold äquivalent verfahren. Da
+% dieser Schriftschnitt zwingend für die Überschriften benötigt wird, sollte
+% dieser zumindest auch auf deren Stil schalten.
+% \begin{macrocode}
+ \if@tud@dinbold%
+ \if@tud@x@fontspec@enabled%
+ \newfontface\tud@dinbn{DIN Bold}[%
+ FontFace = {l}{\updefault}{DIN Bold},%
+ FontFace = {m}{\updefault}{DIN Bold},%
+ FontFace = {b}{\updefault}{DIN Bold},%
+ FontFace = {bx}{\updefault}{DIN Bold},%
+ FontFace = {eb}{\updefault}{DIN Bold},%
+ FontFace = {l}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},%
+ FontFace = {m}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},%
+ FontFace = {b}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},%
+ FontFace = {bx}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},%
+ FontFace = {eb}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},%
+ NFSSFamily = \tud@dinbold%
+ ]%
\else%
- \tud@cmd@restore{mv@normal}%
- \tud@cmd@restore{mv@bold}%
- \tud@font@greek@loop\tud@font@greek@reset%
+ \newrobustcmd*\tud@dinbn{\usefont{\encodingdefault}{\tud@dinbold}{b}{n}}%
\fi%
- \fi%
- \if@tud@slantedgreek%
- \tud@font@greek@loop\tud@font@greek@slanted%
+ \if@tud@dinboldmath%
+ \appto\tud@dinbn{\mathversion{dinbold}}%
+ \fi%
+ \newrobustcmd*\dinbn{\tud@dinbn}%
\else%
- \tud@font@greek@loop\tud@font@greek@upright%
+ \newrobustcmd*\tud@dinbn{\sectfont}%
+ \newrobustcmd*\dinbn{\tud@font@wrn{DIN Bold}\tud@dinbn}%
\fi%
- \mathversion{normal}%
+% \end{macrocode}
+% 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{}%
+ \newcommand*\textdbn{}%
+ \DeclareTextFontCommand\textuln{\univln}%
+ \DeclareTextFontCommand\texturn{\univrn}%
+ \DeclareTextFontCommand\textubn{\univbn}%
+ \DeclareTextFontCommand\textuxn{\univxn}%
+ \DeclareTextFontCommand\textuls{\univls}%
+ \DeclareTextFontCommand\texturs{\univrs}%
+ \DeclareTextFontCommand\textubs{\univbs}%
+ \DeclareTextFontCommand\textuxs{\univxs}%
+ \DeclareTextFontCommand\textdbn{\dinbn}%
+% \end{macrocode}
+% Nach der optionsabhängigen Definition der Schriftauswahlbefehle wird der
+% Initialisierungsbefehle undefiniert gesetzt.
+% \begin{macrocode}
+ \undef\tud@font@init%
}
% \end{macrocode}
-% \end{macro}^^A \tud@font@math@set
-% \begin{macro}{\tud@font@greek@set}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@font@greek@reset}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% Mit diesen beiden Befehlen kann innerhalb des Dokumentes problemlos zwischen
-% griechischen Buchstaben für die CD-Schriften und den normalen gewechselt
-% werden.
+% Hier wird die Rückfallebene für die Schriftschalter sowie die dazugehörige
+% Warnung definiert.
% \begin{macrocode}
-\newcommand*\tud@font@greek@set[1]{%
- \tud@cmd@store{#1}%
- \tud@cmd@store{up#1}%
- \tud@cmd@store{var#1}%
- \csletcs{#1}{tud@#1}%
- \csletcs{up#1}{tud@up#1}%
- \csletcs{var#1}{tud@var#1}%
+\newcommand*\tud@font@fallback[3]{%
+ \tud@font@wrn{#1}%
+ \sffamily\csuse{#2series}\csuse{#3shape}%
}
-\newcommand*\tud@font@greek@reset[1]{%
- \tud@cmd@restore{#1}%
- \tud@cmd@restore{up#1}%
- \tud@cmd@restore{var#1}%
+\newcommand*\tud@font@wrn[1]{%
+%<*class>
+ \ClassWarning{\TUD@Class@Name}%
+%</class>
+%<*package>
+ \PackageWarning{tudscrfonts}%
+%</package>
+ {%
+ The requested font `#1' is not available, so\MessageBreak%
+ a fallback layout is used%
+ }%
}
% \end{macrocode}
-% \end{macro}^^A \tud@font@greek@reset
-% \end{macro}^^A \tud@font@greek@set
-% \begin{macro}{\tud@font@greek@upright}
-% \begin{macro}{\tud@font@greek@slanted}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% Mit den beiden Befehlen kann die Definition der griechischen Buchstaben
-% entweder auf aufrecht bzw. kursiv gesetzt werden.
+% \end{macro}^^A \textdbn
+% \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
+% \end{macro}^^A \tud@dinbn
+% \end{macro}^^A \dinbn
+% \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
+% \end{macro}^^A \tud@font@wrn
+% \end{macro}^^A \tud@font@fallback
+% \end{macro}^^A \tud@font@init
+% \begin{macro}{\cdfont}
+% \changes{v2.04}{2015/03/04}{neu}^^A
+% \begin{macro}{\tudfont}
+% \changes{v2.04}{2015/04/24}{\cls{tudmathposter} wird unterstützt}^^A
+% \begin{macro}{\textcdfont}
+% \changes{v2.04}{2015/03/04}{neu}^^A
+% \begin{macro}{\tud@cdfont@get}
+% \changes{v2.04}{2015/03/04}{neu}^^A
+% \begin{macro}{\tud@cdfont@trim}
+% \changes{v2.04}{2015/03/04}{neu}^^A
+% \begin{macro}{\tud@cdfont@@trim}
+% \changes{v2.04}{2015/03/04}{neu}^^A
+% Die Klassen \cls{tudposter} und \cls{tudmathposter} definieren den Befehl
+% \cs{tudfont}, mit welchem die Schriften des \CDs der \TnUD auch mit Klarnamen
+% ausgewählt werden können. Zur Kompatibilität wird der Befehl \cs{cdfont}
+% definiert, welcher die gleiche Funktionalität bereitstellt. Zusätzlich wird
+% der Befehl \cs{textcdfont} bereitgestellt, der die Auswahl der Schrift als
+% Textbefehl ermöglicht.
% \begin{macrocode}
-\newcommand*\tud@font@greek@upright[1]{\csletcs{#1}{up#1}}
-\newcommand*\tud@font@greek@slanted[1]{\csletcs{#1}{var#1}}
+\newcommand*\cdfont[1]{%
+ \tud@cdfont@get{#1}%
+ \ifx\@tempc\relax\else%
+ \ifstr{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}%
+ \fi%
+}
+\providecommand*\tudfont[1]{\cdfont{#1}}
+\newcommand*\textcdfont[2]{%
+ \tud@cdfont@get{#1}%
+ \ifx\@tempc\relax\else%
+ \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}%
+ \fi%
+}
+\newcommand*\tud@cdfont@get[1]{%
+ \tud@cdfont@trim\@tempa{#1}%
+ \ifstr{\@tempa}{45}{\def\@tempc{ln}}{%
+ \ifstr{\@tempa}{55}{\def\@tempc{rn}}{%
+ \ifstr{\@tempa}{65}{\def\@tempc{bn}}{%
+ \ifstr{\@tempa}{75}{\def\@tempc{xn}}{%
+ \ifstr{\@tempa}{45oblique}{\def\@tempc{ls}}{%
+ \ifstr{\@tempa}{55oblique}{\def\@tempc{rs}}{%
+ \ifstr{\@tempa}{65oblique}{\def\@tempc{bs}}{%
+ \ifstr{\@tempa}{75oblique}{\def\@tempc{xs}}{%
+ \ifstr{\@tempa}{oblique45}{\def\@tempc{ls}}{%
+ \ifstr{\@tempa}{oblique55}{\def\@tempc{rs}}{%
+ \ifstr{\@tempa}{oblique65}{\def\@tempc{bs}}{%
+ \ifstr{\@tempa}{oblique75}{\def\@tempc{xs}}{%
+ \ifstr{\@tempa}{din}{\def\@tempc{dinbn}}{%
+ \ifstr{\@tempa}{din65}{\def\@tempc{dinbn}}{%
+ \let\@tempc\relax%
+%<*class>
+ \ClassWarning{\TUD@Class@Name}%
+%</class>
+%<*package>
+ \PackageWarning{tudscrfonts}%
+%</package>
+ {The font `#1' is unknown}%
+ }}}}}}}}}}}}}}%
+}
+\newcommand*\tud@cdfont@trim[2]{%
+ \protected@edef\@tempa{\trim@spaces{#2}}%
+ \tud@lowerstring{\@tempa}{\@tempa}%
+ \tud@cdfont@@trim{ }{}%
+ \tud@cdfont@@trim{-}{}%
+ \tud@cdfont@@trim{_}{}%
+ \tud@cdfont@@trim{~}{}%
+ \tud@cdfont@@trim{ce}{}%
+ \tud@cdfont@@trim{ff}{}%
+ \tud@cdfont@@trim{univers}{}%
+ \tud@cdfont@@trim{60}{65}%
+ \tud@cdfont@@trim{light}{45}%
+ \tud@cdfont@@trim{regular}{55}%
+ \tud@cdfont@@trim{bold}{65}%
+ \tud@cdfont@@trim{black}{75}%
+ \tud@cdfont@@trim{4545}{45}%
+ \tud@cdfont@@trim{5555}{55}%
+ \tud@cdfont@@trim{6565}{65}%
+ \tud@cdfont@@trim{7575}{75}%
+ \tud@cdfont@@trim{italic}{oblique}%
+ \tud@cdfont@@trim{slanted}{oblique}%
+ \let#1\@tempa%
+}
+\newcommand*\tud@cdfont@@trim[2]{%
+ \def\@tempb##1#1##2\relax{\def\@tempa{##1#2##2}}%
+ \@expandtwoargs\in@{#1}{\@tempa}%
+ \@whilesw\ifin@\fi{%
+ \expandafter\@tempb\@tempa\relax%
+ \@expandtwoargs\in@{#1}{\@tempa}%
+ }%
+}
% \end{macrocode}
-% \end{macro}^^A \tud@font@greek@slanted
-% \end{macro}^^A \tud@font@greek@upright
+% \end{macro}^^A \tud@cdfont@@trim
+% \end{macro}^^A \tud@cdfont@trim
+% \end{macro}^^A \tud@cdfont@get
+% \end{macro}^^A \textcdfont
+% \end{macro}^^A \tudfont
+% \end{macro}^^A \cdfont
%
% \iffalse
-%</(class|package)&body>
-%<*(class|package)&option>
+%</body>
+%<*option>
% \fi
%
% \subsection{Schriften für den Mathematiksatz}
@@ -1624,10 +1179,10 @@
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
\ifcase\@tempa\relax% false
\bool@set@lock{@tud@cdmath}{false}%
- \if@atdocument\tud@font@math@set\fi%
+ \TUD@SpecialOptionAtDocument{tud@font@math@set}%
\or% true
\bool@set@lock{@tud@cdmath}{true}%
- \if@atdocument\tud@font@math@set\fi%
+ \TUD@SpecialOptionAtDocument{tud@font@math@set}%
\or% upgreek
\TUDoptions{slantedgreek=false}%
\or% slgreek
@@ -1651,7 +1206,7 @@
\TUD@set@ifkey{slantedgreek}{@tud@slantedgreek}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
\bool@set@lock{@tud@slantedgreek}{#1}%
- \if@atdocument\tud@font@math@set\fi%
+ \TUD@SpecialOptionAtDocument{tud@font@math@set}%
\fi%
}
\TUD@key{slantedGreek}[true]{\TUDoptions{slantedgreek=#1}}
@@ -1662,119 +1217,543 @@
% \end{option}^^A slantedgreek
%
% \iffalse
-%</(class|package)&option>
-%<*class&body>
+%</option>
+%<*body>
% \fi
%
-% \begin{macro}{\tud@head@font@set}
-% \changes{v2.02}{2014/07/08}{Unterstützung für \opt{cdhead} hinzugefügt}^^A
-% \changes{v2.03}{2015/01/30}{Fix für die Änderung von \cs{spaceskip} durch
-% \pkg{ragged2e}}^^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}
-% Das Paket \pkg{ragged2e} ändert im Zweifelsfall die Länge \cs{spaceskip}. Um
-% den Kopf unbeeinflusst davon immer in der gleichen Gestalt erscheinen zu
-% lassen, wird dies hier temporär unterdrückt.
-% \begin{macrocode}
- \ifdef{\@raggedtwoe@everyselectfont}{%
- \let\@raggedtwoe@everyselectfont\relax%
- \setlength\spaceskip{\z@}%
- \selectfont%
- }{}%
+% \begin{macro}{\tud@font@greek@loop}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% Um ggf. Anpassungen an den griechischen Majuskeln vornehmenzu können, wird
+% das Makro \cs{tud@font@greek@loop} definert, mit dem eine Namensliste der
+% Buchstaben durchlaufen wird.
+% \begin{macrocode}
+\newcommand*\tud@font@greek@loop[1]{%
+ \@for\@tempa:={%
+ Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega%
+ }\do{#1{\@tempa}}%
+}
% \end{macrocode}
-% Zuerst die Rückfallebene für den Fall, dass keine Schriften im \CD verendet
-% werden.
+% \end{macro}^^A \tud@font@greek@loop
+% \begin{macro}{\tud@font@greek@declare}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@Gamma}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@Delta}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@Theta}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@Lambda}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@Xi}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@Pi}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@Sigma}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@Upsilon}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@Phi}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@Psi}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@upOmega}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@upGamma}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@upDelta}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@upTheta}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@upLambda}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@upXi}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@upPi}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@upSigma}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@upUpsilon}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@upPhi}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@upPsi}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@upOmega}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@varGamma}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@varDelta}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@varTheta}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@varLambda}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@varXi}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@varPi}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@varSigma}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@varUpsilon}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@varPhi}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@varPsi}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@varOmega}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% In Anlehnung an verschiedene Pakete für Mathematikschriften werden Symbole
+% für aufrechte und kursive Majuskeln der griechischen Lettern definiert. Damit
+% auch bei diesen Buchstaben ein Umschalten für die unterschiedlichen Schriften
+% möglich ist, wird eine interne Version definiert und im Bedarfsfall der
+% dazugehörige \LaTeX-Befehl mit dieser überschrieben.
% \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}%
+\newcommand*\tud@font@greek@declare[1]{%
+ \edef\@tempb{%
+ \noexpand\DeclareMathSymbol{\csname tud@up#1\endcsname}%
+ {\noexpand\mathalpha}{operators}{\the\@tempcnta}%
+ }\@tempb%
+ \edef\@tempb{%
+ \noexpand\DeclareMathSymbol{\csname tud@var#1\endcsname}%
+ {\noexpand\mathalpha}{letters}{\the\@tempcnta}%
+ }\@tempb%
+ \csletcs{tud@#1}{tud@up#1}%
+ \advance \@tempcnta by 1%
+}
+\@tempcnta=\z@\relax
+\tud@font@greek@loop\tud@font@greek@declare
% \end{macrocode}
-% Die Option \opt{cdhead} wird ausgewertet.
+% \end{macro}^^A \tud@varOmega
+% \end{macro}^^A \tud@varPsi
+% \end{macro}^^A \tud@varPhi
+% \end{macro}^^A \tud@varUpsilon
+% \end{macro}^^A \tud@varSigma
+% \end{macro}^^A \tud@varPi
+% \end{macro}^^A \tud@varXi
+% \end{macro}^^A \tud@varLambda
+% \end{macro}^^A \tud@varTheta
+% \end{macro}^^A \tud@varDelta
+% \end{macro}^^A \tud@varGamma
+% \end{macro}^^A \tud@upOmega
+% \end{macro}^^A \tud@upPsi
+% \end{macro}^^A \tud@upPhi
+% \end{macro}^^A \tud@upUpsilon
+% \end{macro}^^A \tud@upSigma
+% \end{macro}^^A \tud@upPi
+% \end{macro}^^A \tud@upXi
+% \end{macro}^^A \tud@upLambda
+% \end{macro}^^A \tud@upTheta
+% \end{macro}^^A \tud@upDelta
+% \end{macro}^^A \tud@upGamma
+% \end{macro}^^A \tud@Omega
+% \end{macro}^^A \tud@Psi
+% \end{macro}^^A \tud@Phi
+% \end{macro}^^A \tud@Upsilon
+% \end{macro}^^A \tud@Sigma
+% \end{macro}^^A \tud@Pi
+% \end{macro}^^A \tud@Xi
+% \end{macro}^^A \tud@Lambda
+% \end{macro}^^A \tud@Theta
+% \end{macro}^^A \tud@Delta
+% \end{macro}^^A \tud@Gamma
+% \end{macro}^^A \tud@font@greek@declare
+% \begin{macro}{\tud@font@math@init}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\mv@univers}
+% \begin{macro}{\mv@universbold}
+% \begin{macro}{\mv@dinbold}
+% \changes{v2.02}{2014/06/27}{Symbole \val{symbols} werden aus Schriftart
+% \DIN verwendet}^^A
+% Für die Mathematikschriften im Fließtext werden für die lateinischen 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}
- \@tempswafalse%
- \ifcase\tud@head@font\relax% false
- \ifnum\tud@cdfont>\z@\relax% true/heavy
- \ClassWarning{\TUDClassName}{%
- It isn't possible to use `cdhead=false'\MessageBreak%
- together with `cdfont=true'%
+\newcommand*\mv@univers{}
+\newcommand*\mv@universbold{}
+\newcommand*\mv@dinbold{}
+\newcommand*\tud@font@math@init{%
+ \if@tud@x@fontspec@enabled\if@tud@cdmath%
+ \ifboolexpr{bool {@tud@universmath} or bool {@tud@dinboldmath}}{%
+ \@ifpackagewith{fontspec}{no-math}{}{%
+%<*class>
+ \ClassWarningNoLine{\TUD@Class@Name}%
+%</class>
+%<*package>
+ \PackageWarningNoLine{tudscrfonts}%
+%</package>
+ {%
+ It's recommended to load package `fontspec'\MessageBreak%
+ with option `no-math', if you want to use the\MessageBreak%
+ corporate design fonts in math mode%
+ }%
}%
- \@tempswatrue%
- \fi%
- \else% true/heavy
- \@tempswatrue%
+ }{}%
+ \fi\fi%
+ \if@tud@universmath%
+ \DeclareMathVersion{univers}%
+ \DeclareMathVersion{universbold}%
+ \SetSymbolFont{operators}{univers}{OT1}{\tud@univers}{l}{n}%
+ \SetSymbolFont{operators}{universbold}{OT1}{\tud@univers}{b}{n}%
+ \SetSymbolFont{letters}{univers}{OML}{\tud@univers}{l}{sl}%
+ \SetSymbolFont{letters}{universbold}{OML}{\tud@univers}{b}{sl}%
+ \SetSymbolFont{symbols}{univers}{OMS}{\tud@univers}{l}{n}%
+ \SetSymbolFont{symbols}{universbold}{OMS}{\tud@univers}{b}{n}%
+ \SetSymbolFont{largesymbols}{univers}{OMX}{iwona}{m}{n}%
+ \SetSymbolFont{largesymbols}{universbold}{OMX}{iwona}{b}{n}%
+ \SetMathAlphabet{\mathrm}{univers}{OT1}{\tud@univers}{l}{n}%
+ \SetMathAlphabet{\mathrm}{universbold}{OT1}{\tud@univers}{b}{n}%
+ \SetMathAlphabet{\mathnormal}{univers}{OML}{\tud@univers}{l}{sl}%
+ \SetMathAlphabet{\mathnormal}{universbold}{OML}{\tud@univers}{b}{sl}%
+ \SetMathAlphabet{\mathbf}{univers}{OT1}{\tud@univers}{b}{n}%
+ \SetMathAlphabet{\mathbf}{universbold}{OT1}{\tud@univers}{eb}{n}%
+ \SetMathAlphabet{\mathsf}{univers}{OT1}{\tud@univers}{l}{n}%
+ \SetMathAlphabet{\mathsf}{universbold}{OT1}{\tud@univers}{b}{n}%
+ \SetMathAlphabet{\mathit}{univers}{OT1}{\tud@univers}{l}{sl}%
+ \SetMathAlphabet{\mathit}{universbold}{OT1}{\tud@univers}{b}{sl}%
+ \SetMathAlphabet{\mathtt}{univers}{OT1}{\tud@univers t}{l}{n}%
+ \SetMathAlphabet{\mathtt}{universbold}{OT1}{\tud@univers t}{b}{n}%
+ \SetMathAlphabet{\mathcal}{univers}{OMS}{lmsy}{m}{n}%
+ \SetMathAlphabet{\mathcal}{universbold}{OMS}{lmsy}{b}{n}%
+% \end{macrocode}
+% Das Paket \pkg{cmbright} bringt zusätzlich noch Schriftschnitte für die
+% \pkg{ams}-Pakete mit. Diese werden gegebenenfalls geladen.
+% \begin{macrocode}
+ \@ifpackageloaded{amsfonts}{%
+ \DeclareFontFamily{U}{\tud@univers a}{}%
+ \DeclareFontShape{U}{\tud@univers a}{m}{n}{<->cmbras10}{}%
+ \SetSymbolFont{AMSa}{univers}{U}{\tud@univers a}{m}{n}%
+ \SetSymbolFont{AMSa}{universbold}{U}{\tud@univers a}{m}{n}%
+ \DeclareFontFamily{U}{\tud@univers b}{}%
+ \DeclareFontShape{U}{\tud@univers b}{m}{n}{<->cmbrbs10}{}%
+ \SetSymbolFont{AMSb}{univers}{U}{\tud@univers b}{m}{n}%
+ \SetSymbolFont{AMSb}{universbold}{U}{\tud@univers b}{m}{n}%
+ \SetMathAlphabet{\mathfrak}{univers}{U}{euf}{m}{n}%
+ \SetMathAlphabet{\mathfrak}{universbold}{U}{euf}{b}{n}%
+ }{}%
\fi%
% \end{macrocode}
-% Die Schriften für den Kopf im \CD werden aktiviert.
+% Auch für die Schrift \DIN werden mathematische Glyphen bereitgestellt. Diese
+% wurden aus dem \pkg{iwona}-Paket entnommen. Auch die verwendeten Symbole
+% stammen aus diesem Paket.
% \begin{macrocode}
- \if@tempswa% true/heavy
+ \if@tud@dinboldmath%
+ \DeclareMathVersion{dinbold}%
+ \SetSymbolFont{operators}{dinbold}{OT1}{\tud@dinbold}{b}{n}%
+ \SetSymbolFont{letters}{dinbold}{OML}{\tud@dinbold}{b}{sl}%
+ \SetSymbolFont{symbols}{dinbold}{OMS}{\tud@dinbold}{b}{n}%
+ \SetSymbolFont{largesymbols}{dinbold}{OMX}{iwona}{ebc}{n}%
+ \SetMathAlphabet{\mathrm}{dinbold}{OT1}{\tud@dinbold}{b}{n}%
+ \SetMathAlphabet{\mathnormal}{dinbold}{OML}{\tud@dinbold}{b}{sl}%
+ \SetMathAlphabet{\mathbf}{dinbold}{OT1}{\tud@dinbold}{b}{n}%
+ \SetMathAlphabet{\mathsf}{dinbold}{OT1}{\tud@dinbold}{b}{n}%
+ \SetMathAlphabet{\mathit}{dinbold}{OT1}{\tud@dinbold}{b}{sl}%
+ \SetMathAlphabet{\mathtt}{dinbold}{OT1}{\tud@univers t}{b}{n}%
+ \SetMathAlphabet{\mathcal}{dinbold}{OMS}{lmsy}{b}{n}%
+ \fi%
% \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.
+% Wird das Paket \pkg{unicode-math} verwendet, werden keine Einstellungen für
+% die Mathematikschriften vorgenommen\dots
% \begin{macrocode}
- \if@tud@fontspec%
- \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}%
- {UniversBold}{m}{n}{\tud@head@font@size}%
- \ifcase\tud@head@font\relax\or% true
- \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
- {UniversLight}{m}{n}{\tud@head@font@size}%
- \or% heavy
- \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
- {UniversRegular}{m}{n}{\tud@head@font@size}%
- \fi%
+ \@ifpackageloaded{unicode-math}{%
+ \let\tud@font@math@set\relax%
+ \bool@set@lock{@tud@cdmath}{false}%
+ }{%
% \end{macrocode}
-% Die klassische Auswahl mittels NFSS-Schriftname und \cs{mddefault}.
+% Für die griechischen Buchstaben wird geprüft, ob durch ein Paket diese auf
+% die kursive Variante gesetzt wurden. Ist dies der Fall, wird der Standardwert
+% für die Option \opt{slantedgreek} auf \val{true} gesetzt. Anschließend
+% erfolgt die \emph{Intialisierung} der griechischen Großbuchstaben mit dem
+% Befehl \cs{tud@font@greek@init}.
% \begin{macrocode}
+ \let\@tempb\relax%
+ \let\@tempc\relax%
+ \DeclareMathSymbol{\@tempb}{\mathalpha}{letters}{0}%
+ \DeclareMathSymbol{\@tempc}{\mathord}{letters}{0}%
+ \@tempswafalse%
+ \ifnum\Gamma=\@tempb\relax\@tempswatrue\fi%
+ \ifnum\Gamma=\@tempc\relax\@tempswatrue\fi%
+ \if@tempswa%
+ \bool@std@lock{@tud@slantedgreek}{true}%
+ \fi%
+ \tud@font@greek@loop\tud@font@greek@init%
+% \end{macrocode}
+% Zum Schluss werden abhängig von der gewählten Einstellung für die Schriftart
+% der Option \opt{cdfont} die benötigten Mathematikversionen geladen.
+% \begin{macrocode}
+ \tud@font@math@set%
+ }%
+% \end{macrocode}
+% Daran anschließend werden die \DIN-Schriften in einer Box verwendet, um das
+% Laden der Schriftdefinitionen am Dokumentbeginn zu forcieren.
+% \begin{macrocode}
+ \sbox\z@{\tud@dinbn$ $}%
+% \end{macrocode}
+% Zuletzt wird der Befehl für die Initialisierung der Mathematikschriften
+% undefiniert gesetzt.
+% \begin{macrocode}
+ \undef\tud@font@math@init%
+}
+% \end{macrocode}
+% \end{macro}^^A \mv@dinbold
+% \end{macro}^^A \mv@universbold
+% \end{macro}^^A \mv@univers
+% \end{macro}^^A \tud@font@math@init
+% \begin{macro}{\tud@font@greek@init}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\upDelta}
+% \begin{macro}{\upGamma}
+% \begin{macro}{\upLambda}
+% \begin{macro}{\upOmega}
+% \begin{macro}{\upPhi}
+% \begin{macro}{\upPi}
+% \begin{macro}{\upPsi}
+% \begin{macro}{\upSigma}
+% \begin{macro}{\upTheta}
+% \begin{macro}{\upUpsilon}
+% \begin{macro}{\upXi}
+% \begin{macro}{\varDelta}
+% \begin{macro}{\varGamma}
+% \begin{macro}{\varLambda}
+% \begin{macro}{\varOmega}
+% \begin{macro}{\varPhi}
+% \begin{macro}{\varPi}
+% \begin{macro}{\varPsi}
+% \begin{macro}{\varSigma}
+% \begin{macro}{\varTheta}
+% \begin{macro}{\varUpsilon}
+% \begin{macro}{\varXi}
+% Dieses Makro sorgt dafür, dass neben den normalen Makros für die griechischen
+% Majuskeln die zusätzlichen Befehle für das explizite Auswählen aufrechter und
+% kursiver Buchstaben.
+% \begin{macrocode}
+\newcommand*\tud@font@greek@init[1]{%
+ \ifcsundef{up#1}{%
+ \if@tempswa%
+ \csletcs{up#1}{tud@up#1}%
\else%
- \if@tud@univers%
- \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}%
- {\tud@univers}{b}{n}{\tud@head@font@size}%
- \ifcase\tud@head@font\relax\or% true
- \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
- {\tud@univers}{l}{n}{\tud@head@font@size}%
- \or% heavy
- \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
- {\tud@univers}{m}{n}{\tud@head@font@size}%
+ \csletcs{up#1}{#1}%
+ \fi%
+ }{}%
+ \ifcsundef{var#1}{%
+ \if@tempswa%
+ \csletcs{var#1}{#1}%
+ \else%
+ \csletcs{var#1}{tud@var#1}%
+ \fi%
+ }{}%
+}
+% \end{macrocode}
+% \end{macro}^^A \varXi
+% \end{macro}^^A \varUpsilon
+% \end{macro}^^A \varTheta
+% \end{macro}^^A \varSigma
+% \end{macro}^^A \varPsi
+% \end{macro}^^A \varPi
+% \end{macro}^^A \varPhi
+% \end{macro}^^A \varOmega
+% \end{macro}^^A \varLambda
+% \end{macro}^^A \varGamma
+% \end{macro}^^A \varDelta
+% \end{macro}^^A \upXi
+% \end{macro}^^A \upUpsilon
+% \end{macro}^^A \upTheta
+% \end{macro}^^A \upSigma
+% \end{macro}^^A \upPsi
+% \end{macro}^^A \upPi
+% \end{macro}^^A \upPhi
+% \end{macro}^^A \upOmega
+% \end{macro}^^A \upLambda
+% \end{macro}^^A \upGamma
+% \end{macro}^^A \upDelta
+% \end{macro}^^A \tud@font@greek@init
+% \begin{macro}{\tud@font@math@set}
+% Mit diesem Befehl werden die Einstellungen für den Mathematiksatz übernommen.
+% Die Option \opt{cdmath} wird ausgewertet, 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 respektive wiederhergestellt.
+% \begin{macrocode}
+\newcommand*\tud@font@math@set{%
+% \end{macrocode}
+% Wurde per Option die Verwendung der Mathematikschriften im \CD aktiviert,
+% wird für den Fall, dass die Schriften des \CDs nicht installiert sind, eine
+% Warnung erzeugt.
+% \begin{macrocode}
+ \if@atdocument%
+ \ifnum\tud@cdfont@num>\z@\relax% true/heavy
+ \if@tud@cdmath%
+ \if@tud@universmath\else%
+%<*class>
+ \ClassWarning{\TUD@Class@Name}%
+%</class>
+%<*package>
+ \PackageWarning{tudscrfonts}%
+%</package>
+ {`Univers' math fonts not found}%
+ \fi%
+ \if@tud@dinboldmath\else%
+%<*class>
+ \ClassWarning{\TUD@Class@Name}%
+%</class>
+%<*package>
+ \PackageWarning{tudscrfonts}%
+%</package>
+ {`DIN Bold' math fonts not found}%
\fi%
\fi%
\fi%
\fi%
+ \if@tud@universmath%
+ \if@tud@cdmath%
+ \tud@cmd@store{mv@normal}%
+ \tud@cmd@store{mv@bold}%
+ \let\mv@normal\mv@univers%
+ \let\mv@bold\mv@universbold%
+ \tud@font@greek@loop\tud@font@greek@set%
+ \else%
+ \tud@cmd@restore{mv@normal}%
+ \tud@cmd@restore{mv@bold}%
+ \tud@font@greek@loop\tud@font@greek@reset%
+ \fi%
+ \fi%
+ \if@tud@slantedgreek%
+ \tud@font@greek@loop\tud@font@greek@slanted%
+ \else%
+ \tud@font@greek@loop\tud@font@greek@upright%
+ \fi%
+ \mathversion{normal}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@font@math@set
+% \begin{macro}{\tud@font@greek@set}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@font@greek@reset}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% Mit diesen beiden Befehlen kann innerhalb des Dokumentes problemlos zwischen
+% griechischen Buchstaben für die CD-Schriften und den normalen gewechselt
+% werden.
+% \begin{macrocode}
+\newcommand*\tud@font@greek@set[1]{%
+ \tud@cmd@store{#1}%
+ \tud@cmd@store{up#1}%
+ \tud@cmd@store{var#1}%
+ \csletcs{#1}{tud@#1}%
+ \csletcs{up#1}{tud@up#1}%
+ \csletcs{var#1}{tud@var#1}%
+}
+\newcommand*\tud@font@greek@reset[1]{%
+ \tud@cmd@restore{#1}%
+ \tud@cmd@restore{up#1}%
+ \tud@cmd@restore{var#1}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@font@greek@reset
+% \end{macro}^^A \tud@font@greek@set
+% \begin{macro}{\tud@font@greek@upright}
+% \begin{macro}{\tud@font@greek@slanted}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% Mit den beiden Befehlen kann die Definition der griechischen Buchstaben
+% entweder auf aufrecht bzw. kursiv gesetzt werden.
+% \begin{macrocode}
+\newcommand*\tud@font@greek@upright[1]{\csletcs{#1}{up#1}}
+\newcommand*\tud@font@greek@slanted[1]{\csletcs{#1}{var#1}}
+% \end{macrocode}
+% \end{macro}^^A \tud@font@greek@slanted
+% \end{macro}^^A \tud@font@greek@upright
+% Samtliche Schrifteinstellungen erfolgen erst am Ende der Präambel, um etwaige
+% Einstellungen irgendwelcher Schriftpakete beachten zu können. Dabei erfolgt
+% das Setzen der Mathematikschriften durch \cs{AtBeginDocument} innerhalb von
+% \cs{AtEndPreamble} am Ende \emph{aller} \cs{AtBeginDocument}.
+% \begin{macrocode}
+%<class>\AtEndPreamble%
+%<package>\AtBeginDocument%
+{%
+% \end{macrocode}
+% Falls \pkg{mweights} geladen wurde, werden im Bedarfsfall die vom Paket
+% erwarteten Makros für die Schriftschnitte der einzelnen Schriftfamilien
+% definiert. Beim Aufruf von \cs{tud@font@set} werden diese anschließend
+% gesichert.
+% \begin{macrocode}
+ \if@tud@x@mweights@enabled%
+ \ifundef{\bfseries@rm}{\edef\bfseries@rm{\bfdefault}}{}%
+ \ifundef{\bfseries@sf}{\edef\bfseries@sf{\bfdefault}}{}%
+ \ifundef{\bfseries@tt}{\edef\bfseries@tt{\bfdefault}}{}%
+ \ifundef{\mdseries@rm}{\edef\mdseries@rm{\mddefault}}{}%
+ \ifundef{\mdseries@sf}{\edef\mdseries@sf{\mddefault}}{}%
+ \ifundef{\mdseries@tt}{\edef\mdseries@tt{\mddefault}}{}%
+ \fi%
+ \tud@font@check%
+% \end{macrocode}
+% Damit \pkg{tudscrfonts} reibungslos mit den nachfolgenden Definitionen
+% funktioniert, wird im Bedarfsfall der Befehl \cs{sectfont} vorgehalten.
+% \begin{macrocode}
+%<*package>
+ \ifdef{\sectfont}{}{\let\sectfont\relax}%
+%</package>
+% \end{macrocode}
+% Damit die Schrift im Dokument später noch umgestellt werden kann, werden
+% sämtliche Einstellungen erst am Ende der Präambel gesichert. Deshalb wird
+% der dafür verantwortliche Befehl \cs{tud@font@set} 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.
+% \begin{macrocode}
+ \tud@font@set%
+% \end{macrocode}
+% Nachdem auf die Schriften geprüft wurde, werden noch die Schriftschalter und
+% die dazugehörigen Befehle definiert. Außerdem wird eine Warnung ausgegeben,
+% sobald mindestens eine der notwendigen OpenType-Schriften fehlt.
+% \begin{macrocode}
+ \tud@font@init%
+% \end{macrocode}
+% Die Einstellungen für den Mathematiksatz erfolgen erst zu Dokumentbeginn, um
+% insbesondere auf Einstellungen von \pkg{fontspec} reagieren zu können. Da es
+% so gut wie keine freien OpenType"=Schriften für den mathmatischen Formelsatz
+% gibt, werden \emph{immer} die PostScript"=Schriften verwendet, falls diese
+% installiert sind.
+% \begin{macrocode}
+%<class> \AtBeginDocument{\tud@font@math@init}%
+%<package> \tud@font@math@init%
}
% \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
+% \subsection{Anpassungen für die Klasse \cls{beamer}}
+%
+% Die \cls{beamer}-Klasse lädt standardmäßig serifenlose Mathematikschriften.
+% Dies soll verhindert werden, damit die Auswahl über die Option \opt{cdmath}
+% erfolgen kann.
+% \begin{macrocode}
+%<*package>
+\AfterClass*{beamer}{\usefonttheme[onlymath]{serif}}
+%</package>
+% \end{macrocode}
+%
+% \subsection{Anpassungen für das Paket \pkg{siunitx}}
+%
+% \begin{macro}{\lseries}
+% Das Paket \pkg{siunitx} nutzt den Befehl \cs{lseries} für den Fall, dass für
+% den Fließtext eine Schrift die Serie \val{l} verwendet. Dem wird hier
+% Rechnung getragen.
+% \begin{macrocode}
+\AfterPackage*{siunitx}{%
+ \providecommand*\lseries{\fontseries{l}\selectfont}%
+}
+% \end{macrocode}
+% \end{macro}^^A \lseries
+%
+% \subsection{Schrifteinstellungen für Überschriften}
%
% \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.
+% Der Befehl \cs{ifdin} prüft auf die Verwendung von \DIN. 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 Inhaltsverzeichnis 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%
+ \ifx\f@family\tud@dinbold%
\expandafter\@firstoftwo%
\else%
\expandafter\@secondoftwo%
@@ -1782,34 +1761,27 @@
}
% \end{macrocode}
% \end{macro}^^A \ifdin
-%
-% \subsection{Bedingte Majuskeln für Überschriften}
-%
-% Überschriften sollen bloß in Großbuchstaben gesetzt werden, wenn auch
-% tatsächlich die Schrift DIN~Bold verwendet wird.
-% \begin{macro}{\tud@makeuppercase}
-% Der Befehl führt \cs{MakeTextUppercase}\marg{Text} deshalb nur aus, wenn die
-% richtige Schriftfamilie verwendet wird.
-% \begin{macrocode}
-\newcommand*\tud@makeuppercase[1]{%
- \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}%
-% \end{macrocode}
-% Aufgrund eines Fehlers im \LaTeX-Kernels liegt die Grundlinie für die beiden
-% Gliederungsebenen \cs{section} und \cs{subsection} zu hoch. Mit dem Einfügen
-% des vertikalen Freiraums für die Umlaute wird diese automatisch nach unten
-% verschoben. Allerdings ist das ein ziemlich übler Hack.
-% \begin{macrocode}
- \protect\vphantom{\"A\"O\"U}%
-% \addtokomafont{section}{\strut\ignorespaces}%
+% \begin{macro}{\tud@sec@fontface}
+% \changes{v2.05}{2016/04/04}{Optionales Argument für \pkg{tudscrcomp}}^^A
+% Mit \cs{tud@sec@fontface} wird die Schriftart für Überschriften im
+% Layout des \CDs definiert. Normalerweise wird hierfür \DIN verwendet, was
+% allerdings per Option auch deaktiviert werden kann.
+% \begin{macrocode}
+\newcommand*\tud@sec@fontface[1][]{%
+ \if@tud@cdfont@din%
+ \tud@dinbn\tud@raggedright%
+ \else%
+ \sectfont#1%
+ \fi%
}
% \end{macrocode}
-% \end{macro}^^A \tud@makeuppercase
+% \end{macro}^^A \tud@sec@fontface
%
-% \subsection{Anpassungen für das Paket \pkg{ragged2e}}
+% \subsection{Ausrichtung von Überschriften und 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
+% Die Überschriften in \DIN sollen laut \CD linksbündig und nie mit aktiver
% 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
@@ -1828,843 +1800,36 @@
\renewcommand*\tud@RaggedRight{\RaggedRight}%
}
% \end{macrocode}
-% \end{macro}^^A \tud@ragged2e
+% \end{macro}^^A \tud@RaggedRight
% \end{macro}^^A \tud@raggedright
%
-% \subsection{Anpassungen für das Paket \pkg{siunitx}}
+% \subsection{Bedingte Majuskeln für Überschriften}
%
-% \begin{macro}{\lseries}
-% Das Paket \pkg{siunitx} nutzt den Befehl \cs{lseries} für den Fall, dass für
-% den Fließtext eine Schrift die Serie \val{l} verwendet. Dem wird hier
-% Rechnung getragen.
+% Für Überschriften in Majuskeln\footnote{Großbuchstaben} wird der Befehl
+% \cs{MakeTextUppercase}, was den internen \LaTeX-Befehl \cs{MakeUppercase}
+% verbessert, aus dem Paket \pkg{textcase} genutzt.
% \begin{macrocode}
-\AfterPackage*{siunitx}{%
- \providecommand*\lseries{\fontseries{l}\selectfont}
-}
-% \end{macrocode}
-% \end{macro}^^A \lseries
-%
-% \iffalse
-%</(class|package)&body>
-%</!fontsizes>
-% \fi
-%
-% \Finale
-%
-\endinput
-%
-% \iffalse
-%<*fontsizes>
-% \fi
-%
-% \subsection{Erzeugen von Schriftgrößendateien}
-%
-% Ab der \TUDScript-Version~v2.04 können sowohl eigene Schriftgrößendateien
-% erzeugt werden als auch zusätzlich ein~-- aus \KOMAScript{} abgewandelter~--
-% Befehl zur automatischen Erzeugung dieser Dateien genutzt werden. Im Laufe
-% der Weiterentwicklung von \TUDScript hat sich jedoch gezeigt, dass dies
-% spätestens mit \KOMAScript~v3.17 nicht notwendig ist. Deshalb wird auf die
-% Verwendung dieser Möglichkeiten vorerst verzichtet. Die Schriftgrößendateien
-% und das Paket \pkg{scrfontsizes} werden momentan nicht generiert. Dennoch
-% bleibt der Quelltext bis auf weiteres hier bestehen.
-%
-% \iffalse
-%<*10pt|11pt|12pt>
-% \fi
-%
-% Erst ein bisschen Geplänkel.
-% \begin{macrocode}
-\ProvidesFile{%
-%<10pt> tudscrsize10pt.clo%
-%<11pt> tudscrsize11pt.clo%
-%<12pt> tudscrsize12pt.clo%
-}[%
-%!TUDVersion
- font size class option
-%<10pt> (10pt)%
-%<11pt> (11pt)%
-%<12pt> (12pt)%
-]
-% \end{macrocode}
-% Und jetzt die Schriftgrößendefinition.
-% \begin{macrocode}
-\def\normalsize{%
-%<*10pt>
- \@setfontsize\normalsize{10}{12.5\p@}%
- \abovedisplayskip 10\p@ \@plus2.5\p@ \@minus5\p@
- \abovedisplayshortskip \z@ \@plus3\p@
- \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
-%</10pt>
-%<*11pt>
- \@setfontsize\normalsize{11}{13.75\p@}%
- \abovedisplayskip 11\p@ \@plus2.75\p@ \@minus5.5\p@
- \abovedisplayshortskip \z@ \@plus3.3\p@
- \belowdisplayshortskip 6.6\p@ \@plus3.3\p@ \@minus3.3\p@
-%</11pt>
-%<*12pt>
- \@setfontsize\normalsize{12}{15\p@}%
- \abovedisplayskip 12\p@ \@plus3\p@ \@minus6\p@
- \abovedisplayshortskip \z@ \@plus3.6\p@
- \belowdisplayshortskip 7.2\p@ \@plus3.6\p@ \@minus3.6\p@
-%</12pt>
- \belowdisplayskip\abovedisplayskip
- \let\@listi\@listI
-}
-\def\small{%
-%<*10pt>
- \@setfontsize\small{9}{11.25\p@}%
- \abovedisplayskip 9\p@ \@plus2.25\p@ \@minus4.5\p@
- \abovedisplayshortskip \z@ \@plus2.7\p@
- \belowdisplayshortskip 5.4\p@ \@plus2.7\p@ \@minus2.7\p@
-%</10pt>
-%<*11pt>
- \@setfontsize\small{9.9}{12.375\p@}%
- \abovedisplayskip 9.9\p@ \@plus2.475\p@ \@minus4.95\p@
- \abovedisplayshortskip \z@ \@plus2.97\p@
- \belowdisplayshortskip 5.94\p@ \@plus2.97\p@ \@minus2.97\p@
-%</11pt>
-%<*12pt>
- \@setfontsize\small{10.8}{13.5\p@}%
- \abovedisplayskip 10.8\p@ \@plus2.7\p@ \@minus5.4\p@
- \abovedisplayshortskip \z@ \@plus3.24\p@
- \belowdisplayshortskip 6.48\p@ \@plus3.24\p@ \@minus3.24\p@
-%</12pt>
- \def\@listi{%
- \leftmargin\leftmargini
-%<*10pt>
- \topsep 6\p@ \@plus2\p@ \@minus3\p@
- \parsep 3\p@ \@plus1.5\p@ \@minus\p@
-%</10pt>
-%<*11pt>
- \topsep 6.6\p@ \@plus2.2\p@ \@minus3.3\p@
- \parsep 3.3\p@ \@plus1.65\p@ \@minus1.1\p@
-%</11pt>
-%<*12pt>
- \topsep 7.2\p@ \@plus2.4\p@ \@minus3.6\p@
- \parsep 3.6\p@ \@plus1.8\p@ \@minus1.2\p@
-%</12pt>
- \itemsep\parsep
- }%
- \belowdisplayskip\abovedisplayskip
-}
-\def\footnotesize{%
-%<*10pt>
- \@setfontsize\footnotesize{8}{10\p@}%
- \abovedisplayskip 8\p@ \@plus2\p@ \@minus4\p@
- \abovedisplayshortskip \z@ \@plus2.4\p@
- \belowdisplayshortskip 4.8\p@ \@plus2.4\p@ \@minus2.4\p@
-%</10pt>
-%<*11pt>
- \@setfontsize\footnotesize{8.8}{11\p@}%
- \abovedisplayskip 8.8\p@ \@plus2.2\p@ \@minus4.4\p@
- \abovedisplayshortskip \z@ \@plus2.64\p@
- \belowdisplayshortskip 5.28\p@ \@plus2.64\p@ \@minus2.64\p@
-%</11pt>
-%<*12pt>
- \@setfontsize\footnotesize{9.6}{12\p@}%
- \abovedisplayskip 9.6\p@ \@plus2.4\p@ \@minus4.8\p@
- \abovedisplayshortskip \z@ \@plus2.88\p@
- \belowdisplayshortskip 5.76\p@ \@plus2.88\p@ \@minus2.88\p@
-%</12pt>
- \def\@listi{%
- \leftmargin\leftmargini
-%<*10pt>
- \topsep 4.5\p@ \@plus1.5\p@ \@minus2.25\p@
- \parsep 2.25\p@ \@plus1.125\p@ \@minus\p@
-%</10pt>
-%<*11pt>
- \topsep 4.95\p@ \@plus1.65\p@ \@minus2.475\p@
- \parsep 2.475\p@ \@plus1.2375\p@ \@minus\p@
-%</11pt>
-%<*12pt>
- \topsep 5.4\p@ \@plus1.8\p@ \@minus2.7\p@
- \parsep 2.7\p@ \@plus1.35\p@ \@minus\p@
-%</12pt>
- \itemsep\parsep
- }%
- \belowdisplayskip\abovedisplayskip
-}
-%<*10pt>
-\def\scriptsize{\@setfontsize\scriptsize{6.5}{8.125\p@}}
-\def\tiny{\@setfontsize\tiny{5}{6.25\p@}}
-\def\large{\@setfontsize\large{11}{13.75\p@}}
-\def\Large{\@setfontsize\Large{13}{16.25\p@}}
-\def\LARGE{\@setfontsize\LARGE{16}{20\p@}}
-\def\huge{\@setfontsize\huge{19}{23.75\p@}}
-\def\Huge{\@setfontsize\Huge{22}{27.5\p@}}
-%</10pt>
-%<*11pt>
-\def\scriptsize{\@setfontsize\scriptsize{7.15}{8.9375\p@}}
-\def\tiny{\@setfontsize\tiny{5.5}{6.875\p@}}
-\def\large{\@setfontsize\large{12.1}{15.125\p@}}
-\def\Large{\@setfontsize\Large{14.3}{17.875\p@}}
-\def\LARGE{\@setfontsize\LARGE{17.6}{22\p@}}
-\def\huge{\@setfontsize\huge{20.9}{26.125\p@}}
-\def\Huge{\@setfontsize\Huge{24.2}{30.25\p@}}
-%</11pt>
-%<*12pt>
-\def\scriptsize{\@setfontsize\scriptsize{7.8}{9.75\p@}}
-\def\tiny{\@setfontsize\tiny{6}{7.5\p@}}
-\def\large{\@setfontsize\large{13.2}{16.5\p@}}
-\def\Large{\@setfontsize\Large{15.6}{19.5\p@}}
-\def\LARGE{\@setfontsize\LARGE{19.2}{24\p@}}
-\def\huge{\@setfontsize\huge{22.8}{28.5\p@}}
-\def\Huge{\@setfontsize\Huge{26.4}{33\p@}}
-%</12pt>
-\normalsize
-%<*10pt>
-\setlength{\footnotesep}{7\p@}
-\setlength{\skip\footins}{9\p@ \@plus4\p@ \@minus2\p@}
-\setlength{\floatsep}{12.5\p@ \@plus2.5\p@ \@minus2.5\p@}
-\setlength{\textfloatsep}{20\p@ \@plus2.5\p@ \@minus5\p@}
-%</10pt>
-%<*11pt>
-\setlength{\footnotesep}{7.7\p@}
-\setlength{\skip\footins}{9.9\p@ \@plus4.4\p@ \@minus2.2\p@}
-\setlength{\floatsep}{13.75\p@ \@plus2.75\p@ \@minus2.75\p@}
-\setlength{\textfloatsep}{22\p@ \@plus2.75\p@ \@minus5.5\p@}
-%</11pt>
-%<*12pt>
-\setlength{\footnotesep}{8.4\p@}
-\setlength{\skip\footins}{10.8\p@ \@plus4.8\p@ \@minus2.4\p@}
-\setlength{\floatsep}{15\p@ \@plus3\p@ \@minus3\p@}
-\setlength{\textfloatsep}{24\p@ \@plus3\p@ \@minus6\p@}
-%</12pt>
-\intextsep\floatsep
-\dblfloatsep\floatsep
-\dbltextfloatsep\textfloatsep
-\setlength{\@fptop}{\z@ \@plus1fil}
-%<10pt>\setlength{\@fpsep}{7.5\p@ \@plus2fil}
-%<11pt>\setlength{\@fpsep}{8.25\p@ \@plus2fil}
-%<12pt>\setlength{\@fpsep}{9\p@ \@plus2fil}
-\@fpbot\@fptop
-\@dblfptop\@fptop
-\@dblfpsep\@fpsep
-\@dblfpbot\@dblfptop
-%<10pt>\setlength{\partopsep}{2.5\p@ \@plus1.25\p@ \@minus1.25\p@}
-%<11pt>\setlength{\partopsep}{2.75\p@ \@plus1.375\p@ \@minus1.375\p@}
-%<12pt>\setlength{\partopsep}{3\p@ \@plus1.5\p@ \@minus1.5\p@}
-\def\@listi{%
- \leftmargin\leftmargini
-%<*10pt>
- \topsep 8\p@ \@plus2\p@ \@minus4\p@
- \parsep 4\p@ \@plus2\p@ \@minus\p@
-%</10pt>
-%<*11pt>
- \topsep 8.8\p@ \@plus2.2\p@ \@minus4.4\p@
- \parsep 4.4\p@ \@plus2.2\p@ \@minus1.1\p@
-%</11pt>
-%<*12pt>
- \topsep 9.6\p@ \@plus2.4\p@ \@minus4.8\p@
- \parsep 4.8\p@ \@plus2.4\p@ \@minus1.2\p@
-%</12pt>
- \itemsep\parsep
-}
-\let\@listI\@listi
-\def\@listii{%
- \leftmargin\leftmarginii
- \labelwidth\leftmarginii
- \advance\labelwidth-\labelsep
-%<*10pt>
- \topsep 4\p@ \@plus2\p@ \@minus\p@
- \parsep 2\p@ \@plus\p@ \@minus\p@
-%</10pt>
-%<*11pt>
- \topsep 4.4\p@ \@plus2.2\p@ \@minus1.1\p@
- \parsep 2.2\p@ \@plus1.1\p@ \@minus1.1\p@
-%</11pt>
-%<*12pt>
- \topsep 4.8\p@ \@plus2.4\p@ \@minus1.2\p@
- \parsep 2.4\p@ \@plus1.2\p@ \@minus1.2\p@
-%</12pt>
- \itemsep\parsep
-}
-\def\@listiii{%
- \leftmargin\leftmarginiii
- \labelwidth\leftmarginiii
- \advance\labelwidth-\labelsep
-%<*10pt>
- \topsep 2\p@ \@plus\p@ \@minus\p@
-%</10pt>
-%<*11pt>
- \topsep 2.2\p@ \@plus1.1\p@ \@minus1.1\p@
-%</11pt>
-%<*12pt>
- \topsep 2.4\p@ \@plus1.2\p@ \@minus1.2\p@
-%</12pt>
- \parsep\z@
- \partopsep \z@ \@minus\p@
- \itemsep\topsep
-}
-\def\@listiv{%
- \leftmargin\leftmarginiv
- \labelwidth\leftmarginiv
- \advance\labelwidth-\labelsep
-}
-\def\@listv{%
- \leftmargin\leftmarginv
- \labelwidth\leftmarginv
- \advance\labelwidth-\labelsep
-}
-\def\@listvi{%
- \leftmargin\leftmarginvi
- \labelwidth\leftmarginvi
- \advance\labelwidth-\labelsep
-}
-%<*10pt>
-\setlength{\smallskipamount}{3.125\p@ \@plus1.25\p@ \@minus1.25\p@}
-\setlength{\medskipamount}{6.25\p@ \@plus2.5\p@ \@minus2.5\p@}
-\setlength{\bigskipamount}{12.5\p@ \@plus5\p@ \@minus5\p@}
-%</10pt>
-%<*11pt>
-\setlength{\smallskipamount}{3.4375\p@ \@plus1.375\p@ \@minus1.375\p@}
-\setlength{\medskipamount}{6.875\p@ \@plus2.75\p@ \@minus2.75\p@}
-\setlength{\bigskipamount}{13.75\p@ \@plus5.5\p@ \@minus5.5\p@}
-%</11pt>
-%<*12pt>
-\setlength{\smallskipamount}{3.75\p@ \@plus1.5\p@ \@minus1.5\p@}
-\setlength{\medskipamount}{7.5\p@ \@plus3\p@ \@minus3\p@}
-\setlength{\bigskipamount}{15\p@ \@plus6\p@ \@minus6\p@}
-%</12pt>
-\providecommand*\TUD@AfterKOMAClass[1]{%
- \ifcsname KOMAClassName\endcsname
- \if@atdocument%
- #1
- \else%
- \AfterClass+{\KOMAClassName}{#1}%
- \fi%
- \fi%
-}
-\TUD@AfterKOMAClass{%
-%<10pt> \setlength{\abovecaptionskip}{10\p@}
-%<11pt> \setlength{\abovecaptionskip}{11\p@}
-%<12pt> \setlength{\abovecaptionskip}{12\p@}
- \setlength{\belowcaptionskip}{\z@}
-}
-\@ifundefined{@list@extra}{}{%
- \expandafter\ifnum\scr@v@is@ge{3.17}\par@updaterelative\fi%
- \l@addto@macro{\@listi}{\@list@extra}%
- \let\@listI=\@listi
- \l@addto@macro{\@listii}{\@list@extra}%
- \l@addto@macro{\@listiii}{\@list@extra}%
- \l@addto@macro{\footnotesize}{\protect\add@extra@listi{ftns}}%
- \l@addto@macro{\small}{\protect\add@extra@listi{sml}}%
-}
-\@listi
+\RequirePackage{textcase}[2004/10/07]
% \end{macrocode}
-%
-% \iffalse
-%</10pt|11pt|12pt>
-%<*package&body>
-% \fi
-%
-% Es wird der Inhalt des Pakets \pkg{tudscrfontsizes} definiert, welches auf
-% \pkg{scrfontsizes} aufbaut.
-% \begin{macro}{\changefontsizes}
-% \begin{macro}{\tud@changefontsizes}
-% Das Pendant zum \KOMAScript-Makro \cs{generate@fontfile} ist der hier
-% definierte Befehl \cs{tud@generate@fontfile}. Mit diesem können eigenständige
-% Schriftgrößendateien erstellt werden.
-% \begin{macrocode}
-\RequirePackage{scrfontsizes}[2015/02/07]
-% \end{macrocode}
-% Hiermit kann die Schriftgröße im Dokument geändert werden, falls keine
-% passende Schriftgrößendatei vorhanden ist. Der Befehl lehnt sich stark am
-% \KOMAScript-Befehl \cs{changefontsizes} an, ändert allerdings einige Längen
-% marginal.
-% \begin{macrocode}
-\newcommand*{\tud@changefontsizes}[2][\dimexpr5\@tempdima/4\relax]{%
-%<*class>
- \ClassInfo{\TUDClassName}%
-%</class>
-%<*package>
- \PackageInfo{tudscrfonts}%
-%</package>
- {Calculating font sizes for basic size `#2'}%
- \@defaultunits\@tempdima#2pt\relax\@nnil%
- \setlength{\@tempdimc}{\@tempdima}%
- \addtolength{\@tempdimc}{-10\p@}%
- \edef\@ptsize{\strip@pt\@tempdimc}%
- \setlength{\@tempdimb}{#1}%
- \setlength{\@tempdimc}{\dimexpr (100\@tempdimb / \@tempdima * \p@)}%
- \edef\@tempa{\strip@pt\@tempdimc}%
- \@defaultunits\@tempdimb\dimexpr\@tempa\@tempdima/100\relax pt\relax\@nnil%
- \setlength{\@tempdimc}{\@tempdima}%
- \scr@setlength{\abovedisplayskip}{\dimexpr4\@tempdimb/5\relax}%
- {\dimexpr\@tempdimb/5\relax}{\dimexpr2\@tempdimb/5\relax}%
- \scr@setlength{\abovedisplayshortskip}{\z@}%
- {\dimexpr6\@tempdimb/25\relax}{\z@}%
- \scr@setlength{\belowdisplayshortskip}{\dimexpr12\@tempdimb/25\relax}%
- {\dimexpr6\@tempdimb/25\relax}{\dimexpr6\@tempdimb/25\relax}%
- \setlength{\belowdisplayskip}{\abovedisplayskip}%
- \edef\normalsize{%
- \noexpand\@setfontsize\noexpand\normalsize%
- {\the\@tempdima}{\the\@tempdimb}%
- \abovedisplayskip \the\abovedisplayskip%
- \abovedisplayshortskip \the\abovedisplayshortskip%
- \belowdisplayskip \the\belowdisplayskip%
- \belowdisplayshortskip \the\belowdisplayshortskip%
- \let\noexpand\@listi\noexpand\@listI%
- }%
- \setlength{\@tempdima}{\dimexpr9\@tempdimc/10\relax}%
- \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}%
- \scr@setlength{\abovedisplayskip}{\dimexpr4\@tempdimb/5\relax}%
- {\dimexpr\@tempdimb/5\relax}{\dimexpr2\@tempdimb/5\relax}%
- \scr@setlength{\abovedisplayshortskip}{\z@}%
- {\dimexpr6\@tempdimb/25\relax}{\z@}%
- \scr@setlength{\belowdisplayshortskip}{\dimexpr12\@tempdimb/25\relax}%
- {\dimexpr6\@tempdimb/25\relax}{\dimexpr6\@tempdimb/25\relax}%
- \setlength{\belowdisplayskip}{\abovedisplayskip}%
- \edef\small{%
- \noexpand\@setfontsize\noexpand\small%
- {\the\@tempdima}{\the\@tempdimb}%
- \abovedisplayskip \the\abovedisplayskip%
- \abovedisplayshortskip \the\abovedisplayshortskip%
- \belowdisplayskip \the\belowdisplayskip%
- \belowdisplayshortskip \the\belowdisplayshortskip%
- \let\noexpand\@listi\noexpand\@listi@small%
- }%
- \setlength{\@tempdima}{\dimexpr4\@tempdimc/5\relax}%
- \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}%
- \scr@setlength{\abovedisplayskip}{\dimexpr4\@tempdimb/5\relax}%
- {\dimexpr\@tempdimb/5\relax}{\dimexpr2\@tempdimb/5\relax}%
- \scr@setlength{\abovedisplayshortskip}{\z@}%
- {\dimexpr6\@tempdimb/25\relax}{\z@}%
- \scr@setlength{\belowdisplayshortskip}{\dimexpr12\@tempdimb/25\relax}%
- {\dimexpr6\@tempdimb/25\relax}{\dimexpr6\@tempdimb/25\relax}%
- \setlength{\belowdisplayskip}{\abovedisplayskip}%
- \edef\footnotesize{%
- \noexpand\@setfontsize\noexpand\footnotesize%
- {\the\@tempdima}{\the\@tempdimb}%
- \abovedisplayskip \the\abovedisplayskip%
- \abovedisplayshortskip \the\abovedisplayshortskip%
- \belowdisplayskip \the\belowdisplayskip%
- \belowdisplayshortskip \the\belowdisplayshortskip%
- \let\noexpand\@listi\noexpand\@listi@footnotesize%
- }%
- \setlength{\@tempdima}{\dimexpr13\@tempdimc/20\relax}%
- \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}%
- \edef\scriptsize{%
- \noexpand\@setfontsize\noexpand\scriptsize%
- {\the\@tempdima}{\the\@tempdimb}%
- }%
- \setlength{\@tempdima}{\dimexpr\@tempdimc/2\relax}%
- \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}%
- \edef\tiny{%
- \noexpand\@setfontsize\noexpand\tiny%
- {\the\@tempdima}{\the\@tempdimb}%
- }%
- \setlength{\@tempdima}{\dimexpr11\@tempdimc/10\relax}%
- \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}%
- \edef\large{%
- \noexpand\@setfontsize\noexpand\large%
- {\the\@tempdima}{\the\@tempdimb}%
- }%
- \setlength{\@tempdima}{\dimexpr13\@tempdimc/10\relax}%
- \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}%
- \edef\Large{%
- \noexpand\@setfontsize\noexpand\Large%
- {\the\@tempdima}{\the\@tempdimb}%
- }%
- \setlength{\@tempdima}{\dimexpr16\@tempdimc/10\relax}%
- \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}%
- \edef\LARGE{%
- \noexpand\@setfontsize\noexpand\LARGE%
- {\the\@tempdima}{\the\@tempdimb}%
- }%
- \setlength{\@tempdima}{\dimexpr19\@tempdimc/10\relax}%
- \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}%
- \edef\huge{%
- \noexpand\@setfontsize\noexpand\huge%
- {\the\@tempdima}{\the\@tempdimb}%
- }%
- \setlength{\@tempdima}{\dimexpr22\@tempdimc/10\relax}%
- \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}%
- \edef\Huge{%
- \noexpand\@setfontsize\noexpand\Huge%
- {\the\@tempdima}{\the\@tempdimb}%
- }%
- \normalsize%
- \expandafter\ifnum\scr@v@is@ge{3.17}\par@updaterelative\fi%
- \setlength{\@tempdimb}{\f@baselineskip}%
- \scr@setlength{\topsep}{\dimexpr16\@tempdimb/25\relax}%
- {\dimexpr4\@tempdimb/25\relax}{\dimexpr8\@tempdimb/25\relax}%
- \scr@setlength{\parsep}{\dimexpr8\@tempdimb/25\relax}%
- {\dimexpr4\@tempdimb/25\relax}{\dimexpr2\@tempdimb/25\relax}%
- \@tempswafalse%
- \begingroup%
- \def\@list@extra{\aftergroup\@tempswatrue}%
- \csname @listi\endcsname%
- \endgroup%
- \edef\@listi{\leftmargin\leftmargini%
- \topsep \the\topsep%
- \parsep \the\parsep%
- \itemsep \parsep%
- \if@tempswa\noexpand\@list@extra\fi%
- }%
- \let\@listI\@listi%
- \scr@setlength{\topsep}{\dimexpr12\@tempdimb/25\relax}%
- {\dimexpr4\@tempdimb/25\relax}{\dimexpr6\@tempdimb/25\relax}%
- \scr@setlength{\parsep}{\dimexpr6\@tempdimb/25\relax}%
- {\dimexpr3\@tempdimb/25\relax}{\dimexpr2\@tempdimb/25\relax}%
- \@tempswafalse%
- \begingroup%
- \def\@list@extra{\aftergroup\@tempswatrue}%
- \csname @listi\endcsname%
- \endgroup%
- \edef\@listi@small{\leftmargin\leftmargini%
- \topsep \the\topsep%
- \parsep \the\parsep%
- \itemsep \parsep%
- \if@tempswa\noexpand\@list@extra\fi%
- }%
- \scr@setlength{\topsep}{\dimexpr36\@tempdimb/100\relax}%
- {\dimexpr12\@tempdimb/100\relax}{\dimexpr18\@tempdimb/100\relax}%
- \scr@setlength{\parsep}{\dimexpr18\@tempdimb/100\relax}%
- {\dimexpr9\@tempdimb/100\relax}{\dimexpr6\@tempdimb/100\relax}%
- \@tempswafalse%
- \begingroup%
- \def\@list@extra{\aftergroup\@tempswatrue}%
- \csname @listi\endcsname%
- \endgroup%
- \edef\@listi@footnotesize{\leftmargin\leftmargini%
- \topsep \the\topsep%
- \parsep \the\parsep%
- \itemsep \parsep%
- \if@tempswa\noexpand\@list@extra\fi%
- }%
- \scr@setlength{\topsep}{\dimexpr8\@tempdimb/25\relax}%
- {\dimexpr4\@tempdimb/25\relax}{\dimexpr2\@tempdimb/25\relax}%
- \scr@setlength{\parsep}{\dimexpr4\@tempdimb/25\relax}%
- {\dimexpr2\@tempdimb/25\relax}{\dimexpr2\@tempdimb/25\relax}%
- \@tempswafalse%
- \begingroup%
- \def\@list@extra{\aftergroup\@tempswatrue}%
- \csname @listii\endcsname%
- \endgroup%
- \edef\@listii{\leftmargin\leftmarginii%
- \labelwidth=\dimexpr \leftmargin-\labelsep%
- \topsep \the\topsep%
- \parsep \the\parsep%
- \itemsep \parsep%
- \if@tempswa\noexpand\@list@extra\fi%
- }%
- \scr@setlength{\topsep}{\dimexpr4\@tempdimb/25\relax}%
- {\dimexpr2\@tempdimb/25\relax}{\dimexpr2\@tempdimb/25\relax}%
- \setlength{\partopsep}{\z@ \@plus\z@ \@minus\p@}%
- \@tempswafalse%
- \begingroup%
- \def\@list@extra{\aftergroup\@tempswatrue}%
- \csname @listiii\endcsname%
- \endgroup%
- \edef\@listiii{\leftmargin\leftmarginiii%
- \labelwidth=\dimexpr \leftmargin-\labelsep%
- \topsep \the\topsep%
- \parsep \z@%
- \partopsep \the\partopsep%
- \itemsep \topsep%
- \if@tempswa\noexpand\@list@extra\fi%
- }%
- \@tempswafalse%
- \begingroup%
- \def\@list@extra{\aftergroup\@tempswatrue}%
- \csname @listiv\endcsname%
- \endgroup%
- \edef\@listiv{\leftmargin\leftmarginiv%
- \labelwidth=\dimexpr \leftmargin-\labelsep\relax%
- \if@tempswa\noexpand\@list@extra\fi%
- }%
- \@tempswafalse%
- \begingroup%
- \def\@list@extra{\aftergroup\@tempswatrue}%
- \csname @listv\endcsname%
- \endgroup%
- \edef\@listv{\leftmargin\leftmarginv%
- \labelwidth=\dimexpr \leftmargin-\labelsep\relax%
- \if@tempswa\noexpand\@list@extra\fi%
- }%
- \@tempswafalse%
- \begingroup%
- \def\@list@extra{\aftergroup\@tempswatrue}%
- \csname @listvi\endcsname%
- \endgroup%
- \edef\@listvi{\leftmargin\leftmarginvi%
- \labelwidth=\dimexpr \leftmargin-\labelsep\relax%
- \if@tempswa\noexpand\@list@extra\fi%
- }%
- \@listi%
- \setlength{\@tempdimb}{\f@baselineskip}%
- \setlength{\footnotesep}{\dimexpr14\@tempdimb/25\relax}%
- \scr@setlength{\skip\footins}{\dimexpr18\@tempdimb/25\relax}%
- {\dimexpr8\@tempdimb/25\relax}{\dimexpr4\@tempdimb/25\relax}%
- \scr@setlength{\floatsep}{\@tempdimb}%
- {\dimexpr\@tempdimb/5\relax}{\dimexpr\@tempdimb/5\relax}%
- \scr@setlength{\textfloatsep}{\dimexpr8\@tempdimb/5\relax}%
- {\dimexpr\@tempdimb/5\relax}{\dimexpr2\@tempdimb/5\relax}%
- \setlength{\intextsep}{\floatsep}%
- \setlength{\dblfloatsep}{\floatsep}%
- \setlength{\dbltextfloatsep}{\textfloatsep}%
- \setlength{\@fptop}{\z@ \@plus 1fil}%
- \setlength{\@fpsep}{\dimexpr3\@tempdimb/5\relax \@plus 2fil}%
- \setlength{\@fpbot}{\@fptop}%
- \setlength{\@dblfptop}{\@fptop}%
- \setlength{\@dblfpsep}{\@fpsep}%
- \setlength{\@dblfpbot}{\@fptop}%
- \scr@setlength{\partopsep}{\dimexpr\@tempdimb/5\relax}%
- {\dimexpr\@tempdimb/10\relax}{\dimexpr\@tempdimb/10\relax}%
- \tud@font@skip@@set%
-}
+% \begin{macro}{\tud@makeuppercase}
+% Der Befehl führt \cs{MakeTextUppercase}\marg{Text} nur dann aus, wenn die
+% richtige Schriftfamilie~-- sprich \DIN~-- verwendet wird.
+% \begin{macrocode}
+\newcommand*\tud@makeuppercase[1]{%
+ \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}%
% \end{macrocode}
-% \ToDo{Versionsdatum einfügen}
-% \begin{macrocode}
-\@ifundefined{tud@font@skip@@set}{\RequirePackage{tudscrfonts}[2015/03/27]}{}
-\let\changefontsizes\tud@changefontsizes%
-% \end{macrocode}
-% \end{macro}^^A \tud@changefontsizes
-% \end{macro}^^A \changefontsizes
-% \begin{macro}{\generate@fontfile}
-% \begin{macro}{\tud@generate@fontfile}
-% \begin{macrocode}
-\newcommand*{\tud@generate@fontfile}[2]{%
- \def\@ind{\space\space}%
- \immediate\openout\@fontfile #1#2.clo
- \immediate\write\@fontfile{\@percentchar^^J%
- \@percentchar\space This is file `#1#2.clo', generated with^^J%
- \@percentchar\space tudscrfontsizes
- \csname ver@tudscrfontsizes.sty\endcsname,^^J%
- \@percentchar\space and bases on scrfontsize.sty by Markus Kohm.^^J%
- \@percentchar^^J%
- \string\ProvidesFile{#1#2.clo}[%
- \the\year/\ifnum\month<10 0\fi\the\month/\ifnum\day<10 0\fi\the\day%
- \space generated font size class option (#2)]}%
- \immediate\write\@fontfile{%
- \string\def\string\normalsize{\@percentchar^^J%
- \@ind\string\@setfontsize\string\normalsize{\f@size}{\f@baselineskip}%
- \@percentchar^^J%
- \@ind\string\abovedisplayskip\space \the\abovedisplayskip^^J%
- \@ind\string\abovedisplayshortskip\space \the\abovedisplayshortskip^^J%
- \@ind\string\belowdisplayshortskip\space \the\belowdisplayshortskip^^J%
- \@ind\string\belowdisplayskip\string\abovedisplayskip^^J%
- \@ind\string\let\string\@listi\string\@listI^^J%
- }%
- }%
- \begingroup\small\@listi
- \immediate\write\@fontfile{%
- \string\def\string\small{\@percentchar^^J%
- \@ind\string\@setfontsize\string\small{\f@size}{\f@baselineskip}%
- \@percentchar^^J%
- \@ind\string\abovedisplayskip\space \the\abovedisplayskip^^J%
- \@ind\string\abovedisplayshortskip\space \the\abovedisplayshortskip^^J%
- \@ind\string\belowdisplayshortskip\space \the\belowdisplayshortskip^^J%
- \@ind\string\def\string\@listi{\@percentchar^^J%
- \@ind\@ind\string\leftmargin\string\leftmargini^^J%
- \@ind\@ind\string\topsep \the\topsep^^J%
- \@ind\@ind\string\parsep \the\parsep^^J%
- \@ind\@ind\string\itemsep \string\parsep^^J%
- \@ind}\@percentchar^^J%
- \@ind\string\belowdisplayskip\string\abovedisplayskip^^J%
- }%
- }%
- \endgroup
- \begingroup\footnotesize\@listi
- \immediate\write\@fontfile{%
- \string\def\string\footnotesize{\@percentchar^^J%
- \@ind\string\@setfontsize\string\footnotesize{\f@size}{\f@baselineskip}%
- \@percentchar^^J%
- \@ind\string\abovedisplayskip\space \the\abovedisplayskip^^J%
- \@ind\string\abovedisplayshortskip\space \the\abovedisplayshortskip^^J%
- \@ind\string\belowdisplayshortskip\space \the\belowdisplayshortskip^^J%
- \@ind\string\def\string\@listi{\@percentchar^^J%
- \@ind\@ind\string\leftmargin\string\leftmargini^^J%
- \@ind\@ind\string\topsep \the\topsep^^J%
- \@ind\@ind\string\parsep \the\parsep^^J%
- \@ind\@ind\string\itemsep \string\parsep^^J%
- \@ind}\@percentchar^^J%
- \@ind\string\belowdisplayskip\string\abovedisplayskip^^J%
- }%
- }%
- \endgroup
- \begingroup\scriptsize
- \immediate\write\@fontfile{%
- \string\def\string\scriptsize{%
- \string\@setfontsize\string\scriptsize{\f@size}{\f@baselineskip}%
- }%
- }%
- \endgroup
- \begingroup\tiny
- \immediate\write\@fontfile{%
- \string\def\string\tiny{%
- \string\@setfontsize\string\tiny{\f@size}{\f@baselineskip}%
- }%
- }%
- \endgroup
- \begingroup\large
- \immediate\write\@fontfile{%
- \string\def\string\large{%
- \string\@setfontsize\string\large{\f@size}{\f@baselineskip}%
- }%
- }%
- \endgroup
- \begingroup\Large
- \immediate\write\@fontfile{%
- \string\def\string\Large{%
- \string\@setfontsize\string\Large{\f@size}{\f@baselineskip}%
- }%
- }%
- \endgroup
- \begingroup\LARGE
- \immediate\write\@fontfile{%
- \string\def\string\LARGE{%
- \string\@setfontsize\string\LARGE{\f@size}{\f@baselineskip}%
- }%
- }%
- \endgroup
- \begingroup\huge
- \immediate\write\@fontfile{%
- \string\def\string\huge{%
- \string\@setfontsize\string\huge{\f@size}{\f@baselineskip}%
- }%
- }%
- \endgroup
- \begingroup\Huge
- \immediate\write\@fontfile{%
- \string\def\string\Huge{%
- \string\@setfontsize\string\Huge{\f@size}{\f@baselineskip}%
- }%
- }%
- \endgroup
- \immediate\write\@fontfile{\string\normalsize}%
- \immediate\write\@fontfile{%
- \string\setlength{\string\footnotesep}{\the\footnotesep}^^J%
- \string\setlength{\string\skip\string\footins}{\the\skip\footins}^^J%
- \string\setlength{\string\floatsep}{\the\floatsep}^^J%
- \string\setlength{\string\textfloatsep}{\the\textfloatsep}^^J%
- \string\setlength{\string\intextsep}{\the\intextsep}^^J%
- \string\setlength{\string\dblfloatsep}{\the\dblfloatsep}^^J%
- \string\setlength{\string\dbltextfloatsep}{\the\dbltextfloatsep}^^J%
- \string\setlength{\string\@fptop}{\the\@fptop}^^J%
- \string\setlength{\string\@fpsep}{\the\@fpsep}^^J%
- \string\setlength{\string\@fpbot}{\the\@fpbot}^^J%
- \string\setlength{\string\@dblfptop}{\the\@dblfptop}^^J%
- \string\setlength{\string\@dblfpsep}{\the\@dblfpsep}^^J%
- \string\setlength{\string\@dblfpbot}{\the\@dblfpbot}^^J%
- \string\setlength{\string\partopsep}{\the\partopsep}%
- }%
- \begingroup
- \@listi
- \immediate\write\@fontfile{%
- \string\def\string\@listi{\@percentchar^^J%
- \@ind\string\leftmargin\string\leftmargini^^J%
- \@ind\string\topsep \the\topsep^^J%
- \@ind\string\parsep \the\parsep^^J%
- \@ind\string\itemsep \string\parsep^^J%
- }%
- }%
- \endgroup
- \immediate\write\@fontfile{%
- \string\let\string\@listI\string\@listi
- }%
- \begingroup
- \@listii
- \immediate\write\@fontfile{%
- \string\def\string\@listii{\@percentchar^^J%
- \@ind\string\leftmargin\string\leftmarginii^^J%
- \@ind\string\labelwidth\string\leftmarginii^^J%
- \@ind\string\advance\string\labelwidth-\string\labelsep^^J%
- \@ind\string\topsep \the\topsep^^J%
- \@ind\string\parsep \the\parsep^^J%
- \@ind\string\itemsep \string\parsep^^J%
- }%
- }%
- \endgroup
- \begingroup
- \@listiii
- \immediate\write\@fontfile{%
- \string\def\string\@listiii{\@percentchar^^J%
- \@ind\string\leftmargin\string\leftmarginiii^^J%
- \@ind\string\labelwidth\string\leftmarginiii^^J%
- \@ind\string\advance\string\labelwidth-\string\labelsep^^J%
- \@ind\string\topsep \the\topsep^^J%
- \@ind\string\parsep \the\parsep^^J%
- \@ind\string\partopsep \the\partopsep^^J%
- \@ind\string\itemsep \string\topsep^^J%
- }%
- }%
- \endgroup
- \begingroup
- \@listiv
- \immediate\write\@fontfile{%
- \string\def\string\@listiv{\@percentchar^^J%
- \@ind\string\leftmargin\string\leftmarginiv^^J%
- \@ind\string\labelwidth\string\leftmarginiv^^J%
- \@ind\string\advance\string\labelwidth-\string\labelsep^^J%
- }%
- }%
- \endgroup
- \begingroup
- \@listv
- \immediate\write\@fontfile{%
- \string\def\string\@listv{\@percentchar^^J%
- \@ind\string\leftmargin\string\leftmarginv^^J%
- \@ind\string\labelwidth\string\leftmarginv^^J%
- \@ind\string\advance\string\labelwidth-\string\labelsep^^J%
- }%
- }%
- \endgroup
- \begingroup
- \@listvi
- \immediate\write\@fontfile{%
- \string\def\string\@listvi{\@percentchar^^J%
- \@ind\string\leftmargin\string\leftmarginvi^^J%
- \@ind\string\labelwidth\string\leftmarginvi^^J%
- \@ind\string\advance\string\labelwidth-\string\labelsep^^J%
- }%
- }%
- \endgroup
- \immediate\write\@fontfile{%
- \string\setlength{\string\smallskipamount}{\the\smallskipamount}^^J%
- \string\setlength{\string\medskipamount}{\the\medskipamount}^^J%
- \string\setlength{\string\bigskipamount}{\the\bigskipamount}%
- }%
- \immediate\write\@fontfile{%
- \string\@ifundefined{TUDClassName@KOMA}{}{\@percentchar^^J%
- \@ind\string\AfterClass+{\string\TUDClassName@KOMA}{\@percentchar^^J%
- \@ind\@ind\string\setlength{\string\abovecaptionskip}%
- {\the\abovecaptionskip}^^J%
- \@ind\@ind\string\setlength{\string\belowcaptionskip}%
- {\the\belowcaptionskip}^^J%
- \@ind}\@percentchar^^J%
- }%
- }%
- \immediate\write\@fontfile{%
- \string\@ifundefined{@list@extra}{}{\@percentchar^^J%
- \@ind\string\l@addto@macro{\string\@listi}{\string\@list@extra}%
- \@percentchar^^J%
- \@ind\string\let\string\@listI=\string\@listi^^J%
- \@ind\string\l@addto@macro{\string\@listii}{\string\@list@extra}%
- \@percentchar^^J%
- \@ind\string\l@addto@macro{\string\@listiii}{\string\@list@extra}%
- \@percentchar^^J%
- \@ind\string\l@addto@macro{\string\footnotesize}{\string\protect
- \string\add@extra@listi{ftns}}\@percentchar^^J%
- \@ind\string\l@addto@macro{\string\small}{\string\protect
- \string\add@extra@listi{sml}}\@percentchar^^J%
- }^^J%
- \string\@listi^^J%
- \string\endinput^^J%
- \@percentchar^^J%
- \@percentchar\space End of file `#1#2.clo'.%
- }
- \immediate\closeout\@fontfile
+% Aufgrund eines Fehlers im \LaTeX-Kernels liegt die Grundlinie für die beiden
+% Gliederungsebenen \cs{section} und \cs{subsection} zu hoch. Mit dem Einfügen
+% des vertikalen Freiraums für die Umlaute wird diese automatisch nach unten
+% verschoben. Allerdings ist das ein ziemlich übler Hack.
+% \begin{macrocode}
+ \protect\vphantom{\"A\"O\"U}%
}
-\let\generate@fontfile\tud@generate@fontfile
% \end{macrocode}
-% \end{macro}^^A \tud@generate@fontfile
-% \end{macro}^^A \generate@fontfile
+% \end{macro}^^A \tud@makeuppercase
%
% \iffalse
-%</package&body>
-%</fontsizes>
+%</body>
% \fi
%
% \Finale