% \CheckSum{1297} % \iffalse meta-comment % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % % Copyright (C) Falk Hanisch , 2012-2017 % % ---------------------------------------------------------------------------- % % This work may be distributed and/or modified under the conditions of the % LaTeX Project Public License, version 1.3c of the license. The latest % version of this license is in http://www.latex-project.org/lppl.txt and % version 1.3c or later is part of all distributions of LaTeX 2005/12/01 % or later and of this work. This work has the LPPL maintenance status % "author-maintained". The current maintainer and author of this work % is Falk Hanisch. % % ---------------------------------------------------------------------------- % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz % in der Version 1.3c, verteilt und/oder verändert werden. Die aktuelle % Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und % Version 1.3c oder später ist Teil aller Verteilungen von LaTeX 2005/12/01 % oder später und dieses Werks. Dieses Werk hat den LPPL-Verwaltungs-Status % "author-maintained", wird somit allein durch den Autor verwaltet. Der % aktuelle Verwalter und Autor dieses Werkes ist Falk Hanisch. % % ---------------------------------------------------------------------------- % % \fi % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z % Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z % Digits \0\1\2\3\4\5\6\7\8\9 % Exclamation \! Double quote \" Hash (number) \# % Dollar \$ Percent \% Ampersand \& % Acute accent \' Left paren \( Right paren \) % Asterisk \* Plus \+ Comma \, % Minus \- Point \. Solidus \/ % Colon \: Semicolon \; Less than \< % Equals \= Greater than \> Question mark \? % Commercial at \@ Left bracket \[ Backslash \\ % Right bracket \] Circumflex \^ Underscore \_ % Grave accent \` Left brace \{ Vertical bar \| % Right brace \} Tilde \~} % % \iffalse %%% From File: tudscr-fonts.dtx %<*driver> \ifx\ProvidesFile\@undefined\def\ProvidesFile#1[#2]{}\fi \ProvidesFile{tudscr-fonts.dtx}[% 2017/03/27 v2.05k TUD-Script\space% % %\ProvidesPackage{tudscrfonts}[% %<*driver|package&identify> %!TUD@Version % package (corporate design fonts)% ] % %<*driver> \RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \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{bookmark} \usepackage[babel]{microtype} \CodelineIndex \RecordChanges \GetFileInfo{tudscr-fonts.dtx} \title{\file{\filename}} \author{Falk Hanisch\qquad\expandafter\mailto\expandafter{\tudscrmail}} \date{\fileversion\nobreakspace(\filedate)} \begin{document} \maketitle \tableofcontents \DocInput{\filename} \end{document} % % \fi % % \selectlanguage{ngerman} % % \changes{v2.02}{2014/06/23}{Paket \pkg{titlepage} nicht weiter unterstützt}^^A % \changes{v2.02}{2014/07/08}{\cs{FamilyKeyState} wird von Optionen genutzt}^^A % \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 % \changes{v2.04c}{2015/11/29}{Bugfix für \pkg{fontspec} bei fehlenden % Schriften}^^A % % \section{Die Hausschriften der \TnUD} % % Für das \TUDCD 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. % % \StopEventually{\PrintIndex\PrintChanges\PrintToDos} % % \iffalse %<*class&option> % \fi % % \subsection{% % Verwendung durch die \TUDScript-Klassen und das Paket \pkg{tudscrfonts}% % } % % Die Schriften des \TUDCDs werden standardmäßig durch die \TUDScript-Klassen % verwendet. Für Dokumentklassen, welche nicht zum \TUDScript-Bundle gehören, % können diese über das Paket \pkg{tudscrfonts} geladen werden. % \begin{macrocode} \PreventPackageFromLoading[% \ClassWarning{\TUD@Class@Name}{% The package `tudscrfonts' must not be used with\MessageBreak% a TUD-Script class% }% ]{tudscrfonts} % \end{macrocode} % % \iffalse % %<*package&identify> % \fi % % Sollte keine \KOMAScript-Klasse genutzt werden, wird zusätzlich das Paket % \pkg{scrextend} benötigt. % \begin{macrocode} \ifcsname KOMAClassName\endcsname\else \RequirePackage{scrextend}[2013/12/19] \fi % \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% }\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 % %<*option> % \fi % % \subsection{Auswahl des Fontformates} % % 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{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 % %<*body> % \fi % % \subsection{Prüfen der Schriftverfügbarkeit} % % Nachfolgend werden Makros definiert, mit denen geprüft werden kann, ob die % notwendigen Schriften im passenden Fontformat auch installiert sind. % % \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}{\if@tud@dinboldmath} % \changes{v2.05}{2015/12/14}{neu}^^A % Zu Beginn werden Schalter und Hilfsmakros definiert. % \begin{macrocode} \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} % \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 \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. % % 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} % 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{% \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> \ClassWarningNoLine{\TUD@Class@Name}% % %<*package> \PackageWarningNoLine{tudscrfonts}% % {% `##1' fonts for math typesetting not found\MessageBreak% Please use one of the installation scripts for the\MessageBreak% tudscr-bundle mentioned in the manual% }% \fi% \fi% }% % \end{macrocode} % Existieren die Schriften, werden die Schalter auf \val{true} gesetzt, sonst % wird eine Warnung ausgegeben, falls die Schriften eigentlich verwendet werden % sollen. % \begin{macrocode} \@tempa{OT1}{\tud@univers}{\@tud@universmathtrue}{\@tempb{Univers}}% \@tempa{OT1}{\tud@dinbold}{\@tud@dinboldmathtrue}{\@tempb{DIN Bold}}% % \end{macrocode} % 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@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{\TUD@Class@Name}% % %<*package> \PackageWarningNoLine{tudscrfonts}% % {% `##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% }% \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% % \end{macrocode} % 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}% % %<*package> \PackageWarningNoLine{tudscrfonts}% % {% `##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% }% \expandafter\@tempa\expandafter{\encodingdefault}% {\tud@univers}{\@tud@universtrue}{\@tempc{Univers}}% \expandafter\@tempa\expandafter{\encodingdefault}% {\tud@dinbold}{\@tud@dinboldtrue}{\@tempc{DIN Bold}}% \fi% \undef\tud@font@check% } % \end{macrocode} % \end{macro}^^A \tud@x@fontspec@noerror % \end{macro}^^A \tud@font@check % % \subsection{Kompatibilität der Schriften mit verschiedenen Pakete} % \subsubsection{Ausrichtung von Überschriften und das Paket \pkg{ragged2e}} % % \begin{macro}{\tud@raggedright} % \begin{macro}{\tud@RaggedRight} % 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 % zu aktivieren. Mit der Option \opt{newcommands} werden dabei die originalen % Befehle überschrieben, vorher jedoch in \cs{LaTeX\dots} gesichert. Diese % Makros dienen 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} \newcommand*\tud@RaggedRight{\raggedright} \AfterPackage*{ragged2e}{% \ifdef{\LaTeXraggedright}{% \renewcommand*\tud@raggedright{\LaTeXraggedright}% }{}% \renewcommand*\tud@RaggedRight{\RaggedRight}% } % \end{macrocode} % \end{macro}^^A \tud@RaggedRight % \end{macro}^^A \tud@raggedright % % \subsubsection{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 % % \subsubsection{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}} % % \end{macrocode} % % \subsubsection{Mathematikschriften in Verbindung mit dem Paket \pkg{bm}} % % \begin{macro}{\if@tud@x@bm@requested} % Das Paket \pkg{bm} stellt den Befehl \cs{bm} für fette und kursive Symbole im % Mathematiksatz bereit. Damit dies funktioniert, muss das Laden des Paketes % auf das Ende der Präambel verzögert werden, um zuvor alle Einstellungen für % die mathematischen Symbole vornehmen zu können. % \begin{macrocode} \newif\if@tud@x@bm@requested %<*package> \@ifpackageloaded{bm}{% \PackageWarning{tudscrfonts}{% Package `bm' must be loaded after `tudscrfonts'.\MessageBreak% Otherwise the functionality can not be guaranteed% }% }{% % \PreventPackageFromLoading[\@tud@x@bm@requestedtrue]{bm} %<*package> } % % \end{macrocode} % \end{macro}^^A \if@tud@x@bm@requested % % \iffalse % %<*option> % \fi % % \subsection{Schriftauswahl und -optionen} % \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 % \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 für die Überschriften deaktivieren. Außerdem kann eingestellt werden, ob % für den Mathematiksatz serifenlose Schriften zum Einsatz kommen sollen. % \begin{macrocode} \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@bool@numkey,% {light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},% {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}{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},% % {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} % Die ersten drei Werte dienen zum Umschalten auf die Schriften des \CDs für % den Fließtext. % \begin{macrocode} \ifcase\@tempa\relax% false \renewcommand*\tud@cdfont@num{0}% \TUD@SpecialOptionAtDocument{tud@font@set}% \or% true \renewcommand*\tud@cdfont@num{1}% \TUD@SpecialOptionAtDocument{tud@font@set}% \or% heavy \renewcommand*\tud@cdfont@num{2}% \TUD@SpecialOptionAtDocument{tud@font@set}% % \end{macrocode} % Für die Definition der fetten Schriftstärke kommt je nach Einstellung ein % anderer Schriftschnitt zum Einsatz. % \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 für die Überschirften festgelegt. % \begin{macrocode} \or% nodin \@tud@cdfont@dinfalse% \or% din \@tud@cdfont@dintrue% % \end{macrocode} % Die Schrift für den Querbalken. % \begin{macrocode} \or% nohead %<*class> \TUDoptions{cdhead=false}% % %<*package> \PackageWarning{tudscrfonts}{Option `cdfont=nohead' is not available}% % \or% head %<*class> \TUDoptions{cdhead=true}% % %<*package> \PackageWarning{tudscrfonts}{Option `cdfont=head' is not available}% % \or% heavyhead %<*class> \TUDoptions{cdhead=heavy}% % %<*package> \PackageWarning{tudscrfonts}{Option `cdfont=heavyhead' is not available}% % % \end{macrocode} % Die Mathematikschriften. % \begin{macrocode} \or% nomath \TUDoptions{cdmath=false}% \or% math \TUDoptions{cdmath=true}% % \end{macrocode} % Die Neigung der großen griechischen Buchstaben. % \begin{macrocode} \or% upgreek \TUDoptions{slantedgreek=false}% \or% slgreek \TUDoptions{slantedgreek=true}% % \end{macrocode} % Die Verwendung von \pkg{fontspec}. % \begin{macrocode} \or% fontspec \TUDoptions{fontspec=true}% \or% nofontspec \TUDoptions{fontspec=false}% \fi% % \end{macrocode} % Wird kein gültiger Wert für die Option angegeben, so wird davon ausgegangen, % dass es sich bei diesem um die gewünschte Schriftgröße handelt. % \begin{macrocode} \else% \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 \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 % Die Option \opt{relspacing} setzt einige Abstände und Längen in Abhängigkeit % der aktuellen Grundschriftgröße, wenn sie aktiviert wurde. Die verwendete % Grundschriftgröße kann mit der \KOMAScript-Option \opt{fontsize} eingestellt % werden. Die Definiton der Längen wird durch das Makro \cs{tud@font@skip@set} % vorgenommen. % \begin{macrocode} \newif\if@tud@relspacing \TUD@key{relspacing}[true]{% \TUD@set@numkey{relspacing}{@tempa}{% \TUD@bool@numkey,% {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}{% \TUD@SpecialOptionAtDocument{tud@font@skip@set}% \FamilyKeyStateProcessed% } % \end{macrocode} % \end{option}^^A fontsize % \end{macro}^^A \if@tud@relspacing % \end{option}^^A relspacing % % \iffalse % %<*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@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 % \begin{macro}{\bfseries@sf} % \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A % \begin{macro}{\bfseries@tt} % \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A % \begin{macro}{\mdseries@rm} % \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A % \begin{macro}{\mdseries@sf} % \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A % \begin{macro}{\mdseries@tt} % \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A % \begin{macro}{\rmdef@ult} % \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A % \begin{macro}{\sfdef@ult} % \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A % \begin{macro}{\ttdef@ult} % \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A % \begin{macro}{\bfdef@ult} % \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A % \begin{macro}{\mddef@ult} % \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A % 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@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}% % %<*package> \PackageWarning{tudscrfonts}% % {`Univers' fonts not found}% \fi% \if@tud@dinbold\else% %<*class> \ClassWarning{\TUD@Class@Name}% % %<*package> \PackageWarning{tudscrfonts}% % {`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@num\relax% false \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}% \if@tud@x@mweights@enabled% \tud@cmd@restore{bfseries@rm}% \tud@cmd@restore{bfseries@sf}% \tud@cmd@restore{bfseries@tt}% \tud@cmd@restore{mdseries@rm}% \tud@cmd@restore{mdseries@sf}% \tud@cmd@restore{mdseries@tt}% \fi% % \end{macrocode} % Die Mathematikschriften werden auf ihr Standardverhalten zurückgesetzt. % \begin{macrocode} \bool@std@lock{@tud@cdmath}{false}% % \end{macrocode} % Innerhalb der Klassen wird auch die Schrift im Querbalken zurückgsetzt, wenn % kein Layout im \CD genutzt wird. % \begin{macrocode} %<*class> \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% % % \end{macrocode} % Ist die Verwendung der Schriften des \CDs gewünscht, werden die Schnitte der % Standardschriften vorher vorher gesichert, um diese später vollständig % wiederherstellen zu können. % \begin{macrocode} \else% true/heavy \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}% \if@tud@x@mweights@enabled% \tud@cmd@store{bfseries@rm}% \tud@cmd@store{bfseries@sf}% \tud@cmd@store{bfseries@tt}% \tud@cmd@store{mdseries@rm}% \tud@cmd@store{mdseries@sf}% \tud@cmd@store{mdseries@tt}% \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} \bool@std@lock{@tud@cdmath}{true}% % \end{macrocode} % Die Schrift im Querbalken wird bei den Klassen angepasst. % \begin{macrocode} %<*class> \cs@std@lock{tud@head@font@num}{\tud@cdfont@num}% % % \end{macrocode} % Danach erfolgt die Definition der Schriften des \CDs entweder mit dem Paket % \pkg{fontspec} oder\dots % \begin{macrocode} \if@tud@univers% \if@tud@x@fontspec@enabled% \setsansfont{Univers}[% 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}[% 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% ]% % \end{macrocode} % \dots nach dem NFSS. % \begin{macrocode} \else% \renewcommand*\sfdefault{\tud@univers}% \renewcommand*\ttdefault{\tud@univers t}% \fi% \ifnum\tud@cdfont@num=\@ne\relax% true \if@tud@cdfont@ultrabold% ultrabold \renewcommand*\bfdefault{b}% \else% normalbold \renewcommand*\bfdefault{m}% \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}% \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*\familydefault{\sfdefault}% \renewcommand*\seriesdefault{\mddefault}% \renewcommand*\shapedefault{\updefault}% \fi% \if@tud@x@mweights@enabled% \edef\rmdef@ult{\rmdefault}% \edef\sfdef@ult{\sfdefault}% \edef\ttdef@ult{\ttdefault}% \edef\bfdef@ult{\bfdefault}% \edef\mddef@ult{\mddefault}% \edef\famdef@ult{\familydefault}% \fi% % \end{macrocode} % Zum Ende werden einige Abstände abhängig von der gewählten Schriftgröße % definiert. Danach erfolgt die Behandlung der Mathematikschriften und die % gewählte Standardschrift aktiviert. Zum Schluss wird das Layout erneuert. % \begin{macrocode} \ifundef{\tud@font@math@init}{\tud@font@math@set}{}% \tud@font@skip@set% \normalfont\selectfont% %<*class> \tud@layout@process% \global\@tud@head@font@settrue% % } % \end{macrocode} % \end{macro}^^A \mddef@ult % \end{macro}^^A \bfdef@ult % \end{macro}^^A \ttdef@ult % \end{macro}^^A \sfdef@ult % \end{macro}^^A \rmdef@ult % \end{macro}^^A \mdseries@tt % \end{macro}^^A \mdseries@sf % \end{macro}^^A \mdseries@rm % \end{macro}^^A \bfseries@tt % \end{macro}^^A \bfseries@sf % \end{macro}^^A \bfseries@rm % \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 % \begin{macro}{\tud@font@skip@@set} % \changes{v2.04}{2015/03/27}{neu}^^A % \begin{macro}{\smallskipamount} % \changes{v2.04}{2015/04/24}{Wert abhängig von der Schriftgröße}^^A % \begin{macro}{\medskipamount} % \changes{v2.04}{2015/04/24}{Wert abhängig von der Schriftgröße}^^A % \begin{macro}{\bigskipamount} % \changes{v2.04}{2015/04/24}{Wert abhängig von der Schriftgröße}^^A % \begin{macro}{\abovecaptionskip} % \changes{v2.04}{2015/04/24}{Wert abhängig von der Schriftgröße}^^A % \begin{macro}{\belowcaptionskip} % \begin{macro}{\columnsep} % \changes{v2.04}{2015/04/24}{Wert abhängig von der Schriftgröße}^^A % Mit diesem Befehl wird nach der Auswahl der Schriftgröße die Länge einiger % Abstände angepasst, die bei den \KOMAScript-Klassen nicht abhängig von dieser % sind. % \begin{macrocode} \newcommand*\tud@font@skip@set{% % \end{macrocode} % Es werden die Standardeinstellungen abhängig von \opt{cdfont} entweder % wiederhergestellt oder gesichert und neu definiert. % \begin{macrocode} \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{% \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 % \end{macro}^^A \belowcaptionskip % \end{macro}^^A \abovecaptionskip % \end{macro}^^A \bigskipamount % \end{macro}^^A \medskipamount % \end{macro}^^A \smallskipamount % \end{macro}^^A \tud@font@skip@@set % \end{macro}^^A \tud@font@skip@set % \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@dinbn{} \let\tud@dinbn\relax \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} \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} % 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 äquivalent verfahren. % \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% \newrobustcmd*\tud@dinbn{\usefont{\encodingdefault}{\tud@dinbold}{b}{n}}% \fi% \if@tud@dinboldmath% \appto\tud@dinbn{\mathversion{dinbold}}% \fi% \newrobustcmd*\dinbn{\tud@dinbn}% % \end{macrocode} % Da der Schalter \cs{dinbn} innerhalb der Überschriften verwendet wird, sollte % dieser zumindest auch auf den Überschriftenstil schalten, falls \DIN elbst % nicht installiert ist. % \begin{macrocode} \else% \newrobustcmd*\tud@dinbn{\sectfont}% \newrobustcmd*\dinbn{\tud@font@wrn{DIN Bold}\tud@dinbn}% \fi% % \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} % Hier wird die Rückfallebene für die Schriftschalter sowie die dazugehörige % Warnung definiert. % \begin{macrocode} \newcommand*\tud@font@fallback[3]{% \tud@font@wrn{#1}% \sffamily\csuse{#2series}\csuse{#3shape}% } \newcommand*\tud@font@wrn[1]{% %<*class> \ClassWarning{\TUD@Class@Name}% % %<*package> \PackageWarning{tudscrfonts}% % {% The requested font `#1' is not available, so\MessageBreak% a fallback layout is used% }% } % \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@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*\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}% % %<*package> \PackageWarning{tudscrfonts}% % {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@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 % %<*option> % \fi % % \subsubsection{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}{cdmath} % \begin{macro}{\if@tud@cdmath} % \begin{macro}{\if@tud@cdmath@locked} % Mit dieser Option kann die genutzte Standardschrift für den Mathematiksatz % für das gesamte Dokument umgestellt werden. % \begin{macrocode} \bool@lock{@tud@cdmath} \TUD@key{cdmath}[true]{% \TUD@set@numkey{cdmath}{@tempa}{% \TUD@bool@numkey,% {serifmath}{0},{serif}{0},{nosansmath}{0},{nosans}{0},% {sansmath}{1},{sans}{1},% {upgreek}{2},{upright}{2},{uprightgreek}{2},{uprightGreek}{2},% {slgreek}{3},{slanted}{3},{slantedgreek}{3},{slantedGreek}{3}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false \bool@set@lock{@tud@cdmath}{false}% \TUD@SpecialOptionAtDocument{tud@font@math@set}% \or% true \bool@set@lock{@tud@cdmath}{true}% \TUD@SpecialOptionAtDocument{tud@font@math@set}% \or% upgreek \TUDoptions{slantedgreek=false}% \or% slgreek \TUDoptions{slantedgreek=true}% \fi% \fi% } % \end{macrocode} % \end{macro}^^A \if@tud@cdmath@locked % \end{macro}^^A \if@tud@cdmath % \end{option}^^A cdmath % \begin{option}{slantedgreek} % \begin{option}{slantedGreek} % \changes{v2.04}{2015/02/27}{neu}^^A % \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} \bool@lock{@tud@slantedgreek} \TUD@key{slantedgreek}[true]{% \TUD@set@ifkey{slantedgreek}{@tud@slantedgreek}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \bool@set@lock{@tud@slantedgreek}{#1}% \TUD@SpecialOptionAtDocument{tud@font@math@set}% \fi% } \TUD@key{slantedGreek}[true]{\TUDoptions{slantedgreek=#1}} % \end{macrocode} % \end{macro}^^A \if@tud@slantedgreek@locked % \end{macro}^^A \if@tud@slantedgreek % \end{option}^^A slantedGreek % \end{option}^^A slantedgreek % % \iffalse % %<*body> % \fi % % \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} % \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} \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} % \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} \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}% % %<*package> \PackageWarningNoLine{tudscrfonts}% % {% 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% }% }% }{}% \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 das Paket % \pkg{amsfonts} 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 werden mathematische Glyphen bereitgestellt. Diese % wurden aus dem \pkg{iwona}-Paket entnommen. Auch die verwendeten Symbole % stammen aus diesem Paket. % \begin{macrocode} \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} % 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 mit \cs{tud@font@greek@check@slanted} % 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} \tud@font@greek@check@slanted% \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} % \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@check@slanted} % \changes{v2.05d}{2016/09/22}{neu}^^A % Dieser Befehl prüft die aktuelle Definition von \cs{Gamma} und vergleicht % diese mit den kursiven Varianten des Buchstabens. Sind diese identisch, wird % davon ausgegangen, dass ein Paket mit der Option \opt{slantedGreek} oder % ähnlich geladen wurde. In diesem Fall wird der voreingestellte Wert für die % entsprechende \TUDScript-Option gesetzt. % \begin{macrocode} \newcommand*\tud@font@greek@check@slanted{% \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% \let\tud@font@greek@check@slanted\relax% } % \end{macrocode} % Da die Definition der griechischen Buchstaben durch das Paket \pkg{flexisym} % stark verändert wird, wird die Prüfung in jedem Fall vor besagtem Paket % ausgeführt. % \begin{macrocode} \BeforePackage{flexisym}{\tud@font@greek@check@slanted} % \end{macrocode} % \end{macro}^^A \tud@font@greek@check@slanted % \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% \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}% % %<*package> \PackageWarning{tudscrfonts}% % {`Univers' math fonts not found}% \fi% \if@tud@dinboldmath\else% %<*class> \ClassWarning{\TUD@Class@Name}% % %<*package> \PackageWarning{tudscrfonts}% % {`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} \AtEndPreamble{% % \end{macrocode} % Falls das Paket \pkg{mweights} geladen wurde, werden im Bedarfsfall die vom % Paket erwarteten Makros für die Schriftstärken 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} % \ifdef{\sectfont}{}{\let\sectfont\relax}% % \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. Wurde jedoch das Paket \pkg{bm} angefordert, so müssen die % Mathematikschriften spätestens zum Ende der Präambel initialisiert werden. % \begin{macrocode} \if@tud@x@bm@requested% \tud@font@math@init% \UnPreventPackageFromLoading{bm}% \RequirePackage{bm}[2017/01/16]% \fi% \AtBeginDocument{\tud@font@math@init\let\tud@font@math@init\relax}% } % \end{macrocode} % % \subsubsection{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. 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{% \ifx\f@family\tud@dinbold% \expandafter\@firstoftwo% \else% \expandafter\@secondoftwo% \fi% } % \end{macrocode} % \end{macro}^^A \ifdin % \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@sec@fontface % 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} \RequirePackage{textcase}[2004/10/07] % \end{macrocode} % \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} % 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}% } % \end{macrocode} % \end{macro}^^A \tud@makeuppercase % % \iffalse % % \fi % % \Finale % \endinput