summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tudscr/source/tudscr-fonts.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/tudscr/source/tudscr-fonts.dtx')
-rw-r--r--macros/latex/contrib/tudscr/source/tudscr-fonts.dtx1867
1 files changed, 1068 insertions, 799 deletions
diff --git a/macros/latex/contrib/tudscr/source/tudscr-fonts.dtx b/macros/latex/contrib/tudscr/source/tudscr-fonts.dtx
index 8c76c12296..98d562f89a 100644
--- a/macros/latex/contrib/tudscr/source/tudscr-fonts.dtx
+++ b/macros/latex/contrib/tudscr/source/tudscr-fonts.dtx
@@ -1,10 +1,10 @@
-% \CheckSum{3161}
% \iffalse meta-comment
+%/GitFileInfo=tudscr-fonts.dtx
%
% TUD-Script -- Corporate Design of Technische Universität Dresden
% ----------------------------------------------------------------------------
%
-% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2021
+% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2022
%
% ----------------------------------------------------------------------------
%
@@ -23,44 +23,19 @@
%
% \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
-%<*dtx>
-\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
-% \fi
-%
-\ProvidesFile{tudscr-fonts.dtx}[2021/07/15 v2.06n TUD-Script\space%
-%
-% \iffalse
-%</dtx>
-%<package&identify>\ProvidesPackage{tudscrfonts}[%
-%<*package&identify>
-%!TUD@Version
-%</package&identify>
-%<package&identify> package
-%<*dtx|package&identify>
-% \fi
- (corporate design fonts)%
-]
-% \iffalse
-%</dtx|package&identify>
+% \iffalse ins:batch + dtx:driver
+%<*ins>
+\ifx\documentclass\undefined
+ \input docstrip.tex
+ \ifToplevel{\batchinput{tudscr.ins}}
+\else
+ \let\endbatchfile\relax
+\fi
+\endbatchfile
+%</ins>
%<*dtx>
+\ProvidesFile{tudscr-fonts.dtx}[2022/08/09]
+\RequirePackage{tudscr-gitinfo}
\documentclass[english,ngerman,xindy]{tudscrdoc}
\iftutex
\usepackage{fontspec}
@@ -70,18 +45,11 @@
\fi
\usepackage{babel}
\usepackage{tudscrfonts}
-\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)}
-
+\GitHubBase{\TUDScriptRepository}
\begin{document}
+ \author{Falk Hanisch\TUDScriptContactTitle}
\maketitle
\tableofcontents
\DocInput{\filename}
@@ -99,6 +67,9 @@
% den Mathematiksatz verbessert}^^A
% \changes{v2.04c}{2015/11/29}{Bugfix für \pkg{fontspec} bei fehlenden
% Schriften}^^A
+% \changes{v2.06o}{2022/08/01}{Mathematikschriftstärke passend zu Fließtext}^^A
+%
+%
%
% \section{Die Hausschrift der \TnUD}
%
@@ -108,20 +79,44 @@
% die Optionen und Befehle zur Verwendung der Schriften im Dokument definiert.
%
% 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
+% auch mit anderen \LaTeX-Klassen 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}
+% \begin{macrocode}
+%<*package&identify>
+\ProvidesPackage{tudscrfonts}[%
+%!TUD@Version
+ package (corporate design fonts)%
+]
+%</package&identify>
+% \end{macrocode}
+%
+% \iffalse
+%<*option>
+% \fi
+%
+% Der Category Code für Anführungsstriche wird auf nicht-aktiv gesetzt für den
+% Fall das ein Paket dies gerne anders hätte.
+%
+% \begin{macrocode}
+\newcommand*\tud@catcodes@restore{}
+\edef\tud@catcodes@restore{%
+ \catcode`\noexpand\"\the\catcode`\"\relax%
+}%
+\@makeother\"%
+%<class>\AtEndOfClass{\tud@catcodes@restore}
+%<package>\AtEndOfPackage{\tud@catcodes@restore}
+% \end{macrocode}
%
% \iffalse
-%<*class&option>
+%<*class>
% \fi
%
-% \subsection{%
-% Verwendung durch die \TUDScript-Klassen und das Paket \pkg{tudscrfonts}%
+% \subsection{^^A
+% Nutzung durch die \TUDScript-Klassen und das Paket \pkg{tudscrfonts}^^A
% }
%
% Die Schriften des \TUDCDs werden standardmäßig durch die \TUDScript-Klassen
@@ -137,16 +132,18 @@
% \end{macrocode}
%
% \iffalse
-%</class&option>
-%<*package&identify>
+%</class>
+%<*package>
% \fi
%
% Sollte keine \KOMAScript-Klasse genutzt werden, wird zusätzlich das Paket
% \pkg{scrextend} benötigt.
% \begin{macrocode}
-\ifcsname KOMAClassName\endcsname\else
- \RequirePackage{scrextend}[2020/09/21]
-\fi
+\ifundef{\KOMAClassName}{%
+ \RequirePackage{scrextend}[%
+%!TUD@KOMAVersion
+ ]%
+}{}
% \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
@@ -156,9 +153,9 @@
\@for\@tempa:={%
tudbook,tudbeamer,tudfax,tudform,tudhaus,tudletter,tudposter,tudmathposter%
}\do{%
- \@ifclassloaded{\@tempa}{%
- \if@tempswa\else\@tempswatrue\let\@tempb\@tempa\fi%
- }{}%
+ \if@tempswa\else
+ \@ifclassloaded{\@tempa}{\@tempswatrue\let\@tempb\@tempa}{}%
+ \fi
}%
\if@tempswa%
\@ifpackageloaded{fix-tudscrfonts}{}{%
@@ -172,7 +169,8 @@
% \end{macrocode}
%
% \iffalse
-%</package&identify>
+%</package>
+%</option>
%<*body>
% \fi
%
@@ -210,8 +208,9 @@
% wird geprüft, ob diesem mit den entsprechenden Optionen das Bereitstellen der
% Mathematikschriften überlassen wurde. In diesem Fall wird eine entsprechende
% Warnung an \cs{tud@cdmath@wrn} angehängt.
+% \ToDo{\cs{IfPackageAtLeastTF} oder ganz raus}[v2.07]
% \begin{macrocode}
-\newif\if@tud@x@fontspec@enabled
+\tud@newif\if@tud@x@fontspec@enabled
\PassOptionsToPackage{no-math}{fontspec}
\AfterPackage*{fontspec}{%
\@ifpackagelater{fontspec}{2017/01/24}{%
@@ -254,6 +253,7 @@
% Bei der Nutzung des Pakets \pkg{unicode-math} kann es ebenfalls zu Problemen
% mit den mathematischen Schriften kommen, weshalb auch hier eine Warnung an
% \cs{tud@cdmath@wrn} angehängt wird.
+% \ToDo{Paket \pkg{unicode-math} zumindest rudimentär unterstützen?}[v2.07]
% \begin{macrocode}
\AfterPackage*{unicode-math}{%
\appto\tud@cdmath@wrn{%
@@ -276,9 +276,12 @@
% \changes{v2.04}{2015/04/24}{Erkennung des Paketes \pkg{mweights}}^^A
% Das Paket \pkg{mweights} wird geladen, um unterschiedliche Schriftschnitte
% für beispielsweise die TypeWriter-Schriften nutzen zu können.
+% \ToDo{Paket \pkg{mweights} wurde in Kernel integriert}[v2.07]%
+% \ToDo{an neues NFSS anpassen, \cs{DeclareFontSeriesDefault} nutzen}[v2.07]%
+% \ToDo{ist \cs{IfFontSeriesContextTF} irgendwo nötig?}[v2.07]%
% \begin{macrocode}
-\TUD@RecommendPackage{mweights}[2017/03/30]%
-\newif\if@tud@x@mweights@enabled
+\TUD@RecommendPackage{mweights}
+\tud@newif\if@tud@x@mweights@enabled
\AfterPackage*{mweights}{\@tud@x@mweights@enabledtrue}
% \end{macrocode}
% \end{macro}^^A \if@tud@x@mweights@enabled
@@ -291,10 +294,6 @@
% Dokumente mit den Schriften \Univers und \DIN nutzen zu können, werden die
% entsprechenden Befehle ebenfalls vorgehalten.
%
-% \begin{macro}{\if@tud@cdfont@fam@exist}
-% \changes{v2.06}{2018/07/12}{neu}^^A
-% \begin{macro}{\if@tud@cdfont@db@exist}
-% \changes{v2.06}{2018/07/12}{neu}^^A
% \begin{macro}{\tud@cdfont@fam}
% \changes{v2.06}{2018/07/12}{neu}^^A
% \begin{macro}{\tud@cdfont@fam@lf}
@@ -304,8 +303,6 @@
% \begin{macro}{\tud@cdfont@db}
% Zu Beginn werden Schalter und Hilfsmakros sowohl für den Fließtext\dots
% \begin{macrocode}
-\newif\if@tud@cdfont@fam@exist
-\newif\if@tud@cdfont@db@exist
\newcommand*\tud@cdfont@fam{opensans-TLF}
\newcommand*\tud@cdfont@fam@lf{opensans-TLF}
\newcommand*\tud@cdfont@fam@osf{opensans-TOsF}
@@ -320,8 +317,6 @@
% \end{macro}^^A \tud@cdfont@fam@osf
% \end{macro}^^A \tud@cdfont@fam@lf
% \end{macro}^^A \tud@cdfont@fam
-% \end{macro}^^A \if@tud@cdfont@db@exist
-% \end{macro}^^A \if@tud@cdfont@fam@exist
% \begin{macro}{\tud@ttfont@fam}
% \changes{v2.06}{2018/07/12}{neu}^^A
% \begin{macro}{\tud@ttfont@rb}
@@ -342,7 +337,7 @@
% Die TypeWriter-Schrift aus \pkg{roboto-mono} kann nur genutzt werden, wenn
% diese tatsächlich auch vorhanden ist.
% \begin{macrocode}
-\newif\if@tud@ttfont@rb@exist
+\tud@newif\if@tud@ttfont@rb@exist
\IfFileExists{roboto-mono.sty}{%
\@tud@ttfont@rb@existtrue%
}{%
@@ -360,6 +355,16 @@
% \changes{v2.06b}{2019/07/17}{Verwendung von \cs{tud@if@fdfileexists}}^^A
% \begin{macro}{\tud@cdfont@missing}
% \changes{v2.05l}{2017/03/29}{neu}^^A
+% \begin{macro}{\if@tud@cdfont@fam@exist}
+% \changes{v2.06}{2018/07/12}{neu}^^A
+% \begin{macro}{\if@tud@cdfont@db@exist}
+% \changes{v2.06}{2018/07/12}{neu}^^A
+% \begin{macro}{\if@tud@cdmath@fam@exist}
+% \changes{v2.06o}{2022/08/01}{neu}
+% \begin{macro}{\if@tud@cdmath@db@exist}
+% \changes{v2.06o}{2022/08/01}{neu}
+% \begin{macro}{\tud@x@mathastext@enc}
+% \changes{v2.06a}{2019/07/09}{neu}^^A
% Mit \cs{tud@cdfont@check} wird geprüft, ob die Schrift \OpenSans respektive
% die veralteten Schriften \Univers und \DIN im OTF-Format respektive im
% Type1-Format vorhanden sind. Die Schriftschnitte der \OpenSans werden für
@@ -368,6 +373,11 @@
% Nichtvorhandensein der Schriften wird eine Warnung ausgegeben sowie eine
% Rückfallebene definiert.
% \begin{macrocode}
+\tud@newif\if@tud@cdfont@fam@exist
+\tud@newif\if@tud@cdfont@db@exist
+\tud@newif\if@tud@cdmath@fam@exist
+\tud@newif\if@tud@cdmath@db@exist
+\newcommand*\tud@x@mathastext@enc{OT1}
\newcommand*\tud@cdfont@check{%
\if@tud@cdoldfont@active%
\tud@cdfont@@check{Univers}{%
@@ -375,8 +385,8 @@
LightOblique,Oblique,BoldOblique,BlackOblique%
}{\tud@cdfont@fam@lf}{@tud@cdfont@fam@exist}%
\tud@cdfont@@check{DIN}{Bold}{\tud@cdfont@db}{@tud@cdfont@db@exist}%
- \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@fam@lf}%
- \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@db}%
+ \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@fam@lf}{@tud@cdmath@fam@exist}%
+ \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@db}{@tud@cdmath@db@exist}%
\else%
% \end{macrocode}
% Die Version von \pkg{opensans} wird geprüft. Das Paket \pkg{iwona} wird
@@ -403,6 +413,29 @@
Light,Regular,SemiBold,Bold,ExtraBold,%
LightItalic,Italic,SemiBoldItalic,BoldItalic,ExtraBoldItalic%
}{\tud@cdfont@fam@lf,\tud@cdfont@fam@osf}{@tud@cdfont@fam@exist}%
+% \end{macrocode}
+% Für \OpenSans wird mangels der Kodierungen \val{OML}, \val{OMS} und \val{OMX}
+% im Paket \pkg{opensans} zur Deklaration der Mathematikversionen der Befehl
+% \cs{MTDeclareVersion} aus dem Paket \pkg{mathastext} genutzt. Dabei wird die
+% Kodierung der Mathematikschriften identisch zur genutzten Eingabekodierung
+% für den Text gesetzt, da diese in der Version \val{v1.3t} nicht problemfrei
+% unabhängig davon gewählt werden kann.
+% \begin{macrocode}
+ \@expandtwoargs\in@{,\encodingdefault,}{,OT1,T1,TU,EU1,EU2,}%
+ \ifin@%
+ \let\tud@x@mathastext@enc\encodingdefault%
+% \end{macrocode}
+% Der Test auf das Vorhandensein der \OpenSans wird nur durchgeführt, wenn es
+% sich nicht um eine Unicode"=Eingabekodierung handelt.
+% \begin{macrocode}
+ \@expandtwoargs\in@{,\tud@x@mathastext@enc,}{,TU,EU1,EU2,}%
+ \ifin@%
+ \@tud@cdmath@fam@existtrue%
+ \else%
+ \tud@cdfont@@@check{\tud@x@mathastext@enc}%
+ {\tud@cdfont@fam@lf}{@tud@cdmath@fam@exist}%
+ \fi%
+ \fi%
\fi%
}
% \end{macrocode}
@@ -470,9 +503,10 @@
% \end{macrocode}
% Hiermit wird auf Type1-Schriften in den notwendigen Kodierungen für den
% Mathematiksatz geprüft. Warnungen für fehlende Schriften werden dem Hook
-% \cs{tud@cdmath@wrn} hinzugefügt.
+% \cs{tud@cdmath@wrn} hinzugefügt und der im dritten Argument gegebene Schalter
+% wird entsprechend gesetzt.
% \begin{macrocode}
-\newcommand*\tud@cdfont@@@check[2]{%
+\newcommand*\tud@cdfont@@@check[3]{%
\@tud@res@swatrue%
\def\tud@res@a##1##2{%
\@tud@res@swafalse%
@@ -490,10 +524,14 @@
}%
\@for\tud@res@c:={#1}\do{\tud@res@b{\tud@res@c}{#2}}%
% \end{macrocode}
-% Wurde mindestens eine notwendige nicht gefunden, wird \opt{cdmath=false}
-% gesetzt. War diese zuvor aktiv, wird eine Warnung dazu ausgegeben.
+% Wurde mindestens eine notwendige Type1-Schrift nicht gefunden, wird die
+% Option \opt{cdmath=false} gesetzt. War diese zuvor aktiv, wird eine Warnung
+% dazu ausgegeben.
% \begin{macrocode}
- \if@tud@res@swa\else%
+ \if@tud@res@swa%
+ \booltrue{#3}%
+ \else%
+ \boolfalse{#3}%
\AtBeginDocument{%
\if@tud@cdmath@active%
%<*class>
@@ -506,8 +544,12 @@
Some math font encodings are missing. \MessageBreak%
The option `cdmath=false' is executed. You should\MessageBreak%
either use this option by yourself or install\MessageBreak%
- all necessary fonts with a installation script\MessageBreak%
- listed in the manual
+ \if@tud@cdoldfont@active%
+ all necessary fonts with a installation script\MessageBreak%
+ listed in the manual%
+ \else%
+ package `opensans'%
+ \fi%
}%
\fi%
\TUDoptions{cdmath=false}%
@@ -525,7 +567,7 @@
not found for `#1' encoding. \MessageBreak%
}%
\if@tud@x@fontspec@enabled%
- \ifstr{\encodingdefault}{#1}{%
+ \tud@if@strequal{#1}{\encodingdefault}{%
\appto\tud@res@a{%
It seems, you haven't installed the required\MessageBreak%
OTF-font on your system. You should provide\MessageBreak%
@@ -543,7 +585,7 @@
\fi%
\@tud@res@swafalse%
\@for\tud@res@c:=\tud@res@b\do{%
- \ifstr{\tud@res@c}{#1}{\@tud@res@swatrue}{}%
+ \tud@if@strequal{#1}{\tud@res@c}{\@tud@res@swatrue}{}%
}%
% \end{macrocode}
% Wird eine unterstützte Kodierung verwendet, müssen die Schriften installiert
@@ -561,8 +603,8 @@
. \MessageBreak%
}%
\else%
- \ifstr{\encodingdefault}{#1}{%
- \ifstr{TU}{#1}{%
+ \tud@if@strequal{#1}{\encodingdefault}{%
+ \tud@if@strequal{#1}{TU}{%
\appto\tud@res@a{%
You should either load package `fontspec'\MessageBreak%
or %
@@ -580,137 +622,33 @@
\appto\tud@res@a{A fallback layout is used}%
\edef\tud@res@c{%
%<*class>
- \etex@unexpanded{\ClassWarning{\TUD@Class@Name}}%
+ \unexpanded{\ClassWarningNoLine{\TUD@Class@Name}}%
%</class>
%<*package>
- \etex@unexpanded{\PackageWarning{tudscrfonts}}%
+ \unexpanded{\PackageWarningNoLine{tudscrfonts}}%
%</package>
- {\tud@res@a}
+ {\tud@res@a}%
}%
\xappto#3{\expandonce\tud@res@c}%
\endgroup%
}
% \end{macrocode}
+% \end{macro}^^A \tud@x@mathastext@enc
+% \end{macro}^^A \if@tud@cdmath@db@exist
+% \end{macro}^^A \if@tud@cdmath@fam@exist
+% \end{macro}^^A \if@tud@cdfont@db@exist
+% \end{macro}^^A \if@tud@cdfont@fam@exist
% \end{macro}^^A \tud@cdfont@missing
% \end{macro}^^A \tud@cdfont@@@check
% \end{macro}^^A \tud@cdfont@@check
% \end{macro}^^A \tud@cdfont@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 sollen laut \CD linksbündig und ohne 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}{%
- \ifundef{\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}{\if@tud@x@siunitx@enabled}
-% \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
-\AfterAtEndOfPackage*{siunitx}{%
- \@tud@x@siunitx@enabledtrue%
- \providecommand*\lseries{\fontseries{l}\selectfont}%
-}
-% \end{macrocode}
-% \end{macro}^^A \if@tud@x@siunitx@enabled
-% \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}}
-%</package>
-% \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%
- }%
-}{%
-%</package>
-\PreventPackageFromLoading[\@tud@x@bm@requestedtrue]{bm}
-%<*package>
-}
-%</package>
-% \end{macrocode}
-% \end{macro}^^A \if@tud@x@bm@requested
-%
% \iffalse
%</body>
%<*option>
% \fi
%
-% \subsection{Schriftauswahl und -optionen}
+% \subsection{Optionen und Befehle zur Schriftauswahl}
%
% Hier werden die Optionen und Befehle zur Schriftauswahl definiert.
%
@@ -738,15 +676,15 @@
% der Schrift geändert werden. Zusätzlich lässt sich die Verwendung von
% Minuskelziffern im Fließtext aktivieren. Außerdem kann eingestellt werden, ob
% für den Mathematiksatz serifenlose Schriften zum Einsatz kommen sollen.
-% \ToDo{%
+% \ToDo{
% Option evtl. überarbeiten und nicht mehr im Dokument zulassen;
% das macht alles um einiges einfacher, siehe \opt{cdoldfont}, \opt{cdmath}
% }[v2.07]
% \begin{macrocode}
-\newif\if@tud@cdfont@active
-\newif\if@tud@cdfont@heavy
-\newif\if@tud@cdfont@ultrabold
-\newif\if@tud@cdfont@lining
+\tud@newif\if@tud@cdfont@active
+\tud@newif\if@tud@cdfont@heavy
+\tud@newif\if@tud@cdfont@ultrabold
+\tud@newif\if@tud@cdfont@lining
\@tud@cdfont@liningtrue
\TUD@key{cdfont}[true]{%
\TUD@set@numkey{cdfont}{@tempa}{%
@@ -843,7 +781,7 @@
\or% math
\TUDoptions{cdmath=true}%
% \end{macrocode}
-% Die Neigung der großen griechischen Buchstaben.
+% Die Neigung der griechischen Majuskeln.
% \begin{macrocode}
\or% uprightgreek
\TUDoptions{slantedgreek=false}%
@@ -875,14 +813,11 @@
% dass es sich bei diesem um die gewünschte Schriftgröße handelt.
% \begin{macrocode}
\else%
- \tud@lowerstring\tud@res@a{#1}%
- \ifdimen{\tud@res@a}{%
- \ifdim\tud@res@a>\z@\relax%
- \TUDoptions{fontsize=#1}%
- \tud@cdfont@activate%
- \FamilyKeyStateProcessed%
- \fi%
- }{}%
+ \TUD@set@dimkey{cdfont}{\@tempa}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \TUDoptions{fontsize=#1}%
+ \tud@cdfont@activate%
+ \fi%
\fi%
}
\newcommand*\tud@cdfont@activate{%
@@ -930,8 +865,8 @@
% Schriftauswahl für die \TUDScript-Klassen oder das Paket \pkg{tudscrfonts}
% entsprechend angepasst.
% \begin{macrocode}
-\newif\if@tud@cdoldfont@active
-\newif\if@tud@cdoldfont@nodin
+\tud@newif\if@tud@cdoldfont@active
+\tud@newif\if@tud@cdoldfont@nodin
\TUD@key{cdoldfont}[true]{%
\TUD@set@numkey{cdoldfont}{@tempa}{%
\TUD@bool@numkey,%
@@ -944,12 +879,12 @@
\@tud@cdoldfont@activefalse%
\@tud@cdoldfont@nodintrue%
% \end{macrocode}
-% Achtung, nicht verwirren lassen! Mit \opt{cdoldfonts=false} kann beim Laden
+% Achtung, nicht verwirren lassen! Mit \opt{cdoldfont=false} kann beim Laden
% der Klasse die Verwendung der alten Schriften deaktiviert werden. Dabei wird
% nicht beeinflusst, ob die Schriften des \CDs (\opt{cdfont=true/false}) denn
% überhaupt zum Einsatz kommen. Nachdem die Klasse geladen wurde, wird jedoch
-% \opt{cdoldfonts} eingefroren, ist diese aktiv, kann sie ab diesem Zeitpunkt
-% nicht mehr deaktiviert werden. Dann kann mit \opt{cdoldfonts=false} quasi das
+% \opt{cdoldfont} eingefroren, ist diese aktiv, kann sie ab diesem Zeitpunkt
+% nicht mehr deaktiviert werden. Dann kann mit \opt{cdoldfont=false} quasi das
% gleiche Verhalten wie mit \opt{cdfont=false} erzeugt werden.
% \begin{macrocode}
\if@tud@cdoldfont@active%
@@ -973,6 +908,7 @@
\TUDoptions{cdfont=#1}%
\fi%
}
+\TUD@key{cdoldfonts}[true]{\TUDoptions{cdoldfont=#1}}
%<*class>
\AtEndOfClass%
%</class>
@@ -1039,10 +975,15 @@
% für das Laden der \TUDScript-Klasse ein Schlüssel definiert, der den Wert an
% \KOMAScript{} weiterreicht.
% \begin{macrocode}
-\newif\if@tud@x@scr@fontsize@set
+%<*class>
+\tud@newif\if@tud@x@scr@fontsize@set
+%</class>
\TUD@key{fontsize}{%
- \TUD@set@dimenkey{fontsize}{\@tempa}{#1}%
+ \TUD@set@dimkey{fontsize}{\@tempa}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \ifdim\@tempa<\p@\relax%
+ \FamilyKeyStateUnknownValue%
+ \else%
% \end{macrocode}
% Für das Paket wird geprüft, ob die gerade abgearbeitete Option global als
% Klassenoption angegeben wurde. Für den Fall, dass dies nicht so ist~-- die
@@ -1050,20 +991,39 @@
% dem Hinweis auf das vorgeschlagene Vorgehen ausgegeben.
% \begin{macrocode}
%<*package>
- \@expandtwoargs\in@{,\CurrentOption,}{,\@globaloptionslist,}%
- \ifin@\else%
- \edef\tud@res@a{%
- \noexpand\PackageWarning{tudscrfonts}%
- {%
- The key `\CurrentOption' should only be\MessageBreak%
- used as class option%
+ \@expandtwoargs\in@{,\CurrentOption,}{,\@globaloptionslist,}%
+ \ifin@\else%
+ \edef\tud@res@a{%
+ \noexpand\PackageWarning{tudscrfonts}%
+ {%
+ The key `\CurrentOption' should only be\MessageBreak%
+ used as class option%
+ }%
}%
- }%
- \expandafter\AtEndOfPackage\expandafter{\tud@res@a}%
- \fi
+ \expandafter\AtEndOfPackage\expandafter{\tud@res@a}%
+ \fi%
%</package>
- \@tud@x@scr@fontsize@settrue%
- \TUD@KOMAoptions{fontsize=#1}%
+%<*class>
+ \@tud@x@scr@fontsize@settrue%
+%</class>
+ \TUD@KOMAoptions{fontsize=#1}%
+ \fi%
+ \fi%
+% \end{macrocode}
+% Für ungültige Werte wird eine Warnung ausgegeben.
+% \begin{macrocode}
+ \ifx\FamilyKeyState\FamilyKeyStateUnknownValue%
+%<*class>
+ \ClassWarningNoLine{\TUD@Class@Name}%
+%</class>
+%<*package>
+ \PackageWarningNoLine{tudscrfonts}%
+%</package>
+ {%
+ The value for option `fontsize' must be a dimension\MessageBreak%
+ and at least 1pt but `#1' was given%
+ }%
+ \FamilyKeyStateProcessed%
\fi%
}
%<*class>
@@ -1076,8 +1036,9 @@
\RelaxFamilyKey{TUD}{fontsize}%
\DefineFamilyMember{KOMA}%
\DefineFamilyKey{KOMA}{fontsize}{%
- \@tud@x@scr@fontsize@settrue%
+ \FamilyKeyStateUnknownValue%
%<*class>
+ \@tud@x@scr@fontsize@settrue%
\ClassWarning{\TUD@Class@Name}%
%</class>
%<*package>
@@ -1087,8 +1048,7 @@
The key `fontsize=#1' should only be\MessageBreak%
used as class option%
}%
- \TUD@SpecialOptionAtDocument{tud@font@set}%
- \FamilyKeyStateProcessed%
+ \TUD@SpecialOptionAtDocument{tud@relspacing@set}%
}%
}
% \end{macrocode}
@@ -1096,15 +1056,15 @@
% \end{option}^^A fontsize
% \begin{option}{relspacing}
% \changes{v2.05}{2015/12/17}{neu}^^A
+% \changes{v2.06o}{2022/08/08}{stärkerer Einfluss der Schriftgröße}^^A
% \begin{macro}{\if@tud@relspacing}
% \changes{v2.05}{2015/12/17}{neu}^^
% 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.
+% werden. Die Längendefinition erfolgt durch das Makro \cs{tud@relspacing@set}.
% \begin{macrocode}
-\newif\if@tud@relspacing
+\tud@newif\if@tud@relspacing
\TUD@key{relspacing}[true]{%
\TUD@set@numkey{relspacing}{@tempa}{%
\TUD@bool@numkey,%
@@ -1117,7 +1077,7 @@
\or% true
\@tud@relspacingtrue%
\fi%
- \TUD@SpecialOptionAtDocument{tud@font@skip@set}%
+ \TUD@SpecialOptionAtDocument{tud@relspacing@set}%
\fi%
}
% \end{macrocode}
@@ -1189,7 +1149,7 @@
}%
\edef\tud@res@a{%
\endgroup%
- \noexpand\DeclareRobustCommand%
+ \noexpand\renewrobustcmd*%
\expandafter\noexpand\csname #1family\endcsname{%
\expandafter\noexpand\csname tud@x@fontspec@fam@#2\endcsname%
}%
@@ -1227,13 +1187,15 @@
% des \CDs aktiviert. Dabei werden die Pakete \pkg{fontspec} und \pkg{mweights}
% beachtet.
% \begin{macrocode}
-\newcommand*\tud@font@set{%
+\newcommand*\tud@font@set[1][\tud@cdfont@wrn]{%
% \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.
+% Ist die Verwendung der Schriften des \CDs gewünscht, obwohl diese nicht
+% installiert sind, werden die entsprechenden Warnungen ausgegeben. Danach
+% werden die Schnitte der Standardschriften gesichert, um diese später
+% vollständig wiederherstellen zu können.
% \begin{macrocode}
\if@tud@cdfont@active%
+ #1%
\tud@cs@store{rmdefault}%
\tud@cs@store{sfdefault}%
\tud@cs@store{ttdefault}%
@@ -1263,16 +1225,6 @@
\tud@cs@store{ttfamily}%
\fi%
% \end{macrocode}
-% Zunächst werden die Standardwerte für die Schriftfamilien gesetzt.
-% \begin{macrocode}
- \renewcommand*\rmdefault{\sfdefault}%
- \renewcommand*\updefault{n}%
- \renewcommand*\itdefault{it}%
- \renewcommand*\sldefault{sl}%
- \renewcommand*\familydefault{\sfdefault}%
- \renewcommand*\seriesdefault{\mddefault}%
- \renewcommand*\shapedefault{\updefault}%
-% \end{macrocode}
% Danach erfolgt die Definition der Schriften des \CDs.
% \begin{macrocode}
\tud@cdfont@set%
@@ -1332,7 +1284,7 @@
% definiert. Danach wird gewählte Standardschrift aktiviert und für die Klassen
% das Layout erneuert.
% \begin{macrocode}
- \tud@font@skip@set%
+ \tud@relspacing@set%
\normalfont\selectfont%
%<*class>
\tud@cd@process%
@@ -1365,6 +1317,16 @@
% Hiermit erfolgt die eigentliche Auswahl der Schriftfamilien für das \CD.
% \begin{macrocode}
\newcommand*\tud@cdfont@set{%
+% \end{macrocode}
+% Zunächst werden die Standardwerte für die Schriftfamilien gesetzt.
+% \begin{macrocode}
+ \renewcommand*\rmdefault{\sfdefault}%
+ \renewcommand*\updefault{n}%
+ \renewcommand*\itdefault{it}%
+ \renewcommand*\sldefault{sl}%
+ \renewcommand*\familydefault{\sfdefault}%
+ \renewcommand*\seriesdefault{\mddefault}%
+ \renewcommand*\shapedefault{\updefault}%
\if@tud@cdfont@fam@exist%
\if@tud@cdfont@lining%
\let\tud@cdfont@fam\tud@cdfont@fam@lf%
@@ -1385,11 +1347,6 @@
\fi%
\tud@cdfont@@set%
\fi%
-% \end{macrocode}
-% Sollte versucht werden, die Schriften zu aktivieren, obwohl diese nicht
-% installiert sind, werden die entsprechenden Warnungen ausgegeben.
-% \begin{macrocode}
- \tud@cdfont@wrn%
}
\newcommand*\tud@cdfont@md{m}
\newcommand*\tud@cdfont@bf{b}
@@ -1463,13 +1420,13 @@
}
% \end{macrocode}
% Die an \cs{tud@cdfont@declare@symb} übergebenen Letter für Auswahlbefehle
-% erhalten \cs{tud@cdfont@symbol@\dots} als Präfix. Da so der ursprüngliche
+% erhalten |\tud@cdfont@symbol@...| als Präfix. Da so der ursprüngliche
% Befehlsname verändert wird, würde dieser Befehlsname auch verwendet werden,
% wenn dieser in einem fragilen Kontext genutzt wird (siehe \cs{@changed@cmd}).
% Deshalb wird im Anschluss der neue Befehl selbst robust definiert, damit
% eine spätere Expansion nach der Zuweisung mit \cs{tud@cs@letltx} nicht in
-% \cs{tud@cdfont@symbol@\meta{symbol}} resultiert sondern in jedem Fall
-% \cs{\meta{symbol}} erhalen bleibt.
+% |\tud@cdfont@symbol@|\meta{Letter} resultiert sondern in jedem Fall
+% |\|\meta{Letter} erhalten bleibt.
% \begin{macrocode}
\newcommand*\tud@DeclareTextSymbol[4]{%
\begingroup%
@@ -1501,7 +1458,7 @@
% welche mit \cs{tud@cdfont@declare@symb} deklariert wurden, und den normalen
% gewechselt werden.
% \begin{macrocode}
-\newtoks\tud@cdfont@symbols@toks
+\tud@newtoks\tud@cdfont@symbols@toks
\newcommand*\tud@cdfont@symbols@set{%
% \end{macrocode}
% Die Sicherung der alten Definitionen erfolgt nur einmalig. Die Liste der
@@ -1537,6 +1494,7 @@
% \begin{macro}{\tud@cdfont@declare@textsymb}
% \changes{v2.06g}{2020/06/18}{neu}^^A
% Die Definition der Textsymbole für die \val{TS1}-Kodierung.
+% \ToDo{weitere Symbole (\cs{textohm} etc.) der Open Sans hinzufügen}[v2.07]
% \begin{macrocode}
\newcommand*\tud@cdfont@declare@textsymb{%
\tud@cdfont@declare@symb{textleftarrow}{TS1}{iwona}{24}%
@@ -1548,10 +1506,11 @@
}
% \end{macrocode}
% \end{macro}^^A \tud@cdfont@declare@textsymb
-% \begin{macro}{\tud@font@skip@set}
+% \begin{macro}{\tud@relspacing@set}
% \changes{v2.04}{2015/02/17}{neu}^^A
-% \begin{macro}{\tud@font@skip@@set}
+% \begin{macro}{\tud@relspacing@@set}
% \changes{v2.04}{2015/03/27}{neu}^^A
+% \changes{v2.06o}{2022/08/08}{\cs{abovedisplayskip} als Referenz}^^A
% \begin{macro}{\smallskipamount}
% \changes{v2.04}{2015/04/24}{Wert abhängig von der Schriftgröße}^^A
% \begin{macro}{\medskipamount}
@@ -1567,40 +1526,58 @@
% Abstände angepasst, die bei den \KOMAScript-Klassen nicht abhängig von dieser
% sind.
% \begin{macrocode}
-\newcommand*\tud@font@skip@set{%
+\newcommand*\tud@relspacing@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%
+ \tud@cslength@store{smallskipamount}%
+ \tud@cslength@store{medskipamount}%
+ \tud@cslength@store{bigskipamount}%
+ \tud@cslength@store{abovecaptionskip}%
+ \tud@cslength@store{belowcaptionskip}%
+ \tud@cslength@store{columnsep}%
+ \tud@relspacing@@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}%
+ \tud@cslength@restore{smallskipamount}%
+ \tud@cslength@restore{medskipamount}%
+ \tud@cslength@restore{bigskipamount}%
+ \tud@cslength@restore{abovecaptionskip}%
+ \tud@cslength@restore{belowcaptionskip}%
+ \tud@cslength@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}%
+\newcommand*\tud@relspacing@@set{%
+ \tud@if@v@lower{2.06}{%
+ \bigskipamount=\partopsep%
+ \multiply\bigskipamount by 4%
+ }{%
+ \begingroup%
+ \tud@setdim\@tempdima{\dimexpr\abovedisplayskip\relax}%
+ \tud@setdim\@tempdimb{\@tempdima/3}%
+ \edef\tud@res@a{%
+ \endgroup%
+ \noexpand\tud@setglue\noexpand\bigskipamount{%
+ \the\@tempdima\@plus\the\@tempdimb\@minus\the\@tempdimb%
+ }%
+ }%
+ \tud@res@a%
+ }%
+ \medskipamount=\bigskipamount%
+ \divide\medskipamount by 2%
+ \smallskipamount=\bigskipamount%
+ \divide\smallskipamount by 4%
+ \tud@if@lengthregister{\abovecaptionskip}{%
+ \tud@setdim\abovecaptionskip{1\bigskipamount*5/6}%
+ }{}%
+ \tud@if@lengthregister{\belowcaptionskip}{%
+ \tud@setdim\belowcaptionskip{\z@}%
+ }{}%
+ \tud@setdim\columnsep{1\baselineskip*11/10}%
}
% \end{macrocode}
% \end{macro}^^A \columnsep
@@ -1609,10 +1586,14 @@
% \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
+% \end{macro}^^A \tud@relspacing@@set
+% \end{macro}^^A \tud@relspacing@set
% \begin{macro}{\tud@cdfont@init}
% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@cdfont@@init}
+% \changes{v2.06o}{2022/08/01}{neu}
+% \begin{macro}{\tud@cdfont@@@init}
+% \changes{v2.06o}{2022/08/01}{neu}
% \begin{macro}{\cdfontln}
% \changes{v2.06}{2018/06/29}{neu}^^A
% \begin{macro}{\cdfontrn}
@@ -1654,9 +1635,16 @@
% \begin{macro}{\textcdxs}
% \changes{v2.06}{2018/06/29}{neu}^^A
% Das Makro \cs{tud@cdfont@init} wird für die Defintion aller Befehle zur
-% Auswahl der Schriften des \CDs verwendet.
+% Auswahl der Schriften des \CDs verwendet. Dabei erfolgt die Definition der
+% Schriften selbst mit \cs{tud@cdfont@@init} und das Festlegen der Befehle zur
+% expliziten Schriftauswahl mit \cs{tud@cdfont@@@init}.
+% \ToDo{Condensed Schriften mit neuer Open Sans?}[v2.07]
% \begin{macrocode}
\newcommand*\tud@cdfont@init{%
+ \tud@cdfont@@init%
+ \tud@cdfont@@@init%
+}
+\newcommand*\tud@cdfont@@init{%
% \end{macrocode}
% Zur Nutztung der OTF"~Schriften werden mit \cs{tud@x@fontspec@init} alle
% benötigten Schriftfamilien mit ihren einzelnen Schriftschnitten definiert.
@@ -1721,36 +1709,41 @@
% definiert. Diese können so im Dokument unabhängig von der Option
% \opt{cdfont} genutzt werden.
% \begin{macrocode}
- \newrobustcmd*\cdfontln{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{n}}
- \newrobustcmd*\cdfontrn{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{n}}
- \newrobustcmd*\cdfontsn{\usefont{\encodingdefault}{\tud@cdfont@fam}{sb}{n}}
- \newrobustcmd*\cdfontbn{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{n}}
- \newrobustcmd*\cdfontxn{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{n}}
- \newrobustcmd*\cdfontli{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{it}}
- \newrobustcmd*\cdfontri{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{it}}
- \newrobustcmd*\cdfontsi{\usefont{\encodingdefault}{\tud@cdfont@fam}{sb}{it}}
- \newrobustcmd*\cdfontbi{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{it}}
- \newrobustcmd*\cdfontxi{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{it}}
+ \def\tud@res@a##1##2##3{%
+ \newrobustcmd*##1{\usefont{\f@encoding}{\tud@cdfont@fam}{##2}{##3}}%
+ }%
+ \tud@res@a\cdfontln{l}{n}%
+ \tud@res@a\cdfontrn{m}{n}%
+ \tud@res@a\cdfontsn{sb}{n}%
+ \tud@res@a\cdfontbn{b}{n}%
+ \tud@res@a\cdfontxn{eb}{n}%
+ \tud@res@a\cdfontli{l}{it}%
+ \tud@res@a\cdfontri{m}{it}%
+ \tud@res@a\cdfontsi{sb}{it}%
+ \tud@res@a\cdfontbi{b}{it}%
+ \tud@res@a\cdfontxi{eb}{it}%
% \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%
- \tud@cdfont@fallback\cdfontln{OpenSans-Light}{md}{up}
- \tud@cdfont@fallback\cdfontrn{OpenSans-Regular}{md}{up}
- \tud@cdfont@fallback\cdfontsn{OpenSans-SemiBold}{md}{up}
- \tud@cdfont@fallback\cdfontbn{OpenSans-Bold}{bf}{up}
- \tud@cdfont@fallback\cdfontxn{OpenSans-ExtraBold}{bf}{up}
- \tud@cdfont@fallback\cdfontli{OpenSans-LightItalic}{md}{it}
- \tud@cdfont@fallback\cdfontri{OpenSans-Italic}{md}{it}
- \tud@cdfont@fallback\cdfontsi{OpenSans-SemiBoldItalic}{md}{it}
- \tud@cdfont@fallback\cdfontbi{OpenSans-BoldItalic}{bf}{it}
- \tud@cdfont@fallback\cdfontxi{OpenSans-ExtraBoldItalic}{bf}{it}
+ \tud@cdfont@fallback\cdfontln{OpenSans-Light}{md}{up}%
+ \tud@cdfont@fallback\cdfontrn{OpenSans-Regular}{md}{up}%
+ \tud@cdfont@fallback\cdfontsn{OpenSans-SemiBold}{md}{up}%
+ \tud@cdfont@fallback\cdfontbn{OpenSans-Bold}{bf}{up}%
+ \tud@cdfont@fallback\cdfontxn{OpenSans-ExtraBold}{bf}{up}%
+ \tud@cdfont@fallback\cdfontli{OpenSans-LightItalic}{md}{it}%
+ \tud@cdfont@fallback\cdfontri{OpenSans-Italic}{md}{it}%
+ \tud@cdfont@fallback\cdfontsi{OpenSans-SemiBoldItalic}{md}{it}%
+ \tud@cdfont@fallback\cdfontbi{OpenSans-BoldItalic}{bf}{it}%
+ \tud@cdfont@fallback\cdfontxi{OpenSans-ExtraBoldItalic}{bf}{it}%
\fi%
+}
% \end{macrocode}
% Außerdem werden für die Schriften noch die entsprechenden Textauswahlbefehle
% bereitgestellt.
% \begin{macrocode}
+\newcommand*\tud@cdfont@@@init{%
\newcommand*\textcdln{}%
\newcommand*\textcdrn{}%
\newcommand*\textcdsn{}%
@@ -1793,6 +1786,8 @@
% \end{macro}^^A \cdfontsn
% \end{macro}^^A \cdfontrn
% \end{macro}^^A \cdfontln
+% \end{macro}^^A \tud@cdfont@@@init
+% \end{macro}^^A \tud@cdfont@@init
% \end{macro}^^A \tud@cdfont@init
% \begin{macro}{\univln}
% \begin{macro}{\univrn}
@@ -1817,7 +1812,7 @@
% Die Definition der Befehle der veralteten Schriften des \CDs.
% \begin{macrocode}
\if@tud@cdoldfont@active
- \renewcommand*\tud@cdfont@init{%
+ \renewcommand*\tud@cdfont@@init{%
\if@tud@cdfont@fam@exist%
\if@tud@x@fontspec@enabled%
\def\tud@res@a{%
@@ -1838,27 +1833,30 @@
% \end{macrocode}
% Die Schalter zur expliziten Auswahl für die \Univers-Schriftschnitte.
% \begin{macrocode}
- \newrobustcmd*\univln{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{n}}
- \newrobustcmd*\univrn{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{n}}
- \newrobustcmd*\univbn{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{n}}
- \newrobustcmd*\univxn{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{n}}
- \newrobustcmd*\univls{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{sl}}
- \newrobustcmd*\univrs{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{sl}}
- \newrobustcmd*\univbs{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{sl}}
- \newrobustcmd*\univxs{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{sl}}
+ \def\tud@res@a##1##2##3{%
+ \newrobustcmd*##1{\usefont{\f@encoding}{\tud@cdfont@fam}{##2}{##3}}%
+ }%
+ \tud@res@a\univln{l}{n}%
+ \tud@res@a\univrn{m}{n}%
+ \tud@res@a\univbn{b}{n}%
+ \tud@res@a\univxn{eb}{n}%
+ \tud@res@a\univls{l}{it}%
+ \tud@res@a\univrs{m}{it}%
+ \tud@res@a\univbs{b}{it}%
+ \tud@res@a\univxs{eb}{it}%
% \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%
- \tud@cdfont@fallback\univln{Univers-Light}{md}{up}
- \tud@cdfont@fallback\univrn{Univers}{md}{up}
- \tud@cdfont@fallback\univbn{Univers-Bold}{bf}{up}
- \tud@cdfont@fallback\univxn{Univers-Black}{bf}{up}
- \tud@cdfont@fallback\univls{Univers-LightOblique}{md}{sl}
- \tud@cdfont@fallback\univrs{Univers-Oblique}{md}{sl}
- \tud@cdfont@fallback\univbs{Univers-BoldOblique}{bf}{sl}
- \tud@cdfont@fallback\univxs{Univers-BlackOblique}{bf}{sl}
+ \tud@cdfont@fallback\univln{Univers-Light}{md}{up}%
+ \tud@cdfont@fallback\univrn{Univers}{md}{up}%
+ \tud@cdfont@fallback\univbn{Univers-Bold}{bf}{up}%
+ \tud@cdfont@fallback\univxn{Univers-Black}{bf}{up}%
+ \tud@cdfont@fallback\univls{Univers-LightOblique}{md}{it}%
+ \tud@cdfont@fallback\univrs{Univers-Oblique}{md}{it}%
+ \tud@cdfont@fallback\univbs{Univers-BoldOblique}{bf}{it}%
+ \tud@cdfont@fallback\univxs{Univers-BlackOblique}{bf}{it}%
\fi%
% \end{macrocode}
% Außerdem werden für die Schriften noch die entsprechenden Textauswahlbefehle
@@ -1893,26 +1891,6 @@
\newrobustcmd*\cdfontsi{\univrs}%
\newrobustcmd*\cdfontbi{\univbs}%
\newrobustcmd*\cdfontxi{\univxs}%
- \newcommand*\textcdln{}%
- \newcommand*\textcdrn{}%
- \newcommand*\textcdsn{}%
- \newcommand*\textcdbn{}%
- \newcommand*\textcdxn{}%
- \newcommand*\textcdli{}%
- \newcommand*\textcdri{}%
- \newcommand*\textcdsi{}%
- \newcommand*\textcdbi{}%
- \newcommand*\textcdxi{}%
- \DeclareTextFontCommand\textcdln{\cdfontln}%
- \DeclareTextFontCommand\textcdrn{\cdfontrn}%
- \DeclareTextFontCommand\textcdsn{\cdfontsn}%
- \DeclareTextFontCommand\textcdbn{\cdfontbn}%
- \DeclareTextFontCommand\textcdxn{\cdfontxn}%
- \DeclareTextFontCommand\textcdli{\cdfontli}%
- \DeclareTextFontCommand\textcdri{\cdfontri}%
- \DeclareTextFontCommand\textcdsi{\cdfontsi}%
- \DeclareTextFontCommand\textcdbi{\cdfontbi}%
- \DeclareTextFontCommand\textcdxi{\cdfontxi}%
% \end{macrocode}
% Anschließend wird für \DIN äquivalent verfahren.
% \begin{macrocode}
@@ -1937,7 +1915,7 @@
% Bei der Schriftauswahl wird die entsprechende Mathematikschrift aktiviert.
% \begin{macrocode}
\newrobustcmd*\tud@db{%
- \usefont{\encodingdefault}{\tud@cdfont@db}{b}{n}%
+ \usefont{\f@encoding}{\tud@cdfont@db}{b}{n}%
\if@tud@cdmath@active\mathversion{tuddin}\fi%
}%
\newrobustcmd*\dinbn{\tud@db}%
@@ -1956,7 +1934,7 @@
\PackageWarning{tudscrfonts}%
%</package>
{%
- Font `DIN-Bold' is not available and therefore\MessageBreak
+ Font `DIN-Bold' is not available and therefore\MessageBreak%
can not be used for headings%
}%
\global\let\tud@db@wrn\relax%
@@ -2018,8 +1996,6 @@
% \end{macro}^^A \tud@cdfont@fallback
% \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}{\textcd}
% \changes{v2.04}{2015/03/04}{neu}^^A
% \begin{macro}{\tud@cdfont@get}
@@ -2031,11 +2007,10 @@
% \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
+% \cs{tudfont}, mit welchem die Schriften des \TUDCDs 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{textcd} bereitgestellt, der die Auswahl der Schrift als
-% Textbefehl ermöglicht.
+% mit \cs{textcd} die Auswahl der Schrift über einen Textbefehl ermöglicht.
% \begin{macrocode}
\newcommand*\cdfont[1]{%
\tud@cdfont@get{#1}%
@@ -2055,7 +2030,7 @@
\renewcommand*\cdfont[1]{%
\tud@cdfont@get{#1}%
\ifx\@tempc\relax\else%
- \ifstr{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}%
+ \tud@if@strequal{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}%
\fi%
}%
\renewcommand*\textcd[2]{%
@@ -2063,29 +2038,29 @@
\ifx\@tempc\relax%
\textsf{#2}%
\else%
- \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}%
+ \tud@if@strequal{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}%
\fi%
}%
\fi
\newcommand*\tud@cdfont@get[1]{%
\tud@cdfont@trim\@tempa{#1}%
- \ifstr{\@tempa}{l}{\def\@tempc{ln}}{%
- \ifstr{\@tempa}{}{\def\@tempc{rn}}{%
- \ifstr{\@tempa}{r}{\def\@tempc{rn}}{%
- \ifstr{\@tempa}{s}{\def\@tempc{sn}}{%
- \ifstr{\@tempa}{b}{\def\@tempc{bn}}{%
- \ifstr{\@tempa}{x}{\def\@tempc{xn}}{%
- \ifstr{\@tempa}{li}{\def\@tempc{li}}{%
- \ifstr{\@tempa}{il}{\def\@tempc{li}}{%
- \ifstr{\@tempa}{i}{\def\@tempc{ri}}{%
- \ifstr{\@tempa}{ri}{\def\@tempc{ri}}{%
- \ifstr{\@tempa}{ir}{\def\@tempc{ri}}{%
- \ifstr{\@tempa}{si}{\def\@tempc{si}}{%
- \ifstr{\@tempa}{is}{\def\@tempc{si}}{%
- \ifstr{\@tempa}{bi}{\def\@tempc{bi}}{%
- \ifstr{\@tempa}{ib}{\def\@tempc{bi}}{%
- \ifstr{\@tempa}{xi}{\def\@tempc{xi}}{%
- \ifstr{\@tempa}{ix}{\def\@tempc{xi}}{%
+ \tud@if@strequal{\@tempa}{l} {\def\@tempc{ln}}{%
+ \tud@if@strequal{\@tempa}{} {\def\@tempc{rn}}{%
+ \tud@if@strequal{\@tempa}{r} {\def\@tempc{rn}}{%
+ \tud@if@strequal{\@tempa}{s} {\def\@tempc{sn}}{%
+ \tud@if@strequal{\@tempa}{b} {\def\@tempc{bn}}{%
+ \tud@if@strequal{\@tempa}{x} {\def\@tempc{xn}}{%
+ \tud@if@strequal{\@tempa}{li}{\def\@tempc{li}}{%
+ \tud@if@strequal{\@tempa}{il}{\def\@tempc{li}}{%
+ \tud@if@strequal{\@tempa}{i} {\def\@tempc{ri}}{%
+ \tud@if@strequal{\@tempa}{ri}{\def\@tempc{ri}}{%
+ \tud@if@strequal{\@tempa}{ir}{\def\@tempc{ri}}{%
+ \tud@if@strequal{\@tempa}{si}{\def\@tempc{si}}{%
+ \tud@if@strequal{\@tempa}{is}{\def\@tempc{si}}{%
+ \tud@if@strequal{\@tempa}{bi}{\def\@tempc{bi}}{%
+ \tud@if@strequal{\@tempa}{ib}{\def\@tempc{bi}}{%
+ \tud@if@strequal{\@tempa}{xi}{\def\@tempc{xi}}{%
+ \tud@if@strequal{\@tempa}{ix}{\def\@tempc{xi}}{%
\let\@tempc\relax%
%<*class>
\ClassWarning{\TUD@Class@Name}%
@@ -2099,20 +2074,20 @@
\if@tud@cdoldfont@active
\renewcommand*\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}}{%
+ \tud@if@strequal{\@tempa}{45} {\def\@tempc{ln}}{%
+ \tud@if@strequal{\@tempa}{55} {\def\@tempc{rn}}{%
+ \tud@if@strequal{\@tempa}{65} {\def\@tempc{bn}}{%
+ \tud@if@strequal{\@tempa}{75} {\def\@tempc{xn}}{%
+ \tud@if@strequal{\@tempa}{45oblique}{\def\@tempc{ls}}{%
+ \tud@if@strequal{\@tempa}{55oblique}{\def\@tempc{rs}}{%
+ \tud@if@strequal{\@tempa}{65oblique}{\def\@tempc{bs}}{%
+ \tud@if@strequal{\@tempa}{75oblique}{\def\@tempc{xs}}{%
+ \tud@if@strequal{\@tempa}{oblique45}{\def\@tempc{ls}}{%
+ \tud@if@strequal{\@tempa}{oblique55}{\def\@tempc{rs}}{%
+ \tud@if@strequal{\@tempa}{oblique65}{\def\@tempc{bs}}{%
+ \tud@if@strequal{\@tempa}{oblique75}{\def\@tempc{xs}}{%
+ \tud@if@strequal{\@tempa}{din} {\def\@tempc{dinbn}}{%
+ \tud@if@strequal{\@tempa}{din65} {\def\@tempc{dinbn}}{%
\let\@tempc\relax%
%<*class>
\ClassWarning{\TUD@Class@Name}%
@@ -2125,8 +2100,7 @@
}%
\fi
\newcommand*\tud@cdfont@trim[2]{%
- \protected@edef\@tempa{\trim@spaces{#2}}%
- \tud@lowerstring{\@tempa}{\@tempa}%
+ \tud@strlowercase\@tempa{\trim@spaces{#2}}%
\tud@cdfont@@trim{ }{}%
\tud@cdfont@@trim{-}{}%
\tud@cdfont@@trim{_}{}%
@@ -2135,9 +2109,9 @@
\tud@cdfont@@trim{light}{l}%
\tud@cdfont@@trim{regular}{r}%
\tud@cdfont@@trim{book}{r}%
- \tud@cdfont@@trim{semibold}{s}%
+ \tud@cdfont@@trim{semi}{s}%
\tud@cdfont@@trim{demi}{s}%
- \tud@cdfont@@trim{extrabold}{x}%
+ \tud@cdfont@@trim{extra}{x}%
\tud@cdfont@@trim{black}{x}%
\tud@cdfont@@trim{bold}{b}%
\tud@cdfont@@trim{italic}{i}%
@@ -2147,8 +2121,7 @@
}
\if@tud@cdoldfont@active
\renewcommand*\tud@cdfont@trim[2]{%
- \protected@edef\@tempa{\trim@spaces{#2}}%
- \tud@lowerstring{\@tempa}{\@tempa}%
+ \tud@strlowercase\@tempa{\trim@spaces{#2}}%
\tud@cdfont@@trim{ }{}%
\tud@cdfont@@trim{-}{}%
\tud@cdfont@@trim{_}{}%
@@ -2183,7 +2156,6 @@
% \end{macro}^^A \tud@cdfont@trim
% \end{macro}^^A \tud@cdfont@get
% \end{macro}^^A \textcd
-% \end{macro}^^A \tudfont
% \end{macro}^^A \cdfont
%
% \iffalse
@@ -2258,7 +2230,7 @@
\let\tud@ttfont@fam\ttdefault%
\or% roboto
\let\tud@ttfont@fam\tud@ttfont@rb%
- \or% lmodern
+ \else% lmodern
\let\tud@ttfont@fam\tud@ttfont@lm%
\fi%
\ifcase\tud@ttfont@num\relax\else% !false
@@ -2267,7 +2239,7 @@
% Das Setzen der TypeWriter-Schriften aus dem Paket \pkg{lmodern} erfolgt nur,
% wenn diese nicht standardmäßig durch \pkg{fontspec} aktiviert ist.
% \begin{macrocode}
- \ifx\ttdefault\tud@ttfont@fam\else%
+ \ifx\tud@ttfont@fam\ttdefault\else%
\tud@x@fontspec@set{tt}{\tud@ttfont@fam}%
\fi%
\else%
@@ -2321,6 +2293,8 @@
% \end{macro}^^A \tud@ttfont@set
% \begin{macro}{\tud@ttfont@init}
% \changes{v2.06}{2018/07/12}{neu}^^A
+% \changes{v2.06o}{2022/08/01}{Anpassungen für \val{TS1}-Kodierung; wird immer
+% definiert und \cs{DeclareEncodingSubset} wird verwendet}^^A
% \begin{macro}{\tud@ttfont@rb@scale}
% \changes{v2.06}{2018/08/30}{neu}^^A
% Mit \cs{tud@ttfont@init} erfolgt die Defintion der TypeWriter-Schriften.
@@ -2380,7 +2354,7 @@
\edef\tud@ttfont@rb@scale{s*[\tud@ttfont@rb@scale]}%
\begingroup%
\def\tud@res@c##1##2{%
- \tud@lowerstring\tud@res@a{##1}%
+ \tud@strlowercase\tud@res@a{##1}%
\DeclareFontFamily{##1}{\tud@ttfont@rb}{\hyphenchar\font=\m@ne}%
% \end{macrocode}
% Das temporäre Makro verlangt im ersten Argument die NFSS-Serie, im zweiten
@@ -2389,10 +2363,10 @@
% \begin{macrocode}
\def\tud@res@b####1####2####3{%
\DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{n}{%
- <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-\tud@res@a%
+ <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-\tud@res@a%
}{}%
\DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{it}{%
- <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-\tud@res@a%
+ <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-\tud@res@a%
}{}%
\DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{sl}{%
<->ssub*\tud@ttfont@rb/####1/it%
@@ -2403,10 +2377,10 @@
% \begin{macrocode}
\ifbool{##2}{%
\DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{sc}{%
- <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-sc-\tud@res@a%
+ <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-sc-\tud@res@a%
}{}%
\DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{scit}{%
- <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-sc-\tud@res@a%
+ <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-sc-\tud@res@a%
}{}%
\DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{scsl}{%
<->ssub*\tud@ttfont@rb/####1/scit%
@@ -2421,8 +2395,29 @@
}%
\tud@res@c{OT1}{true}%
\tud@res@c{T1}{true}%
- \ifcsundef{T@TS1}{}{\tud@res@c{TS1}{false}}%
- \endgroup%
+% \end{macrocode}
+% Mit \LaTeXe~2020/02/02 wird die \val{TS1}-Kodierung immer definiert und
+% gleichzeitg ein Kompatibilitätslevel für verschiedene Schriftfamilien
+% eingeführt. Da hier eine Schriftfamilie für die skalierte \texttt{RobotoMono}
+% definiert wird, wird der Kompatibilitätslevel dementsprechend übernommen.
+% \begin{macrocode}
+ \tud@res@c{TS1}{false}%
+ \def\tud@res@a{\endgroup}%
+ \def\tud@res@b{TS1:RobotoMono-TLF}%
+ \ifcsundef{\tud@res@b}{%
+%<*class>
+ \ClassWarningNoLine{\TUD@Class@Name}%
+%</class>
+%<*package>
+ \PackageWarningNoLine{tudscrfonts}%
+%</package>
+ {`\tud@res@b' encoding subset undefinied}%
+ }{%
+ \eappto\tud@res@a{%
+ \noexpand\DeclareEncodingSubset{TS1}{tudtt}{\csuse{\tud@res@b}}%
+ }%
+ }%
+ \tud@res@a%
\fi%
\fi%
}
@@ -2437,28 +2432,31 @@
%
% \subsubsection{Schriften für den Mathematiksatz}
%
-% Für den mathematischen Satz werden ergänzend zur \OpenSans die Symbole aus
-% dem Paket \pkg{mdsymbol} genutzt. Diese werden bereits bei der Erstellung der
-% Type1-Schriften eingefügt.
+% Da es so gut wie keine freien OpenType-Schriften für den mathmatischen
+% Formelsatz gibt, werden \emph{immer} Type1-Schriften verwendet, falls diese
+% installiert sind.
%
% Die veralteten Schriften des \CDs \Univers und \DIN besitzen keine Glyphen für
% den Mathematiksatz. Daher 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 die darin enthaltenen Glyphen direkt bei der Installation
-% der Schriften eingebunden werden.
+% für \LaTeX{} ist relativ gering. Dennoch schien das \pkg{cmbright}-Paket
+% dafür geeignet, weshalb die darin enthaltenen Glyphen direkt bei der
+% Installation der Schriften eingebunden werden.
%
% \begin{option}{cdmath}
% \begin{macro}{\if@tud@cdmath@active}
% \begin{macro}{\if@tud@cdmath@active@locked}
% Mit dieser Option kann die genutzte Standardschrift für den Mathematiksatz
% für das gesamte Dokument umgestellt werden.
-% \ToDo{%
+% \ToDo{
% Option evtl. überarbeiten und nicht mehr im Dokument zulassen;
% andernfalls müssten alle bereitgestellte Befehle für den Mathematiksatz
% gesichert und neu definiert werden, weil diese ggf. von anderen Paketen
% umdefiniert werden. Bspw. \cs{the}\cs{mathcode`!}
% }[v2.07]
+% \ToDo{cdmath=disabled; s. \protecting{\GitHubRepo<45>; \Forum<511>}}[v2.07]
+% \ToDo{griech. Lettern als Symbole (nicht tudupgrk/tuditgrk); boldmath}[v2.07]
+% \ToDo{inverse Suche: \protecting{\Forum<539>}}[v2.07]
% \begin{macrocode}
\tud@locked@newbool{@tud@cdmath@active}
\tud@locked@bool@preset{@tud@cdmath@active}{true}%
@@ -2538,10 +2536,10 @@
% \changes{v2.06}{2019/06/13}{neu}^^A
% \begin{macro}{\if@tud@lgrgreeks}
% \changes{v2.06}{2019/06/13}{neu}^^A
-% Mit dieser Option lässt sich die Nutzung von griechischen Glyphen der aus der
+% Mit dieser Option lässt sich die Nutzung von griechischen Lettern der aus der
% LGR-Kodierung der aktuellen Schriftfamilie für den Mathematiksatz aktivieren.
% \begin{macrocode}
-\newif\if@tud@lgrgreeks
+\tud@newif\if@tud@lgrgreeks
\TUD@key{lgrgreeks}[true]{\TUD@set@ifkey{lgrgreeks}{@tud@lgrgreeks}{#1}}
\TUD@key{lgrgreek}[true]{\TUDoptions{lgrgreeks=#1}}
\TUD@key{LGRgreeks}[true]{\TUDoptions{lgrgreeks=#1}}
@@ -2607,8 +2605,8 @@
% \changes{v2.06}{2018/07/17}{neu}^^A
% \begin{macro}{\tud@math@loop@greeks@lc}
% \changes{v2.06}{2018/07/17}{neu}^^A
-% Um Änderungen an den griechischen Glyphen vornehmen zu können, wird das Makro
-% \cs{tud@math@loop@greeks@all} definiert, mit dem eine Namensliste der Glyphen
+% Um Änderungen an den griechischen Lettern vornehmen zu können, wird das Makro
+% \cs{tud@math@loop@greeks@all} definiert, mit dem eine Namensliste der Lettern
% durchlaufen wird. Dabei wird in Majuskeln und Minuskeln unterschieden.
% \begin{macrocode}
\newcommand*\tud@math@loop@greeks@all[1]{%
@@ -2636,9 +2634,9 @@
% Hiermit werden die beiden Symbolschriften \val{tudupgrk} und \val{tuditgrk}
% in der LGR-Kodierung definiert. Diese werden insbesondere für die \OpenSans
% benötigt, da das Paket \pkg{opensans} keine Schriften in mathematischen
-% Kodierungen enthält. Das etrste Argument enthält die zu deklarierende
+% Kodierungen enthält. Das erste Argument enthält die zu deklarierende
% Schriftfamilie, zweites und drittes Argument die Schriftstärke für normale
-% und fette Glyphen, die letzten beiden die Schriftgestalt für aufrechte und
+% und fette Lettern, die letzten beiden die Schriftgestalt für aufrechte und
% kursive Variante.
% \begin{macrocode}
\newcommand*\tud@math@declare@lgrgreeks[5]{%
@@ -2668,11 +2666,11 @@
% \changes{v2.06}{2019/06/19}{neu}^^A
% \changes{v2.06n}{2021/07/15}{\cs{mathord} statt \cs{mathalpha}}^^A
% Es gibt eine Vielzahl von Paketen, die das Setzen von aufrechten griechischen
-% Glyphen adressieren. Allerdings gibt es keinen einheitlichen Standard, was
+% Lettern adressieren. Allerdings gibt es keinen einheitlichen Standard, was
% die Nomenklatur der Auswahlbefehle betrifft. Mit diesem Makro wird nach den
% am häufigsten auftretenden Varianten für die Auswahl für aufrechte und
-% kursive Glyphen gesucht, um diese auf die von \TUDScript genutzte Nomenklatur
-% (\cs{up\meta{Letter}}, \cs{it\meta{Letter}}, \cs{other\meta{Letter}})
+% kursive Lettern gesucht, um diese auf die von \TUDScript genutzte Nomenklatur
+% (|\up|\meta{Letter}, |\it|\meta{Letter}, |\other|\meta{Letter})
% abzubilden, damit diese unabhängig von der Einstellung für \opt{cdmath}
% genutzt werden kann und somit neben den normalen Makros zusätzliche Befehle
% für das explizite Auswählen aufrechter und kursiver Lettern bereitstehen.
@@ -2692,15 +2690,15 @@
\ifcsundef{other#1}{\ifcsundef{#1other}{}{\csletcs{other#1}{#1other}}}{}%
}
% \end{macrocode}
-% Einige Pakete stellen für griechische Majuskeln die Befehle \cs{var\dots}
+% Einige Pakete stellen für griechische Majuskeln Befehle |\var|\meta{Letter}
% bereit, um diese im kursiven Schnitt zu setzen. Weiterhin existiert für
-% aufrechte Majuskeln auch noch die Form \cs{Up\meta{Letter}}. Diese werden
+% aufrechte Majuskeln auch noch die Form |\Up|\meta{Letter}. Diese werden
% ebenfalls ausgewertet und ggf. auf die \TUDScript-Nomenklatur abgebildet.
% \begin{macrocode}
\newcommand*\tud@math@map@@@greeks[1]{%
\ifcsundef{it#1}{\ifcsundef{var#1}{}{\csletcs{it#1}{var#1}}}{}%
\ifcsundef{up#1}{%
- \tud@lowerstring\tud@res@a{#1}%
+ \tud@strlowercase\tud@res@a{#1}%
\edef\tud@res@a{Up\tud@res@a}%
\ifcsundef{\tud@res@a}{}{\csletcs{up#1}{\tud@res@a}}%
}{}%
@@ -2711,7 +2709,7 @@
% \val{operators} und \val{letters} geprüft, ob diese in den Kodierungen
% \val{OT1} bzw. \val{OML} genutzt werden. Trifft dies zu, so werden die
% Schriftfamilien der Symbolschriften genutzt, um die Auswahlbefehle für die
-% griechischen Glyphen zu definieren, sofern dies noch notwendig ist.
+% griechischen Lettern zu definieren, sofern dies noch notwendig ist.
% \begin{macrocode}
\newcommand*\tud@math@supplement@greeks{%
% \end{macrocode}
@@ -2742,7 +2740,7 @@
}%
\tud@cs@use{mv@normal}%
\let\tud@res@c\@empty%
- \ifstr{\tud@math@letters@enc}{\detokenize{OML}}{%
+ \tud@if@strequal{\tud@math@letters@enc}{OML}{%
\def\tud@res@a##1{%
\ifcsundef{it##1}{%
\eappto\tud@res@c{%
@@ -2755,7 +2753,7 @@
\tud@res@cnt=\z@\relax%
\tud@math@loop@greeks@all\tud@res@a%
}{}%
- \ifstr{\tud@math@operators@enc}{\detokenize{OT1}}{%
+ \tud@if@strequal{\tud@math@operators@enc}{OT1}{%
\def\tud@res@a##1{%
\ifcsundef{up##1}{%
\eappto\tud@res@c{%
@@ -2770,7 +2768,7 @@
}{}%
% \end{macrocode}
% Mit der Option \opt{lgrgreeks} besteht zusätzlich die Möglichkeit, fehlende
-% Glyphen aus einer potenziell sinnvollen Schriftfamilie in der LGR-Kodierung
+% Lettern aus einer potenziell sinnvollen Schriftfamilie in der LGR-Kodierung
% zu ergänzen. Wird eine solche gefunden, wird diese in \cs{tud@res@a} abgelegt.
% \begin{macrocode}
\let\tud@res@a\@empty%
@@ -2800,7 +2798,7 @@
\ifx\tud@res@a\@empty\else%
% \end{macrocode}
% Mit der gefunden LGR-Schriftfamilie werden alle bisher nicht vorhanden
-% aufrechte und kursive griechische Glyphen aus den entsprechenden Slots
+% aufrechte und kursive griechische Lettern aus den entsprechenden Slots
% ergänzt.
% \begin{macrocode}
\tud@math@declare@lgrgreeks{\tud@res@a}%
@@ -2865,20 +2863,20 @@
% \end{macro}^^A \tud@math@map@greeks
% \begin{macro}{\tud@math@checkslanted@greeks}
% \changes{v2.05d}{2016/09/22}{neu}^^A
-% Für die Verwendung der griechischen Glyphen im Mathematikmodus wird versucht,
+% Für die Verwendung der griechischen Lettern im Mathematikmodus wird versucht,
% ein hohes Maß an Kompatibilität für andere Pakete zu gewährleisten. Es wird
% versucht zu erkennen, ob Pakete mit einer Option wie \opt{slantedGreek},
% \opt{frenchmath} oder ähnlichem geladen wurde. Hierfür wird nach Definitionen
% für \cs{upalpha} als auch \cs{itGamma} gesucht. Existieren die Makros nicht,
% wird zumindest auf die aktuelle Definition von \cs{Gamma} geprüft und mit der
-% standardmäßigen Variant der Glyphe verglichen. Wurde eine passende Definition
-% gefunden, wird die Option \opt{slantedgreek} voreingestellt.
+% standardmäßigen Variante der Letter verglichen. Wurde eine passende
+% Definition gefunden, wird die Option \opt{slantedgreek} voreingestellt.
% \begin{macrocode}
\newcommand*\tud@math@checkslanted@greeks{%
\begingroup%
% \end{macrocode}
% Wird keine Änderung durch Pakete erkannt, werden ab \TUDScript-Version~v2.06
-% die Glyphen kursiv gesetzt. Dies betrifft insbesondere die Majuskeln, welche
+% die Lettern kursiv gesetzt. Dies betrifft insbesondere die Majuskeln, welche
% bei \LaTeX{} normalerweise aufrecht gesetzt werden.
% \begin{macrocode}
\def\tud@res@c{%
@@ -2889,14 +2887,10 @@
}%
}%
\@tud@res@swafalse%
- \ifcsdef{upalpha}{%
- \ifx\upalpha\alpha%
- \@tud@res@swatrue%
- \fi%
- }{}%
+ \ifundef{\upalpha}{}{\ifx\upalpha\alpha\@tud@res@swatrue\fi}%
% \end{macrocode}
% Existiert \cs{upalpha} und ist mit \cs{alpha} identisch, werden \emph{alle}
-% griechischen Glyphen aufrecht gesetzt.
+% griechischen Lettern aufrecht gesetzt.
% \begin{macrocode}
\if@tud@res@swa%
\def\tud@res@c{\TUD@key@preset{slantedgreek}{false}}%
@@ -2904,23 +2898,20 @@
% \end{macrocode}
% Existiert \cs{itGamma} und ist mit \cs{Gamma} identisch oder\dots
% \begin{macrocode}
- \ifcsdef{itGamma}{%
- \ifx\itGamma\Gamma%
- \@tud@res@swatrue%
- \fi%
- }{%
+ \ifundef{\itGamma}{}{\ifx\itGamma\Gamma\@tud@res@swatrue\fi}%
% \end{macrocode}
-% \dots\cs{Gamma} entspricht einer möglichen Standarddefnition,\dots
+% \dots\cs{Gamma} entspricht einer kursiven Standarddefnition, \dots
% \begin{macrocode}
+ \if@tud@res@swa\else%
\let\tud@res@a\relax%
\let\tud@res@b\relax%
\DeclareMathSymbol{\tud@res@a}{\mathalpha}{letters}{0}%
\DeclareMathSymbol{\tud@res@b}{\mathord}{letters}{0}%
- \ifx\Gamma\tud@res@a\relax\@tud@res@swatrue\fi%
- \ifx\Gamma\tud@res@b\relax\@tud@res@swatrue\fi%
- }%
+ \ifx\Gamma\tud@res@a\@tud@res@swatrue\fi%
+ \ifx\Gamma\tud@res@b\@tud@res@swatrue\fi%
+ \fi%
% \end{macrocode}
-% \dots werden \emph{alle} griechischen Glyphen kursiv gesetzt.
+% \dots werden \emph{alle} griechischen Lettern kursiv gesetzt.
% \begin{macrocode}
\if@tud@res@swa%
\def\tud@res@c{\TUD@key@preset{slantedgreek}{true}}%
@@ -2933,70 +2924,27 @@
% \end{macro}^^A \tud@math@checkslanted@greeks
% \begin{macro}{\tud@cdmath@init}
% \changes{v2.06}{2018/07/02}{neu}^^A
+% \changes{v2.06a}{2019/07/09}{Bugfix für \pkg{mathastext} Eingabekodierung}^^A
% \begin{macro}{\tud@cdmath@@init}
% \changes{v2.06}{2018/07/02}{neu}^^A
-% \changes{v2.06a}{2019/07/09}{Bugfix für \pkg{mathastext} Eingabekodierung}^^A
-% \begin{macro}{\tud@x@mathastext@enc}
-% \changes{v2.06a}{2019/07/09}{neu}^^A
-% \begin{macro}{\mv@tudnormal}
-% \begin{macro}{\mv@tudbold}
-% \begin{macro}{\mv@tuddin}
+% \begin{macro}{\tud@cdmath@@@init}
+% \changes{v2.06o}{2022/08/01}{neu}
+% \begin{macro}{\tud@cdmath@@@@@init}
+% \changes{v2.06o}{2022/08/01}{neu}
+% \begin{macro}{\tud@cdmath@set}
+% \changes{v2.06o}{2022/08/01}{neu}
+% \begin{macro}{\tud@cdmath@normal@name}
+% \changes{v2.06o}{2022/08/01}{neu}
+% \begin{macro}{\tud@cdmath@bold@name}
+% \changes{v2.06o}{2022/08/01}{neu}
% \begin{macro}{\tud@mathversion}
% \changes{v2.06}{2019/06/17}{neu}^^A
% \begin{macro}{\MTDeclareVersion}
% \changes{v2.06}{2019/06/17}{neu}^^A
-% \begin{macro}{\MTversion@@}
-% \changes{v2.06}{2019/06/17}{neu}^^A
% Die folgenden Befehle dienen allesamt für das Bereitstellen der Schriften des
% \CDs im mathematischen Satz. Hierbei kommt das Paket \pkg{mathastext} zum
% Einsatz, falls \OpenSans verwendet wird.
% \begin{macrocode}
-\newcommand*\mv@tudnormal{}
-\newcommand*\mv@tudbold{}
-\newcommand*\mv@tuddin{}
-% \end{macrocode}
-% Um das Umschalten der Mathematikversion mit \cs{mathversion} auch nutzen zu
-% können, wenn \pkg{mathastext} für die Schriften des \CDs aktiv ist, wird ein
-% Wrappermakro benötigt, welches im Bedarfsfall\cs{MTversion*} aufruft. Hierfür
-% wird zunächst auf die gewünschte Mathematikversion, danach der originale
-% Befehl \cs{mathversion} wiederhergestellt, aufgerufen und anschließend wieder
-% auf das Wrappermakro \cs{tud@mathversion} zurückgesetzt.
-% \begin{macrocode}
-\AfterPackage*{mathastext}{%
- \newrobustcmd*\tud@mathversion[1]{%
- \begingroup%
- \let\tud@res@a\relax%
- \if@tud@cdmath@active%
- \ifstr{#1}{normal}{%
- \def\tud@res@a{tudnormal}%
- }{%
- \ifstr{#1}{bold}{%
- \def\tud@res@a{tudbold}%
- }{}%
- }%
- \fi%
- \edef\tud@res@a{%
- \endgroup%
- \noexpand\tud@cs@restore{mathversion}%
- \ifx\tud@res@a\relax%
- \noexpand\mathversion{#1}%
- \else%
- \noexpand\MTversion*{\tud@res@a}%
- \fi%
- \noexpand\tud@cs@store{mathversion}%
- \noexpand\tud@cs@letltx{mathversion}{tud@mathversion}%
- }%
- \tud@res@a%
- }%
- \AtEndPreamble{%
- \tud@cs@store{mathversion}%
- \tud@cs@letltx{mathversion}{tud@mathversion}%
- }%
-}
-% \end{macrocode}
-% Mit \cs{tud@cdmath@init} werden für den Mathematikmodus die Schriften im
-% \CD deklariert.
-% \begin{macrocode}
\newcommand*\tud@cdmath@init{%
% \end{macrocode}
% Für die Schriftfamilie \OpenSans existieren leider bisher keine Kodierung für
@@ -3005,17 +2953,18 @@
% ermöglichen. Dabei wird die Computer~Modern in der \val{LGR}~Kodierung
% zwingend benötigt.
%
-% Für die LGR-Kodierung werden die Bundles \pkg{cbfonts} und \pkg{cbfonts-fd}
+% Für die LGR-Kodierung werden die Bundles \bdl{cbfonts} und \bdl{cbfonts-fd}
% benötigt. Leider lässt sich momentan nur auf letzteres testen. Für ersteres
-% ließe sich |\font\testfont=grmn1200|\footnote{\file{ltxcheck.tex}} oder
-% \verb+\immediate\openin\pathfont="|kpsewhich grmn1200.tfm"+\ignorespaces%
-% \footnote{\url{https://tex.stackexchange.com/questions/306980/}} oder nutzen.
-% Beide Ansätze sind aber nicht vollends stimmig. Der erste funktioniert nicht,
-% sobald der Anwender \val{-interaction-mode} selbst definiert und für den
-% zweiten müssen zumindest eingeschränkte Schreibrechte aktiviert sein.
+% ließe sich |\font\testfont=grmn1200|\footnote{\file{ltxcheck.tex}} oder der
+% externe Aufruf \verb+\immediate\openin\pathfont="|kpsewhich grmn1200.tfm"+
+% nutzen\footnote{\url{https://tex.stackexchange.com/q/306980}}. Beide Ansätze
+% sind aber nicht vollends stimmig. Der erste funktioniert nicht, sobald der
+% Anwender \val{-interaction-mode} selbst definiert und für den zweiten müssen
+% zumindest eingeschränkte Schreibrechte zwingend aktiviert sein.
+% \ToDo{cmr nicht zwingend notwendig}[v2.07]%^^A nur wenn \@tud@lgrgreekstrue
% \begin{macrocode}
\@tud@res@swafalse%
- \if@tud@cdfont@fam@exist%
+ \if@tud@cdmath@fam@exist%
\@tud@res@swatrue%
\if@tud@cdoldfont@active\else%
\tud@if@fdfileexists{LGR}{cmr}{}{%
@@ -3076,17 +3025,23 @@
subdued,defaultmathsizes,nosmalldelims,noequal,%
defaultrm,defaultbf,defaultit,defaultsf,defaulttt%
}{mathastext}%
- \RequirePackage{mathastext}[2018/08/22]%
+ \RequirePackage{mathastext}
+% \end{macrocode}
+% \ToDo{cmr nicht notwendig}[v2.07]%^^A {\tud@cdfont@fam}{m}{b}{n}{it}%
+% \begin{macrocode}
+%^^A \if@tud@lgrgreeks
\tud@math@declare@lgrgreeks{cmr}{m}{bx}{n}{it}%
+%^^A \else
+%^^A \tud@math@declare@lgrgreeks{\tud@cdfont@fam}{m}{b}{n}{it}%
+%^^A \fi
\fi%
\providecommand*\MTDeclareVersion[6][]{\DeclareMathVersion{##2}}%
- \providecommand*\MTversion@@[1]{}%
- \tud@cdmath@@init{\tud@cdfont@fam@lf}{\tud@ttfont@fam}%
+ \tud@cdmath@@init%
% \end{macrocode}
-% Die Symbole für aufrechte und kursive griechische Glyphen werden definiert.
+% Die Symbole für aufrechte und kursive griechische Lettern werden definiert.
% Da im Paket \pkg{opensans} keine mathematischen Schriftkodierungen enthalten
% sind, wird in diesem Fall auf die LGR-Kodierung zurückgegriffen.
-% \ToDo{kann mit \pkg{opensans-math} raus}[v2.??]
+% \ToDo{könnte mit \pkg{opensans-math} raus}[v2.08]
% \begin{macrocode}
\if@tud@cdoldfont@active%
\tud@res@cnt=\z@\relax%
@@ -3100,155 +3055,223 @@
% \begin{macrocode}
\tud@cdmath@declare@char{*}{\mathbin}{symbols}{"03}%
% \end{macrocode}
-% Nach der Definition der griechischen Glyphen werden diese~-- inklusive aller
+% Nach der Definition der griechischen Lettern werden diese~-- inklusive aller
% Auswahlvariationen~-- deklariert.
% \begin{macrocode}
\tud@cdmath@also@greeks%
+ \fi%
% \end{macrocode}
-% Sollten die notwendigen Schriftfamilien nicht gefunden worden sein, werden
-% keine separaten Mathematikversionen definiert.
+% Für die Schrift \DIN existiert lediglich eine Mathematikversion, das Vorgehen
+% ist ähnlich zur \Univers.
% \begin{macrocode}
- \else%
- \let\mv@tudnormal\mv@normal%
- \let\mv@tudbold\mv@bold%
- \if@tud@cdoldfont@active%
+ \if@tud@cdoldfont@active%
+ \if@tud@cdmath@db@exist%
+ \tud@cdmath@db@init{\tud@cdfont@db}%
+ \else%
\let\mv@tuddin\mv@bold%
\fi%
\fi%
}
+\newcommand*\tud@cdmath@set{}
+\newcommand*\tud@cdmath@normal@name{tudnormal@\tud@cdfont@md\tud@cdfont@bf}%
+\newcommand*\tud@cdmath@bold@name{tudbold@\tud@cdfont@md\tud@cdfont@bf}%
+% \end{macrocode}
+% Da eine dynamische Anpassung der Mathematikschriften innerhalb des Dokumentes
+% an die jeweils aktuell verwendete Schriftart und insbesondere den Schnitt
+% nicht möglich ist, werden hier für alle möglichen, von \TUDScript angebotenen
+% Einstellungen der Schriftschnitte die dazu passenden Mathematikversionen
+% deklariert. Dabei werden die insgesamt vier möglichen Kombinationen für die
+% beiden Schalter \cs{if@tud@cdfont@heavy} (\opt{cdfont=light/heavy}) und
+% \cs{if@tud@cdfont@ultrabold} (\opt{cdfont=normalbold/ultrabold}) gesetzt
+% und dafür die passenden Mathematikversionen definiert.\footnote{Eigentlich
+% müssten auch noch alle Kombinationen für die Schreibmaschinenschriften
+% beachtet werden. Dies ist dann aber wohl eher nicht notwendig, zumal für
+% \opt{ttfont=false} ohnehin nicht zwingend alle notwendigen Schnitte zur
+% Verfügung stehen könnten.}
+% \begin{macrocode}
+\newcommand*\tud@cdmath@@init{%
+ \begingroup%
+ \let\tud@res@b\@empty%
+ \def\tud@res@a##1##2{%
+ \setbool{@tud@cdfont@heavy}{##1}%
+ \setbool{@tud@cdfont@ultrabold}{##2}%
+ \tud@cdfont@@set%
+ \tud@ttfont@@set%
+ \eappto\tud@res@b{%
+ \noexpand\tud@cdmath@@@init%
+ {\tud@cdmath@normal@name}%
+ {\tud@cdmath@bold@name}%
+ {\tud@cdfont@fam@lf}{\tud@cdfont@md}{\tud@cdfont@bf}{\tud@cdfont@ebf}%
+ {\tud@ttfont@fam}{\tud@ttfont@md}{\tud@ttfont@bf}%
+ }%
+ }%
% \end{macrocode}
-% Mit \cs{tud@cdmath@@init} werden die notwendigen Mathematikversionen und die
-% dazugehörigen Symbolschriften sowie Alphabete deklariert.
-% \begin{macrocode}
-\newcommand*\tud@x@mathastext@enc{OT1}
-\newcommand*\tud@cdmath@@init[2]{%
-% \end{macrocode}
-% Mit \cs{tud@cdfont@@set} werden die Schriftstärken gemäß den ausgewählten
-% Schriftoptionen aktiviert (\cs{tud@cdfont@md}, \cs{tud@cdfont@bf},
-% \cs{tud@cdfont@ebf}), um diese auch für die Mathematikschriften zu nutzen.
-% \begin{macrocode}
- \tud@cdfont@@set%
- \tud@ttfont@@set%
+% Die möglichen Kombinationen für die beiden genannten Schalter werden in einer
+% Gruppe ausgeführt und die mit \cs{tud@cdfont@@set} sowie \cs{tud@ttfont@@set}
+% aktivierten Schriftschnitte als Argumente für \cs{tud@cdmath@@@init} in
+% \cs{tud@res@b} expandiert.
+% \begin{macrocode}
+ \tud@res@a{false}{false}%
+ \tud@res@a{false}{true}%
+ \tud@res@a{true}{false}%
+ \tud@res@a{true}{true}%
+% \end{macrocode}
+% Für den zugegbener Maßen etwas unwahrscheinlichen Fall, dass die Kombination
+% aus \opt{cdfont=false} und \opt{cdmath=true} genutzt wird, werden für die
+% Initialisierung die Schriften des \CDs kurzzeitig aktiviert. Damit wird dem
+% Umstand Sorge getragen, dass das Paket \pkg{mathastext} bei der Definition
+% der Mathematikversionen teilweise auf Makros wie \cs{bfdefault} zurückgreift
+% und diese dementsprechend gesetzt sein sollten.
+% \begin{macrocode}
+ \if@tud@cdfont@active\else%
+ \preto\tud@res@b{%
+ \@tud@cdfont@activetrue%
+ \tud@font@set[]%
+ }%
+ \appto\tud@res@b{%
+ \@tud@cdfont@activefalse%
+ \tud@font@set[]%
+ }%
+ \fi%
+ \preto\tud@res@b{\endgroup}%
+ \tud@res@b%
+% \end{macrocode}
+% Mit \cs{tud@cdmath@set} erfolgt bei Bedarf die Auswahl der aktuell benötigten
+% Mathematikversion, wobei für die Zuweisung \cs{tud@cdmath@normal@name} und
+% \cs{tud@cdmath@bold@name} in \cs{mv@normal} sowie \cs{mv@bold} expandiert
+% werden. Die Namen für die Versionen setzen sich dabei aus den Päfixen
+% \val{tudnormal@} und \val{tudbold@} sowie der Verkettung des regulären und
+% des fetten Schriftschnitts zusammen, welche zum Zeitpunkt des Aufrufs aktiv
+% sind (Option \opt{cdfont}) und durch \cs{tud@cdfont@@set} gesetzt werden.
+% \begin{macrocode}
+ \renewcommand*\tud@cdmath@set{%
+ \begingroup%
+ \tud@cdfont@@set%
+ \edef\tud@res@a{%
+ \endgroup%
+ \unexpanded{\letcs\mv@normal}{mv@\tud@cdmath@normal@name}%
+ \unexpanded{\letcs\mv@bold}{mv@\tud@cdmath@bold@name}%
+ }%
+ \tud@res@a%
+ }%
+}
% \end{macrocode}
-% Die Deklaration der Mathematikversionen für die alten Schriften. Auch für die
-% Schrift \DIN werden mathematische Glyphen bereitgestellt. Diese wurden schon
-% bei der Installation aus dem \pkg{iwona}-Paket entnommen. Die verwendeten
-% Symbole stammen aus diesem Paket.
+% Mit \cs{tud@cdmath@@@init} werden die notwendigen Mathematikversionen und die
+% dazugehörigen Symbolschriften sowie Alphabete für die unterschiedlichen
+% Kombinationen der Schriftschnitte deklariert. Das Makro verwendet folgende
+% Argumente:
+% \begin{description}
+% \item[|\#1|] der Name für die normale Mathematikversion
+% \item[|\#2|] der Name für die fette Mathematikversion
+% \item[|\#3|] die verwendete Schriftfamilie
+% \item[|\#4|] der reguläre Schriftschnitt
+% \item[|\#5|] der fette Schriftschnitt
+% \item[|\#6|] der extra-fette Schriftschnitt
+% \item[|\#7|] die verwendete Schreibmaschinenschrift
+% \item[|\#8|] der reguläre Schreibmaschinenschnitt
+% \item[|\#9|] der fette Schreibmaschinenschnitt
+% \end{description}
+% \begin{macrocode}
+\newcommand*\tud@cdmath@@@init[9]{%
+% \end{macrocode}
+% Die Deklaration der Mathematikversionen für die alten Schriften. Die
+% verwendeten Symbole stammen aus dem Paket \pkg{iwona}.
% \begin{macrocode}
\if@tud@cdoldfont@active%
- \DeclareMathVersion{tudnormal}%
- \DeclareMathVersion{tudbold}%
- \DeclareMathVersion{tuddin}%
- \SetSymbolFont{operators}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}%
- \SetSymbolFont{operators}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}%
- \SetSymbolFont{operators}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}%
- \SetSymbolFont{letters}{tudnormal}{OML}{#1}{\tud@cdfont@md}{sl}%
- \SetSymbolFont{letters}{tudbold}{OML}{#1}{\tud@cdfont@bf}{sl}%
- \SetSymbolFont{letters}{tuddin}{OML}{\tud@cdfont@db}{b}{sl}%
- \SetSymbolFont{symbols}{tudnormal}{OMS}{#1}{\tud@cdfont@md}{n}%
- \SetSymbolFont{symbols}{tudbold}{OMS}{#1}{\tud@cdfont@bf}{n}%
- \SetSymbolFont{symbols}{tuddin}{OMS}{\tud@cdfont@db}{b}{n}%
- \SetSymbolFont{largesymbols}{tudnormal}{OMX}{iwona}{\tud@cdfont@md}{n}%
- \SetSymbolFont{largesymbols}{tudbold}{OMX}{iwona}{\tud@cdfont@bf}{n}%
- \SetSymbolFont{largesymbols}{tuddin}{OMX}{iwona}{ebc}{n}%
- \SetMathAlphabet{\mathnormal}{tudnormal}{OML}{#1}{\tud@cdfont@md}{sl}%
- \SetMathAlphabet{\mathnormal}{tudbold}{OML}{#1}{\tud@cdfont@bf}{sl}%
- \SetMathAlphabet{\mathnormal}{tuddin}{OML}{\tud@cdfont@db}{b}{sl}%
+ \DeclareMathVersion{#1}%
+ \DeclareMathVersion{#2}%
+ \SetSymbolFont{operators}{#1}{OT1}{#3}{#4}{n}%
+ \SetSymbolFont{operators}{#2}{OT1}{#3}{#5}{n}%
+ \SetSymbolFont{letters}{#1}{OML}{#3}{#4}{it}%
+ \SetSymbolFont{letters}{#2}{OML}{#3}{#5}{it}%
+ \SetSymbolFont{symbols}{#1}{OMS}{#3}{#4}{n}%
+ \SetSymbolFont{symbols}{#2}{OMS}{#3}{#5}{n}%
+ \SetSymbolFont{largesymbols}{#1}{OMX}{iwona}{#4}{n}%
+ \SetSymbolFont{largesymbols}{#2}{OMX}{iwona}{#5}{n}%
+ \SetMathAlphabet{\mathnormal}{#1}{OML}{#3}{#4}{it}%
+ \SetMathAlphabet{\mathnormal}{#2}{OML}{#3}{#5}{it}%
\tud@if@ismathalphabet{\mathbold}{%
- \SetMathAlphabet{\mathbold}{tudnormal}{OML}{#1}{\tud@cdfont@bf}{sl}%
- \SetMathAlphabet{\mathbold}{tudbold}{OML}{#1}{\tud@cdfont@ebf}{sl}%
- \SetMathAlphabet{\mathbold}{tuddin}{OML}{\tud@cdfont@db}{b}{sl}%
+ \SetMathAlphabet{\mathbold}{#1}{OML}{#3}{#5}{it}%
+ \SetMathAlphabet{\mathbold}{#2}{OML}{#3}{#6}{it}%
}{}%
\else%
% \end{macrocode}
-% Für \OpenSans wird mangels der Kodierungen \val{OML}, \val{OMS} und \val{OMX}
-% im Paket \pkg{opensans} zur Deklaration der Mathematikversionen der Befehl
-% \cs{MTDeclareVersion} aus dem Paket \pkg{mathastext} genutzt. Dabei wird die
-% Kodierung der Mathematikschriften identisch zur genutzten Eingabekodierung
-% für den Text gesetzt, da diese in der Version \val{v1.3t} nicht problemfrei
-% unabhängig davon gewählt werden kann. Sämtliche fehlenden Kodierungen werden
-% notdürftig mit dem Paket \pkg{iwona} definiert. Zur Definition griechischer
-% Glyphen wird die LGR-Kodierung der \OpenSans genutzt.
-% \begin{macrocode}
- \edef\tud@res@b{\encodingdefault}%
- \@tfor\tud@res@a:={T1}{TU}{EU1}{EU2}\do{%
- \ifx\tud@res@a\tud@res@b%
- \let\tud@x@mathastext@enc\tud@res@b%
- \@break@tfor
- \fi%
- }%
- \MTDeclareVersion[it]{tudnormal}%
- {\tud@x@mathastext@enc}{#1}{\tud@cdfont@md}{n}%
- \MTDeclareVersion[it]{tudbold}%
- {\tud@x@mathastext@enc}{#1}{\tud@cdfont@bf}{n}%
- \SetSymbolFont{operators}{tudnormal}{OT1}{iwona}{\tud@cdfont@md}{n}%
- \SetSymbolFont{operators}{tudbold}{OT1}{iwona}{\tud@cdfont@bf}{n}%
+% Für \OpenSans werden für die fehlenden Kodierungen \val{OML}, \val{OMS} und
+% \val{OMX} die entsprechenden Symbolschriften eher notdürftig mit dem Paket
+% \pkg{iwona} definiert. Zur Definition der griechischen Lettern wird die
+% LGR-Kodierung der \OpenSans genutzt.
+% \begin{macrocode}
+ \MTDeclareVersion[it]{#1}{\tud@x@mathastext@enc}{#3}{#4}{n}%
+ \MTDeclareVersion[it]{#2}{\tud@x@mathastext@enc}{#3}{#5}{n}%
+ \SetSymbolFont{operators}{#1}{OT1}{iwona}{#4}{n}%
+ \SetSymbolFont{operators}{#2}{OT1}{iwona}{#5}{n}%
% \end{macrocode}
% \ToDo{%
% sollte \pkg{opensans-math} irgendwann einmal real werden, dann würde es
% sich anbieten, die OML-Kodierung ähnlich zu \pkg{euler[vm]} auf eine
-% U-Kodierung zu erweitern und aufrechte griechische Glyphen einzubinden, um
+% U-Kodierung zu erweitern und aufrechte griechische Lettern einzubinden, um
% ein Alphabet zu sparen. Siehe Kodierungen FML/FMS, LML/LMS, LBL/LBS, LS1/LS2
-% }[v2.??]
-% \begin{macrocode}
- \SetSymbolFont{letters}{tudnormal}{OML}{iwona}{\tud@cdfont@md}{it}%
- \SetSymbolFont{letters}{tudbold}{OML}{iwona}{\tud@cdfont@bf}{it}%
-%^^A \SetSymbolFont{letters}{tudnormal}{U}{#1m}{\tud@cdfont@md}{it}%
-%^^A \SetSymbolFont{letters}{tudbold}{U}{#1m}{\tud@cdfont@bf}{it}%
- \SetSymbolFont{symbols}{tudnormal}{OMS}{iwona}{\tud@cdfont@md}{n}%
- \SetSymbolFont{symbols}{tudbold}{OMS}{iwona}{\tud@cdfont@bf}{n}%
- \SetSymbolFont{largesymbols}{tudnormal}{OMX}{iwona}{\tud@cdfont@md}{n}%
- \SetSymbolFont{largesymbols}{tudbold}{OMX}{iwona}{\tud@cdfont@bf}{n}%
- \SetSymbolFont{tudupgrk}{tudnormal}{LGR}{#1}{\tud@cdfont@md}{n}%
- \SetSymbolFont{tuditgrk}{tudnormal}{LGR}{#1}{\tud@cdfont@md}{it}%
- \SetSymbolFont{tudupgrk}{tudbold}{LGR}{#1}{\tud@cdfont@bf}{n}%
- \SetSymbolFont{tuditgrk}{tudbold}{LGR}{#1}{\tud@cdfont@bf}{it}%
-%^^A \SetMathAlphabet{\mathnormal}{tudnormal}{U}{#1m}{\tud@cdfont@md}{it}%
-%^^A \SetMathAlphabet{\mathnormal}{tudbold}{U}{#1m}{\tud@cdfont@bf}{it}%
+% }[v2.08]
+% \begin{macrocode}
+ \SetSymbolFont{letters}{#1}{OML}{iwona}{#4}{it}%
+ \SetSymbolFont{letters}{#2}{OML}{iwona}{#5}{it}%
+%^^A \SetSymbolFont{letters}{#1}{U}{#3m}{#4}{it}%
+%^^A \SetSymbolFont{letters}{#2}{U}{#3m}{#5}{it}%
+ \SetSymbolFont{symbols}{#1}{OMS}{iwona}{#4}{n}%
+ \SetSymbolFont{symbols}{#2}{OMS}{iwona}{#5}{n}%
+ \SetSymbolFont{largesymbols}{#1}{OMX}{iwona}{#4}{n}%
+ \SetSymbolFont{largesymbols}{#2}{OMX}{iwona}{#5}{n}%
+ \SetSymbolFont{tuditgrk}{#1}{LGR}{#3}{#4}{it}%
+ \SetSymbolFont{tuditgrk}{#2}{LGR}{#3}{#5}{it}%
+ \SetSymbolFont{tudupgrk}{#1}{LGR}{#3}{#4}{n}%
+ \SetSymbolFont{tudupgrk}{#2}{LGR}{#3}{#5}{n}%
+%^^A \SetMathAlphabet{\mathnormal}{#1}{U}{#3m}{#4}{it}%
+%^^A \SetMathAlphabet{\mathnormal}{#2}{U}{#3m}{#5}{it}%
\tud@if@ismathalphabet{\mathbold}{%
- \SetMathAlphabet{\mathbold}{tudnormal}%
- {\tud@x@mathastext@enc}{#1}{\tud@cdfont@bf}{it}%
- \SetMathAlphabet{\mathbold}{tudbold}%
- {\tud@x@mathastext@enc}{#1}{\tud@cdfont@ebf}{it}%
-%^^A \SetMathAlphabet{\mathbold}{tudnormal}{U}{#1m}{\tud@cdfont@bf}{it}%
-%^^A \SetMathAlphabet{\mathbold}{tudbold}{U}{#1m}{\tud@cdfont@ebf}{it}%
+ \SetMathAlphabet{\mathbold}{#1}{\tud@x@mathastext@enc}{#3}{#5}{it}%
+ \SetMathAlphabet{\mathbold}{#2}{\tud@x@mathastext@enc}{#3}{#6}{it}%
+%^^A \SetMathAlphabet{\mathbold}{#1}{U}{#3m}{#5}{it}%
+%^^A \SetMathAlphabet{\mathbold}{#2}{U}{#3m}{#6}{it}%
}{}%
\fi%
- \SetMathAlphabet{\mathrm}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}%
- \SetMathAlphabet{\mathrm}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}%
- \SetMathAlphabet{\mathbf}{tudnormal}{OT1}{#1}{\tud@cdfont@bf}{n}%
- \SetMathAlphabet{\mathbf}{tudbold}{OT1}{#1}{\tud@cdfont@ebf}{n}%
- \SetMathAlphabet{\mathsf}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}%
- \SetMathAlphabet{\mathsf}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}%
- \SetMathAlphabet{\mathit}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{it}%
- \SetMathAlphabet{\mathit}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{it}%
- \SetMathAlphabet{\mathtt}{tudnormal}{OT1}{#2}{\tud@ttfont@md}{n}%
- \SetMathAlphabet{\mathtt}{tudbold}{OT1}{#2}{\tud@ttfont@bf}{n}%
+% \end{macrocode}
+% Wurde das Paket \pkg{fontspec} mit der Option \opt{math} geladen, so wird
+% durch dieses die Symbolschrift \val{legacymaths} erstellt. Diese wird
+% gegebenenfalls für die Mathematikversionen sinnvoll definiert.
+% \begin{macrocode}
+ \AtBeginDocument{%
+ \tud@if@issymbolfont{legacymaths}{%
+ \SetSymbolFont{legacymaths}{#1}{OT1}{#3}{#4}{n}%
+ \SetSymbolFont{legacymaths}{#2}{OT1}{#3}{#5}{n}%
+ }{}%
+ }%
\if@tud@cdoldfont@active%
- \SetMathAlphabet{\mathrm}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}%
- \SetMathAlphabet{\mathbf}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}%
- \SetMathAlphabet{\mathsf}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}%
- \SetMathAlphabet{\mathit}{tuddin}{OT1}{\tud@cdfont@db}{b}{sl}%
- \SetMathAlphabet{\mathtt}{tuddin}{OT1}{#2}{\tud@ttfont@ebf}{n}%
+ \def\tud@res@a{OT1}%
+ \else%
+ \let\tud@res@a\tud@x@mathastext@enc%
\fi%
+ \SetMathAlphabet{\mathrm}{#1}{\tud@res@a}{#3}{#4}{n}%
+ \SetMathAlphabet{\mathrm}{#2}{\tud@res@a}{#3}{#5}{n}%
+ \SetMathAlphabet{\mathbf}{#1}{\tud@res@a}{#3}{#5}{n}%
+ \SetMathAlphabet{\mathbf}{#2}{\tud@res@a}{#3}{#6}{n}%
+ \SetMathAlphabet{\mathsf}{#1}{\tud@res@a}{#3}{#4}{n}%
+ \SetMathAlphabet{\mathsf}{#2}{\tud@res@a}{#3}{#5}{n}%
+ \SetMathAlphabet{\mathit}{#1}{\tud@res@a}{#3}{#4}{it}%
+ \SetMathAlphabet{\mathit}{#2}{\tud@res@a}{#3}{#5}{it}%
+ \SetMathAlphabet{\mathtt}{#1}{\tud@res@a}{#7}{#8}{n}%
+ \SetMathAlphabet{\mathtt}{#2}{\tud@res@a}{#7}{#9}{n}%
\IfFileExists{ueus.fd}{%
- \SetMathAlphabet{\mathcal}{tudnormal}{U}{eus}{m}{n}%
- \SetMathAlphabet{\mathcal}{tudbold}{U}{eus}{b}{n}%
- \if@tud@cdoldfont@active%
- \SetMathAlphabet{\mathcal}{tuddin}{U}{eus}{b}{n}%
- \fi%
+ \SetMathAlphabet{\mathcal}{#1}{U}{eus}{m}{n}%
+ \SetMathAlphabet{\mathcal}{#2}{U}{eus}{b}{n}%
}{}%
\tud@if@ismathalphabet{\mathfrak}{%
\IfFileExists{ueuf.fd}{%
- \SetMathAlphabet{\mathfrak}{tudnormal}{U}{euf}{m}{n}%
- \SetMathAlphabet{\mathfrak}{tudbold}{U}{euf}{b}{n}%
- \if@tud@cdoldfont@active%
- \SetMathAlphabet{\mathfrak}{tuddin}{U}{euf}{b}{n}%
- \fi%
+ \SetMathAlphabet{\mathfrak}{#1}{U}{euf}{m}{n}%
+ \SetMathAlphabet{\mathfrak}{#2}{U}{euf}{b}{n}%
}{}%
}{}%
% \end{macrocode}
-% Das Paket \pkg{cmbright} stelt zusätzlich noch Schriftschnitte für die
+% Das Paket \pkg{cmbright} stellt zusätzlich noch Schriftschnitte für die
% Symbolschriften \val{AMSa} und \val{AMSb} bereit, welche gegebenenfalls für
% die alten Schriften geladen werden.
% \begin{macrocode}
@@ -3258,18 +3281,19 @@
\tud@if@issymbolfont{AMSb}{\@tud@res@swatrue}{}%
\if@tud@res@swa%
\if@tud@cdoldfont@active%
- \DeclareFontFamily{U}{\tud@cdfont@fam@lf a}{}%
- \DeclareFontShape{U}{\tud@cdfont@fam@lf a}{m}{n}{<->cmbras10}{}%
- \SetSymbolFont{AMSa}{tudnormal}{U}{\tud@cdfont@fam@lf a}{m}{n}%
- \SetSymbolFont{AMSa}{tudbold}{U}{\tud@cdfont@fam@lf a}{m}{n}%
- \DeclareFontFamily{U}{\tud@cdfont@fam@lf b}{}%
- \DeclareFontShape{U}{\tud@cdfont@fam@lf b}{m}{n}{<->cmbrbs10}{}%
- \SetSymbolFont{AMSb}{tudnormal}{U}{\tud@cdfont@fam@lf b}{m}{n}%
- \SetSymbolFont{AMSb}{tudbold}{U}{\tud@cdfont@fam@lf b}{m}{n}%
+ \DeclareFontFamily{U}{#3a}{}%
+ \DeclareFontShape{U}{#3a}{m}{n}{<->cmbras10}{}%
+ \SetSymbolFont{AMSa}{#1}{U}{#3a}{m}{n}%
+ \SetSymbolFont{AMSa}{#2}{U}{#3a}{m}{n}%
+ \DeclareFontFamily{U}{#3b}{}%
+ \DeclareFontShape{U}{#3b}{m}{n}{<->cmbrbs10}{}%
+ \SetSymbolFont{AMSb}{#1}{U}{#3b}{m}{n}%
+ \SetSymbolFont{AMSb}{#2}{U}{#3b}{m}{n}%
% \end{macrocode}
% Wurde ein Paket geladen, welches die \pkg{amsfonts}-Schriftfamilie definiert,
% so wird bei der Verwendung von \OpenSans eine Information ausgegeben, dass im
% Zweifel das Paket \pkg{mdsymbol} besser zu den Schriften des \CDs passt.
+% \ToDo{hinweis zu mdsymbol raus, bzw. Laden verzögern!}[v2.07]
% \begin{macrocode}
\else%
\@ifpackageloaded{mdsymbol}{}{%
@@ -3288,37 +3312,99 @@
}%
\fi%
\fi%
+ }%
+}
% \end{macrocode}
-% Wurde das Paket \pkg{fontspec} mit der Option \opt{math} geladen, so wird
-% durch dieses die Symbolschrift \val{legacymaths} erstellt. Diese wird
-% gegebenenfalls für die Mathematikversionen sinnvoll definiert.
+% Auch für die Schrift \DIN werden mathematische Glyphen bereitgestellt. Diese
+% wurden schon bei der Installation aus dem \pkg{iwona}-Paket entnommen.
% \begin{macrocode}
- \tud@if@issymbolfont{legacymaths}{%
- \SetSymbolFont{legacymaths}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}%
- \SetSymbolFont{legacymaths}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}%
- \if@tud@cdoldfont@active%
- \SetSymbolFont{legacymaths}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}%
- \fi%
+\if@tud@cdoldfont@active
+ \newcommand*\tud@cdmath@db@init[1]{%
+ \DeclareMathVersion{tuddin}%
+ \SetSymbolFont{operators}{tuddin}{OT1}{#1}{b}{n}%
+ \SetSymbolFont{letters}{tuddin}{OML}{#1}{b}{it}%
+ \SetSymbolFont{symbols}{tuddin}{OMS}{#1}{b}{n}%
+ \SetSymbolFont{largesymbols}{tuddin}{OMX}{iwona}{ebc}{n}%
+ \AtBeginDocument{%
+ \tud@if@issymbolfont{legacymaths}{%
+ \SetSymbolFont{legacymaths}{tuddin}{OT1}{#1}{b}{n}%
+ }{}%
+ }%
+ \SetMathAlphabet{\mathnormal}{tuddin}{OML}{#1}{b}{it}%
+ \tud@if@ismathalphabet{\mathbold}{%
+ \SetMathAlphabet{\mathbold}{tuddin}{OML}{#1}{b}{it}%
+ }{}%
+ \SetMathAlphabet{\mathrm}{tuddin}{OT1}{#1}{b}{n}%
+ \SetMathAlphabet{\mathbf}{tuddin}{OT1}{#1}{b}{n}%
+ \SetMathAlphabet{\mathsf}{tuddin}{OT1}{#1}{b}{n}%
+ \SetMathAlphabet{\mathit}{tuddin}{OT1}{#1}{b}{it}%
+ \IfFileExists{ueus.fd}{%
+ \SetMathAlphabet{\mathcal}{tuddin}{U}{eus}{b}{n}%
+ }{}%
+ \tud@if@ismathalphabet{\mathfrak}{%
+ \IfFileExists{ueuf.fd}{%
+ \SetMathAlphabet{\mathfrak}{tuddin}{U}{euf}{b}{n}%
+ }{}%
}{}%
% \end{macrocode}
% Daran anschließend wird die zuvor definierte Schrift in einer Box verwendet,
% um das Laden der Schriftdefinitionen am Dokumentbeginn zu forcieren.
% \begin{macrocode}
- \if@tud@cdoldfont@active%
+ \AtBeginDocument{%
\if@tud@cdmath@active%
- \sbox\z@{\mathversion{tudnormal}$ $\mathversion{tuddin}$ $}%
+ \sbox\z@{\mathversion{normal}$ $\mathversion{tuddin}$ $}%
\fi%
- \fi%
+ }%
+ }%
+\fi
+% \end{macrocode}
+% Um das Umschalten der Mathematikversion mit \cs{mathversion} auch nutzen zu
+% können, wenn \pkg{mathastext} für die Schriften des \CDs aktiv ist, wird ein
+% Wrappermakro benötigt, welches im Bedarfsfall\cs{MTversion*} aufruft. Hierfür
+% wird zunächst auf die gewünschte Mathematikversion, danach der originale
+% Befehl \cs{mathversion} wiederhergestellt, aufgerufen und anschließend wieder
+% auf das Wrappermakro \cs{tud@mathversion} zurückgesetzt.
+% \begin{macrocode}
+\AfterPackage*{mathastext}{%
+ \newrobustcmd*\tud@mathversion[1]{%
+ \begingroup%
+ \let\tud@res@a\relax%
+ \if@tud@cdmath@active%
+ \tud@if@strequal{#1}{normal}{%
+ \edef\tud@res@a{\tud@cdmath@normal@name}%
+ }{%
+ \tud@if@strequal{#1}{bold}{%
+ \edef\tud@res@a{\tud@cdmath@bold@name}%
+ }{}%
+ }%
+ \fi%
+ \edef\tud@res@a{%
+ \endgroup%
+ \noexpand\tud@cs@restore{mathversion}%
+ \ifx\tud@res@a\relax%
+ \noexpand\mathversion{#1}%
+ \else%
+ \noexpand\MTversion*{\tud@res@a}%
+ \fi%
+ \noexpand\tud@cs@store{mathversion}%
+ \noexpand\tud@cs@letltx{mathversion}{tud@mathversion}%
+ }%
+ \tud@res@a%
+ \ifcsundef{mv@#1}{}{\edef\math@version{#1}}%
+ }%
+ \AtEndPreamble{%
+ \tud@cs@store{mathversion}%
+ \tud@cs@letltx{mathversion}{tud@mathversion}%
}%
}
% \end{macrocode}
-% \end{macro}^^A \MTversion@@
% \end{macro}^^A \MTDeclareVersion
% \end{macro}^^A \tud@mathversion
-% \end{macro}^^A \mv@tuddin
-% \end{macro}^^A \mv@tudbold
-% \end{macro}^^A \mv@tudnormal
-% \end{macro}^^A \tud@x@mathastext@enc
+% \end{macro}^^A \tud@cdmath@bold@name
+% \end{macro}^^A \tud@cdmath@normal@name
+% \end{macro}^^A \tud@cdmath@set
+% \end{macro}^^A \tud@cdmath@db@init
+% \end{macro}^^A \tud@cdmath@@@init
% \end{macro}^^A \tud@cdmath@@init
% \end{macro}^^A \tud@cdmath@init
% \begin{macro}{\tud@cdmath@declare@symb}
@@ -3362,8 +3448,8 @@
}
% \end{macrocode}
% Die an \cs{tud@cdmath@declare@symb} und \cs{tud@cdmath@declare@char}
-% übergebene Letter für Auswahlbefehle erhalten \cs{tud@cdmath@symbol@} als
-% Präfix, wodurch sich die Definitionen für die einzelnen Mathematikversionen
+% übergebenen Letter für Auswahlbefehle nutzen |\tud@cdfont@symbol@...| als
+% Präfix, wodurch sich die Definitionen für einzelne Mathematikversionen
% beliebig tauschen lassen.
% \begin{macrocode}
\newcommand*\tud@DeclareMathSymbol[4]{%
@@ -3393,12 +3479,12 @@
% \changes{v2.06}{2019/06/19}{neu}^^A
% \begin{macro}{\tud@cdmath@symbols@reset}
% \changes{v2.04}{2015/03/10}{neu}^^A
-% Mit diesen beiden Befehlen kann innerhalb des Dokumentes problemlos zwischen
+% Durch diese Befehle kann innerhalb des Dokumentes problemlos zwischen
% mathematischen Symbolen und Zeichen für die Schriften des \CDs, welche mit
% \cs{tud@cdmath@declare@symb} sowie \cs{tud@cdmath@declare@char} deklariert
% wurden, und den normalen gewechselt werden.
% \begin{macrocode}
-\newtoks\tud@cdmath@symbols@toks
+\tud@newtoks\tud@cdmath@symbols@toks
\newcommand*\tud@cdmath@symbols@set{%
% \end{macrocode}
% Die Sicherung der alten Definitionen erfolgt nur einmalig. Die Liste der
@@ -3449,10 +3535,10 @@
% \begin{macrocode}
\newcommand*\tud@cdmath@symbols@set@chr[1]{%
\edef\tud@res@a{\global\mathcode`#1=\the\mathcode`#1\relax}%
- \eaddto@hook\tud@cdmath@symbols@toks{\tud@res@a}%
+ \addto@hook@expandafter\tud@cdmath@symbols@toks{\tud@res@a}%
% \end{macrocode}
% Für das Überschreiben des \cs{mathcode} des gewünschen \meta{Zeichen} wird
-% dieser aus der Bedeutung von \cs{tud@cdmath@symbols@\meta{Zeichen}} mit
+% dieser aus der Bedeutung von |\tud@cdmath@symbols@|\meta{Zeichen} mit
% \cs{meaning} herausgelöst.
% \begin{macrocode}
\begingroup%
@@ -3478,14 +3564,14 @@
%
% 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. Hierfür sind die Befehle
+% auch bei diesen 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. Hierfür sind die beiden Befehle
% \cs{tud@cdmath@symbols@set} und \cs{tud@cdmath@symbols@reset} verantwortlich,
% welche die von \cs{tud@cdmath@declare@symb} und \cs{tud@cdmath@declare@char}
% erzeugten Listen \cs{tud@cdmath@symb@list} und \cs{tud@cdmath@char@list}
% nutzen.
-% \ToDo{Codierungen \val{LS1/LS2}; siehe \pkg{stix,libertinust1math}}[v2.??]
+% \ToDo{Kodierungen \val{LS1/LS2}; siehe \pkg{stix,libertinust1math}}[v2.08]
% \begin{macro}{\tud@cdmath@declare@greek@uc}
% \changes{v2.04}{2015/03/10}{neu}^^A
% Hiermit werden die Auswahlbefehle für Majuskeln der der griechischen Lettern
@@ -3500,18 +3586,18 @@
% \end{macro}^^A \tud@cdmath@declare@greek@uc
% \begin{macro}{\tud@cdmath@declare@greek@lc}
% \changes{v2.06}{2018/07/17}{neu}^^A
-% Aufrechte griechische Minuskeln sind in den mathematischen Kodierungen von
-% \LaTeXe{} leider nicht enthalten, weshalb diese hier auch nicht für die
+% Aufrechte griechische Minuskeln sind in den mathematischen Kodierungen von
+% \LaTeX{} leider nicht enthalten, weshalb diese hier auch nicht für die
% normale OML-Kodierung deklariert werden können.
% \begin{macrocode}
\newcommand*\tud@cdmath@declare@greek@lc[1]{%
\tud@cdmath@declare@symb{it#1}{\mathalpha}{letters}{\the\tud@res@cnt}%
% \end{macrocode}
% Für aufrechte griechische Minuskeln gibt es gewöhnlich keine Symbolschrift,
-% weshalb der Eintrag \cs{up\meta{Letter}} in \cs{tud@cdmath@symb@list} gesetzt
-% wird, was mit einem fehlenden \cs{tud@cdmath@symbol@\meta{Letter}} zu einem
-% undefinierten \cs{up\meta{Letter}} bei \opt{cdmath=true} führt.
-% \ToDo{falls irgendwann erweiterte OML-Kodierung existiert, dann nutzen}[v2.??]
+% weshalb der Eintrag |\up|\meta{Letter} in \cs{tud@cdmath@symb@list} gesetzt
+% wird, was mit einem fehlenden |\tud@cdmath@symbol@|\meta{Letter} zu einem
+% undefinierten |\up|\meta{Letter} bei \opt{cdmath=true} führt.
+% \ToDo{falls irgendwann erweiterte OML-Kodierung existiert, dann nutzen}[v2.08]
% \begin{macrocode}
%^^A \tud@cdmath@declare@symb{it##1}{\mathalpha}{letters}%
%^^A {\the\numexpr\tud@res@cnt+128\relax}%
@@ -3526,10 +3612,10 @@
% \changes{v2.06}{2019/06/19}{neu}^^A
% \changes{v2.06d}{2019/08/27}{Ligaturen für Lua\LaTeX{} deaktiviert}^^A
% \changes{v2.06n}{2021/07/15}{\cs{mathord} statt \cs{mathalpha}}^^A
-% Die \OpenSans hält die griechischen Glyphen nur in der LGR-Kodierung bereit.
+% Die \OpenSans hält die griechischen Lettern nur in der LGR-Kodierung bereit.
% Hiermit werden diese für den mathematischen Satz definiert. Die übergebenen
% Argumente an das Makro \cs{tud@cdmath@declare@greek@@lgr} sind Bezeichnung
-% und LGR-Slot der Glyphe.
+% und LGR-Slot der Letter.
% \begin{macrocode}
\newcommand*\tud@cdmath@declare@greek@lgr{%
\tud@cdmath@declare@greek@@lgr{Gamma}{71}%
@@ -3608,7 +3694,7 @@
% \begin{macro}{\tud@cdmath@also@@@greeks}
% \changes{v2.06}{2019/06/19}{neu}^^A
% Das ist quasi das Gegenstück zu \cs{tud@math@map@greeks}. Alle bekannten
-% Variationen der Auswahlbefehle für griechische Glyphen werden durch die
+% Variationen der Auswahlbefehle für griechische Lettern werden durch die
% Definitionen für die Mathematikschriften im \CD gespiegelt.
% \begin{macrocode}
\newcommand*\tud@cdmath@also@greeks{%
@@ -3631,7 +3717,7 @@
}%
}
\newcommand*\tud@cdmath@also@@@greeks[1]{%
- \tud@lowerstring\tud@res@a{#1}%
+ \tud@strlowercase\tud@res@a{#1}%
\edef\tud@res@a{Up\tud@res@a}%
\ifcsundef{\tud@res@a}{}{%
\expandafter\tud@cdmath@declare@alias\expandafter{\tud@res@a}{up#1}%
@@ -3648,25 +3734,24 @@
% 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
+% das Mapping der griechischen Lettern geändert, zum anderen werden die
% originalen Mathematikversionen überschrieben respektive wiederhergestellt.
% \begin{macrocode}
-\newcommand*\tud@math@set{%
+\newcommand*\tud@math@set[1][\tud@cdmath@wrn]{%
% \end{macrocode}
% Beim Aktivieren der Mathematikschriften im \CD werden einmalig alle Warnungen
% ausgegeben, falls bei der Initialisierung Probleme aufgetreten sind und
% dementsprechend der Hook \cs{tud@cdmath@wrn} gefüllt wurde.
% \begin{macrocode}
\if@tud@cdmath@active%
- \tud@cdmath@wrn%
+ #1%
\tud@cs@store{mv@normal}%
\tud@cs@store{mv@bold}%
- \let\mv@normal\mv@tudnormal%
- \let\mv@bold\mv@tudbold%
+ \tud@cdmath@set%
\tud@cdmath@symbols@set%
% \end{macrocode}
% Anschließend erfolgt~-- abhängig von der Option \opt{slantedgreek}~-- die
-% Einstellung der Neigung der griechischen Glyphen.
+% Einstellung der Neigung der griechischen Lettern.
% \begin{macrocode}
\ifcase\tud@slantedgreek@num\relax% upright
\tud@math@loop@greeks@all\tud@math@upright@greeks%
@@ -3677,11 +3762,17 @@
\tud@math@loop@greeks@lc\tud@math@slanted@greeks%
\fi%
\else%
+% \end{macrocode}
+% \ToDo{\opt{slantedgreek} auswerten?}[v2.07]
+% \begin{macrocode}
\tud@cs@restore{mv@normal}%
\tud@cs@restore{mv@bold}%
\tud@cdmath@symbols@reset%
\fi%
- \mathversion{normal}%
+% \end{macrocode}
+% Zuletzt wird die aktuell gewählte Mathematikversion erneut aufgerufen.
+% \begin{macrocode}
+ \expandafter\mathversion\expandafter{\math@version}%
}
% \end{macrocode}
% \end{macro}^^A \tud@math@set
@@ -3689,8 +3780,8 @@
% \changes{v2.06}{2018/07/02}{neu}^^A
% \begin{macro}{\tud@math@slanted@greeks}
% \changes{v2.06}{2018/07/02}{neu}^^A
-% Mit den beiden Befehlen kann die Definition der griechischen Buchstaben
-% entweder auf aufrecht bzw. kursiv gesetzt werden.
+% Mit den beiden Befehlen kann die Definition der griechischen Lettern entweder
+% auf aufrecht bzw. kursiv gesetzt werden.
% \begin{macrocode}
\newcommand*\tud@math@upright@greeks[1]{%
\ifcsundef{up#1}{}{%
@@ -3707,126 +3798,25 @@
% \end{macrocode}
% \end{macro}^^A \tud@math@slanted@greeks
% \end{macro}^^A \tud@math@upright@greeks
-% Sämtliche 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{\mdseries@rm}{\edef\mdseries@rm{\mddefault}}{}%
- \ifundef{\bfseries@sf}{\edef\bfseries@sf{\bfdefault}}{}%
- \ifundef{\mdseries@sf}{\edef\mdseries@sf{\mddefault}}{}%
- \ifundef{\bfseries@tt}{\edef\bfseries@tt{\bfdefault}}{}%
- \ifundef{\mdseries@tt}{\edef\mdseries@tt{\mddefault}}{}%
- \fi%
-% \end{macrocode}
-% Hier wird auf das Vorhandensein aller benötigten Schriften geprüft.
-% \begin{macrocode}
- \tud@cdfont@check%
-% \end{macrocode}
-% Damit \pkg{tudscrfonts} reibungslos mit den nachfolgenden Definitionen
-% funktioniert, wird im Bedarfsfall der Befehl \cs{sectfont} vorgehalten.
-% \begin{macrocode}
-%<package> \ifdef{\sectfont}{}{\let\sectfont\relax}%
-% \end{macrocode}
-% Nachdem auf die Schriften geprüft wurde, werden noch die Schriftschalter und
-% die dazugehörigen Befehle definiert. Auch die mathematischen Schriften werden
-% initialisiert.
-% \begin{macrocode}
- \tud@cdfont@init%
- \tud@ttfont@init%
- \tud@cdmath@init%
-% \end{macrocode}
-% Die Einstellungen für den Mathematiksatz erfolgen erst zu Dokumentbeginn, um
-% auf Einstellungen von anderen Schriftpaketen reagieren zu können. Da es
-% so gut wie keine freien OpenType-Schriften für den mathmatischen Formelsatz
-% gibt, werden \emph{immer} die Type1-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%
- \UnPreventPackageFromLoading{bm}%
- \if@tud@cdmath@active%
- \tud@cs@store{mv@normal}%
- \tud@cs@store{mv@bold}%
- \let\mv@normal\mv@tudnormal%
- \let\mv@bold\mv@tudbold%
- \fi%
- \RequirePackage{bm}[2017/01/16]%
- \tud@cs@restore{mv@normal}%
- \tud@cs@restore{mv@bold}%
- \fi%
-% \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%
- \if@tud@cdfont@active%
- \if@tud@cdfont@heavy%
- \def\tud@reserved{\TUDoptions{cdfont=heavy}}%
- \else%
- \def\tud@reserved{\TUDoptions{cdfont=true}}%
- \fi%
- \else%
- \def\tud@reserved{\TUDoptions{cdfont=false}}%
- \fi%
- \expandafter\AfterEndPreamble\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}
-% Bereitstellung der Auswahlbefehle für griechische Glyphen in der Nomenklatur
-% von \TUDScript (\cs{up\meta{Letter}}, \cs{it\meta{Letter}}).
-% \begin{macrocode}
- \tud@math@map@greeks%
-% \end{macrocode}
-% Für die griechischen Glyphen wird mit \cs{tud@math@checkslanted@greeks}
-% geprüft, ob diese durch ein Paket explizit auf kursive Majuskeln oder eine
-% vollständig aufrechte Variante gesetzt wurden. Ist dies der Fall, wird der
-% Standardwert für die Option \opt{slantedgreek} entsprechend angepasst.
-% \begin{macrocode}
- \tud@math@checkslanted@greeks%
-% \end{macrocode}
-% Nachdem alle Vorbereitungen getroffen wurden, werden die Schriften für den
-% mathematischen Satz nun endlich gesetzt.
-% \begin{macrocode}
- \AtBeginDocument{\tud@math@set}%
-}
-% \end{macrocode}
%
% \iffalse
%<*class>
% \fi
%
-% \subsubsection{Schriften für die speziellen Seitenstile}
+% \subsubsection{Schriften für die Seitenstile der \TUDScript-Klassen}
%
% \begin{macro}{\tud@head@font@set}
% \changes{v2.02}{2014/07/08}{Unterstützung für \opt{cdhead} hinzugefügt}^^A
% \changes{v2.03}{2015/01/30}{Bugfix für die Änderung von \cs{spaceskip} durch
% das Paket \pkg{ragged2e}}^^A
-% \begin{macro}{\tud@head@cdfont@set}%
+% \begin{macro}{\tud@head@cdfont@set}
% \changes{v2.06}{2018/06/29}{neu}^^A
% \begin{macro}{\tud@head@font@light}
% \begin{macro}{\tud@head@font@bold}
% \begin{macro}{\tud@head@font@@bold}
% \changes{v2.05}{2016/04/17}{neu}^^A
+% \begin{macro}{\tud@font@phantomglyphs}
+% \changes{v2.06o}{2022/07/25}{neu}^^A
% Die Schrift der Kopfzeile wird entweder in den Schriften des \CDs oder aber
% in den serifenlosen Standardschriften gesetzt, wobei für beide Varianten
% sowohl eine fettgedruckte als auch eine normale Version benötigt wird. Die
@@ -3836,6 +3826,7 @@
% wird verwendet, um die Einstellung der fetten Schriften ohne die fixierte
% Schriftgröße nutzen zu können.
% \begin{macrocode}
+\newcommand*\tud@font@phantomglyphs{\"A\"O\"Ugjpqy}
\newcommand*\tud@head@font@light{}
\newcommand*\tud@head@font@bold{}
%<poster>\newcommand*\tud@head@font@@bold{}
@@ -3865,22 +3856,22 @@
\if@tud@head@font@set%
\if@tud@x@mweights@enabled%
\DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
- {\sfdefault}{\mdseries@sf}{\updefault}{\tud@head@fontsize}%
+ {\sfdefault}{\mdseries@sf}{\shapedefault}{\tud@head@fontsize}%
\DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}%
- {\sfdefault}{\bfseries@sf}{\updefault}{\tud@head@fontsize}%
+ {\sfdefault}{\bfseries@sf}{\shapedefault}{\tud@head@fontsize}%
%<*poster>
\protected\gdef\tud@head@font@@bold{%
- \usefont{\encodingdefault}{\sfdefault}{\bfseries@sf}{\updefault}%
+ \usefont{\encodingdefault}{\sfdefault}{\bfseries@sf}{\shapedefault}%
}%
%</poster>
\else%
\DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
- {\sfdefault}{\mddefault}{\updefault}{\tud@head@fontsize}%
+ {\sfdefault}{\mddefault}{\shapedefault}{\tud@head@fontsize}%
\DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}%
- {\sfdefault}{\bfdefault}{\updefault}{\tud@head@fontsize}%
+ {\sfdefault}{\bfdefault}{\shapedefault}{\tud@head@fontsize}%
%<*poster>
\protected\gdef\tud@head@font@@bold{%
- \usefont{\encodingdefault}{\sfdefault}{\bfdefault}{\updefault}%
+ \usefont{\encodingdefault}{\sfdefault}{\bfdefault}{\shapedefault}%
}%
%</poster>
\fi%
@@ -3943,6 +3934,7 @@
}%
\fi
% \end{macrocode}
+% \end{macro}^^A \tud@font@phantomglyphs
% \end{macro}^^A \tud@head@font@@bold
% \end{macro}^^A \tud@head@font@bold
% \end{macro}^^A \tud@head@font@light
@@ -3951,9 +3943,286 @@
%
% \iffalse
%</class>
+% \fi
+%
+% \subsection{Kompatibilität der Schriften}
+% \subsubsection{Majuskel-ß für Unicode-Prozessoren}
+%
+% Es wird für die Majuskelvariante der Letter \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 Letter nicht vorhanden ist.
+% \begin{macrocode}
+\ifx\tud@reserved\@empty
+ \RequirePackage{newunicodechar}
+ \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 sollen laut \CD linksbündig und ohne 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 beispielsweise in \cs{LaTeXraggedright} 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}{%
+ \ifundef{\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@mapping}
+% \changes{v2.06o}{2022/08/08}{neu}
+% \begin{macro}{\tud@x@siunitx@reset}
+% \changes{v2.06o}{2022/07/31}{neu}
+% \begin{macrocode}
+\AfterAtEndOfPackage*{siunitx}{%
+ \IfPackageAtLeastTF{siunitx}{2021-04-18}{%
+% \end{macrocode}
+% Das Paket \pkg{siunitx} in der Version |v3| stellt eine Schnittstelle für
+% die Zuordnung von Schriftschnitten zur verwendeten Mathematikversionen zur
+% Verfügung. Da vorher erheblicher Aufwand betrieben wurde, die korrekten
+% Schriftschnitte im Mathematikmodus mit den Versionen |normal| und |bold|
+% bereitzustellen, werden bei aktivierten Schriften des \CDs die entsprechenden
+% Zuordnungen gesetzt.
+% \begin{macrocode}
+ \newcommand*\tud@x@siunitx@mapping{%
+ \if@tud@cdfont@active
+ \csname keys_set:nx\endcsname { siunitx / series-version-mapping }
+ {
+ \tud@cdfont@md = normal,
+ \tud@cdfont@bf = bold,
+ \tud@cdfont@ebf = bold
+ }
+ \else
+% \end{macrocode}
+% Zurücksetzen auf die Standardeinstellungen von \pkg{siunitx}.
+% \begin{macrocode}
+ \csname keys_set:nn\endcsname { siunitx / series-version-mapping }
+ {
+ ul = light ,
+ el = light ,
+ l = light ,
+ sl = light ,
+ m = normal ,
+ sb = bold ,
+ b = bold ,
+ eb = bold ,
+ ub = bold
+ }
+ \fi
+ }
+ \xapptocmd\tud@font@set%
+ {\tud@x@siunitx@mapping}%
+ {}{\tud@patch@wrn{tud@font@set}}%
+ }{%
+% \end{macrocode}
+% Das Paket \pkg{siunitx} in der Version |v2| 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. Deshalb werden am Ende der Präambel die Schrifteinstellungen mit
+% \opt{cdfont}|=|\val{false} deaktiviert und zu Beginn des Dokumentes auf die
+% aktuelle Einstellung gesetzt. Dieser etwas merkwürdige Workaround geht auf
+% die gemeldeten Probleme im \GitHubRepo<22> sowie im \Forum<503> zurück.
+% \begin{macrocode}
+ \newcommand*\tud@x@siunitx@reset{}%
+ \providecommand*\lseries{\fontseries{l}\selectfont}%
+ \AtEndPreamble{%
+ \if@tud@cdfont@active%
+ \if@tud@cdfont@heavy%
+ \def\tud@x@siunitx@reset{\TUDoptions{cdfont=heavy}}%
+ \else%
+ \def\tud@x@siunitx@reset{\TUDoptions{cdfont=true}}%
+ \fi%
+ \appto\tud@x@siunitx@reset{\tud@font@set[]}%
+ \TUDoptions{cdfont=false}%
+ \tud@font@set[]%
+ \fi%
+ }%
+ \AtBeginDocument{\tud@x@siunitx@reset}%
+ }
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@x@siunitx@reset
+% \end{macro}^^A \tud@x@siunitx@mapping
+% \end{macro}^^A \lseries
+%
+% \subsubsection{Mathematikschriften in Verbindung mit dem Paket \pkg{bm}}
+%
+% \begin{macro}{\tud@x@bm@delayed}
+% \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. Dieser Workaround geht auf
+% eine Meldung im \Forum<448> zurück.
+% \begin{macrocode}
+\tud@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%
+ }%
+}{%
+%</package>
+\PreventPackageFromLoading[\@tud@x@bm@requestedtrue]{bm}
+%<*package>
+}
+%</package>
+% \end{macrocode}
+% Wird das Paket verzögert geladen, so werden die Mathematikschriften des \CDs
+% aktiviert (falls zuvor angefordert), damit die durch das Paket \pkg{bm}
+% vollzogenen Einstellungen für diese auch wirksam werden. Anschließend wird
+% der Ausgangszustand wiederhergestellt, um den späteren und erstmaligen Aufruf
+% von \cs{tud@math@set} vollständig abarbeiten zu können.
+% \begin{macrocode}
+\newcommand*\tud@x@bm@delayed{%
+ \if@tud@x@bm@requested%
+ \UnPreventPackageFromLoading{bm}%
+ \if@tud@cdmath@active%
+ \tud@cs@store{mv@normal}%
+ \tud@cs@store{mv@bold}%
+ \tud@cdmath@set%
+ \fi%
+ \RequirePackage{bm}
+ \tud@cs@restore{mv@normal}%
+ \tud@cs@restore{mv@bold}%
+ \fi%
+ \let\tud@x@bm@delayed\relax%
+}
+% \end{macrocode}
+% Für die \OpenSans kommt das Paket \pkg{mathastext} zum Einsatz. In diesem
+% Fall muss das Paket \pkg{bm} bereits zuvor geladen werden.
+% \begin{macrocode}
+\BeforePackage{mathastext}{\tud@x@bm@delayed}
+% \end{macrocode}
+% \end{macro}^^A \if@tud@x@bm@requested
+% \end{macro}^^A \tud@x@bm@delayed
+%
+% \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}}
+%</package>
+% \end{macrocode}
+%
+% \subsection{Aktivieren der gewählten Schriften}
+%
+% Die eigentliche Schriftauswahl erfolgt~-- abhängig von den zuvor gesetzten
+% Einstellungen~-- erst am Ende der Präambel, um etwaige Voreinstellungen
+% anderer Schriftpakete beachten zu können. Dabei erfolgt die Auswahl der
+% Schriften für den Mathematiksatz durch \cs{AtBeginDocument} innerhalb von
+% \cs{AtEndPreamble} am Ende \emph{möglichst aller} \cs{AtBeginDocument}.
+% \ToDo{das passt mit den neuen hooks so nicht mehr unbedingt}[v2.07]
+% \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{\mdseries@rm}{\edef\mdseries@rm{\mddefault}}{}%
+ \ifundef{\bfseries@sf}{\edef\bfseries@sf{\bfdefault}}{}%
+ \ifundef{\mdseries@sf}{\edef\mdseries@sf{\mddefault}}{}%
+ \ifundef{\bfseries@tt}{\edef\bfseries@tt{\bfdefault}}{}%
+ \ifundef{\mdseries@tt}{\edef\mdseries@tt{\mddefault}}{}%
+ \fi%
+% \end{macrocode}
+% Hier wird auf das Vorhandensein aller benötigten Schriften geprüft.
+% \begin{macrocode}
+ \tud@cdfont@check%
+% \end{macrocode}
+% Nachdem auf die Schriften geprüft wurde, werden noch die Schriftschalter und
+% die dazugehörigen Befehle definiert. Auch die mathematischen Schriften werden
+% initialisiert.
+% \begin{macrocode}
+ \tud@cdfont@init%
+ \tud@ttfont@init%
+% \end{macrocode}
+% Damit die Schrift im Dokument später noch umgestellt werden kann, werden
+% sämtliche Einstellungen erst am Ende der Präambel gesichert. Deshalb wird
+% der dafür verantwortliche Befehl \cs{tud@font@set} hier zum ersten Mal
+% verwendet. Damit ist es möglich, die Schriften eventuell geladener Pakete wie
+% \pkg{lmodern} oder \pkg{libertine} vorher zu sichern und später wieder zu
+% aktivieren.
+% \begin{macrocode}
+ \tud@font@set%
+% \end{macrocode}
+% Die Definitionen für den Mathematiksatz erfolgen erst zu Dokumentbeginn, um
+% auf Einstellungen von anderen Schriftpaketen reagieren zu können. Wurde
+% jedoch das Paket \pkg{bm} angefordert, so müssen die Mathematikschriften
+% bereits zum Ende der Präambel über \cs{tud@x@bm@delayed} initialisiert werden.
+% \begin{macrocode}
+ \tud@cdmath@init%
+ \tud@x@bm@delayed%
+% \end{macrocode}
+% Bereitstellung der Auswahlbefehle für griechische Lettern in der Nomenklatur
+% von \TUDScript (|\up|\meta{Letter}, |\it|\meta{Letter}).
+% \begin{macrocode}
+ \tud@math@map@greeks%
+% \end{macrocode}
+% Für die griechischen Lettern wird mit \cs{tud@math@checkslanted@greeks}
+% geprüft, ob diese durch ein Paket explizit auf kursive Majuskeln oder eine
+% vollständig aufrechte Variante gesetzt wurden. Ist dies der Fall, wird der
+% Standardwert für die Option \opt{slantedgreek} entsprechend angepasst.
+% \begin{macrocode}
+ \tud@math@checkslanted@greeks%
+% \end{macrocode}
+% Nachdem alle Vorbereitungen getroffen wurden, werden die Schriften für den
+% mathematischen Satz nun endlich gesetzt.
+% \begin{macrocode}
+ \AtBeginDocument{\tud@math@set}%
+% \end{macrocode}
+% \ToDo{Hook definieren, um Anwender eigenen Kram definieren zu lassen}[v2.07]
+% \begin{macrocode}
+}
+% \end{macrocode}
+%
+% \iffalse
%</body>
% \fi
%
-% \Finale
+% \PrintBackMatter
%
\endinput