% \CheckSum{1396} % \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/05/30 v2.05m 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[T1]{fontenc} \usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} \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}{% \@ifpackagelater{fontspec}{2017/01/24}{% \@tud@x@fontspec@enabledtrue% }{% \@tud@x@fontspec@enabledfalse% %<*class> \ClassWarningNoLine{\TUD@Class@Name}% % %<*package> \PackageWarningNoLine{tudscrfonts}% % {% Version `2017/01/24' of package `fontspec' is needed,\MessageBreak but only version\MessageBreak `\csname ver@fontspec.sty\endcsname'\MessageBreak is available, so a fallback layout is used% }% }% } % \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@font@missing@wrn} % \changes{v2.05l}{2017/03/29}{neu}^^A % \begin{macro}{\tud@font@math@missing@wrn} % \changes{v2.05l}{2017/03/29}{neu}^^A % \begin{macro}{\tud@x@fontspec@noerror} % \changes{v2.05}{2015/12/14}{neu}^^A % \changes{v2.05l}{2017/03/28}{unnötig seit \pkg{fontspec} `2017/01/24'}^^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 eine Warnung % ausgegeben und eine Rückfallebene definiert. Dies geschieht für OTF-Schriften % mit dem Befehl \cs{IfFontExistsTF}. Für die Mathematikschriften ist es % unerheblich, ob das Paket \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{% \if@tud@cdmath% \tud@font@math@missing@wrn{##1}% \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}}% \if@tud@cdmath% \ifboolexpr{bool {@tud@universmath} and bool {@tud@dinboldmath}}{}{% \bool@set@lock{@tud@cdmath}{false}% }% \fi% % \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{% \IfFontExistsTF{##1}{}{% ##2% \ifnum\tud@cdfont@num>\z@\relax% true/heavy \tud@font@missing@wrn{##1}% \fi% }% }% \@tud@universtrue% \@tempc{Univers Light}{\@tud@universfalse}% \@tempc{Univers}{\@tud@universfalse}% \@tempc{Univers Bold}{\@tud@universfalse}% \@tempc{Univers Black}{\@tud@universfalse}% \@tempc{Univers LightOblique}{\@tud@universfalse}% \@tempc{Univers Oblique}{\@tud@universfalse}% \@tempc{Univers BoldOblique}{\@tud@universfalse}% \@tempc{Univers BlackOblique}{\@tud@universfalse}% \@tud@dinboldtrue% \@tempc{DIN-Bold}{\@tud@dinboldfalse}% \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 \tud@font@missing@wrn{##1}% \fi% }% \expandafter\@tempa\expandafter{\encodingdefault}% {\tud@univers}{\@tud@universtrue}{\@tempc{Univers}}% \expandafter\@tempa\expandafter{\encodingdefault}% {\tud@dinbold}{\@tud@dinboldtrue}{\@tempc{DIN-Bold}}% \fi% \ifboolexpr{bool {@tud@univers} and bool {@tud@dinbold}}{}{% \renewcommand*\tud@cdfont@num{0}% \bool@std@lock{@tud@cdmath}{false}% }% \undef\tud@font@check% } \newcommand*\tud@font@missing@wrn[1]{% \begingroup% \def\@tempa{% `#1' font not found for `\encodingdefault' encoding.\MessageBreak% }% \if@tud@x@fontspec@enabled% \appto\@tempa{% It seems, you haven't installed the required\MessageBreak% OTF-font on your system% }% \else% \ifstr{TU}{\encodingdefault}{% \appto\@tempa{% You should load package `fontspec'\MessageBreak% or % }% }{% \appto\@tempa{Please }% }% \@tempswafalse% \ifstr{OT1}{\encodingdefault}{\@tempswatrue}{}% \ifstr{T1}{\encodingdefault}{\@tempswatrue}{}% \if@tempswa% \appto\@tempa{% use one of the installation scripts listed\MessageBreak% in the TUD-Script manual% }% \else% \appto\@tempa{% choose a possible encoding with\MessageBreak% package `fontenc' (`OT1' or `T1')% }% \fi% \fi% \appto\@tempa{.\MessageBreak A fallback layout is used}% %<*class> \ClassWarning{\TUD@Class@Name}{\@tempa}% % %<*package> \PackageWarning{tudscrfonts}{\@tempa}% % \endgroup% } \newcommand*\tud@font@math@missing@wrn[1]{% %<*class> \ClassWarning{\TUD@Class@Name}% % %<*package> \PackageWarning{tudscrfonts}% % {% `#1' fonts for math typesetting not found.\MessageBreak% Please use one of the installation scripts listed\MessageBreak% in the TUD-Script manual% }% } % \end{macrocode} % \end{macro}^^A \tud@x@fontspec@noerror % \end{macro}^^A \tud@font@missing@wrn % \end{macro}^^A \tud@font@math@missing@wrn % \end{macro}^^A \tud@font@check % % \subsection{Kompatibilität der Schriften} % \subsubsection{Majuskel-ß für Unicode-Prozessoren} % % Es wird für die Majuskelvariante der Glyphe \enquote*{ß} eine Rückfallebene % (Substitution mit \enquote*{SS}) definiert, da diese für Unicode-Engines % standardmäßig nicht bereitgestellt wird. Um diese zu erkennen, wird auf die % gleiche Methodik wie im Paket \pkg{newunicodechar} zurückgegriffen. % \begin{macrocode} \begingroup \catcode`\^=7 \catcode30=12 \catcode`\!=12 \edef\tud@reserved{\@gobble^^^^0021} \expandafter\endgroup % \end{macrocode} % Wurde eine Unicode-Engine erkannt (|^^^^0021| wird als ein Token gelesen), % dann werden die Kodierungen für kleines und großes \enquote*{ß} dahingehend % angepasst, dass diese \enquote*{ss} bzw. \enquote*{SS} verwenden, wenn die % entsprechende Glyphe nicht vorhanden ist. % \begin{macrocode} \ifx\tud@reserved\@empty\relax \RequirePackage{newunicodechar}[2012/11/12]% \uccode"00DF="1E9E% \lccode"1E9E="00DF% \newunicodechar{^^^^00df}{\iffontchar\font"00DF \symbol{"00DF}\else ss\fi}% \newunicodechar{^^^^1e9e}{\iffontchar\font"1E9E \symbol{"1E9E}\else SS\fi}% \fi % \end{macrocode} % % \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} % \begin{macro}{\@tud@x@siunitx@enabledtrue} % \changes{v2.05m}{2017/05/29}{neu} % 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. Außerdem muss bei der Auswahl der Schriften evtl. auf das % Paket reagiert werden, weil es sich bei der Definition der Schriften für den % Mathematikmodus auf \cs{familydefault} bzw. \cs{rmfamily} verlässt. % \begin{macrocode} \newif\if@tud@x@siunitx@enabled \AfterPackage*{siunitx}{% \@tud@x@siunitx@enabledtrue% \providecommand*\lseries{\fontseries{l}\selectfont}% } % \end{macrocode} % \end{macro}^^A \if@tud@x@siunitx@enabledes % \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 % \changes{v2.05l}{2017/03/29}{Standardeinstellungen für \opt{cdmath}}^^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}% \bool@std@lock{@tud@cdmath}{false}% \TUD@SpecialOptionAtDocument{tud@font@set}% \or% true \renewcommand*\tud@cdfont@num{1}% \bool@std@lock{@tud@cdmath}{true}% \TUD@SpecialOptionAtDocument{tud@font@set}% \or% heavy \renewcommand*\tud@cdfont@num{2}% \bool@std@lock{@tud@cdmath}{true}% \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% \bool@std@lock{@tud@cdmath}{true}% \TUD@SpecialOptionAtDocument{tud@font@set}% \or% ultrabold \@tud@cdfont@ultraboldtrue% \ifcase\tud@cdfont@num\relax% false to true \renewcommand*\tud@cdfont@num{1}% \fi% \bool@std@lock{@tud@cdmath}{true}% \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}% \bool@std@lock{@tud@cdmath}{true}% \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% \tud@font@missing@wrn{Univers}% \fi% \if@tud@dinbold\else% \tud@font@missing@wrn{DIN-Bold}% \fi% % \end{macrocode} % Sind die Schriften des \CDs nicht vorhanden, wird die Option zurückgesetzt. % \begin{macrocode} \ifboolexpr{bool {@tud@univers} and bool {@tud@dinbold}}{}{% \renewcommand*\tud@cdfont@num{0}% \bool@std@lock{@tud@cdmath}{false}% }% \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} % 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 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}[\tud@x@fontspec@set@univ]% \setmonofont{LMMono10-Regular}[% BoldFont={},% ItalicFont={},% BoldItalicFont={},% SmallCapsFont={},% 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@x@fontspec@fam@univ} % \changes{v2.05l}{2017/03/28}{neu}^^A % \begin{macro}{\tud@x@fontspec@set@univ} % \changes{v2.05l}{2017/03/28}{neu}^^A % \begin{macro}{\tud@x@fontspec@fam@din} % \changes{v2.05l}{2017/03/28}{neu}^^A % \begin{macro}{\tud@x@fontspec@set@din} % \changes{v2.05l}{2017/03/28}{neu}^^A % \begin{macro}{\tud@font@fallback} % \changes{v2.05}{2015/12/14}{neu}^^A % \begin{macro}{\tud@font@fallback@wrn} % \changes{v2.05}{2015/12/14}{neu}^^A % \begin{macro}{\univln} % \begin{macro}{\univrn} % \begin{macro}{\univbn} % \begin{macro}{\univxn} % \begin{macro}{\univls} % \begin{macro}{\univrs} % \begin{macro}{\univbs} % \begin{macro}{\univxs} % \begin{macro}{\dinbn} % \begin{macro}{\tud@dinbn} % \begin{macro}{\textuln} % \begin{macro}{\texturn} % \begin{macro}{\textubn} % \begin{macro}{\textuxn} % \begin{macro}{\textuls} % \begin{macro}{\texturs} % \begin{macro}{\textubs} % \begin{macro}{\textuxs} % \begin{macro}{\textdbn} % Das Makro \cs{tud@font@init} wird für die Defintion aller Befehle zur Auswahl % der Schriften des \CDs verwendet. % \begin{macrocode} \newcommand*\tud@font@init{% % \end{macrocode} % Wurden alle notwendigen OTF"~Schriften gefunden, werden die zwei Makros % definiert, in welchen die notwendigen Einstellungen gespeichert werden. % Anschließend werden zwei Schriftfamilien erzeugt, damit später auf diese % zugegriffen werden kann bzw. die Schriften geladen werden. % \begin{macrocode} \if@tud@x@fontspec@enabled% \if@tud@univers% \newcommand*\tud@x@fontspec@set@univ{% Ligatures=TeX,% BoldFont={},% ItalicFont={},% BoldItalicFont={},% SmallCapsFont={},% 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 LightOblique},% FontFace={m}{\sldefault}{Univers Oblique},% FontFace={b}{\sldefault}{Univers BoldOblique},% FontFace={bx}{\sldefault}{Univers BoldOblique},% FontFace={eb}{\sldefault}{Univers BlackOblique}% }% \newfontfamily\tud@x@fontspec@fam@univ{Univers}[% \tud@x@fontspec@set@univ,NFSSFamily=\tud@univers% ]% \fi% \if@tud@dinbold% \newcommand*\tud@x@fontspec@set@din{% Ligatures=TeX,% BoldFont={},% ItalicFont={},% BoldItalicFont={},% SmallCapsFont={},% 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}% }% \newfontfamily\tud@x@fontspec@fam@din{DIN-Bold}[% \tud@x@fontspec@set@din,NFSSFamily=\tud@dinbold% ]% \fi% \fi% % \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 LightOblique}{md}{sl}}% \newrobustcmd*\univrs{\tud@font@fallback{Univers Oblique}{md}{sl}}% \newrobustcmd*\univbs{\tud@font@fallback{Univers BoldOblique}{bf}{sl}}% \newrobustcmd*\univxs{\tud@font@fallback{Univers BlackOblique}{bf}{sl}}% \fi% % \end{macrocode} % Nach der \Univers-Schriftfamilie wird für \DIN äquivalent verfahren. % \begin{macrocode} \if@tud@dinbold% \newrobustcmd*\tud@dinbn{\usefont{\encodingdefault}{\tud@dinbold}{b}{n}}% \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@fallback@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} % Zuletzt werden Makros bereitgestellt, welche normalerweise durch das Paket % \pkg{babel} vorgehalten werden. % \begin{macrocode} %^^A \def\tud@reserved##1##2{% %^^A \ifundef{##2}{}{% %^^A \ProvideTextCommand{##1}{\encodingdefault}{\TextOrMath{##2}{\mbox{##2}}}% %^^A }% %^^A }% %^^A \tud@reserved{\SS}{SS}% %^^A \tud@reserved{\glq}{\quotesinglbase}% %^^A \tud@reserved{\grq}{\textquoteleft}% %^^A \tud@reserved{\glqq}{\quotedblbase}% %^^A \tud@reserved{\grqq}{\textquotedblleft}% %^^A \tud@reserved{\flq}{\guilsinglleft}% %^^A \tud@reserved{\frq}{\guilsinglright}% %^^A \tud@reserved{\flqq}{\guillemotleft}% %^^A \tud@reserved{\frqq}{\guillemotright}% % \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@fallback@wrn{#1}% \sffamily\csuse{#2series}\csuse{#3shape}% } \newcommand*\tud@font@fallback@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@fallback@wrn % \end{macro}^^A \tud@font@fallback % \end{macro}^^A \tud@x@fontspec@set@din % \end{macro}^^A \tud@x@fontspec@fam@din % \end{macro}^^A \tud@x@fontspec@set@univ % \end{macro}^^A \tud@x@fontspec@fam@univ % \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} \bool@std@lock{@tud@cdmath}{true}% \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% \if@tud@cdmath% \if@tud@universmath\else% \tud@font@math@missing@wrn{Univers}% \fi% \if@tud@dinboldmath\else% \tud@font@math@missing@wrn{DIN-Bold}% \fi% % \end{macrocode} % Sind die Mathematikschriften im \CD nicht vorhanden, wird die entsprechende % Option zurückgesetzt. % \begin{macrocode} \ifboolexpr{bool {@tud@universmath} and bool {@tud@dinboldmath}}{}{% \bool@set@lock{@tud@cdmath}{false}% }% \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} % Nachdem auf die Schriften geprüft wurde, werden noch die Schriftschalter und % die dazugehörigen Befehle definiert. % \begin{macrocode} \tud@font@init% % \end{macrocode} % Wurde das Paket \pkg{siunitx} geladen, so werden die Schrifteinstellungen mit % \opt{cdfont}|=|\val{false} deaktiviert und zu Beginn des Dokumentes auf die % aktuelle Einstellung gesetzt. % \begin{macrocode} \if@tud@x@siunitx@enabled% \ifcase\tud@cdfont@num\relax% false \def\tud@reserved{\TUDoptions{cdfont=false}}% \or% true \def\tud@reserved{\TUDoptions{cdfont=true}}% \or% heavy \def\tud@reserved{\TUDoptions{cdfont=heavy}}% \fi% \expandafter\AtBeginDocument\expandafter{\tud@reserved}% \TUDoptions{cdfont=false}% \fi% % \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} % 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