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