diff options
author | Karl Berry <karl@freefriends.org> | 2019-06-28 21:06:55 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-06-28 21:06:55 +0000 |
commit | 6677e7d16babf1c0596fd30f9aeb6b13433725cd (patch) | |
tree | 84163738e611a8ebcbbed7102f3efa9238211476 /Master/texmf-dist/source | |
parent | 2a2ad17b85ef254d44022ec0fbcadb62cc90f431 (diff) |
tudscr (28jun19)
git-svn-id: svn://tug.org/texlive/trunk@51500 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
50 files changed, 11929 insertions, 9004 deletions
diff --git a/Master/texmf-dist/source/latex/tudscr/doc/examples/dissertation.tex b/Master/texmf-dist/source/latex/tudscr/doc/examples/dissertation.tex index e9ecbf4cbfb..d5ba74a3bbc 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/examples/dissertation.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/examples/dissertation.tex @@ -1,7 +1,13 @@ -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} -\documentclass[english,ngerman,BCOR=6mm,cdgeometry=no,DIV=13]{tudscrreprt} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\documentclass[% + english,ngerman,% + BCOR=6mm,cdgeometry=no,DIV=13% +]{tudscrreprt} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} \usepackage{babel} \usepackage{isodate} \usepackage{blindtext} diff --git a/Master/texmf-dist/source/latex/tudscr/doc/examples/document.tex b/Master/texmf-dist/source/latex/tudscr/doc/examples/document.tex index 295d073950d..9751d1c3d6e 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/examples/document.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/examples/document.tex @@ -1,9 +1,12 @@ -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[ngerman]{tudscrreprt} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} \usepackage{babel} -\usepackage{blindtext} +\usepackage[math]{blindtext} \begin{document} \faculty{Juristische Fakultät} \department{Fachrichtung Strafrecht} diff --git a/Master/texmf-dist/source/latex/tudscr/doc/examples/evaluation.tex b/Master/texmf-dist/source/latex/tudscr/doc/examples/evaluation.tex index 4f3ccb35319..c93670d7e63 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/examples/evaluation.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/examples/evaluation.tex @@ -1,7 +1,10 @@ -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} -\documentclass[ngerman]{tudscrreprt} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\documentclass[ngerman]{tudscrartcl} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} \usepackage{babel} \usepackage{isodate} \usepackage{tudscrsupervisor} @@ -15,12 +18,9 @@ Entwicklung eines optimalen Verfahrens zur Eroberung des Geldspeichers in Entenhausen } -\thesis{diploma} -\graduation[Dipl.-Ing.]{Diplomingenieur} -\matriculationnumber{12345678} -\matriculationyear{2010} -\dateofbirth{2.1.1990} -\placeofbirth{Dresden} +\thesis{diploma}\graduation[Dipl.-Ing.]{Diplomingenieur} +\matriculationnumber{12345678}\matriculationyear{2010} +\dateofbirth{2.1.1990}\placeofbirth{Dresden} \referee{Dagobert Duck} \evaluationform[pagestyle=empty]{% Als Ziel dieser Arbeit sollte identifiziert werden, warum das Thema @@ -28,19 +28,20 @@ ließe. Zusätzlich waren Methoden zu entwickeln, mit denen ein ähnlicher Vorgang zukünftig vermieden werden könnte. }{% - Die Arbeitet gliedert sich in mehrere Kapitel auf unzähligen Seiten. Im den - ersten beiden Kapiteln wird dies und das besprochen. Im darauffolgenden auch - noch jenes. Im vorletzten Kapitel wird alles betrachtet und im letzten - erfolgt die Zusammenfassung und der Ausblick. + Die Arbeit gliedert sich in mehrere Kapitel auf unzähligen Seiten. + In den ersten beiden Kapiteln wird dies und das besprochen. Im + darauffolgenden auch noch jenes. Im vorletzten Kapitel wird alles + betrachtet und im letzten erfolgt Zusammenfassung und Ausblick. }{% - Die dargestellten Ergebnisse der vorliegenden Arbeit genügen den in der - Aufgabenstellung formulierten Arbeitsschwerpunkten. Sowohl Form, Ausdruck - und Terminologie als auch Struktur befriedigen die Anforderungen an eine - wissenschaftliche Arbeit. Die einzelnen Kapitel können hinsichtlich ihrer - inhaltlichen Tiefe in Relation zu dem dazu benötigten Umfang als ausgewogen - betrachtet werden. Die verwendeten Grafiken und Tabellen sind sehr gut - aufbereitet und tragen insgesamt zum besseren Verständnis bei. Fachliche - Begrifflichkeiten werden sehr sauber verwendet, orthografische Mängel sind - keine zu finden. + Die dargestellten Ergebnisse der vorliegenden Arbeit genügen den in + der Aufgabenstellung formulierten Arbeitsschwerpunkten. Sowohl + Form, Ausdruck und Terminologie als auch Struktur befriedigen die + Anforderungen an eine wissenschaftliche Arbeit. Die einzelnen + Kapitel können hinsichtlich ihrer inhaltlichen Tiefe in Relation zu + dem dazu benötigten Umfang als ausgewogen betrachtet werden. Die + verwendeten Grafiken und Tabellen sind sehr gut aufbereitet und + tragen insgesamt zum besseren Verständnis bei. Fachliche + Begrifflichkeiten werden sehr sauber verwendet, orthografische + Mängel sind keine zu finden. }{1,0 (sehr gut)} \end{document} diff --git a/Master/texmf-dist/source/latex/tudscr/doc/examples/mathswap-example.tex b/Master/texmf-dist/source/latex/tudscr/doc/examples/mathswap-example.tex index 1bfa752a205..fd3e58d804f 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/examples/mathswap-example.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/examples/mathswap-example.tex @@ -1,7 +1,6 @@ -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} -\documentclass[english,ngerman]{tudscrartcl}% andere Klassen sind möglich +\documentclass[english,ngerman]{tudscrartcl}% andere Klassen möglich \usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{\usepackage[ngerman=ngerman-x-latest]{hyphsubst}}{} \usepackage{babel} \usepackage{microtype} diff --git a/Master/texmf-dist/source/latex/tudscr/doc/examples/mathtype-example.tex b/Master/texmf-dist/source/latex/tudscr/doc/examples/mathtype-example.tex index cf815bcb4b7..532bf94bbd9 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/examples/mathtype-example.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/examples/mathtype-example.tex @@ -1,7 +1,6 @@ -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[ngerman]{tudscrartcl}% andere Klassen sind möglich \usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{\usepackage[ngerman=ngerman-x-latest]{hyphsubst}}{} \usepackage{babel} \usepackage{microtype} diff --git a/Master/texmf-dist/source/latex/tudscr/doc/examples/notice.tex b/Master/texmf-dist/source/latex/tudscr/doc/examples/notice.tex index aece6fc8aff..51ceaf28363 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/examples/notice.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/examples/notice.tex @@ -1,7 +1,10 @@ -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[ngerman]{tudscrreprt} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} \usepackage{babel} \usepackage{isodate} \usepackage{tudscrsupervisor} @@ -9,24 +12,23 @@ \begin{document} \faculty{Juristische Fakultät}\department{Fachrichtung Strafrecht} \institute{Institut für Kriminologie}\chair{Lehrstuhl für Kriminalprognose} -\date{16.10.2015} \title{% Entwicklung eines optimalen Verfahrens zur Eroberung des Geldspeichers in Entenhausen -} +}\date{16.10.2015} \contactperson{% - Dagobert Duck\office{Dingens-Bau, Zimmer~08} - \emailaddress{dagobert.duck@tu-dresden.de}\telephone{+49 351 463-12345} + Dagobert Duck\emailaddress{dagobert.duck@tu-dresden.de} + \office{Dingens-Bau, Zimmer~08}\telephone{+49 351 463-12345} \and% - Mac Moneysac\office{Dingens-Bau, Zimmer~15} - \emailaddress{mac.moneysac@tu-dresden.de}\telephone{+49 351 463-54321} + Mac Moneysac\emailaddress{mac.moneysac@tu-dresden.de} + \office{Dingens-Bau, Zimmer~15}\telephone{+49 351 463-54321} } \noticeform[Angebot für eine Studien-/Diplomarbeit,pagestyle=empty]{% Momentan ist das besagte Thema in aller Munde. Insbesondere wird es gerade in vielen~-- wenn nicht sogar in allen~-- Medien diskutiert. - Es ist momentan noch nicht abzusehen, ob und wann sich diese Situation - ändert. Eine kurzfristige Verlagerung aus dem Fokus der Öffentlichkeit - wird nicht erwartet. + Es ist momentan noch nicht abzusehen, ob und wann sich diese + Situation ändert. Eine kurzfristige Verlagerung aus dem Fokus der + Öffentlichkeit wird nicht erwartet. Als Ziel dieser Arbeit soll identifiziert werden, warum das Thema gerade so omnipräsent ist und wie dieser Effekt abgeschwächt werden @@ -38,10 +40,8 @@ \captionof{figure}{Thematisch passendes Bild} \end{center} }{% - \item Recherche - \item Analyse - \item Entwicklung eines Konzeptes - \item Anwendung der entwickelten Methodik + \item Recherche \& Analyse + \item Entwicklung eines Konzeptes \& Anwendung der entwickelten Methodik \item Dokumentation und grafische Aufbereitung der Ergebnisse } \end{document} diff --git a/Master/texmf-dist/source/latex/tudscr/doc/examples/poster.tex b/Master/texmf-dist/source/latex/tudscr/doc/examples/poster.tex index 56830a580a5..61cb19989da 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/examples/poster.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/examples/poster.tex @@ -1,26 +1,28 @@ -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \RequirePackage{fix-cm} -\documentclass[ngerman,paper=A1,fontsize=22pt,cdfoot=5ex,ddcfoot]{tudscrposter} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\documentclass[% + ngerman,% + paper=A1,fontsize=22pt,% + cdfoot=5ex,ddcfoot% +]{tudscrposter} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} \usepackage{babel} \usepackage{blindtext} \usepackage{multicol} \begin{document} -\faculty{Juristische Fakultät} -\department[]{Fachrichtung Strafrecht} -\institute{Institut für Kriminologie} -\chair[]{Lehrstuhl für Kriminalprognose} -\date{18.02.2015} +\faculty{Juristische Fakultät}\department[]{Fachrichtung Strafrecht} +\institute{Institut für Kriminologie}\chair[]{Lehrstuhl für Kriminalprognose} \title{% Entwicklung eines optimalen Verfahrens zur Eroberung des Geldspeichers in Entenhausen -} +}\date{18.02.2015} \contactperson{% - Mickey Mouse% - \office{Büro 58}% - \telephone{463--xxxxx}% - \emailaddress{mickey.mouse@tu-dresden.de}% + Mickey Mouse\emailaddress{mickey.mouse@tu-dresden.de}% + \office{Büro 58}\telephone{463--xxxxx}% } \professor{Prof. Dr. Kater Karlo} \maketitle @@ -41,5 +43,4 @@ \blindmathtrue \blindtext[1] \end{multicols} - \end{document} diff --git a/Master/texmf-dist/source/latex/tudscr/doc/examples/task.tex b/Master/texmf-dist/source/latex/tudscr/doc/examples/task.tex index ab73cd0ff3c..114a6cbfd9d 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/examples/task.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/examples/task.tex @@ -1,7 +1,10 @@ -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[ngerman]{tudscrreprt} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} \usepackage{babel} \usepackage{isodate} \usepackage{tudscrsupervisor} @@ -23,25 +26,22 @@ \dateofbirth{1.2.1990}\placeofbirth{Berlin}% \course{Statistische Prognostik}\discipline{Makrosoziologische Prognosen}% }\matriculationyear{2010}\issuedate{1.4.2015}\duedate{1.10.2015} -\supervisor{Dagobert Duck \and Mac Moneysac} -\referee{Prof. Dr. Kater Karlo} -\professor{Prof. Dr. Kater Karlo}\chairman{Prof. Dr. Primus von Quack} +\supervisor{Dagobert Duck \and Mac Moneysac}\professor{Prof. Dr. Kater Karlo} +\referee{Prof. Dr. Kater Karlo}\chairman{Prof. Dr. Primus von Quack} \taskform[pagestyle=empty]{% Momentan ist das besagte Thema in aller Munde. Insbesondere wird es gerade in vielen~-- wenn nicht sogar in allen~-- Medien diskutiert. - Es ist momentan noch nicht abzusehen, ob und wann sich diese Situation - ändert. Eine kurzfristige Verlagerung aus dem Fokus der Öffentlichkeit - wird nicht erwartet. + Es ist momentan noch nicht abzusehen, ob und wann sich diese + Situation ändert. Eine kurzfristige Verlagerung aus dem Fokus + der Öffentlichkeit wird nicht erwartet. Als Ziel dieser Arbeit soll identifiziert werden, warum das Thema gerade so omnipräsent ist und wie dieser Effekt abgeschwächt werden könnte. Zusätzlich sind Methoden zu entwickeln, mit denen sich ein ähnlicher Vorgang zukünftig vermeiden lässt. }{% - \item Recherche - \item Analyse - \item Entwicklung eines Konzeptes - \item Anwendung der entwickelten Methodik + \item Recherche \& Analyse + \item Entwicklung eines Konzeptes \& Anwendung der entwickelten Methodik \item Dokumentation und grafische Aufbereitung der Ergebnisse } \end{document} diff --git a/Master/texmf-dist/source/latex/tudscr/doc/examples/thesis.tex b/Master/texmf-dist/source/latex/tudscr/doc/examples/thesis.tex index b214d9fc0dc..5d88a8c2bd3 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/examples/thesis.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/examples/thesis.tex @@ -1,7 +1,10 @@ -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[ngerman,BCOR=4mm]{tudscrreprt} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} \usepackage{babel} \usepackage{isodate} \begin{document} diff --git a/Master/texmf-dist/source/latex/tudscr/doc/examples/treatise-example.tex b/Master/texmf-dist/source/latex/tudscr/doc/examples/treatise-example.tex index 3710f7b8403..83d092306eb 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/examples/treatise-example.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/examples/treatise-example.tex @@ -1,8 +1,11 @@ -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[english,ngerman]{tudscrreprt} \usepackage{babel} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} \usepackage{scrhack} \usepackage{tudscrsupervisor} @@ -25,7 +28,7 @@ \AfterPackage*{glossaries}{% \newglossarystyle{acrotabu}{% \renewenvironment{theglossary}{% - \begin{tabu}spread 0pt{@{}lX<{\strut}l@{}}% + \begin{tabu}{@{}lX<{\strut}l@{}}% 'spread 0pt' defekt in v2.9 }{% \end{tabu}\par\bigskip% }% @@ -40,7 +43,7 @@ } } -\newcommand*{\newsymbol}[5][]{% +\newcommand*{\newformulasymbol}[5][]{% \newglossaryentry{#2}{% type=symbols,% name={#3},% @@ -61,7 +64,7 @@ } \newglossarystyle{symblongtabu}{% \renewenvironment{theglossary}{% - \begin{longtabu}spread 0pt[l]{ccX<{\strut}l}% + \begin{longtabu}[l]{ccX<{\strut}l}% 'spread 0pt' defekt in v2.9 }{% \end{longtabu}% }% @@ -69,7 +72,7 @@ \renewcommand*{\glsgroupskip}{}% \renewcommand*{\glossaryheader}{% \toprule - \bfseries Formelzeichen & \bfseries Einheit & + \bfseries Symbol & \bfseries Einheit & \bfseries Bezeichnung & \bfseries Seite(n) \tabularnewline\midrule\endhead% \bottomrule\endfoot% @@ -141,16 +144,16 @@ \usepackage[babel]{microtype} -\usepackage{xfrac} - \usepackage{enumitem} \setlist[itemize]{noitemsep} -\usepackage{isodate} - \usepackage{ellipsis} \let\ellipsispunctuation\relax +\usepackage{xfrac} + +\usepackage{isodate} + \usepackage[colorlinks,linkcolor=blue]{hyperref} \begin{document} @@ -251,12 +254,12 @@ mit \gls{spsp} bezeichnet. Es lässt sich auf die Variationen \gls{sssp} und \gls{apsp} erweitern. Für die Lösung von \gls{spsp}, \gls{sssp} oder \gls{apsp} kommen unterschiedliche Algorithmen zum Einsatz. -\newsymbol{l}{Länge}{l}{m} -\newsymbol{m}{Masse}{m}{kg} -\newsymbol{a}{Beschleunigung}{a}{\sfrac{m}{s^2}} -\newsymbol{t}{Zeit}{t}{s} -\newsymbol{f}{Frequenz}{f}{s^{-1}} -\newsymbol{F}{Kraft}{F}{m \cdot kg \cdot s^{-2} = \sfrac{J}{m}} +\newformulasymbol{l}{Länge}{l}{m} +\newformulasymbol{m}{Masse}{m}{kg} +\newformulasymbol{a}{Beschleunigung}{a}{\sfrac{m}{s^2}} +\newformulasymbol{t}{Zeit}{t}{s} +\newformulasymbol{f}{Frequenz}{f}{s^{-1}} +\newformulasymbol{F}{Kraft}{F}{m \cdot kg \cdot s^{-2} = \sfrac{J}{m}} Die Einheiten für die \gls{f} sowie die \gls{F} werden aus den SI"=Einheiten der Basisgrößen \gls{l}, \gls{m} und \gls{t} abgeleitet. diff --git a/Master/texmf-dist/source/latex/tudscr/doc/sub-tudscr.tex b/Master/texmf-dist/source/latex/tudscr/doc/sub-tudscr.tex new file mode 100644 index 00000000000..6c70d570832 --- /dev/null +++ b/Master/texmf-dist/source/latex/tudscr/doc/sub-tudscr.tex @@ -0,0 +1,17 @@ +%\AtBeginDocument{\TUDoptions{ToDo=no}} +\includeonly{% +% tudscr-preface, +% tudscr-introduction, +% tudscr-mainclasses, +% tudscr-poster, +% tudscr-supervisor, +% tudscr-bundle, +% tudscr-examples, +% tudscr-packages, +% tudscr-hints, +% tudscr-installation, + tudscr-obsolete, +% tudscr-additional, + tudscr-index, +} +\input{tudscr} diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-additional.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-additional.tex index c471bc62c38..03ebd6ba85f 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-additional.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-additional.tex @@ -1,8 +1,8 @@ \chapter{Identifikation von \TUDScript} Im \TUDScript-Bundle gibt es neben den Klassen selbst auch noch zusätzliche Pakete. Ein Teil dieser Pakete~-- genauer \Package{tudscrsupervisor} und -\Package{tudscrcomp}~-- sind ausschließlich mit den \TUDScript-Klassen nutzbar, -andere wiederum~-- die beiden Pakete für Belange des \CDs \Package{tudscrfonts} +\Package{tudscrcomp}~-- sind ausschließlich mit den \TUDScript-Klassen nutzbar, +andere wiederum~-- die beiden Pakete für Belange des \CDs \Package{tudscrfonts} (Schriften) und \Package{tudscrcolor} (Farben) sowie die davon vollkommen unabhängigen Pakete \Package{mathswap} und \Package{twocolfix}~-- können mit allen existierenden \hologo{LaTeXe}"=Dokumentklassen genutzt werden. Sämtliche diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-bundle.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-bundle.tex index b481073afd5..c97773482ce 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-bundle.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-bundle.tex @@ -53,8 +53,9 @@ Sollen bestimmte Optionen an das Paket \Package{xcolor} weitergereicht werden, gibt es dafür zwei Möglichkeiten. Diese kann entweder vor dem Laden der Klasse direkt an \Package{xcolor} übergeben werden% \footnote{% - \Macro{PassOptionsToPackage}[\Parameter{Paketoptionen}\PParameter{xcolor}] vor - \Macro*{documentclass}[\OParameter{Klassenoptionen}\PParameter{tudscr\dots}]% + \Macro{PassOptionsToPackage}[\Parameter{Paketoptionen}\PParameter{xcolor}] + vor dem Laden der genutzten Dokumentklasse mit + \Macro*{documentclass}[\OParameter{Klassenoptionen}\Parameter{Klasse}]% } oder es wird \Package{tudscrcolor} mit der entsprechenden Option geladen.% \footnote{% @@ -104,13 +105,13 @@ oder es wird \Package{tudscrcolor} mit der entsprechenden Option geladen.% \cdcolor[4]{92} \end{Declaration} -\minisec{Auszeichnungsfarbe 1.Kategorie} +\minisec{Auszeichnungsfarbe 1.\,Kategorie} \begin{Declaration}{\Color{HKS44}[cdblue]} \printdeclarationlist% \cdcolor[4]{44} \end{Declaration} -\minisec{Auszeichnungsfarbe 2.Kategorie} +\minisec{Auszeichnungsfarbe 2.\,Kategorie} \begin{Declaration}{\Color{HKS36}[cdindigo]} \begin{Declaration}{\Color{HKS33}[cdpurple]} \begin{Declaration}{\Color{HKS57}[cddarkgreen]} @@ -180,14 +181,14 @@ CMYK"=Farbmodell in den RGB"=Farbraum zu wechseln. Unterstützte Werte für \PValue{rgb}. \end{Declaration} -\bigskip\noindent +\smallskip\noindent \Attention{% - Beachten Sie, dass die Darstellung der Farben im jeweiligen Farbmodus - (\PValue{CMYK} oder \PValue{RGB}) je nach verwendeter Bildschirm- Drucker- - und Softwarekonfiguration verschieden ausfallen kann. Die verwendeten - RGB"~Werte entstammen aus dem Handbuch zum \CD und sind lediglich - Näherungswerte. Abweichungen vom gedruckten HKS"~Farbregister und selbst - ermittelten Werten sind technisch nicht zu vermeiden. + Die Darstellung der Farben kann im jeweiligen Farbmodus + (\PValue{CMYK} oder \PValue{RGB}) je nach verwendeter Bildschirm-, Drucker- + und Softwarekonfiguration verschieden ausfallen. Die Farbwerte entstammen dem + Handbuch zum \CD und sind lediglich Näherungswerte. Abweichungen vom + gedruckten HKS"~Farbregister und selbst ermittelten Werten sind technisch + nicht zu vermeiden. }% \index{Farben|)}% \index{Layout!Farben|?)}% @@ -211,23 +212,22 @@ sind in \fullref{sec:fonts} zu finden. Die nutzbaren Paketoptionen sind für den Fließtext \Option{cdfont}~-- ohne die Einstellungsmöglichkeiten für den Querbalken des \CDs (\Option{cdhead})~-- und für die mathematischen Schriften \Option{cdmath} sowie \Option{slantedgreek}. +Für die Auswahl der Schreibmaschinenschriften ist \Option{ttfont} verfügbar. Weiterhin wird die Option \Option{relspacing} bereitgestellt. Alle genannten -Optionen können dabei entweder als Paketoptionen im optionalen Argument von -\Macro*{usepackage}[\OParameter{Paketoptionen}\PParameter{tudscrfonts}] oder -direkt als Klassenoption angegeben werden. Zusätzlich ist nach dem Laden des -Paketes die späte Optionenwahl mit \Macro{TUDoption} beziehungsweise -\Macro{TUDoptions} möglich. +Optionen können entweder direkt als Klassenoption oder als Paketoptionen im +optionalen Argument von +\Macro*{usepackage}[\OParameter{Paketoptionen}\PParameter{tudscrfonts}] +angegeben werden. Zusätzlich ist nach dem Laden des Paketes die Optionenwahl +mit \Macro{TUDoption} respektive \Macro{TUDoptions} möglich. Die in \autoref{sec:fonts} beschriebenen Textschalter und "~kommandos zur -expliziten Auswahl einzelnen Schnitte der Hausschriften sowie die Befehle für -griechische Buchstaben werden ebenso wie der Befehl \Macro{ifdin} zur Prüfung -auf die Verwendung von \DIN bereitgestellt. Dabei muss der Anwender das Setzen -der Gliederungsüberschriften in Majuskeln der \DIN~-- wie es im \CD vorgesehen -ist~-- selbst umsetzen. Hierfür sollten die Textauswahlbefehle \Macro{textdbn} -und \Macro{dinbn} sowie \Macro{MakeTextUppercase}(\Package{textcase})'none' zur -automatisierten Großschreibung genutzt werden. Der letztgenannte Befehl wird -zusammen mit \Macro{NoCaseChange}(\Package{textcase}) von \Package{textcase} -zur Verfügung stellt, welches durch \Package{tudscrfonts} geladen wird. +expliziten Auswahl einzelner Schnitte der Hausschrift des \CDs sowie die +Befehle für griechische Buchstaben werden ebenso bereitgestellt. +\ChangedAt{v2.06:\OpenSans als neue Hausschrift standardmäßig aktiviert} +Soll nicht \OpenSans sondern die alten Schriftfamilien \Univers und \DIN +genutzt werden, ist eine Installation dieser notwendig. Hinweise hierzu sind +unter \autoref{sec:install:fonts} zu finden. Um diese zu aktivieren, sei auf +\Option{tudscrver=2.05} und \Option{cdoldfont} verwiesen. \ChangedAt{% v2.04:Unterstützung der Klassen \Class{tudposter} und \Class{tudmathposter};% @@ -262,43 +262,21 @@ vorgesehen: \item \Class{tudposter} \end{itemize} % -Die Schriftinstallation für das \TUDScript-Bundle unterscheidet sich von der -für die gerade genannten Klassen sehr stark. Dabei wurde auch die Bezeichnung -der Schriftfamilien geändert. Dies hatte zwei Gründe, wobei letzterer von -entscheidender Bedeutung ist: -% -\begin{enumerate} -\item - Die bisherige Schriftbenennung entsprach nicht dem offiziellen - \hrfn{% - http://mirrors.ctan.org/info/fontname/fontname.pdf% - }{\hologo{TeX}\hbox{-}Namensschema} -\item - Bei der Installation für das \TUDScript-Bundle werden sowohl die Metriken - als auch das Kerning der Schriften für Fließtext und den Mathematikmodus - angepasst, was das Ergebnis der erzeugten Ausgabe beeinflusst. Damit jedoch - Dokumente, die mit den zuvor genannten, älteren Klassen erstellt wurden, - weiterhin genauso ausgegeben werden wie bisher, mussten die Schriftfamilien - einen neuen Namen erhalten. -\end{enumerate} -% -Wird nun das Paket \Package{fix-tudscrfonts} zusammen mit einer der zuvor -genannten Klassen verwendet, hat dies den Vorteil, dass auch bei diesen sowohl -das angepasste Kerning der Schriften als auch der stark verbesserte -Mathematiksatz zum Tragen kommen. Außerdem kann bei der Verwendung von -\Package{fix-tudscrfonts} auf eine Installation der Schriften des \CDs in der -alten Variante verzichtet werden. +\ChangedAt{v2.06:\OpenSans als neue Hausschrift standardmäßig aktiviert} +Für das \TUDCD wird vom \TUDScript-Bundle standardmäßig \OpenSans als +Schriftfamilie verwendet. Diese unterscheidet sich stark von den ursprünglich +durch die gerade genannten Klassen genutzten Schriftfamilien. Wird nun das +Paket \Package{fix-tudscrfonts} zusammen mit einer dieser Klassen verwendet, +hat dies den Vorteil, dass auch bei diesen die aktuelle Hausschrift verwendet +wird und der stark verbesserte Mathematiksatz zum Tragen kommen. \Attention{% In diesem Fall kann sich das Ausgabeergebnis im Vergleich zu der Varianten - mit den alten Schriften ändern. Alternativ zur Verwendung des Paketes - \Package{fix-tudscrfonts} können die alten Schriftfamilien auch parallel zu - den neuen installiert werden. Hierfür werden die Skripte - \hrfn{\Download{oldfonts/tud_fonts_install.bat}}{\File{tud\_fonts\_install.bat}} - beziehungsweise - \hrfn{\Download{oldfonts/tud_fonts_install.sh}}{\File{tud\_fonts\_install.sh}} - bereitgestellt. + mit den alten Schriften ändern. Zum Setzen von Dokumenten mit den alten + Schriftfamilien \Univers und \DIN müssen diese installiert werden. Hinweise + hierzu sind unter \autoref{sec:install:fonts} zu finden. Um diese zu + aktivieren, sei auf \Option{tudscrver=2.05} und \Option{cdoldfont} verwiesen. }% -% + Um alle notwendigen Einstellung korrekt und ohne unnötige Warnungen vornehmen zu können, muss das Paket \Package{fix-tudscrfonts} bereits \emph{vor} der Dokumentklasse geladen werden, wobei die gleichen Paketoptionen wie für das @@ -369,11 +347,11 @@ definiert (\Macro*{,}). \end{Declaration} \end{Declaration} -\ChangedAt*{v2.02:Funktionalität im Dokument umschaltbar}% \begin{Declaration}[v2.02]{\Macro{mathswapon}} \begin{Declaration}[v2.02]{\Macro{mathswapoff}} \printdeclarationlist% % +\ChangedAt*{v2.02:Funktionalität im Dokument umschaltbar}% Die Funktionalität von \Package{mathswap} kann innerhalb des Dokumentes mit diesen beiden Befehlen an- und abgeschaltet werden. Beim Laden des Paketes ist es standardmäßig aktiviert. @@ -405,7 +383,10 @@ Diese Dinge sollen langfristig in das \TUDScript-Bundle eingearbeitet werden: %\chapter{Das Paket \Package{tudscrletter} -- Briefe im \CD} %\begin{Bundle*}{\Package{tudscrletter}} -\ToDo[imp]{Paket \Package*{tudscrletter} für Briefe im \CD}[v2.07] +\ToDo[imp]{% + Paket \Package*{tudscrletter} für Briefe im \CD, + \url{https://komascript.de/node/2200}% +}[v2.07] Es soll das Paket \Package*{tudscrletter}<tudscr> für Briefe im \TUDCD entstehen. Auch Klassen für Fax und Hausmitteilungen sollen dabei abfallen. %\end{Bundle*} @@ -413,9 +394,12 @@ entstehen. Auch Klassen für Fax und Hausmitteilungen sollen dabei abfallen. %\chapter{Das Paket \Package{tudscrbeamer} -- Präsentationen im \CD} %\begin{Bundle*}{\Package{tudscrbeamer}} \ToDo[imp]{Paket \Package*{tudscrbeamer} für Präsentationen im \CD}[v2.08] -Mit \Package*{tudscrbeamer}<tudscr> soll ein Paket entstehen, mit dem -\hologo{LaTeX}"=Beamer"=Präsentationen im Stil des \TUDCDs erstellt werden -können. +Mit \Package*{tudscrbeamer}<tudscr> soll ein Paket entstehen, mit dem sich +\hologo{LaTeX}"=Beamer"=Präsentationen im Stil des \TUDCDs mit den +Einstellungsmöglichkeiten von \TUDScript erstellen lassen. Aktuell können +hierfür die Pakete aus dem \hrfn{https://github.com/tud-cd/tud-cd/}{% + GitHub-Repository~\Distribution*{tud-cd}% +} genutzt werden. %\end{Bundle*} %\chapter{Das Paket \Package{tudscrlayout} -- Seitenstil und Satzspiegel im \CD} @@ -429,5 +413,5 @@ den durch das \CD vorgegebene Satzspiegel aktiviert ohne den Seitenstil selbst zu verwenden, um beispielsweise bereits mit dem Kopf der \TnUD bedrucktes Papier nutzen zu können. Ebenfalls wäre es denkbar, für andere Klassen die \PageStyle{tudheadings}"=Seitenstile verfügbar zu machen ohne dabei den -Satzspiegel des \CDs umzusetzen. +Satzspiegel des \CDs umzusetzen. Dies hat jedoch nur geringe Priorität. %\end{Bundle*} diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-examples.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-examples.tex index 62bb56e2103..ba3dfbce1c6 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-examples.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-examples.tex @@ -121,7 +121,7 @@ Dennoch ist es gerade für Neulinge~-- vielleicht auch für den einen oder anderen \hologo{LaTeX}"=Veteran~-- als Leitfaden für die Erstellung einer wissenschaftlichen Arbeit gedacht. -\addsec*{Ein Beitrag zum mathematischen Satz in \NoCaseChange{\hologo{LaTeXe}}} +\addsec*{Ein Beitrag zum mathematischen Satz in \hologo{LaTeXe}} \index{Mathematiksatz}% % Das Tutorial \Tutorial{mathtype}|!| richtet sich an alle Anwender, die in ihrem diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-hints.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-hints.tex index c9e67b0de3c..87ea1b60562 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-hints.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-hints.tex @@ -1,7 +1,7 @@ \setchapterpreamble{\tudhyperdef'{sec:tips}} \chapter{Praktische Tipps \& Tricks} \newcommand*\TaT{\hyperref[sec:tips]{Tipps \& Tricks}:\xspace} -\section{\NoCaseChange{\hologo{LaTeX}}-Editoren} +\section{\hologo{LaTeX}-Editoren} \tudhyperdef*{sec:tips:editor}% % Hier werden die gängigsten Editoren zum Erzeugen von \hologo{LaTeX}"=Dateien @@ -38,14 +38,17 @@ Archiv im \GitHubRepo* verfügbar. Die Layout"~Dateien müssen dafür im \Application{\hologo{LyX}}"=Installationspfad in den passenden Unterordner kopiert werden. Dieser ist bei Windows -\Path{\%PROGRAMFILES(X86)\%\textbackslash{}LyX~2.1\textbackslash{}Resources\textbackslash{}layouts} +\Path{% + \%PROGRAMFILES(X86)\%\textbackslash{}LyX~2.1\textbackslash{}% + Resources\textbackslash{}layouts% +} beziehungsweise bei unixoiden Betriebssystemen \Path{/usr/share/lyx/layouts}. Anschließend muss LyX über den Menüpunkt \emph{Werkzeuge} neu konfiguriert werden. -\section{Literaturverwaltung in \NoCaseChange{\hologo{LaTeX}}} +\section{Literaturverwaltung in \hologo{LaTeX}} \ChangedAt{v2.02:\TaT Literaturverwaltung} % Die simpelste Variante, eine \hologo{LaTeX}"=Literaturdatenbank zu verwalten, @@ -84,18 +87,23 @@ Paket \Package{hyphsubst} entscheidend verbessert. Dafür wird ein um vielerlei Trennungsmuster ergänztes Wörterbuch aus dem Paket \Package{dehyph-exptl} genutzt. -Das Paket \Package{hyphsubst} muss bereits \emph{vor} der Dokumentklasse selbst -geladen werden. Außerdem wird das Paket \Package{babel} benötigt. Damit auch -Wörter mit Umlauten richtig getrennt werden, ist zusätzlich die Verwendung des -Paketes \Package{fontenc} mit der \PValue{T1}"~Schriftkodierung erforderlich. -Der Beginn einer Dokumentpräambel könnte folgendermaßen aussehen: +In jedem Fall wird ein Sprachpaket wie beispielsweise \Package{babel} oder +\Package{polyglossia} benötigt, wobei letzteres für den Einsatz mit +\Engine{LuaLaTeX} oder \Engine{XeLaTeX} konzipiert ist. Bei der Verwendung +einer dieser beiden Unicode"=Textsatzsysteme~-- in Verbindung mit einem der zwei +genannten Sprachpakete werden~-- die Trennmuster automatisch aktiviert. + +Für \Engine{pdfLaTeX} lassen sich diese mit dem Paket \Package{hyphsubst} +aktivieren. Damit auch Wörter mit Umlauten richtig getrennt werden, ist +zusätzlich die Verwendung des Paketes \Package{fontenc} mit beispielsweise der +\PValue{T1}"~Schriftkodierung erforderlich. Der Beginn einer Dokumentpräambel +könnte folgendermaßen aussehen: % \begin{quoting}[rightmargin=0pt] \begin{Code}[escapechar=§] -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[ngerman,§\PName{Klassenoptionen}§]§\Parameter{Dokumentklasse}§ \usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{\usepackage[ngerman=ngerman-x-latest]{hyphsubst}}{} \usepackage{babel} §\dots§ \end{Code} @@ -162,14 +170,14 @@ mit fetter Schrift erfolgen, kann der Befehl \Macro{emph} innerhalb einer Gruppierung geändert und verändert werden. Wird diese beendet, verhält sich der Befehl wie gewohnt. \begin{Code} -In diesem Text wird ein bestimmtes \emph{Wort} hervorgehoben. +In diesem Text wird genau ein \emph{Wort} hervorgehoben. \begingroup \renewcommand*{\emph}[1]{\textbf{#1}}% - In diesem Text wird ein bestimmtes \emph{Wort} hervorgehoben. + In diesem Text wird genau ein \emph{Wort} hervorgehoben. \endgroup -In diesem Text wird ein bestimmtes \emph{Wort} hervorgehoben. +In diesem Text wird genau ein \emph{Wort} hervorgehoben. \end{Code} \end{Example} Eine Gruppierung kann entweder mit \Macro*{begingroup} und \Macro*{endgroup} @@ -187,7 +195,7 @@ Das Paket \Package{hyperref} stellt für Querverweise unter anderem den Befehl \Macro{autoref}[\Parameter{label}](\Package{hyperref})'none' zur Verfügung. Mit diesem wird~-- im Gegensatz zur Verwendung von \Macro{ref}~-- bei einer Referenz nicht nur die Nummerierung selber sondern auch das entsprechende -Element wie Kapitel oder Abbildung vorangestellt. Bei der Benennung des +Element wie Kapitel oder Abbildung vorangestellt. Zur Benennung des referenzierten Elementes wird sequentiell geprüft, ob das Makro \Macro*{\PName{Element}\PValue{autorefname}} oder \Macro*{\PName{Element}\PValue{name}} existiert. Soll die Bezeichnung eines @@ -198,7 +206,6 @@ Bezeichnungen von Gliederungsebenen können folgendermaßen verändert werden. \begin{Code} \renewcaptionname{ngerman}{\sectionautorefname}{Unterkapitel} \renewcaptionname{ngerman}{\subsectionautorefname}{Abschnitt} -\renewcaptionname{ngerman}{\subsubsectionautorefname}{Unterabschnitt} \end{Code} \end{Example} @@ -209,18 +216,18 @@ Bezeichnungen von Gliederungsebenen können folgendermaßen verändert werden. \ChangedAt{v2.02:\TaT URL-Umbrüche im Literaturverzeichnis} % Wird das Paket \Package{biblatex} verwendet, kann es unter Umständen dazu -kommen, das eine URL nicht vernünftig umbrochen werden. Ist dies der Fall, -können die Zählern \Counter{biburlnumpenalty}(\Package{biblatex})'none', +kommen, das eine URL nicht vernünftig umbrochen wird. Ist dies der Fall, +können die Zähler \Counter{biburlnumpenalty}(\Package{biblatex})'none', \Counter{biburlucpenalty}(\Package{biblatex})'none' und \Counter{biburllcpenalty}(\Package{biblatex})'none' erhöht werden. Das Manipulieren eines Zähler kann mit \Macro*{setcounter}[\Parameter{Zähler}] oder lokal mit \Macro*{defcounter}[\Parameter{Zähler}] aus dem Paket -\Package{etoolbox} erfolgen. Die möglichen Werte liegen zwischen 0~und~10000, +\Package{etoolbox} erfolgen. Die möglichen Werte liegen zwischen 0~und~10\,000, wobei es bei höheren Zählerwerten zu mehr URL"~Umbrüchen an Ziffern~(\Counter{biburlnumpenalty}(\Package{biblatex})'none'), Groß-~(\Counter{biburlucpenalty}(\Package{biblatex})'none') und Kleinbuchstaben~(\Counter{biburllcpenalty}(\Package{biblatex})'none') kommt. -Genaueres hierzu in der Dokumentation zu \Package{biblatex}. +Genaueres in der Dokumentation zu \Package{biblatex}. @@ -286,7 +293,7 @@ komplette Seitenbreite aufgespannt werden. Das Paket \Package{tabularborder} versucht, dieses Problem automatisiert zu beheben, ist jedoch nicht zu allen \hologo{LaTeXe}"=Paketen für den Tabellensatz kompatibel, unter anderem auch nicht zu den drei zuvor genannten. -Allerdings lässt sich dieses Problem manuell durch den Anwender lösen. +Allerdings lässt sich dieses Problem manuell lösen. Bei der Deklaration einer Tabelle kann mit~\PValue{@}\PParameter{\dots} vor und nach dem Spaltentyp angegeben werden, was anstelle von \Length{tabcolsep} vor @@ -329,42 +336,15 @@ Paket \Package{noindentafter} zu empfehlen. \tudhyperdef*{sec:tips:counter}% \index{Fußnoten}% % -Oft taucht die Frage auf, wie sich über Kapitel fortlaufende Fußnoten -realisieren lassen. Dies ist sehr einfach mit dem Paket \Package{chngcntr} -möglich. Nach dem Laden des Paketes, kann das Zurücksetzen des Zählers nach -einem Kapitel mit \Macro{counterwithout*}[% +Mit \Macro{counterwithin} und \Macro{counterwithout} können +\hologo{LaTeX}"=Zähler so umdefiniert werden, dass sie bei der Änderung eines +anderen Zählers zurückgesetzt werden oder nicht. Mit der Angabe von +\Macro*{counterwithout*}[% \PParameter{footnote}\PParameter{chapter}% -](\Package{chngcntr})'none' deaktiviert werden. Auch andere -\hologo{LaTeXe}"=Zähler~-- wie beispielsweise der bereits vorgestellte -\Counter{symbolheadings}~-- lassen sich mit diesem Paket manipulieren. - - - -\section{Lokalisierung für das Setzen von Einheiten mit \Package{siunitx}} -\tudhyperdef*{sec:tips:siunitx}% -\index{Einheiten}% -% -Wenn \Package{siunitx} in einem deutschsprachigen Dokument genutzt soll -werden, muss zumindest die richtige Lokalisierung mit -\Macro{sisetup}[\PParameter{locale = DE}](\Package{siunitx})'none' angegeben -werden. Sollen auch die Zahlen richtig formatiert sein, müssen weitere -Einstellungen vorgenommen werden. Die meiner Meinung nach besten sind die -folgenden. -% -\begin{quoting} -\begin{Code} -\sisetup{% - locale = DE,% - input-decimal-markers={,},input-ignore={.},% - group-separator={\,},group-minimum-digits=3% -} -\end{Code} -\end{quoting} -% -Das Komma kommt als Dezimaltrennzeichen zum Einsatz. Des Weiteren werden Punkte -innerhalb der Zahlen ignoriert und eine Gruppierung von jeweils drei Ziffern -vorgenommen. Alternativ zu diesem Paket kann übrigens auch \Package{units} -verwendet werden. +]'none' wird das Zurücksetzen des Fußnotenzählers durch neue Kapitel +deaktiviert, womit sich über Kapitel fortlaufende Fußnoten +realisieren lassen. +%Mehr ist der Dokumentation von \Package*{chngcntr} zu finden. @@ -400,7 +380,7 @@ werden: -\section{Leer- und Satzzeichen nach \NoCaseChange{\hologo{LaTeX}}-Befehlen}% +\section{Leer- und Satzzeichen nach \hologo{LaTeX}-Befehlen}% \tudhyperdef*{sec:tips:xspace}% \index{Typografie}% % @@ -433,6 +413,20 @@ ignoriert wird: +\section{Finden von unbekannten \hologo{LaTeX}-Symbolen} +\index{Symbole}% +% +Für \hologo{LaTeX} stehen jede Menge Symbole zur Verfügung, die allerdings +nicht immer einfach zu finden sind. In der Zusammenfassung +\hrfn{http://mirrors.ctan.org/info/symbols/comprehensive/symbols-a4.pdf}% +{\File{symbols-a4.pdf}} +werden viele Symbole aus mehreren Paketen aufgeführt. Alternativ kann +\hrfn{http://detexify.kirelabs.org/classify.html}{Detexify} verwendet werden. +Auf dieser Webseite wird das gesuchte Symbol einfach gezeichnet, die dazu +ähnlichsten werden zurückgegeben. + + + \section{Das Setzen von Auslassungspunkten} \tudhyperdef*{sec:tips:dots}% \index{Typografie}% @@ -482,16 +476,190 @@ wörtlichen Zitaten häufig verwendet werden. -\section{Finden von unbekannten \NoCaseChange{\hologo{LaTeX}}-Symbolen} -\index{Symbole}% +\section{Lokalisierung für das Setzen von Einheiten mit \Package{siunitx}} +\tudhyperdef*{sec:tips:siunitx}% +\index{Einheiten}% % -Für \hologo{LaTeX} stehen jede Menge Symbole zur Verfügung, die allerdings -nicht immer einfach zu finden sind. In der Zusammenfassung -\hrfn{http://mirrors.ctan.org/info/symbols/comprehensive/symbols-a4.pdf}{\File{symbols-a4.pdf}} -werden viele Symbole aus mehreren Paketen aufgeführt. Alternativ kann -\hrfn{http://detexify.kirelabs.org/classify.html}{Detexify} verwendet werden. -Auf dieser Webseite wird das gesuchte Symbol einfach gezeichnet, die dazu -ähnlichsten werden zurückgegeben. +Wenn \Package{siunitx} in einem deutschsprachigen Dokument genutzt soll +werden, muss zumindest die richtige Lokalisierung mit +\Macro{sisetup}[\PParameter{locale = DE}](\Package{siunitx})'none' angegeben +werden. Sollen auch die Zahlen richtig formatiert sein, müssen weitere +Einstellungen vorgenommen werden. Die meiner Meinung nach besten sind die +folgenden. +% +\begin{quoting} +\begin{Code} +\sisetup{% + locale = DE,% + input-decimal-markers={,},input-ignore={.},% + group-separator={\,},group-minimum-digits=3% +} +\end{Code} +\end{quoting} +% +Das Komma kommt als Dezimaltrennzeichen zum Einsatz. Des Weiteren werden Punkte +innerhalb der Zahlen ignoriert und eine Gruppierung von jeweils drei Ziffern +vorgenommen. Alternativ zu diesem Paket kann übrigens auch \Package{units} +verwendet werden. + + + +\section{Fehlermeldung beim Laden eines Paketes mit Optionen} +\ChangedAt{v2.05:\TaT Fehler beim Laden eines Paketes mit Optionen} +% +Es kann unter Umständen passieren, dass beim Laden eines Paketes mit bestimmten +Optionen via \Macro*{usepackage}[\OParameter{Paketoptionen}\Parameter{Paket}] +folgender Fehler ausgegeben wird: +% +\begin{quoting} +\begin{Code}[escapechar=§] +! LaTeX Error: Option clash for package <§\dots§>. +\end{Code} +\end{quoting} +% +Mit großer Sicherheit wird das angeforderte Paket bereits durch die verwendete +Dokumentklasse oder ein anderes Paket geladen. Normalerweise genügt es, die +gewünschten Optionen durch +\Macro{PassOptionsToPackage}[\Parameter{Paketoptionen}\Parameter{Paket}] +bereits vor dem Laden der Dokumentklasse mit \Macro*{documentclass} an das +betreffende Paket weiterzureichen. + + + +\section{Probleme bei der Verwendung von \Package{auto-pst-pdf}} +\tudhyperdef*{sec:tips:auto-pst-pdf} +\ChangedAt{v2.02:\TaT Hinweise zum Paket \Package{auto-pst-pdf}} +% +Bei der Verwendung von \Engine{pdfLaTeX} liest das Paket \Package{auto-pst-pdf} +die Präambel ein und erstellt anschließend über den PostScript"=Pfad +\Path{latex\,>\,dvips\,>\,ps2pdf} eine PDF"~Datei, welche lediglich alle in den +vorhandenen \Environment{pspicture}(\Package{pstricks})'none'"=Umgebungen +erstellten Grafiken enthält. Das Paket \Package{ifpdf} stellt das Makro +\Macro{ifpdf}(\Package{ifpdf})'none' bereit, mit welchem unterschieden werden +kann, ob \Engine{pdfLaTeX} als Textsatzsystem verwendet wird. Abhängig davon +können unterschiedliche Quelltexte ausgeführt werden, was genutzt wird, um die +nachfolgend beschriebenen Probleme zu beheben. +% +\begin{quoting} +\begin{Code} +\usepackage{ifpdf} +\end{Code} +\end{quoting} + +\minisec{Die gleichzeitige Verwendung von \Package{floatrow}} +Das Paket \Package{floatrow} stellt Befehle bereit, mit denen die Beschriftung +von Gleitobjekten sehr bequem gesetzt werden können. Diese Setzen ihren Inhalt +erst in einer Box, um deren Breite zu ermitteln und diese anschließend +auszugeben. In Kombination mit \Package{auto-pst-pdf} führt das zu einer +doppelten Erstellung der gewünschten Abbildung. Um dies zu vermeiden, müssen +die durch \Package{floatrow} bereitgestellten Befehle \enquote{unschädlich} +gemacht werden. Die fraglichen Befehlen akzeptieren allerdings bis zu drei +optionale Argumente \emph{vor} den beiden obligatorischen, was für die +Benutzerschnittstelle für die (Re-)Definition durch \hologo{LaTeXe} +normalerweise nicht vorgesehen ist. Deshalb wird das Paket \Package{xparse} +geladen, mit welchem dies möglich wird. Genaueres dazu ist der dazugehörigen +Paketdokumentation zu entnehmen. Mit folgendem Quelltextauszug lassen sich die +\Package{floatrow}"=Befehle zusammen mit der +\Environment{pspicture}(\Package{pstricks})'none'"=Umgebung wie gewohnt +verwenden. +% +\begin{quoting} +\begin{Code} +\usepackage{floatrow} +\usepackage{xparse} +\ifpdf\else + \RenewDocumentCommand{\fcapside}{ooo+m+m}{#4#5} + \RenewDocumentCommand{\ttabbox}{ooo+m+m}{#4#5} + \RenewDocumentCommand{\ffigbox}{ooo+m+m}{#4#5} +\fi +\end{Code} +\end{quoting} + +\minisec{Die parallele Nutzung von \Package{tikz} und \Package{todonotes}} +Mit dem Paket \Package{tikz}~-- und auch allen anderen Paketen die +selbiges nutzen wie beispielsweise \Package{todonotes}~-- gibt es in Verbindung +mit \Package{auto-pst-pdf} ebenfalls Probleme. Lösen lässt sich dieses Dilemma, +indem die fraglichen Pakete lediglich geladen werden, wenn \Engine{pdfLaTeX} +aktiv ist. +% +\begin{quoting}[rightmargin=0pt] +\begin{Code} +\ifpdf + \usepackage{tikz}%\dots gegebenenfalls weitere auf tikz basierende Pakete +\fi +\end{Code} +\end{quoting} + + + +\section{Automatisiertes Einbinden von \Application{Inkscape}-Grafiken } +\tudhyperdef*{sec:tips:svg}% +\ChangedAt{v2.05:\TaT \Macro*{includesvg} aus Paket \Package{svg} verwenden} +\index{Grafiken}% +% +Das Einbinden von \Application{Inkscape}"=Grafiken in \hologo{LaTeX}"=Dokumente +wird auf \CTAN[pkg/svg-inkscape]{\Package*{svg-inkscape}'none'} erläutert. Ein +daraus abgeleiteter und verbesserter Ansatz wird durch das Paket \Package{svg} +bereitgestellt. Mit diesem Paket ist ein \textbf{automatisierter} Export der +\Application{Inkscape}"=Grafiken direkt bei der Kompilierung mit \Engine{LaTeX} +und dem anschließenden Einbinden in das Dokument möglich. Hierfür wird der +Befehl \Macro*{includesvg}[\OParameter{Parameter}\Parameter{SVG-Datei}] durch +das Paket definiert. + +Dabei erfolgt der externe Aufruf von \Application{Inkscape} über Kommandozeile +beziehungsweise Terminal mit \File{inkscape.exe}. Damit dieser auch tatsächlich +durchgeführt wird, ist die Ausführung einer \Engine*{LaTeX}"~Engine mit der +Option \Path{-{}-shell-escape} beziehungsweise \Path{-{}-enable-write18} +zwingend notwendig. Außerdem muss der Pfad zur Datei \File{inkscape.exe} dem +System bekannt sein.% +\footnote{% + Der Pfad zu \File{inkscape.exe} in der Umgebungsvariable \Path{PATH} des + Betriebssystems enthalten sein.% +} +Für weiterführende Informationen sei auf die Dokumentation des Pakets +\Package{svg} verwiesen. + + + +\section{Änderung des Papierformates} +\index{Papierformat}% +% +Es kann vorkommen, dass innerhalb eines Dokumentes kurzzeitig das Papierformat +geändert werden soll, um beispielsweise eine Konstruktionsskizze in der +digitalen PDF"~Datei einzubinden. Dabei ist es mit der \KOMAScript-Option +\Option{paper=\PSet}(\Package{typearea})'none' sowohl möglich, lediglich die +Ausrichtung in ein Querformat zu ändern, als auch die Größe des Papierformates +selber. +% +\begin{Example} +Ein Dokument im A4"~Format soll kurzzeitig auf ein A3"=Querformat geändert +werden. Das folgende Minimalbeispiel zeigt, wie dies mit \KOMAScript-Mitteln +über die Optionen \Option*{paper=landscape}(\Package{typearea})'none' und +\Option*{paper=A3}(\Package{typearea})'none' geändert werden kann. +\begin{Code} +\documentclass[paper=a4,pagesize]{tudscrreprt} +\usepackage[T1]{fontenc} +\usepackage[ngerman]{babel} +\usepackage{blindtext} + +\begin{document} +\chapter{Überschrift Eins} +\Blindtext + +\cleardoublepage +\storeareas\PotraitArea% speichert den aktuellen Satzspiegel +\KOMAoptions{paper=A3,paper=landscape,DIV=current} +\chapter{Überschrift Zwei} +\Blindtext + +\cleardoublepage +\PotraitArea% lädt den gespeicherten Satzspiegel +\chapter{Überschrift Drei} +\Blindtext +\end{document} +\end{Code} +\end{Example} + @@ -521,7 +689,6 @@ Papierbogens angegeben. fontsize=36pt ]{tudscrposter} \usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} §\dots§ \usepackage{graphicx} \usepackage[b1,center,cam]{crop} @@ -538,7 +705,8 @@ Befehl \Macro{geometry}(\Package{geometry})'none' bereit, in dessen Argument mit das Papierformat festgelegt werden kann. Wird zusätzlich noch der Parameter \Key{\Macro{geometry}(\Package{geometry})}{layout=\PName{Zielformat}}|default| angegeben, so wird damit das gewünschte Zielformat definiert. Dabei sollte mit -\Key{\Macro{geometry}(\Package{geometry})}{layoutoffset=\PName{Längenwert}}|default| +\Key{\Macro{geometry}(\Package{geometry})}% +{layoutoffset=\PName{Längenwert}}|default| dieser Bereich gegebenenfalls etwas eingerückt werden. Die Angabe von \Key{\Macro{geometry}(\Package{geometry})}{showcrop=\PBoolean}|default| generiert außerdem noch visuelle Schnittmarken. @@ -551,7 +719,6 @@ generiert außerdem noch visuelle Schnittmarken. fontsize=36pt ]{tudscrposter} \usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} §\dots§ \geometry{paper=b1,layout=a1,layoutoffset=1in,showcrop} \begin{document} @@ -568,86 +735,16 @@ erweitert werden, um ein \enquote{Zuschneiden in die Farbe} zu ermöglichen. -\section{Änderung des Papierformates} -\index{Papierformat}% -% -Es kann vorkommen, dass innerhalb eines Dokumentes kurzzeitig das Papierformat -geändert werden soll, um beispielsweise eine Konstruktionsskizze in der -digitalen PDF"~Datei einzubinden. Dabei ist es mit der \KOMAScript-Option -\Option{paper=\PSet}(\Package{typearea})'none' sowohl möglich, lediglich die -Ausrichtung in ein Querformat zu ändern, als auch die Größe des Papierformates -selber. -% -\begin{Example} -Ein Dokument im A4"~Format soll kurzzeitig auf ein A3"=Querformat geändert -werden. Das folgende Minimalbeispiel zeigt, wie dies mit \KOMAScript-Mitteln -über die Optionen \Option*{paper=landscape}(\Package{typearea})'none' und -\Option*{paper=A3}(\Package{typearea})'none' geändert werden kann. -\begin{Code} -\documentclass[paper=a4,pagesize]{tudscrreprt} -\usepackage[T1]{fontenc} -\usepackage{selinput} -\SelectInputMappings{adieresis={ä},germandbls={ß}} -\usepackage[ngerman]{babel} -\usepackage{blindtext} - -\begin{document} -\chapter{Überschrift Eins} -\Blindtext - -\cleardoublepage -\storeareas\PotraitArea% speichert den aktuellen Satzspiegel -\KOMAoptions{paper=A3,paper=landscape,DIV=current} -\chapter{Überschrift Zwei} -\Blindtext - -\cleardoublepage -\PotraitArea% lädt den gespeicherten Satzspiegel -\chapter{Überschrift Drei} -\Blindtext -\end{document} -\end{Code} -\end{Example} - - - -\section{Automatisiertes Einbinden von \Application{Inkscape}-Grafiken } -\tudhyperdef*{sec:tips:svg}% -\ChangedAt{v2.05:\TaT \Macro*{includesvg} aus Paket \Package{svg} verwenden} -\index{Grafiken}% -% -Das Einbinden von \Application{Inkscape}"=Grafiken in \hologo{LaTeX}"=Dokumente -wird auf \CTAN[pkg/svg-inkscape]{\Package*{svg-inkscape}'none'} erläutert. Ein -daraus abgeleiteter und verbesserter Ansatz wird durch das Paket \Package{svg} -bereitgestellt. Mit diesem Paket ist ein \textbf{automatisierter} Export der -\Application{Inkscape}"=Grafiken direkt bei der Kompilierung mit \Engine{LaTeX} -und dem anschließenden Einbinden in das Dokument möglich. Hierfür wird der -Befehl \Macro*{includesvg}[\OParameter{Parameter}\Parameter{SVG-Datei}] durch -das Paket definiert. - -Dabei erfolgt der externe Aufruf von \Application{Inkscape} über Kommandozeile -beziehungsweise Terminal mit \File{inkscape.exe}. Damit dieser auch tatsächlich -durchgeführt wird, ist die Ausführung von \Engine{pdfLaTeX} mit der Option -\Path{-{}-shell-escape} beziehungsweise \Path{-{}-enable-write18} zwingend -notwendig. Außerdem muss der Pfad zur Datei \File{inkscape.exe} dem System -bekannt sein.% -\footnote{% - Der Pfad zu \File{inkscape.exe} in der Umgebungsvariable \Path{PATH} des - Betriebssystems enthalten sein.% -} -Für weiterführende Informationen sei auf die Dokumentation des Pakets -\Package{svg} verwiesen. - \section{Vermeiden des Skalierens einer PDF-Datei beim Druck} \ChangedAt{v2.04:\TaT Vermeiden des Skalierens einer PDF"~Datei beim Druck} % -Beim Erzeugen eines Druckauftrages einer PDF"~Datei kann es unter Umständen dazu -führen, dass diese durch den verwendeten PDF"~Betrachter unnötigerweise vorher -skaliert wird und dabei die Seitenränder vergrößert werden. Um dieses Verhalten -für Dokumente, die mit \Engine{pdfTeX} erzeugt werden, zu unterdrücken, gibt es -zwei Möglichkeiten: +Beim Erzeugen eines Druckauftrages einer PDF"~Datei kann es unter Umständen +dazu führen, dass diese durch den verwendeten PDF"~Betrachter unnötigerweise +vorher skaliert wird und dabei die Seitenränder vergrößert werden. Um dieses +Verhalten für Dokumente, die mit \Engine{pdfLaTeX} erzeugt werden, zu +unterdrücken, gibt es zwei Möglichkeiten: % \begin{enumerate} \item Wenn im Dokument ohnehin das Paket \Package{hyperref} verwendet wird, @@ -658,107 +755,15 @@ zwei Möglichkeiten: ausreichend. \item Der Low"~Level"~Befehl \Macro*{pdfcatalog}[\PParameter{/ViewerPreferences<{}</PrintScaling/None>{}>}] - hat das gleiche Verhalten und kann auch ohne das Paket \Package{hyperref} - genutzt werden. + besitzt das gleiche Verhalten und lässt sich auch ohne \Package{hyperref} + nutzen. \end{enumerate} % -Weitere Informationen dazu sind unter \url{http://www.komascript.de/node/1897} +Weitere Informationen sind unter \url{http://www.komascript.de/node/1897} zu finden. -\section{Warnung bei der Schriftgrößenwahl} -\tudhyperdef*{sec:tips:fontsize}% -\ChangedAt{v2.04:\TaT Warnung bei der Schriftgrößenwahl} -% -Die im Dokument verwendete Schriftgröße kann bei den \KOMAScript-Klassen sehr -einfach über die Option~\Option{fontsize}(\Package{koma-script})'none' -eingestellt werden, wobei diese immer als Klassenoption angegeben werden -sollte. Bei relativ großen und kleinen Schriftgrößen kann dabei eine Warnung in -der Gestalt -% -\begin{quoting} -\begin{Code}[escapechar=§] -LaTeX Font Warning: Font shape `§\dots§' in size <xx> not available -\end{Code} -\end{quoting} -% -auftreten. Dies daran, dass zum Zeitpunkt des Ladens einer Klasse immer nach -den Computer-Modern"=Standardschriften gesucht wird, unabhängig davon, ob im -Nachhinein ein anderes Schriftpaket geladen wird. Diese sind de"~facto nicht -in alle Größen skalierbar. Um die Warnungen zu beseitigen, sollte das Paket -\Package{fix-cm} mit \Macro*{RequirePackage} \emph{vor} der Dokumentklasse -geladen werden: -% -\begin{quoting}[rightmargin=0pt] -\begin{Code}[escapechar=§] -\RequirePackage{fix-cm} -\documentclass§\OParameter{Klassenoptionen}\Parameter{Klasse}§ -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} -§\dots§ -\begin{document} -§\dots§ -\end{document} -\end{Code} -\end{quoting} -% -Damit werden die Warnungen behoben. - - - -\section{Fehlermeldung beim Laden eines Paketes mit Optionen} -\ChangedAt{v2.05:\TaT Fehler beim Laden eines Paketes mit Optionen} -% -Es kann unter Umständen passieren, dass beim Laden eines Paketes mit bestimmten -Optionen via \Macro*{usepackage}[\OParameter{Paketoptionen}\Parameter{Paket}] -folgender Fehler ausgegeben wird: -% -\begin{quoting} -\begin{Code}[escapechar=§] -! LaTeX Error: Option clash for package <§\dots§>. -\end{Code} -\end{quoting} -% -Mit großer Sicherheit wird das angeforderte Paket bereits durch die verwendete -Dokumentklasse oder ein anderes Paket geladen. Normalerweise genügt es, bereits -vor dem Laden der Dokumentklasse mit \Macro*{documentclass} durch -\Macro{PassOptionsToPackage}[\Parameter{Paketoptionen}\Parameter{Paket}] die -gewünschten Optionen an das Paket weiterzureichen, welches den Konflikt meldet. - - - -\section{Fehlermeldung: ! No room for a new \textbackslash write} -\tudhyperdef*{sec:tips:write} -\ChangedAt{v2.02:\TaT Fehler beim Schreiben von Hilfsdateien} -% -Für das Erstellen und Schreiben externer Hilfsdateien steht \hologo{LaTeXe} nur -eine begrenzte Anzahl sogenannter Ausgabe-Streams zur Verfügung. Allein für -jedes zu erstellende Verzeichnis reserviert \hologo{LaTeX} selbst jeweils einen -neuen Stream. Auch einige bereits zuvor in diesem Handbuch vorgestellte, sehr -hilfreiche Pakete~-- wie beispielsweise \Package{hyperref}, \Package{biblatex}, -\Package{glossaries}, \Package{todonotes} oder auch \Package{filecontents}~-- -benötigen eigene Hilfsdateien und öffnen für das Erstellen dieser einen -Ausgabe-Stream oder mehr. Lädt der Anwender mehrere, in eine Hilfsdatei -schreibende Pakete, kann es zur der Fehlermeldung -% -\begin{quoting} -\begin{Code} -! No room for a new \write . -\end{Code} -\end{quoting} -% -kommen. Abhilfe schafft hier das Paket \Package{scrwfile}<koma-script>, welches -einige Änderungen am \hologo{LaTeX}"=Kernel vornimmt, um die Anzahl der -benötigten Hilfsdateien für das Schreiben aller Verzeichnisse zu reduzieren. Es -muss einfach in der Präambel eingebunden werden. Sollten mit diesem Paket -unerwarteter Weise Probleme auftreten, ist dessen Anleitung im \scrguide zu -finden. Eine weitere Möglichkeit, das beschriebene Problem der geringen Menge -an Ausgabe-Streams zu umgehen, stellt das Paket \Package{morewrites} dar. -Allerdings ist dessen Verwendung nicht in allen Fällen von Erfolg gekrönt. - - - \section{Platzierung von Gleitobjekten} \tudhyperdef*{sec:tips:floats}% \index{Gleitobjekte!Platzierung|?}% @@ -767,19 +772,20 @@ Mit den beiden Paketen \Package{flafter} sowie \Package{placeins} gibt es die Möglichkeit, den für \hologo{LaTeX} zur Verfügung stehenden Raum für die Platzierung von Gleitobjekten einzuschränken. Darüber hinaus kann diese auch durch die im Folgenden aufgezählten Befehle beeinflusst werden. Die Makros -lassen sich mit \Macro*{renewcommand*}[\Parameter{Befehl}\Parameter{Wert}] +lassen sich mit \Macro*{renewcommand*}[\Parameter{Makro}\Parameter{Wert}] sehr einfach ändern. \begin{Declaration}{\Macro*{floatpagefraction}}[0\floatpagefraction] \begin{Declaration}{\Macro*{dblfloatpagefraction}}[0\dblfloatpagefraction] \printdeclarationlist% % -Der Wert gibt die relative Größe eines Gleitobjektes bezogen auf die Texthöhe -(\Length*{textheight}) an, die mindestens erreicht sein muss, damit für dieses -gegebenenfalls vor dem Beginn eines neuen Kapitels eine separate Seite erzeugt -wird. Dabei wird einspaltiges (\Macro*{floatpagefraction}) und zweispaltiges -(\Macro*{dblfloatpagefraction}) Layout unterschieden. Der Wert für beide -Befehle sollte im Bereich von~\PValue{0.5}\dots\PValue{0.8} liegen. +Der Wert gibt die relative Größe eines Gleitobjektes bezogen auf die +eingestellte Texthöhe (\Length*{textheight}) an, die mindestens erreicht sein +muss, damit für dieses gegebenenfalls vor dem Beginn eines neuen Kapitels eine +separate Seite erzeugt wird. Dabei wird einspaltiges +(\Macro*{floatpagefraction}) und zweispaltiges (\Macro*{dblfloatpagefraction}) +Layout unterschieden. Der Wert für beide Befehle sollte im Bereich +von~\PValue{0.5}\dots\PValue{0.8} liegen. \end{Declaration} \end{Declaration} @@ -816,9 +822,9 @@ werden. Er sollte in einem Bereich von~\PValue{0.1}\dots\PValue{0.3} liegen. \printdeclarationlist% % Außerdem gibt es noch Zähler, welche die maximale Anzahl an Gleitobjekten pro -Seite insgesamt (\Counter*{totalnumber}), am oberen (\Counter*{topnumber}) und -am unteren Rand der Seite (\Counter*{bottomnumber}) sowie im zweispaltigen Satz -beide Spalten überspannend (\Counter*{dbltopnumber}) festlegen. Die Werte +Seite insgesamt (\Counter*{totalnumber}) sowie am oberen (\Counter*{topnumber}) +und am unteren Seitenrand (\Counter*{bottomnumber}) sowie im zweispaltigen +Satz beide Spalten überspannend (\Counter*{dbltopnumber}) festlegen. Die Werte können mit \Macro*{setcounter}[\Parameter{Zähler}\Parameter{Wert}] geändert werden. \end{Declaration} @@ -862,67 +868,73 @@ Unterfangen Folgendes nutzen: -\section{Probleme bei der Verwendung von \Package{auto-pst-pdf}} -\tudhyperdef*{sec:tips:auto-pst-pdf} -\ChangedAt{v2.02:\TaT Hinweise zum Paket \Package{auto-pst-pdf}} +\section{Warnung bei der Schriftgrößenwahl} +\tudhyperdef*{sec:tips:fontsize}% +\ChangedAt{v2.04:\TaT Warnung bei der Schriftgrößenwahl} % -Bei der Verwendung von \Engine{pdfLaTeX} liest das Paket \Package{auto-pst-pdf} -die Präambel ein und erstellt anschließend über den PostScript"=Pfad -\Path{latex \textrightarrow{} dvips \textrightarrow{} ps2pdf} eine PDF"~Datei, -welche lediglich alle in den vorhandenen -\Environment{pspicture}(\Package{pstricks})'none'"=Umgebungen erstellten -Grafiken enthält. Das Paket \Package{ifpdf} stellt das Makro -\Macro{ifpdf}(\Package{ifpdf})'none' bereit, mit welchem unterschieden werden -kann, ob \Engine{pdfLaTeX} als Textsatzsystem verwendet wird. Abhängig davon -können unterschiedliche Quelltexte ausgeführt werden, was genutzt wird, um die -nachfolgend beschriebenen Probleme zu beheben. +Die im Dokument verwendete Schriftgröße kann bei den \KOMAScript-Klassen sehr +einfach über die Option~\Option{fontsize}(\Package{koma-script})'none' +eingestellt werden, wobei diese immer als Klassenoption angegeben werden +sollte. Bei relativ großen und kleinen Schriftgrößen kann dabei eine Warnung in +der Gestalt % -\begin{quoting} -\begin{Code} -\usepackage{ifpdf} +\begin{quoting}[rightmargin=0pt] +\begin{Code}[escapechar=§] +LaTeX Font Warning: Font shape `§\dots§' in size <xx> not available \end{Code} \end{quoting} - -\minisec{Die gleichzeitige Verwendung von \Package{floatrow}} -Das Paket \Package{floatrow} stellt Befehle bereit, mit denen die Beschriftung -von Gleitobjekten sehr bequem gesetzt werden können. Diese Setzen ihren Inhalt -erst in einer Box, um deren Breite zu ermitteln und diese anschließend -auszugeben. In Kombination mit \Package{auto-pst-pdf} führt das zu einer -doppelten Erstellung der gewünschten Abbildung. Um dies zu vermeiden, müssen -die durch \Package{floatrow} bereitgestellten Befehle \enquote{unschädlich} -gemacht werden. Die fraglichen Befehlen akzeptieren allerdings bis zu drei -optionale Argumente \emph{vor} den beiden obligatorischen, was für die -Benutzerschnittstelle für die (Re-)Definition durch \hologo{LaTeXe} -normalerweise nicht vorgesehen ist. Deshalb wird das Paket \Package{xparse} -geladen, mit welchem dies möglich wird. Genaueres dazu ist der dazugehörigen -Paketdokumentation zu entnehmen. Mit folgendem Quelltextauszug lassen sich die -\Package{floatrow}"=Befehle zusammen mit der -\Environment{pspicture}(\Package{pstricks})'none'"=Umgebung wie gewohnt -verwenden. % -\begin{quoting} -\begin{Code} -\usepackage{floatrow} -\usepackage{xparse} -\ifpdf\else - \RenewDocumentCommand{\fcapside}{ooo+m+m}{#4#5} - \RenewDocumentCommand{\ttabbox}{ooo+m+m}{#4#5} - \RenewDocumentCommand{\ffigbox}{ooo+m+m}{#4#5} -\fi +auftreten. Dies daran, dass zum Zeitpunkt des Ladens einer Klasse immer nach +den Computer-Modern"=Standardschriften gesucht wird, unabhängig davon, ob im +Nachhinein ein anderes Schriftpaket geladen wird. Diese sind de"~facto nicht +in alle Größen skalierbar. Um die Warnungen zu beseitigen, sollte das Paket +\Package{fix-cm} mit \Macro*{RequirePackage} \emph{vor} der Dokumentklasse +geladen werden: +% +\begin{quoting}[rightmargin=0pt] +\begin{Code}[escapechar=§] +\RequirePackage{fix-cm} +\documentclass§\OParameter{Klassenoptionen}\Parameter{Klasse}§ +\usepackage[T1]{fontenc} +§\dots§ +\begin{document} +§\dots§ +\end{document} \end{Code} \end{quoting} +% +Damit werden die Warnungen behoben. -\minisec{Die parallele Nutzung von \Package{tikz} und \Package{todonotes}} -Mit dem Paket \Package{tikz}~-- und auch allen anderen Paketen die -selbiges nutzen wie beispielsweise \Package{todonotes}~-- gibt es in Verbindung -mit \Package{auto-pst-pdf} ebenfalls Probleme. Lösen lässt sich dieses Dilemma, -indem die fraglichen Pakete lediglich geladen werden, wenn \Engine{pdfLaTeX} -aktiv ist. + + +\section{Fehlermeldung: ! No room for a new \textbackslash write} +\tudhyperdef*{sec:tips:write} +\ChangedAt{v2.02:\TaT Fehler beim Schreiben von Hilfsdateien} % -\begin{quoting}[rightmargin=0pt] +Für das Erstellen und Schreiben externer Hilfsdateien steht \hologo{LaTeXe} nur +eine begrenzte Anzahl sogenannter Ausgabe-Streams zur Verfügung. Allein für +jedes zu erstellende Verzeichnis reserviert \hologo{LaTeX} selbst jeweils einen +neuen Stream. Auch einige bereits zuvor in diesem Handbuch vorgestellte, sehr +hilfreiche Pakete~-- wie beispielsweise \Package{hyperref}, \Package{biblatex}, +\Package{glossaries}, \Package{todonotes} oder auch \Package{filecontents}~-- +benötigen eigene Hilfsdateien und öffnen für das Erstellen dieser einen +Ausgabe-Stream oder mehr. Lädt der Anwender mehrere, in eine Hilfsdatei +schreibende Pakete, kann es zur der Fehlermeldung +% +\begin{quoting} \begin{Code} -\ifpdf - \usepackage{tikz}%\dots gegebenenfalls weitere auf tikz basierende Pakete -\fi +! No room for a new \write . \end{Code} \end{quoting} +% +kommen. Abhilfe schafft hier das Paket \Package{scrwfile}<koma-script>, welches +einige Änderungen am \hologo{LaTeX}"=Kernel vornimmt, um die Anzahl der +benötigten Hilfsdateien für das Schreiben aller Verzeichnisse zu reduzieren. Es +muss einfach in der Präambel eingebunden werden. Sollten mit diesem Paket +unerwarteter Weise Probleme auftreten, ist dessen Anleitung im \scrguide zu +finden. Eine weitere Möglichkeit, das beschriebene Problem der geringen Menge +an Ausgabe-Streams zu umgehen, stellt das Paket \Package{morewrites} dar. +Allerdings ist dessen Verwendung nicht in allen Fällen von Erfolg gekrönt. + + + diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-index.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-index.tex index 26d26c3187c..08f7671baf7 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-index.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-index.tex @@ -28,11 +28,9 @@ \index{Installation|see{Update}}% \index{Gliederung|see{Layout!Überschriften}}% \index{Grafiken|see{Gleitobjekte}}% -\index{Großbuchstaben|see{Schriftauszeichnung}}% \index{Kapitelseiten|see{Layout}}% \index{Kapitelüberschriften|see{Layout}}% \index{Klassenoptionen|see{Optionen}}% -\index{Kleinbuchstaben|see{Schriftauszeichnung}}% \index{Kolumnentitel|see{Layout}}% \index{Kopfzeile|see{Layout}}% \index{Kurzfassung|see{Zusammenfassung}}% @@ -42,12 +40,10 @@ \index{Leerraum|see{Absatzauszeichnung}}% \index{Leerseiten|see{Vakatseiten}}% \index{Lokalisierung|see{Bezeichner}}% -\index{Majuskeln|see{Schriftauszeichnung}}% \index{Makros|see{Befehle}}% \index{Mathematiksatz|see{Einheiten}}% \index{Mathematiksatz|see{Griechische Buchstaben}}% \index{Mathematiksatz|see{Zifferngruppierung}}% -\index{Minuskeln|see{Schriftauszeichnung}}% \index{Nutzerinstallation|see{Installation}}% \index{Outline-Eintrag|see{Lesezeichen}}% \index{Parameter|see{Befehle}}% diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-installation.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-installation.tex index a2dd8f30eb1..2dd8d791995 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-installation.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-installation.tex @@ -2,31 +2,21 @@ \chapter{Weiterführende Installationshinweise} % \noindent\Attention{% - Im Folgenden werden unterschiedliche Varianten erläutert, wie die jeweils - aktuelle Version von \TUDScript genutzt werden kann, falls bereits eine - frühere Variante als \textbf{lokale Nutzerinstallation} verwendet wird. - Unabhängig davon, für welche Möglichkeit Sie sich entscheiden, ist eine - abermalige Installation der PostScript"=Schriften für eine fehlerfreie - Verwendung von \TUDScript zwingend notwendig, wenn Sie bisher \TUDScript vor - der Version~v2.02 verwendet haben, da der Installationsprozess der Schriften - des \CDs für die Version~v2.02 nochmals angepasst werden musste. Dieser - Schritt ließ sich leider nicht vermeiden. Für zukünftige Versionen kann - darauf hoffentlich verzichtet werden, sodass Aktualisierungen ausschließlich - über CTAN eingespielt werden können. In \autoref{sec:install} wird der - Installationsprozess der PostScript"=Schriften beschrieben. + Hier werden unterschiedliche Varianten erläutert, wie \TUDScript in der + Version~\vTUDScript{} genutzt werden kann, falls eine frühere Variante als + \textbf{lokale Nutzerinstallation} verwendet wurde. } \bigskip\noindent Bis zur Version~v2.01 wurde \TUDScript ausschließlich über das \Forum zur lokalen Nutzerinstallation angeboten. In erster Linie hat das historische Hintergründe und hängt mit der Entstehungsgeschichte von \TUDScript zusammen. - -Eine lokale Nutzerinstallation bietet mehr oder weniger genau einen Vorteil. -Treten bei der Verwendung von \TUDScript Probleme auf, können diese im Forum -gemeldet und diskutiert werden. Ist für ein solches Problem tatsächlich eine -Fehlerkorrektur respektive eine Aktualisierung von \TUDScript nötig, kann -diese schnell und unkompliziert über das \GitHubRepo bereitgestellt und durch -den Anwender sofort genutzt werden. +Eine lokale Nutzerinstallation bietet einen~-- eher zu vernachlässigenden~-- +Vorteil. Treten bei der Verwendung von \TUDScript Probleme auf, können diese im +Forum gemeldet und diskutiert werden. Ist für ein solches Problem tatsächlich +eine Fehlerkorrektur respektive Aktualisierung von \TUDScript nötig, kann diese +schnell und unkompliziert über das \GitHubRepo bereitgestellt und durch den +Anwender sofort genutzt werden. Dies hat allerdings für alle Anwender, welche das Forum relativ wenig oder gar nicht besuchen, den großen Nachteil, dass Sie nicht von Aktualisierungen, @@ -52,63 +42,77 @@ Suche beendet. installiert wurde. } -Deshalb wird Anwendern, die \TUDScript in der Version~v2.01 oder älter nutzen -und sich nicht \emph{bewusst} für eine lokale Nutzerinstallation entschieden -haben, empfohlen, diese zu deinstallieren. Der Prozess der Deinstallation wird -in \autoref{sec:local:uninstall} erläutert. Wird diese einmalig durchgeführt, -können Updates des \TUDScript-Bundles durch die Aktualisierungsfunktion der -Distribution erfolgen. Wie das \TUDScript-Bundle trotzdem als lokale -Nutzerversion installiert oder aktualisiert werden kann, ist in -\autoref{sec:local:install} beziehungsweise \autoref{sec:local:update} zu -finden. Der Anwender sollte in diesem Fall allerdings genau wissen, was er -damit bezweckt, da er in diesem Fall für die Aktualisierung von \TUDScript -selbst verantwortlich ist. +Deshalb wird Anwendern empfohlen, eine gegebenenfalls vorhandene lokale +Nutzerinstallation von \TUDScript zu deinstallieren, falls diese nicht +\emph{bewusst} installiert wurde. Die Deinstallation wird in +\autoref{sec:local:uninstall} erläutert. Nach dieser können Updates des +\TUDScript-Bundles durch die Aktualisierungsfunktion der Distribution erfolgen. + +Wie das \TUDScript-Bundle trotzdem als lokale Nutzerversion installiert oder +aktualisiert werden kann, ist in \autoref{sec:local:install} beziehungsweise +\autoref{sec:local:update} zu finden. Der Anwender sollte in diesem Fall +allerdings genau wissen, was er damit bezweckt, da er in diesem Fall für die +Aktualisierung von \TUDScript selbst verantwortlich ist. +\minisec{Nutzung der veralteten Schriftfamilien} +\ChangedAt{v2.06}% +% +Soll ein Dokument noch mit den veralteten Schriftfamilien \Univers und \DIN +gesetzt werden, so ist eine lokale Installation der Type1-Schriften notwendig, +welche in \autoref{sec:install:fonts} beschrieben wird. Zusätzlich sei auf die +beiden Optionen \Option*{tudscrver=2.05} und \Option*{cdoldfont} hingewiesen. +Für die Nutzung der \OpenSans wird lediglich die aktuelle Version des Paketes +\Package{opensans} benötigt, welches auf \CTAN[pkg/opensans] zu finden ist. \section{Lokale Deinstallation des \TUDScript-Bundles} \tudhyperdef*{sec:local:uninstall}% \index{Deinstallation}% % -Um die lokale Nutzerinstallation zu entfernen, kann für Windows -\hrfn{\Download{uninstall/tudscr\_uninstall.bat}}{\File{tudscr\_uninstall.bat}} -sowie für unixartige Betriebssysteme -\hrfn{\Download{uninstall/tudscr\_uninstall.sh}}{\File{tudscr\_uninstall.sh}} -verwendet werden. Nach der Ausführung des jeweiligen Skriptes kann in der -Kommandozeile beziehungsweise im Terminal mit +Über die Kommandozeile beziehungsweise das Terminal kann mit % \begin{quoting} \Path{kpsewhich --all tudscrbase.sty} \end{quoting} % -überprüft werden, ob die Deinstallation erfolgreich war oder immer noch eine -lokale Nutzerinstallation vorhanden ist. Es werden alle Pfade ausgegeben, in -welchen die Datei \File*{tudscrbase.sty} gefunden wird. Erscheint nur noch der -Pfad der Distribution, ist die \TUDScript-Version von CTAN aktiv und der -Anwender kann mit dem \TUDScript-Bundle arbeiten. Falls es nicht -schon passiert ist, müssen dafür lediglich die Schriften des \CDs installiert -werden (\autoref{sec:install}). +überprüft werden, ob eine lokale Nutzerinstallation von \TUDScript vorhanden +ist. Es werden alle Pfade ausgegeben, in denen die Datei \File*{tudscrbase.sty} +gefunden wird. Erscheint nur der Distributionspfad, ist die \TUDScript-Version +von CTAN aktiv und der Anwender kann mit dem \TUDScript-Bundle arbeiten. Wird \emph{nur} das lokale Nutzerverzeichnis oder gar kein Verzeichnis gefunden, so wird höchstwahrscheinlich eine veraltete Distribution verwendet. In diesem Fall wird eine Aktualisierung dieser \emph{unbedingt} empfohlen. Sollte dies nicht möglich sein, \emph{muss} \TUDScript als lokale -Nutzerversion aktualisiert (\autoref{sec:local:update}) beziehungsweise bei der -erstmaligen Verwendung installiert (\autoref{sec:local:install}) werden. Sollte -neben dem Pfad der Distribution immer noch mindestens ein weiterer Pfad -angezeigt werden, so ist weiterhin eine lokale Nutzerversion installiert. In -diesem Fall hat der Anwender zwei Möglichkeiten: +Nutzerversion installiert (\autoref{sec:local:install}) beziehungsweise~-- +falls ein Pfad ausgegeben wurde~-- aktualisiert (\autoref{sec:local:update}) +werden. + +Sollte neben dem Pfad der Distribution noch mindestens ein weiterer Pfad +angezeigt werden, so ist eine lokale Nutzerversion installiert. In +diesem Fall hat der Anwender drei Möglichkeiten: % \begin{enumerate} +\item Entfernen der lokalen Nutzerinstallation (skriptbasiert) \item Entfernen der lokalen Nutzerinstallation (manuell) -\item Aktualisierung der lokalen Nutzerversion +\item Aktualisierung der lokalen Nutzerversion (\autoref{sec:local:update}) \end{enumerate} % -Die erste Variante wird nachfolgend erläutert, die zweite Möglichkeit wird in -\autoref{sec:local:update} beschrieben. Nur die manuelle Deinstallation der -lokalen Nutzerversion \TUDScript ermöglicht dabei die Verwendung der jeweils -aktuellen CTAN"=Version. Hierfür ist etwas Handarbeit durch den Anwender -vonnöten. Der in der Kommandozeile respektive im Terminal mit +Um die lokale Nutzerinstallation zu entfernen, kann für Windows +\hrfn{\Download{uninstall/tudscr\_uninstall.bat}}{\File{tudscr\_uninstall.bat}} +sowie für unixartige Betriebssysteme +\hrfn{\Download{uninstall/tudscr\_uninstall.sh}}{\File{tudscr\_uninstall.sh}} +verwendet werden. Nach der Ausführung des jeweiligen Skriptes kann mit dem zu +Beginn gezeigten Aufruf in der Kommandozeile respektive Terminal geprüft +werden, ob die Deinstallation erfolgreich war. Wird immer noch mindestens ein +lokaler Pfad ausgegeben, sollte \TUDScript manuelle deinstalliert werden, was +nachfolgend beschrieben wird. + +Nur die Deinstallation aller lokalen Nutzerinstallationen von \TUDScript +ermöglicht die Verwendung der jeweils aktuellen CTAN"=Version. Hierfür ist~-- +unter der Annahme, dass das automatisierte Deinstallieren mithilfe der zuvor +genannten Skripte zur Deinstallation nicht erfolgreich war~-- etwas Handarbeit +durch den Anwender vonnöten. Der in der Kommandozeile respektive im Terminal mit % \begin{quoting} \Path{kpsewhich --all tudscrbase.sty} @@ -133,9 +137,6 @@ Pfad Folgendes durchzuführen: \item[\Path{source/latex/}] Ordner \Path{tudscr} vollständig löschen \end{description} % -Das Verzeichnis \Path{\PName{Installationspfad}/tex/latex/tudscr/fonts} -\textbf{sollte erhalten bleiben}. Andernfalls müssen die Schriften des \CDs -abermals wie unter \autoref{sec:install} beschrieben installiert werden. Zum Abschluss ist in der Kommandozeile beziehungsweise im Terminal der Befehl \Path{texhash} aufzurufen. Damit wurde die lokale Nutzerversion entfernt und es wird von nun an die Version von \TUDScript genutzt, welche durch die verwendete @@ -147,68 +148,37 @@ Distribution bereitgestellt wird. \tudhyperdef*{sec:local:install}% \index{Installation!Nutzerinstallation|(}% % -Für die lokale Nutzerinstallation von \TUDScript inklusive der Schriften des -\CDs werden für Windows sowie unixartige Betriebssysteme die passenden Skripte -angeboten. Eine lokale Installation sollte nur von Anwender ausgeführt werden, -die genau wissen, aus welchen Gründen dies geschehen soll. - +Eine lokale Nutzerinstallation von \TUDScript sollte ausschließlich durch +Anwender ausgeführt werden, die genau wissen, aus welchen Gründen dies +geschehen soll. Hierfür werden die passenden Skripte angeboten. Für eine lokale +Nutzerinstallation des \TUDScript-Bundles unter Windows für die Distributionen +\Distribution{\hologo{TeX}~Live} oder \Distribution{\hologo{MiKTeX}} werden die +Dateien aus +\hrfn{\Download{\vTUDScript/TUD-Script\_\vTUDScript\_Windows.zip}}% +{\File*{TUD-Script\_\vTUDScript\_Windows.zip}} +benötigt. Für unixoide Betriebssysteme sind es die Dateien aus +\hrfn{\Download{\vTUDScript/TUD-Script\_\vTUDScript\_Unix.zip}}% +{\File*{TUD-Script\_\vTUDScript\_Unix.zip}}. -\subsection{Lokale Installation von \TUDScript unter Windows} -Für eine lokale Nutzerinstallation des \TUDScript-Bundles und der dazugehörigen -Schriften für die Distributionen \Distribution{\hologo{TeX}~Live} oder -\Distribution{\hologo{MiKTeX}} werden neben den Schriftarchiven die Dateien aus -\hrfn{\Download{\vTUDScript/TUD-Script\_\vTUDScript\_Windows\_full.zip}}{\File*{TUD-Script\_\vTUDScript\_Windows\_full.zip}} -benötigt. Vor der Nutzung des Installationsskripts -\File{tudscr\_\vTUDScript\_install.bat} sollte sichergestellt werden, dass sich -\emph{alle} der folgenden Dateien im selben Verzeichnis befinden: -% -\settowidth\tempdim{\File{tudscr\_\vTUDScript\_install.bat}}% -\begin{description}[labelwidth=\tempdim,labelsep=1em] - \item[\File{tudscr\_\vTUDScript.zip}]Archiv mit Klassen- und Paketdateien - \item[\File{tudscr\_\vTUDScript\_install.bat}]Installationsskript - \item[\File{Univers\_PS.zip}]Archiv mit Schriftdateien für \Univers - \item[\File{DIN\_Bd\_PS.zip}]Archiv mit Schriftdateien für \DIN - \item[\File{tudscr\_fonts\_install.zip}]Archiv mit Metriken für die - Schriftinstallation via \Package{fontinst} -\end{description} -% -Beim Ausführen des Installationsskripts werden alle Schriften in das lokale +Beim Ausführen des spezifischen Installationsskripts~-- für Windows +\File{tudscr\_\vTUDScript\_install.bat} respektive für unixoide Betriebssysteme +\File{tudscr\_\vTUDScript\_install.sh}~-- werden alle Dateien in das lokale Nutzerverzeichnis der jeweiligen Distribution installiert, falls kein anderes -Verzeichnis explizit angegeben wird. Für Hinweise bei Problemen mit der -Schriftinstallation sei auf \autoref{sec:install:win} verwiesen. +Verzeichnis explizit angegeben wird. \Attention{% - Wird die \hologo{LaTeX}"=Distribution \Distribution{\hologo{MiKTeX}} genutzt, - sollte in jedem Fall vor der Ausführung der Installationsskripte ein Update - der Distribution durchgeführt werden. Andernfalls wird es unter Umständen im - Installationsprozess oder bei der Nutzung von \TUDScript zu Problemen kommen. + In jedem Fall sollte vor der Ausführung des Installationsskripts ein Update + der \hologo{LaTeX}"=Distribution durchgeführt werden. Dies gilt insbesondere + bei der Nutzung von \Distribution{\hologo{MiKTeX}}. Andernfalls wird es unter + Umständen im Installationsprozess oder bei der Nutzung von \TUDScript zu + Problemen kommen. } - - -\subsection{Lokale Installation von \TUDScript unter Linux und OS~X} -Für eine lokale Nutzerinstallation des \TUDScript-Bundles und der dazugehörigen -Schriften für die Distributionen \Distribution{\hologo{TeX}~Live} oder -\Distribution{Mac\hologo{TeX}} werden neben den Schriftarchiven die Dateien aus -\hrfn{\Download{\vTUDScript/TUD-Script\_\vTUDScript\_Unix\_full.zip}}{\File*{TUD-Script\_\vTUDScript\_Unix\_full.zip}} -benötigt. Vor der Verwendung des Installationsskripts -\File{tudscr\_\vTUDScript\_install.sh} sollte sichergestellt werden, dass sich -\emph{alle} der folgenden Dateien im selben Verzeichnis befinden: -% -\begin{description}[labelwidth=\tempdim,labelsep=1em] -\settowidth\tempdim{\File{tudscr\_\vTUDScript\_install.sh}}% - \item[\File{tudscr\_\vTUDScript.zip}]Archiv mit Klassen- und Paketdateien - \item[\File{tudscr\_\vTUDScript\_install.sh}]Installationsskript - (Terminal: \Path{bash tudscr\_\vTUDScript\_install.sh}) - \item[\File{Univers\_PS.zip}]Archiv mit Schriftdateien für \Univers - \item[\File{DIN\_Bd\_PS.zip}]Archiv mit Schriftdateien für \DIN - \item[\File{tudscr\_fonts\_install.zip}]Archiv mit Metriken für die - Schriftinstallation via \Package{fontinst} -\end{description} -% -Beim Ausführen des Installationsskripts werden alle Schriften in das lokale -Nutzerverzeichnis der jeweiligen Distribution installiert. Für Hinweise bei -Problemen mit der Schriftinstallation sei auf \autoref{sec:install:unix} -verwiesen. +Alternativ zur Nutzung der bereitgestellte Skripte kann auch einfach der Inhalt +des Archivs +\hrfn{\Download{\vTUDScript/tudscr\_\vTUDScript.zip}}% +{\File{tudscr\_\vTUDScript.zip}} +in das lokale \Path{texmf}"=Nutzerverzeichnis kopiert und abschließend in der +Kommandozeile respektive im Terminal \Path{texhash} aufgerufen werden. @@ -216,36 +186,27 @@ verwiesen. \tudhyperdef*{sec:local:update}% \index{Update|!}% % -\subsection{Update des \TUDScript-Bundles ab Version~\NoCaseChange{v}2.02} -Soll eine lokale Aktualisierung des \TUDScript-Bundles auf \vTUDScript{} -erfolgen, so muss~-- abhängig vom verwendeten Betriebssystem~-- das Archiv -\hrfn{\Download{\vTUDScript/TUD-Script\_\vTUDScript\_Windows\_update.zip}}{\File*{TUD-Script\_\vTUDScript\_Windows\_update.zip}} -respektive -\hrfn{\Download{\vTUDScript/TUD-Script\_\vTUDScript\_Unix\_update.zip}}{\File*{TUD-Script\_\vTUDScript\_Unix\_update.zip}} -entpackt und daran anschließend entweder \File{tudscr\_\vTUDScript\_update.bat} -oder \File{tudscr\_\vTUDScript\_update.sh} ausgeführt werden. +\subsection{Update des \TUDScript-Bundles ab Version~v2.02} +Ein Update und die lokale Installation unterscheiden sich ab der Version~v2.06 +nicht voneinander, das Vorgehen ist absolut identisch zu der Beschreibung in +\autoref{sec:local:install}. \Attention{% - Die lokale Aktualisierung funktioniert nur, wenn \TUDScript bereits - mindestens in der Version~v2.02 entweder als lokale Nutzerversion oder über - die Distribution sowie die PostScript"=Schriften installiert sind.% + Die lokale Aktualisierung auf Version~\vTUDScript{} funktioniert allerdings + nur, wenn \TUDScript bereits mindestens in der Version~v2.02 entweder als + lokale Nutzerversion oder über die Distribution installiert ist.% } -\subsection{Update des \TUDScript-Bundles ab Version~\NoCaseChange{v}2.00} +\subsection{Update des \TUDScript-Bundles ab Version~v2.00} % Mit der Version~v2.02 gab es einige tiefgreifende Änderungen. Deshalb wird für vorausgehende Versionen~-- sprich v2.00 und v2.01~-- kein dediziertes Update angeboten. Die Aktualisierung kann durch den Anwender entweder~-- wie in \autoref{sec:local:install} erläutert~-- mit einer skriptbasierten oder mit -einer manuellen Neuinstallation erfolgen. Für die zweite Variante muss -der Inhalt des Archivs -\hrfn{\Download{\vTUDScript/tudscr\_\vTUDScript.zip}}{\File{tudscr\_\vTUDScript.zip}} -in das lokale \Path{texmf}"=Nutzerverzeichnis kopiert werden. Des Weiteren -wurde die Installation der Schriften überarbeitet. Deshalb wird auch für diese -eine Neuinstallation (\autoref{sec:install}) sehr empfohlen. +einer manuellen Neuinstallation erfolgen. \index{Installation!Nutzerinstallation|)}% -\subsection{Update des \TUDScript-Bundles von Version \NoCaseChange{v}1.0} +\subsection{Update des \TUDScript-Bundles von Version v1.0} % Ist \TUDScript in der veralteten \emph{Version~v1.0} installiert, so wird vor der Aktualisierung dringlichst zu einem vollständigen Entfernen dieser Version @@ -255,7 +216,7 @@ Probleme und Fehler auftreten. Zur Deinstallation werden die Skripte respektive \hrfn{\Download{uninstall/tudscr_uninstall.sh}}{\File{tudscr\_uninstall.sh}} bereitgestellt. Die aktuelle Version~\vTUDScript{} kann nach der vollständigen -Deinstallation aller veralteten Versionen wie in \autoref{sec:install} +Deinstallation aller veralteten Versionen wie in \autoref{sec:install:fonts} beschrieben installiert werden. Im Vergleich zur \emph{Version~v1.0} hat sich an der Benutzerschnittstelle @@ -267,93 +228,340 @@ vorgesehener Befehle sowie Optionen bereitstellt. Allerdings werden einige von diesen auch durch das Paket \Package{tudscrcomp} nicht mehr bereitgestellt. Aufgeführt sind diese in \autoref{sec:obsolete}. Sollten trotz aller Hinweise dennoch Fehler oder Probleme beim Umstieg auf die neue \TUDScript-Version -auftreten, ist eine Meldung im \Forum die beste Möglichkeit, um Hilfe zu -erhalten. +auftreten, ist eine Meldung im \Forum oder im \GitHubRepo[issues] die beste +Möglichkeit, um Hilfe zu erhalten. + + + +\section{Installation veralteter Schriftfamilien} +\tudhyperdef*{sec:install:fonts}% +\index{Installation!Schriftinstallation|!(}% + +Bis Anfang des Jahres~2018 nutzte das \TUDCD als Hausschrift nicht \OpenSans +sondern die Schriftfamilien \Univers und \DIN. Diese lassen sich auch weiterhin +mit \TUDScript verwenden, um alte Dokumente kompilieren zu können. Hierfür sei +auf die Optionen \Option*{tudscrverv=2.05} und \Option*{cdoldfont} hingewiesen. +Da es sich bei diesen um lizenzierte Schriften handelt, müssen diese beim +Universitätsmarketing auf \hrfn{https://tu-dresden.de/cd/}{Anfrage} mit dem +Hinweis auf die Verwendung von \hologo{LaTeX} bestellt und nach Erhalt der +notwendigen Archive \File{Univers\_PS.zip} und \File{DIN\_Bd\_PS.zip} für +Windows (\autoref{sec:install:win}) beziehungsweise unixoide Betriebssysteme +(\autoref{sec:install:unix}) installiert werden. Ohne einen triftigen Grund +sollte jedoch in jedem Fall die \OpenSans genutzt werden, insbesondere für neu +erstellte Dokumente. + +Das \TUDScript-Bundle unterstützt besagte Schriften auch im OpenType-Format, +welche ebenfalls über das Universitätsmarketing auf +\href{https://tu-dresden.de/cd/}{Anfrage} bestellt werden müssen. Die in den +Archiven \File{Univers\_8\_TTF\/.zip} und \File{DIN\_TTF\/.zip} enthaltenen +Schriften lassen sich~-- sobald diese für das Betriebssystem installiert +wurden~-- mit dem Paket \Package{fontspec} verwenden. In \fullref{sec:fonts} +sind weitere Hinweise zur Verwendung des Paketes \Package{fontspec} zu finden. + +Im \GitHubRepo* sind die zur Schriftinstallation benötigten +\hrfn{https://github.com/tud-cd/tudscr/releases/tag/fonts}{Skripte} +ebenso zu finden wie die +\hrfn{https://github.com/tud-cd/tudscr/releases/tag/oldfonts}{Skripte} +für die Klassen von Klaus Bergmann. Die unterschiedlichen Installationsskripte +begründen sich insbesondere dadurch, dass bei der Installation für das +\TUDScript-Bundle sowohl die Metriken als auch das Kerning der Schriften für +Fließtext und den Mathematikmodus angepasst werden. Sollen die so verbesserten +Schriften für die Klassen von Klaus Bergmann verwendet werden, kann dies mit +dem Paket \Package{fix-tudscrfonts} erfolgen, was allerdings das Ergebnis der +erzeugten Ausgabe beeinflusst, weshalb die Installationsskripte in +unterschiedlichen Varianten weiterhin vorgehalten werden. + +\minisec{Erforderliche Pakete bei der Schriftinstallation} +Für die Installation der Schriften sind die Pakete \Package*{fontinst}, +\Package*{cmbright}, \Package*{hfbright}, \Package*{cm-super} und +\Package*{iwona} von \emph{essentieller} Bedeutung und daher \emph{zwingend} +notwendig. Das Vorhandensein dieser wird durch die jeweiligen +Schriftinstallationsskripte geprüft und die Installation beim Fehlen eines oder +mehrerer Pakete mit einer entsprechenden Warnung abgebrochen. + +\minisec{Anmerkung zu \hologo{MiKTeX}} +Vor der Installation der Schriften für \TUDScript sollte unbedingt ein Update +von \Distribution{\hologo{MiKTeX}}|?| durchgeführt werden. Außerdem ist es sehr +ratsam, die Installation von \Distribution{\hologo{MiKTeX}}|?| in der +Mehrbenutzervariante mit Administratorrechten durchzuführen, da die +Einzelbenutzervariante relativ unregelmäßig und nicht immer nachvollziehbar zu +Problemen führen kann. + +Möglicherweise sind einige der für den Schriftinstallationsprozess notwendigen +Pakete noch nicht installiert. Ist die automatische Nachinstallation fehlender +Pakete aktiviert, so reicht es im Normalfall das Installationsskript zu +starten. Andernfalls müssen diese Pakete manuell durch den Benutzer über den +\Distribution{\hologo{MiKTeX}}"=Paketmanager hinzugefügt werden. + +Das Installationsskript scheitert außerdem bei einigen Anwendern~-- aufgrund +eingeschränkter Nutzerzugriffsrechte~-- beim Eintragen der Schriften in die +Map"~Datei. Dies muss gegebenenfalls durch den Anwender über die Kommandozeile +% +\begin{quoting} +\Path{initexmf -{}-edit-config-file updmap} +\end{quoting} +% +erfolgen. In der sich öffnenden Datei sollte sich der Eintrag +\Path{Map~tudscr.map} befinden. Ist dies nicht der Fall, muss diese Zeile +manuell eingetragen und die Datei anschließend gespeichert werden. Danach muss +der Nutzer in der Kommandozeile noch folgenden Aufruf ausführen: +% +\begin{quoting} + \Path{initexmf~-{}-mkmaps} +\end{quoting} + + +\minisec{Anmerkung zu \hologo{TeX}~Live und Mac\hologo{TeX}} +Sollte keine Vollinstallation von \Distribution{\hologo{TeX}~Live} durchgeführt +worden sein, müssen die erforderlichen Pakete zur Schriftinstallation manuell +über den \Distribution{\hologo{TeX}~Live}"=Paketmanager hinzugefügt werden. + +Sind nach einem fehlerfreien Durchlauf des Installationsskriptes die Schriften +dennoch nicht verfügbar, so muss die Synchronisierung aller Schriftdateien +angestoßen werden. Daran anschließend müssen die Map"~Datei und die +dazugehörigen Schriftdateien registriert werden. Die hierfür notwendigen +Aufrufe lauten: +% +\begin{quoting} +\Path{updmap-sys -{}-syncwithtrees}\newline +\Path{updmap-sys -{}-enable Map=tudscr.map}\newline +\Path{updmap-sys -{}-force} +\end{quoting} +% +Sind die Schriften danach immer noch nicht verfügbar, so wurden bestimmt schon +weitere Schriften auf dem System \emph{lokal} installiert. In diesem Fall +sollte der Vorgang nochmals für eine lokale Schriftinstallation mit +% +\begin{quoting} +\Path{updmap -{}-syncwithtrees}\newline +\Path{updmap -{}-enable Map=tudscr.map}\newline +\Path{updmap -{}-force} +\end{quoting} +% +ausgeführt werden. Dieses Vorgehen macht allerdings den Befehl +\Path{updmap-sys} von nun an wirkungslos. Nach einer systemweiten Installation +neuer Schriften~-- beispielsweise bei der Aktualisierung der Distribution~-- +müssen diese über den manuellen Aufruf von \Path{updmap} zukünftig durch den +Anwender lokal bei \Distribution{\hologo{TeX}~Live}|?| respektive +\Distribution{Mac\hologo{TeX}}|?| registriert werden. + +\Attention{% + Für die Schriftinstallation werden die Skripte \Path{tftopl}, \Path{pltotf} + und \Path{vptovf} benötigt, welche bei \Distribution{\hologo{TeX}~Live}|?| + beziehungsweise \Distribution{Mac\hologo{TeX}}|?| über das Paket + \Package*{fontware} aus \Package*{collection-fontutils}<> + bereitgestellt werden und zwingend installiert sein müssen. +} + + +\subsection{Installation der Type1-Schriften unter Windows} +\tudhyperdef*{sec:install:win}% +% +Zur Installation der Schriften des \CDs für das \TUDScript-Bundle ist das Archiv +\hrfn{\Download{fonts/TUD-Script_fonts_Windows.zip}}% +{\File*{TUD-Script\_fonts\_Windows.zip}} +vorgesehen. Dieses ist sowohl für \Distribution{\hologo{TeX}~Live}|?| als auch +\Distribution{\hologo{MiKTeX}}|?| nutzbar und enthält~-- bis auf die jeweiligen +Schriftarchive selbst~-- alle benötigten Dateien. Diese sollten nach dem +Entpacken des Archivs in das gleiche Verzeichnis kopiert werden. Vor der +Verwendung des Skripts \File{tudscr\_fonts\_install.bat} sollte sichergestellt +werden, dass sich \emph{alle} der folgenden Dateien im selben Verzeichnis +befinden: +% +\settowidth\tempdim{\File{tudscr\_fonts\_install.zip}~}% +\begin{description}[labelwidth=\tempdim,labelsep=1em] + \item[\File{tudscr\_fonts\_install.bat}]Installationsskript + \item[\File{Univers\_PS.zip}]Archiv mit Schriftdateien für \Univers + \item[\File{DIN\_Bd\_PS.zip}]Archiv mit Schriftdateien für \DIN + \item[\File{tudscr\_fonts\_install.zip}]Archiv mit Metriken für die + Schriftinstallation via \Package{fontinst} +\end{description} +% +Beim Ausführen des Installationsskripts werden alle Schriften standardmäßig in +ein lokales Nutzerverzeichnis installiert. Wird das Skript über das Kontextmenü +mit Administratorrechten ausgeführt, erfolgt die Installation in einem Pfad, +der \emph{für alle Nutzer} gültig und lesbar ist. +\subsection{Installation der Type1-Schriften unter Linux und OS~X} +\tudhyperdef*{sec:install:unix}% +% +Zur Installation der Schriften des \CDs für das \TUDScript-Bundle ist das Archiv +\hrfn{\Download{fonts/TUD-Script_fonts_Unix.zip}}% +{\File*{TUD-Script\_fonts\_Unix.zip}} + vorgesehen. Dieses ist sowohl für \Distribution{\hologo{TeX}~Live}|?| als auch +\Distribution{Mac\hologo{TeX}}|?| nutzbar und enthält~-- bis auf die jeweiligen +Schriftdateien selbst~-- alle benötigten Dateien. Diese sollten nach dem +Entpacken des Archivs in das gleiche Verzeichnis kopiert werden. Vor der +Verwendung des Skripts \File{tudscr\_fonts\_install.sh} sollte sichergestellt +werden, dass sich \emph{alle} der folgenden Dateien im selben Verzeichnis +befinden: +% +\begin{description}[labelwidth=\tempdim,labelsep=1em] + \item[\File{tudscr\_fonts\_install.sh}]Installationsskript + (Terminal: \Path{bash tudscr\_fonts\_install.sh}) + \item[\File{Univers\_PS.zip}]Archiv mit Schriftdateien für \Univers + \item[\File{DIN\_Bd\_PS.zip}]Archiv mit Schriftdateien für \DIN + \item[\File{tudscr\_fonts\_install.zip}]Archiv mit Metriken für die + Schriftinstallation via \Package{fontinst} +\end{description} +% +\minisec{Anmerkung zu Linux und OS~X} +\Attention{% + Nach dem Entpacken eines Release-Archivs im passenden Pfad\footnote{% + beispielsweise \Path{cd~"\$HOME/Downloads/\PName{Unterordner}"}% + } \textbf{muss das Skript zwingend} mit \Path{bash~\PName{Skript}.sh} im + Terminal in diesem Pfad mit den benötigten Dateien aufgerufen werden. +} +Dabei werden alle Schriften standardmäßig in das lokale Nutzerverzeichnis +(\Path{\$TEXMFHOME}) installiert. Wird das Skript mit \Path{sudo} verwendet, +erfolgt die Installation \emph{für alle Nutzer} in den lokalen Systempfad +(\Path{\$TEXMFLOCAL}). + +Es ist unbedingt darauf zu Achten, das beim Ausführen des Skriptes das Terminal +im richtigen Verzeichnis aktiv ist. Bei den meisten unixoiden Betriebssystemen +ist es problemlos möglich, das Terminal aus der Benutzeroberfläche heraus über +das Kontextmenü im gewünschten Pfad zu öffnen. Geht dies nicht, so muss nach +dem Öffnen des Terminals mit dem Befehl \Path{cd} erst zum entsprechenden +Pfad~-- exemplarisch \Path{cd~"\$HOME/Downloads/\PName{Unterordner}"}~-- +navigiert werden. Ein beispielhafter Aufruf im Terminal könnte also lauten: +% +\begin{quoting} +\Path{% + cd~"\$HOME/Downloads/TUD-Script\_fonts\_Unix"{}\,\POParameter{ENTER} +}\newline +\Path{bash tudscr\_fonts\_install.sh\,\POParameter{ENTER}} +\end{quoting} + -\section{Installationshinweise für portable Installationen} +\subsection{Installationshinweise für portable Installationen} \tudhyperdef*{sec:install:portable}% % -Prinzipiell ist die Installation der PostScript-Schriften des \CDs bei der -Nutzung von \Distribution{\hologo{TeX}~Live~Portable}|?| respektive +Prinzipiell ist die Installation der Type1-Schriften des \CDs bei der Nutzung +von \Distribution{\hologo{TeX}~Live~Portable}|?| respektive \Distribution{\hologo{MiKTeX}~Portable}|?| äquivalent zur nicht"~portablen -Variante, welche in \autoref{sec:install} beschrieben wird. Alle dort gegebenen -Hinweise sollten sorgfältig berücksichtigt werden. Zur Installation wird das -Archiv -\hrfn{\Download{fonts/TUD-Script_fonts_Windows.zip}}{\File*{TUD-Script\_fonts\_Windows.zip}} -benötigt, das auf der lokalen Festplatte oder auf dem externen Speichermedium -entpackt werden kann. - -\minisec{\NoCaseChange{\hologo{TeX}}~Live~Portable} +Variante, welche in \autoref{sec:install:fonts} beschrieben wird. Alle dort +gegebenen Hinweise sollten sorgfältig berücksichtigt werden. Der durch das +jeweilige Installationsskript voreingestellte Installationspfad sollte für +gewöhnlich nicht geändert werden. Geschieht dies dennoch, so sollte dieser sich +logischerweise auf dem externen Speichermedium +\Path{\PName{Laufwerksbuchstabe}:\textbackslash} befinden. + +\minisec{\hologo{TeX}~Live~Portable} Das folgende Vorgehen wurde mit Windows getestet. Empfehlungen für die portable -Installation für unixoide Betriebssysteme können gerne an \mailto{\tudscrmail} +Installation für unixoide Betriebssysteme können an \mailto{\tudscrmail} gesendet werden. \begin{enumerate} -\item Installation von \Distribution{\hologo{TeX}~Live~Portable} in den Pfad +\item Installation von \Distribution{\hologo{TeX}~Live~Portable} in \Path{\PName{Laufwerksbuchstabe}:\textbackslash LaTeX\textbackslash texlive} \item Die Datei \File*{tl-tray-menu.exe} im Installationspfad öffnen -\item Im Infobereich der Taskleiste mit einem Rechtsklick auf das Symbol von - \Distribution{\hologo{TeX}~Live~Portable} das Kontextmenü öffnen und entweder - über die grafische Oberfläche (\emph{Package Manager}) oder die Kommandozeile - (\emph{Command Prompt}) ein Update durchführen +\item Das Kontextmenü von \Distribution{\hologo{TeX}~Live~Portable} mit einem + Rechtsklick auf das entsprechende Symbol im Infobereich der Taskleiste + öffnen und entweder über die grafische Oberfläche (\emph{Package Manager}) + oder die Kommandozeile (\emph{Command Prompt}) ein Update durchführen \item Über das Kontextmenü die Kommandozeile ausführen und in dieser das Skript für die Installation der Schriften \File{tudscr\_fonts\_install.bat} starten. Dabei gegebenenfalls zuvor in den Pfad des Skriptes wechseln~-- exemplarisch: - \begin{quoting}[rightmargin=0pt] + \begin{quoting}[leftmargin=1.5em,rightmargin=0pt] \Path{% cd~/d~\%USERPROFILE\%\textbackslash{}Downloads% \textbackslash{}TUD-Script\_fonts\_Windows\,\POParameter{ENTER} - }\newline + }\newline% \Path{tudscr\_fonts\_install.bat}\,\POParameter{ENTER} \end{quoting} - Der durch das Installationsskript voreingestellte Installationspfad kann im - Normalfall so belassen werden. Wird der Pfad geändert, so sollte dieser sich - logischerweise auf dem externen Speichermedium - \Path{\PName{Laufwerksbuchstabe}:\textbackslash} befinden. + Unter Umständen meldet das Skript fehlende Pakete. Dieses müssen über durch + den Anwender über den \emph{\hologo{TeX}~Live~Manager} installiert werden. \Attention{% Ein Ausführen ohne die über \Distribution{\hologo{TeX}~Live~Portable} geöffnete Kommandozeile führt zu Fehlern. }% \end{enumerate} -\minisec{\NoCaseChange{\hologo{MiKTeX}}~Portable} +\minisec{\hologo{MiKTeX}~Portable} \begin{enumerate} -\item Installation von \Distribution{\hologo{MiKTeX}~Portable} in den Pfad +\item Installation von \Distribution{\hologo{MiKTeX}~Portable} in \Path{\PName{Laufwerksbuchstabe}:\textbackslash LaTeX\textbackslash MiKTeX}% \footnote{Der Pfad darf \emph{nicht} auf der obersten Verzeichnisebene \Path{\PName{Laufwerksbuchstabe}:\textbackslash} liegen. } \item Die Datei \File{miktex-portable.cmd} im Installationspfad öffnen -\item Im Infobereich der Taskleiste mit einem Rechtsklick auf das Symbol von - \Distribution{\hologo{MiKTeX}~Portable} das Kontextmenü öffnen und ein Update - durchführen +\item Das Kontextmenü von \Distribution{\hologo{MiKTeX}~Portable} mit einem + Rechtsklick auf das entsprechende Symbol im Infobereich der Taskleiste öffnen + und ein Update durchführen \item Über das Kontextmenü die Kommandozeile ausführen und in dieser das Skript für die Installation der Schriften \File{tudscr\_fonts\_install.bat} starten. Dabei gegebenenfalls zuvor in den Pfad des Skriptes wechseln~-- exemplarisch: - \begin{quoting}[rightmargin=0pt] + \begin{quoting}[leftmargin=1.5em,rightmargin=0pt] \Path{% cd~/d~\%USERPROFILE\%\textbackslash{}Downloads% \textbackslash{}TUD-Script\_fonts\_Windows\,\POParameter{ENTER} }\newline \Path{tudscr\_fonts\_install.bat}\,\POParameter{ENTER} \end{quoting} - Der durch das Installationsskript voreingestellte Installationspfad kann im - Normalfall so belassen werden. Wird der Pfad geändert, so sollte dieser sich - logischerweise auf dem externen Speichermedium - \Path{\PName{Laufwerksbuchstabe}:\textbackslash} befinden. Bei diesem Schritt - werden die Pakete \Package{fontinst}, \Package{cmbright} und \Package{iwona} - unter Umständen nachinstalliert. + Bei diesem Schritt werden die Pakete \Package{fontinst}, \Package{cmbright} + und \Package{iwona} unter Umständen nachinstalliert. \Attention{% Ein Ausführen ohne die über \Distribution{\hologo{MiKTeX}~Portable} geöffnete Kommandozeile führt zu Fehlern. }% -\item Bei der erstmaligen Verwendung einer der \TUDScript-Klassen werden die - Pakete \Package*{tudscr}, \Package{koma-script}, \Package{etoolbox}, - \Package{textcase}, \Package{environ}, \Package{trimspaces}, - \Package{xcolor} sowie \Package{mptopdf}<> durch - \Distribution{\hologo{MiKTeX}~Portable} nachinstalliert, falls diese nicht - schon vorhanden sind und die automatische Nachinstallation von Paketen - aktiviert ist. +\item Bei der erstmaligen Verwendung von \TUDScript werden alle weiteren + benötigten Pakete von \Distribution{\hologo{MiKTeX}~Portable} + nachinstalliert, falls die automatische Nachinstallation aktiviert ist und + diese nicht schon vorhanden sind. Unter anderem betrifft dies die Pakete + \Package*{tudscr}, \Package{koma-script} sowie \Package{etoolbox}, + \Package{xpatch} \Package{letltxmacro}, \Package{environ}, + \Package{trimspaces}, \Package{xcolor} und \Package{mptopdf}<>. \end{enumerate} + + +\subsection{Probleme bei der Installation der Type1-Schriften} +% +Wird Windows verwendet, kann es unter Umständen vorkommen, dass notwendige +Befehlsaufrufe für das Installationsskript nicht ausgeführt werden können. In +diesem Fall ist der Pfad zu den benötigten Dateien, welche normalerweise unter +\Path{\%SystemRoot\%\textbackslash System32} zu finden sind, nicht in der +Umgebungsvariable \Path{PATH} enthalten. Einen Hinweis zur Problemlösung ist +\hrfn{http://latex.wcms-file3.tu-dresden.de/phpBB3/viewtopic.php?t=359}{% + in diesem Beitrag im Forum% +} +zu finden. + +Treten bei der Installation wider Erwarten Probleme auf, so ist zur Lösung eine +Logdatei zu erstellen. Hierfür sollte unter \textbf{Windows} das Skript, +welches Probleme verursacht, \emph{nicht} aus der Kommandozeile oder dem +Explorer heraus sondern über \emph{Windows PowerShell} ausgeführt werden. +Hierfür ist die Eingabe von \enquote{PowerShell} im Startmenü von Windows mit +einem nachfolgenden Öffnen mittels \POParameter{ENTER}"~Taste ausreichend. +Danach muss mit \Path{cd} zum Ordner des Skriptes navigiert und dieses mit +\Path{.\textbackslash\PName{Skript}.bat|Tee-Object -file \PName{Skript}.log} +ausgeführt werden. Ein Aufruf aus der PowerShell"~Konsole könnte lauten: +% +\begin{quoting}[rightmargin=0pt] + \Path{% + cd~"\$env:USERPROFILE\textbackslash{}Downloads\textbackslash{}% + TUD-Script\_fonts\_Windows"{}\,\POParameter{ENTER}% + }\newline% + \Path{% + .\textbackslash{}tudscr\_fonts\_install.bat% + |Tee-Object -file fonts\_install.log\,\POParameter{ENTER}% + }% +\end{quoting} +% +Für \textbf{unixartige Systeme} ist der Aufruf +\Path{bash \PName{Skript}.sh > \PName{Skript}.log} aus dem Terminal heraus zu +verwenden. Ein exemplarische Verwendung könnte lauten: +% +\begin{quoting} + \Path{% + cd~"\$HOME/Downloads/TUD-Script\_fonts\_Unix"{}\,\POParameter{ENTER}% + }\newline + \Path{% + bash tudscr\_fonts\_install.sh > fonts\_install.log\,\POParameter{ENTER}% + }% +\end{quoting} +% +Die so erstellte Logdatei kann \emph{mit einer kurzen Fehlerbeschreibung} +entweder im \Forum* gepostet oder direkt per E"~Mail an \mailto{\tudscrmail} +gesendet werden. +\index{Installation!Schriftinstallation|!)}% diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-introduction.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-introduction.tex index 985b61f990f..f000c758721 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-introduction.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-introduction.tex @@ -1,51 +1,102 @@ \chapter{Einleitung} % -Zur fehlerfreien Verwendung der \TUDScript-Klassen der Version~\vTUDScript{} -werden sowohl die \KOMAScript"=Klassen~\vKOMAScript{} oder später als auch die -beiden Hausschriften des \CDs \Univers und \DIN zwingend benötigt. Außerdem -müssen weitere Pakete durch die genutzte \hologo{LaTeX}"=Distribution -bereitgestellt werden. - -Bei den aktuellen Distributionen +Zur Verwendung der \TUDScript-Klassen in der Version~\vTUDScript{} werden +sowohl die \KOMAScript"=Klassen~\vKOMAScript{} oder später als auch die +Hausschrift des \CDs \OpenSans aus dem Paket \Package{opensans} zwingend +benötigt. Außerdem müssen durch die genutzte \hologo{LaTeX}"=Distribution +weitere Pakete bereitgestellt werden, die unter \autoref{sec:packages:needed} +aufgeführt sind. Beim Einsatz einer der Distributionen \index{Distribution}% -\Distribution{\hologo{TeX}~Live}[2016]|?|, -\Distribution{Mac\hologo{TeX}}[2016]|?| und -\Distribution{\hologo{MiKTeX}}[2.9]|?| -ist das mit großer Sicherheit kein Problem. Nutzen Sie jedoch eine frühere -Distribution, könnte dies zu Problemen führen. Dann sollte bestenfalls eine der -aktuellen Distributionen installiert werden. Ist dies nicht möglich, müssen die -unter \autoref{sec:packages:needed} aufgeführten Pakete sowie \TUDScript -(\autoref{sec:local:install}) in der jeweils benötigten Version lokal -installiert werden. +\Distribution{\hologo{TeX}~Live}|?|, +\Distribution{Mac\hologo{TeX}}|?| und +\Distribution{\hologo{MiKTeX}}|?| +in der jeweils aktuellen Versionen sollte dies kein Problem darstellen. Wird +jedoch eine Distribution verwendet, die \TUDScript in der Version~\vTUDScript{} +nicht zur Verfügung stellt und eine Aktualisierung dieser nicht möglich sein, +so sollte \autoref{sec:install:ext} konsultiert werden. -Das Vorlagenpaket von Klaus Bergmann ist für die Verwendung nicht notwendig. -Allerdings beinhaltet dieses weitere Klassen zum Erstellen von Folien -und Briefen.% -\footnote{% +Das \TUDScript"=Bundle ist hauptsächlich für das Erstellen wissenschaftlicher +Texte sowie Arbeiten gedacht und soll \emph{momentan} die ursprünglichen +Klassen\footnote{% \Class{tudbook}, \Class{tudbeamer}, \Class{tudletter}, \Class{tudfax}, \Class{tudhaus}, \Class{tudform}% +} aus dem Vorlagenpaket von Klaus Bergmann nicht ersetzen sondern vielmehr +ergänzen. +% +Eine Umsetzung des \CDs für die \Class{beamer}"=Klasse sowie für Briefe und +Geschäftsschreiben auf Basis des \KOMAScript"=Brief"=Klasse \Class{scrlttr2} +ist bis jetzt leider noch nicht mit \TUDScript realisiert worden, soll jedoch +langfristig erfolgen. Im Bundle \Class{tudmathposter} existieren für die +\Class{beamer}"=Klasse allerdings bereits mehrere Stile. Dieses ist im +\hrfn{https://github.com/tud-cd/tud-cd/}{% + GitHub-Repository~\Distribution*{tud-cd}% +} zu finden. Für das Erstellen von Briefen mit den \TUDScript"=Klassen ließe +sich das Paket \Package{scrletter} nutzen. + + + +\section{Bestandteile und Nutzung des \TUDScript-Bundles} +% +\ChangedAt{% + v2.01:\TUDScript-Bundle auf CTAN veröffentlicht;% + v2.02:Installationsroutine der Type1-Schriften angepasst;% + v2.04:Installationsskripte verbessert und robuster gestaltet sowie für die + beiden portablen Distributionen \Distribution*{\hologo{TeX}~Live~Portable} + und \Distribution*{\hologo{MiKTeX}~Portable} erweitert;% + v2.06:\OpenSans als neue Schrift im \TUDCD;% + v2.06:Schriften im Paket \Package{opensans}, manuelle Installation unnötig;% } -Das \TUDScript"=Bundle ist hauptsächlich für das Erstellen wissenschaftlicher -Texte und Arbeiten gedacht und soll die ursprünglichen Klassen \emph{momentan} -nicht ersetzen sondern vielmehr ergänzen. +% +Das \TUDScript-Bundle wird über das \CTAN bereitgestellt und kann durch +\hologo{LaTeX}"=Distributionen wie \Distribution{\hologo{TeX}~Live}|?|, +\Distribution{Mac\hologo{TeX}}|?| oder auch \Distribution{\hologo{MiKTeX}}|?| +genutzt werden. Es stellt zum einen die drei Hauptklassen \Class{tudscrbook}, +\Class{tudscrreprt} sowie \Class{tudscrartcl} und zum anderen die Klasse +\Class{tudscrposter} zur Verfügung, welche in \autoref{sec:mainclasses} +beziehungsweise \autoref{sec:poster} vorgestellt werden. Das Paket +\Package{tudscrsupervisor}~-- dokumentiert in \autoref{sec:supervisor}~-- kann +zusammen mit den \TUDScript"=Klassen genutzt werden, um Aufgabenstellungen, +Aushänge oder Gutachten für studentische Arbeiten zu erstellen. Weiterhin +existieren auch eigenständige Pakete, welche in \autoref{sec:bundle} +beschrieben sind. Für die Verwendung des \TUDScript-Bundles ist~-- neben +\KOMAScript{} mindestens in der Version~\vKOMAScript{} sowie den in +\autoref{sec:packages:needed} aufgeführten \hologo{LaTeX}"=Paketen~-- seit der +Version~v2.06 lediglich die Schrift \OpenSans vonnöten, welche durch das Paket +\Package{opensans} zur Verfügung gestellt wird. Eine lokale Nutzerinstallation +der Schriften~-- wie in vorherigen Versionen~-- ist nicht notwendig. Lediglich +für den Fall, dass gezielt die alten Schriften \Univers und \DIN eingesetzt +werden sollen, müssen diese auch installiert sein. Weitere Hinweise dazu sind +in \autoref{sec:install:fonts} zu finden. Um diese zu aktivieren, sei auf +\Option{tudscrver=2.05} und \Option{cdoldfont} verwiesen. -Eine Umsetzung des \CDs für die \Class{beamer}"=Klasse sowie für Briefe und -Geschäftsschreiben auf Basis der \KOMAScript"=Brief"=Klasse \Class{scrlttr2} -ist bis jetzt leider noch nicht entstanden, soll jedoch langfristig -bereitgestellt werden. Allerdings existieren bereits im Bundle -\Class{tudmathposter} für die \Class{beamer}"=Klasse mehrere Stile. Das Bundle -ist sowohl bei \hrfn{https://github.com/tud-cd/tud-cd}{GitHub} als auf der -\hrfn{https://tu-dresden.de/cd/4_latex}{\hologo{LaTeX}-Seite der \TnUD} zu -finden. +\minisec{Anmerkung zu Windows} +Für Windows können zwei unterschiedliche \hologo{LaTeX}"=Distributionen genutzt +werden. Die Vorteile von \Distribution{\hologo{TeX}~Live}|?| im Vergleich zu +\Distribution{\hologo{MiKTeX}}|?| liegen zum einen in der Wartung durch mehrere +Autoren sowie der früheren Verfügbarkeit aller Updates über CTAN. Zum anderen +werden zusätzlich zu \hologo{LaTeXe} ein \emph{Perl"~Interpreter} sowie +\emph{Ghostscript} mitgeliefert, wodurch die Ad"=hoc"=Verwendung einiger +Pakete wie beispielsweise \Package{glossaries} vereinfacht beziehungsweise +verbessert wird. Für \Distribution{\hologo{MiKTeX}}|?| müssen diese Programme +gegebenenfalls manuell installiert werden. Demgegenüber entfällt für +\Distribution{\hologo{MiKTeX}}|?| die alljährliche Neuinstallation, welche bei +\Distribution{\hologo{TeX}~Live}|?| notwendig ist. + +\minisec{Anmerkung zu Linux und OS~X} +Die Installation einer der \hologo{LaTeX}"=Distributionen +\Distribution{\hologo{TeX}~Live}|?| oder \Distribution{Mac\hologo{TeX}}|?| +sollte direkt über die angebotenen Pakete +(\url{https://tug.org/texlive/} oder \url{https://tug.org/mactex/}) und nicht +über \Path{apt-get install} erfolgen. Damit wird sichergestellt, dass die +aktuelle Variante der jeweiligen Distribution genutzt wird. \section{Zur Verwendung dieses Handbuchs} -Sämtliche neu definierten Optionen, Umgebungen und Befehle der -\TUDScript-Klassen und \TUDScript-Pakete werden im Handbuch aufgeführt und -beschrieben. Am Ende des Dokumentes befinden sich mehrere Indexe, die das -Nachschlagen oder Auffinden von bisher unbekannten Befehlen oder Optionen -erleichtern sollen. +Sämtliche neu definierten Optionen, Umgebungen und Befehle der Klassen und +Pakete des \TUDScript-Bundles werden im Handbuch aufgeführt und beschrieben. Am +Ende des Dokumentes befinden sich mehrere Indexe, die das Nachschlagen oder +Auffinden von bisher unbekannten Befehlen oder Optionen erleichtern sollen. Die im Folgenden beschriebenen Optionen können~-- wie ein Großteil aller Einstellungen für \KOMAScript~-- in der Syntax des \Package{keyval}"=Paketes @@ -65,8 +116,8 @@ lassen sich beliebig viele Schlüsseln jeweils genau einen Wert zuweisen, \Parameter{Option}\Parameter{Werteliste}% ](\Package{koma-script})'none' erlaubt das gleichzeitige Setzen mehrere Werte für genau einen Schlüssel. -Äquivalent dazu werden für die von \TUDScript \emph{zusätzlich} zur Verfügung -gestellten Optionen die Befehle \Macro{TUDoptions}[\Parameter{Optionenliste}] +Für die von \TUDScript \emph{zusätzlich} zur Verfügung gestellten Optionen +werden äquivalent dazu die Befehle \Macro{TUDoptions}[\Parameter{Optionenliste}] und \Macro{TUDoption}[\Parameter{Option}\Parameter{Werteliste}] definiert. Damit kann das Verhalten von Optionen im Dokument~-- innerhalb einer Gruppe auch lokal~-- geändert werden. @@ -85,298 +136,11 @@ welcher in der Beschreibung aller Optionen durch die~\PValue{\emph{kursive}} Schreibweise innerhalb der Werteliste gekennzeichnet ist. In den meisten Fällen ist der Säumniswert eines Schlüssels \PValue{true}, er entspricht folglich der Angabe \PName{Schlüssel}\PValue{=true}. Mit der expliziten Wertzuweisung eines -Schlüssels durch den Benutzer werden immer sowohl normale als auch bedingte -Voreinstellungen überschrieben. Die neben den Optionen neu eingeführten Befehle -und Umgebungen der Klassen werden im gleichen Stil erläutert. - - - -\section{Installation des \TUDScript-Bundles} -\tudhyperdef*{sec:install}% -\index{Installation|!(}% -\index{Update}% -% -\ChangedAt{% - v2.01:\TUDScript-Bundle auf CTAN veröffentlicht;% - v2.02:Installationsroutine der PostScript-Schriften angepasst;% - v2.04:Installationsskripte verbessert und robuster gestaltet sowie für die - beiden portablen Distributionen \Distribution*{\hologo{TeX}~Live~Portable} - und \Distribution*{\hologo{MiKTeX}~Portable} erweitert -} -% -Das \TUDScript-Bundle ist seit der Version~v2.01~-- aufgrund lizenzrechtlicher -Bedingungen \emph{ohne} die geschützten Schriften \Univers und \DIN~-- im \CTAN -zu finden und kann dadurch die aktuellen \hologo{LaTeX}"=Distributionen wie -\Distribution{\hologo{TeX}~Live}[2016]|?|, -\Distribution{Mac\hologo{TeX}}[2016]|?| oder auch -\Distribution{\hologo{MiKTeX}}[2.9]|?| genutzt werden. Es besteht momentan aus -den drei Hauptklassen \Class{tudscrbook}, \Class{tudscrreprt} sowie -\Class{tudscrartcl}~-- dokumentiert in \autoref{sec:mainclasses}~-- und sowohl -mit den \TUDScript-Klassen assoziierten als auch eigenständigen Paketen, welche -in \autoref{sec:bundle} beschrieben sind. - -Zur problemlosen Verwendung des \TUDScript-Bundles ist~-- neben \KOMAScript{} -mindestens in der Version~\vKOMAScript{} sowie den in -\autoref{sec:packages:needed} aufgeführten \hologo{LaTeX}"=Paketen~-- lediglich -eine Installation der PostScript"=Schriften des \TUDCDs notwendig. Diese müssen -über das Universitätsmarketing auf -\hrfn{https://tu-dresden.de/cd/1_basiselemente/03_hausschrift/}{Anfrage} mit -dem Hinweis auf die Verwendung von \hologo{LaTeX} bestellt werden. Sobald Sie -die notwendigen Archive \File{Univers\_PS.zip} und \File{DIN\_Bd\_PS.zip} -erhalten haben, können die Schriften für Windows (\autoref{sec:install:win}) -beziehungsweise unixoide Betriebssysteme (\autoref{sec:install:unix}) -installiert werden. Die benötigten Skripte werden als -\hrfn{https://github.com/tud-cd/tudscr/releases/tag/fonts}{Release} -im \GitHubRepo* bereitgestellt.% -\footnote{% - Die Verwendung von installierten Systemschriften im Open"~Type"~Format mit - dem Paket \Package{fontspec} für \Engine{LuaLaTeX} oder \Engine{XeLaTeX} - wird mittlerweile unterstützt, mehr dazu in \autoref{sec:fonts:fontspec}.% -} - -\Attention{% - Die Skripte erzeugen für die Schriftinstallation \textbf{temporär} einige - Verzeichnisse und Dateien, weshalb diese nur fehlerfrei auf einem Laufwerk - ausgeführt werden können, auf dem der Anwender selbst Schreibrechte besitzt. -} - - -\minisec{Anmerkung zu Windows} -Sollte Windows genutzt werden und noch keine \hologo{LaTeX}"=Distribution auf -ihrem System installiert sein, so rate ich persönlich zur Verwendung von -\Distribution{\hologo{TeX}~Live}|?| statt \Distribution{\hologo{MiKTeX}}|?|. -Der Vorteil dieser Distribution liegt zum einen in der Wartung durch mehrere -Autoren sowie der früheren Verfügbarkeit aller Updates über CTAN. Zum anderen -liefert \Distribution{\hologo{TeX}~Live}|?| zusätzlich zu \hologo{LaTeXe} einen -\textsc{Perl}"=Interpreter sowie \textsc{Ghostscript}, wodurch die -Ad"=hoc"=Verwendung einiger Pakete wie beispielsweise \Package{glossaries} -vereinfacht beziehungsweise verbessert wird. - - -\minisec{Anmerkung zu Linux und OS~X} -Die Installation von \Distribution{\hologo{TeX}~Live}|?| beziehungsweise -\Distribution{Mac\hologo{TeX}}|?| sollte direkt über die im Internet -angebotenen Installationspakete (\url{https://tug.org/texlive/} respektive -\url{https://tug.org/mactex/}) und nicht über \Path{apt-get install} erfolgen. -% -Die Installation der Schriften des \CDs \emph{muss zwingend} über das Terminal -ausgeführt werden. Nach dem Entpacken eines Release-Archivs sollte im passenden -Pfad (beispielsweise \Path{cd~"\$HOME/Downloads/\PName{Unterordner}"}) das -Skript aus dem Terminal mit \Path{bash \PName{Skript}.sh} direkt ausgeführt -werden. Mehr dazu ist in \autoref{sec:install:unix} zu finden. +Schlüssels durch den Benutzer werden sowohl einfache als auch bedingte +Voreinstellungen immer überschrieben. Die neben den Optionen neu eingeführten +Befehle und Umgebungen der Klassen werden im gleichen Stil erläutert. -\minisec{Anmerkung zu \NoCaseChange{\hologo{MiKTeX}}} -Vor der Installation der Schriften für \TUDScript sollte unbedingt ein Update -von \Distribution{\hologo{MiKTeX}}|?| durchgeführt werden. Andernfalls wird -es mit großer Sicherheit zu Problemen kommen. Außerdem ist es sehr ratsam, die -Installation von \Distribution{\hologo{MiKTeX}}|?| in der Mehrbenutzervariante -mit Administratorrechten durchzuführen, da die Einzelbenutzervariante relativ -unregelmäßig und nicht immer nachvollziehbar zu Problemen führen kann. - -Möglicherweise sind einige der für den Schriftinstallationsprozess notwendigen -Pakete \Package{fontinst}, \Package{fontware} sowie \Package{cmbright}, -\Package{hfbright}, \Package{cm-super}, \Package{lmodern} und \Package{iwona} -noch nicht installiert. Ist die automatische Nachinstallation fehlender Pakete -aktiviert, so reicht es im Normalfall das Installationsskript zu starten. -Andernfalls müssen diese Pakete manuell durch den Benutzer über den -\Distribution{\hologo{MiKTeX}}"=Paketmanager hinzugefügt werden. - -Das Installationsskript scheitert außerdem bei einigen Anwendern~-- aufgrund -eingeschränkter Nutzerzugriffsrechte~-- beim Eintragen der Schriften in die -Map"~Datei. Dies muss gegebenenfalls durch den Anwender über die Kommandozeile -\Path{initexmf -{}-edit-config-file updmap} erfolgen. In der sich öffnenden -Datei sollte sich der Eintrag \Path{Map tudscr.map} befinden. Ist dies nicht -der Fall, muss diese Zeile manuell eingetragen und die Datei anschließend -gespeichert werden. Danach muss der Nutzer in der Kommandozeile noch -\Path{initexmf -{}-mkmaps} ausführen. - - -\minisec{Anmerkung zu - \NoCaseChange{\hologo{TeX}}~Live und Mac\NoCaseChange{\hologo{TeX}}% -} -Für den Schriftinstallationsprozess werden die Pakete \Package{fontinst}, -\Package{fontware} sowie \Package{cmbright}, \Package{hfbright}, -\Package{cm-super}, \Package{lmodern} und \Package{iwona} benötigt. Sollte -keine Vollinstallation von \Distribution{\hologo{TeX}~Live} durchgeführt worden -sein, müssen diese Pakete sehr wahrscheinlich manuell durch den Benutzer über -den \Distribution{\hologo{TeX}~Live}"=Paketmanager hinzugefügt werden. - -Sind nach einem fehlerfreien Durchlauf des Installationsskriptes die Schriften -dennoch nicht verfügbar, so lässt sich mit \Path{updmap-sys -{}-syncwithtrees} -die Synchronisierung aller Schriftdateien anstoßen. Daran anschließend muss mit -\Path{updmap-sys -{}-enable Map=tudscr.map} die Map"~Datei und die dazugehörigen -Schriftdateien mit \Path{updmap-sys -{}-force} registriert werden. - -Sind die Schriften danach immer noch nicht verfügbar, so wurden bestimmt schon -weitere Schriften auf dem System \emph{lokal} installiert. In diesem Fall -sollte der Vorgang nochmals für eine lokale Schriftinstallation mit -\Path{updmap -{}-syncwithtrees}, \Path{updmap -{}-enable Map=tudscr.map} und -\Path{updmap -{}-force} ausgeführt werden. Dieses Vorgehen macht allerdings den -Befehl \Path{updmap-sys} von nun an wirkungslos. Nach einer systemweiten -Installation neuer Schriften~-- beispielsweise bei der Aktualisierung der -Distribution~-- müssen diese über den manuellen Aufruf von \Path{updmap} -zukünftig durch den Anwender lokal bei \Distribution{\hologo{TeX}~Live}|?| -respektive \Distribution{Mac\hologo{TeX}}|?| registriert werden. - -\Attention{% - Für die Schriftinstallation werden die Skripte \Path{tftopl}, \Path{pltotf} - und \Path{vptovf} benötigt, welche bei \Distribution{\hologo{TeX}~Live}|?| - beziehungsweise \Distribution{Mac\hologo{TeX}}|?| über das Paket - \Package*{fontware} aus \Package*{collection-fontutils}<> - bereitgestellt werden und zwingend installiert sein müssen. -} - - -\minisec{Weiterführende Installationshinweise} -In \autoref{sec:install:ext} sind zusätzliche Varianten der Installation von -\TUDScript zu finden. Soll eine ältere lokale Nutzerinstallation entfernt -werden, um zukünftig alle Aktualisierungen direkt über die jeweils verwendete -Distribution durchzuführen, werden entsprechende Skripte zu Deinstallation in -\autoref{sec:local:uninstall} zur Verfügung gestellt. - -Will der Anwender \emph{bewusst} eine lokale Nutzerinstallation anlegen, werden -hierfür in \autoref{sec:local:install} entsprechende Skripte bereitgestellt. -Soll eine bereits vorhandene, lokale Nutzerinstallation aktualisiert werden, -finden Sie die entsprechenden Skripte in \autoref{sec:local:update}. - -Für die portablen Varianten von \Distribution{\hologo{TeX}~Live~Portable} -respektive \Distribution{\hologo{MiKTeX}~Portable} sind zusätzliche -Installationshinweise in \autoref{sec:install:portable} zu finden. - - -\subsection{Installation der PostScript-Schriften unter Windows} -\tudhyperdef*{sec:install:win}% -% -Zur Installation der Schriften des \CDs für das \TUDScript-Bundle ist das Archiv -\hrfn{\Download{fonts/TUD-Script_fonts_Windows.zip}}{\File*{TUD-Script\_fonts\_Windows.zip}} -vorgesehen. Dieses ist sowohl für \Distribution{\hologo{TeX}~Live}|?| als auch -\Distribution{\hologo{MiKTeX}}|?| nutzbar und enthält~-- bis auf die jeweiligen -Schriftarchive selbst~-- alle benötigten Dateien. Diese sollten nach dem -Entpacken des Archivs in das gleiche Verzeichnis kopiert werden. Vor der -Verwendung des Skripts \File{tudscr\_fonts\_install.bat} sollte sichergestellt -werden, dass sich \emph{alle} der folgenden Dateien im selben Verzeichnis -befinden: -% -\settowidth\tempdim{\File{tudscr\_fonts\_install.zip}~}% -\begin{description}[labelwidth=\tempdim,labelsep=1em] - \item[\File{tudscr\_fonts\_install.bat}]Installationsskript - \item[\File{Univers\_PS.zip}]Archiv mit Schriftdateien für \Univers - \item[\File{DIN\_Bd\_PS.zip}]Archiv mit Schriftdateien für \DIN - \item[\File{tudscr\_fonts\_install.zip}]Archiv mit Metriken für die - Schriftinstallation via \Package{fontinst} -\end{description} -% -Beim Ausführen des Installationsskripts werden alle Schriften standardmäßig in -ein lokales Nutzerverzeichnis installiert. Wird das Skript über das Kontextmenü -mit Administratorrechten ausgeführt, erfolgt die Installation in einem Pfad, -der \emph{für alle Nutzer} gültig und lesbar ist. - - - -\subsection{Installation der PostScript-Schriften unter Linux und OS~X} -\tudhyperdef*{sec:install:unix}% -% -Für die Erstellung des Installationsskripts für Linux und OS~X geht mein Dank -an Jons"~Tobias Wamhoff, der sich für die erstmalige Portierung des Skripts -von Windows zu unixartigen Systemen freiwillig zur Verfügung stellte. -Zur Installation der Schriften des \CDs für das \TUDScript-Bundle ist das Archiv -\hrfn{\Download{fonts/TUD-Script_fonts_Unix.zip}}{\File*{TUD-Script\_fonts\_Unix.zip}} - vorgesehen. Dieses ist sowohl für \Distribution{\hologo{TeX}~Live}|?| als auch -\Distribution{Mac\hologo{TeX}}|?| nutzbar und enthält~-- bis auf die jeweiligen -Schriftdateien selbst~-- alle benötigten Dateien. Diese sollten nach dem -Entpacken des Archivs in das gleiche Verzeichnis kopiert werden. Vor der -Verwendung des Skripts \File{tudscr\_fonts\_install.sh} sollte sichergestellt -werden, dass sich \emph{alle} der folgenden Dateien im selben Verzeichnis -befinden: -% -\begin{description}[labelwidth=\tempdim,labelsep=1em] - \item[\File{tudscr\_fonts\_install.sh}]Installationsskript - (Terminal: \Path{bash tudscr\_fonts\_install.sh}) - \item[\File{Univers\_PS.zip}]Archiv mit Schriftdateien für \Univers - \item[\File{DIN\_Bd\_PS.zip}]Archiv mit Schriftdateien für \DIN - \item[\File{tudscr\_fonts\_install.zip}]Archiv mit Metriken für die - Schriftinstallation via \Package{fontinst} -\end{description} -% -\Attention{% - Das Installationsskript \textbf{muss} mit \Path{bash \PName{Skript}.sh} im - Terminal im Pfad mit den benötigten Dateien aufgerufen werden. -} -Dabei werden alle Schriften standardmäßig in das lokale Nutzerverzeichnis -(\Path{\$TEXMFHOME}) installiert. Wird das Skript mit \Path{sudo} verwendet, -erfolgt die Installation \emph{für alle Nutzer} in den lokalen Systempfad -(\Path{\$TEXMFLOCAL}). - -Es ist unbedingt darauf zu Achten, das beim Ausführen des Skriptes das Terminal -im richtigen Verzeichnis aktiv ist. Bei den meisten unixoiden Betriebssystemen -ist es problemlos möglich, das Terminal aus der Benutzeroberfläche heraus über -das Kontextmenü im gewünschten Pfad zu öffnen. Geht dies nicht, so muss nach -dem Öffnen des Terminals mit dem Befehl \Path{cd} erst zum entsprechenden -Pfad~-- exemplarisch \Path{cd~"\$HOME/Downloads/\PName{Unterordner}"}~-- -navigiert werden. Ein beispielhafter Aufruf im Terminal könnte also lauten: -% -\begin{quoting} -\Path{% - cd~"\$HOME/Downloads/TUD-Script\_fonts\_Unix"{}\,\POParameter{ENTER} -}\newline -\Path{bash tudscr\_fonts\_install.sh\,\POParameter{ENTER}} -\end{quoting} - - - -\subsection{Probleme bei der Installation der PostScript-Schriften} -% -Wird Windows verwendet, kann es unter Umständen vorkommen, dass notwendige -Befehlsaufrufe für das Installationsskript nicht ausgeführt werden können. In -diesem Fall ist der Pfad zu den benötigten Dateien, welche normalerweise unter -\Path{\%SystemRoot\%\textbackslash System32} zu finden sind, nicht in der -Umgebungsvariable \Path{PATH} enthalten. Einen Hinweis zur Problemlösung ist -\hrfn{http://latex.wcms-file3.tu-dresden.de/phpBB3/viewtopic.php?t=359}{% - in diesem Beitrag im Forum% -} -zu finden. - -Treten bei der Installation wider Erwarten Probleme auf, so ist zur Lösung eine -Logdatei zu erstellen. Hierfür sollte unter \textbf{Windows} das Skript, -welches Probleme verursacht, \emph{nicht} aus der Kommandozeile oder dem -Explorer heraus sondern über \emph{Windows PowerShell} ausgeführt werden. -Hierfür ist die Eingabe von \enquote{PowerShell} im Startmenü von Windows mit -einem nachfolgenden Öffnen mittels \POParameter{ENTER}"~Taste ausreichend. -Danach muss mit \Path{cd} zum Ordner des Skriptes navigiert und dieses mit -\Path{.\textbackslash\PName{Skript}.bat|Tee-Object -file \PName{Skript}.log} -ausgeführt werden. Ein Aufruf aus der PowerShell"~Konsole könnte lauten: -% -\begin{quoting}[rightmargin=0pt] - \Path{% - cd~"\$env:USERPROFILE\textbackslash{}Downloads\textbackslash{}% - TUD-Script\_fonts\_Windows"{}\,\POParameter{ENTER}% - }\newline% - \Path{% - .\textbackslash{}tudscr\_fonts\_install.bat% - |Tee-Object\,-file\,tudscr\_fonts\_install.log\,\POParameter{ENTER}% - }% -\end{quoting} -% -Für \textbf{unixartige Systeme} ist der Aufruf \Path{bash \PName{Skript}.sh > -\PName{Skript}.log} aus dem Terminal heraus zu verwenden. Ein exemplarischer -Aufruf im könnte lauten: -% -\begin{quoting} - \Path{% - cd~"\$HOME/Downloads/TUD-Script\_fonts\_Unix"{}\,\POParameter{ENTER} - }\newline - \Path{% - bash tudscr\_fonts\_install.sh > % - tudscr\_fonts\_install.log\,\POParameter{ENTER}% - }% -\end{quoting} -% -Die so erstellte Logdatei kann \emph{mit einer kurzen Fehlerbeschreibung} -entweder im \Forum* gepostet oder direkt per E"~Mail an \mailto{\tudscrmail} -gesendet werden. -\index{Installation|!)}% - \section{Schnelleinstieg} Das Handbuch gliedert sich in drei Teile. In \autoref{part:main} ist die @@ -389,16 +153,15 @@ dokumentierte Tutorials vor allem für \hologo{LaTeX}"=Neulinge angeboten. Insbesondere das Tutorial \Tutorial{treatise} ist mehr als einen Blick wert, wenn eine wissenschaftliche Arbeit mit \hologo{LaTeXe} verfasst werden soll. Abschließend werden verschiedenste Pakete vorgestellt, die nicht speziell für -das \TUDScript-Bundle selber sondern auch für andere \hologo{LaTeX}"=Klassen -verwendet werden können und demzufolge für alle \hologo{LaTeX}"=Anwender -interessant sein könnten. Außerdem werden hier einige Tipps \& Tricks beim -Umgang mit \hologo{LaTeX} beschrieben, um kleinere oder größere Probleme zu -lösen. +das \TUDScript-Bundle selber sondern auch für andere \hologo{LaTeXe}"=Klassen +verwendet werden können und demzufolge für jeden Anwender interessant sein +könnten. Außerdem werden hier einige Tipps \& Tricks beim Umgang mit +\hologo{LaTeX} beschrieben, um kleinere oder größere Probleme zu lösen. Die Klassen \Class{tudscrbook}, \Class{tudscrreprt} und \Class{tudscrartcl} sind Wrapper"=Klassen der bekannten \KOMAScript-Klassen \Class{scrbook}, \Class{scrreprt} sowie \Class{scrartcl} und können einfach anstelle deren verwendet werden. Auf diesen basierende Dokumente können durch das Umstellen der Dokumentklasse einfach in das \TUDCD überführt werden. Bei Fragestellungen -bezüglich Layout, Schriften oder ähnlichem ist in jedem Fall ein weiterer Blick +bezüglich Layout, Schriften oder ähnlichem ist in jedem Fall ein weiterer Blick in das hier vorliegende Handbuch empfehlenswert. diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-mainclasses.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-mainclasses.tex index 874d883159e..47fe7ef1d3e 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-mainclasses.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-mainclasses.tex @@ -22,20 +22,21 @@ Es werden die drei neuen Hauptklassen \end{description} % eingeführt, welche auf den \KOMAScript-Klassen basieren und grundsätzlich alle -deren Optionen~-- beispielsweise +deren bereitgestellte Optionen~-- beispielsweise \Option{parskip=\PName{Methode}}(\Package{koma-script})'none' für die Absatzeinstellungen oder \Option{BCOR=\PName{Längenwert}}(\Package{typearea})'none' zur Festlegung der Bindekorrektur~-- sowie Umgebungen und Befehle unterstützen. Zusätzlich zu den \KOMAScript"=Klassen werden weitere Pakete zwingend benötigt, welche unter -\autoref{sec:packages:needed} aufgeführt sind und auf jeden Fall durch -\TUDScript geladen werden. +\autoref{sec:packages:needed} aufgeführt sind und durch \TUDScript geladen +werden. Es sei hier abermals auf die \scrguide[Anwenderdokumentation von \KOMAScript] hingewiesen, viele der folgend beschriebenen Befehle und Optionen beziehen sich auf die darin vorgestellten Einstellungsmöglichkeiten. Die Anpassungen und Erweiterungen der \KOMAScript"=Klassen an das \CD und die neu definierten -beziehungsweise geänderten Befehle und Optionen werden im Folgenden erläutert. +beziehungsweise geänderten oder erweiterten Befehle und Optionen werden im +Folgenden erläutert. \begin{Declaration}{\Macro{TUDoptions}[\Parameter{Optionenliste}]} \begin{Declaration}{\Macro{TUDoption}[\Parameter{Option}\Parameter{Werteliste}]} @@ -52,20 +53,19 @@ Man kann wahlweise mit der Anweisung \Macro{TUDoptions} die Werte mehrerer Optionen gleichzeitig ändern, wobei diese durch Kommata zu trennen sind. Dabei muss innerhalb der Optionenliste jede zu ändernde Option in der Form \PName{Option}\PValue{=}\PName{Wert} angegeben werden. Die meisten der -\TUDScript-Optionen besitzen auch einen Standard- beziehungsweise Säumniswert. -Sollte die Angabe eines Wertes versäumt werden~-- es wird einfach die Form -\PName{Option} verwendet~-- so wird der Option der gegebenenfalls vorgesehene -Säumniswert zugewiesen. +\TUDScript-Optionen besitzen auch einen Standard- respektive Säumniswert. +Werden diese in der Form \PName{Option} ohne die Angabe eines Wertes genutzt, +so wird der jeweiligen Option einfach der vorgesehene Säumniswert zugewiesen. -Manche Optionen können gleichzeitig mehrere, sich ergänzende Werte besitzen. +Einige Optionen können gleichzeitig mehrere, sich ergänzende Werte besitzen. Für diese besteht die Möglichkeit, mit \Macro{TUDoption} einer einzelnen Option nacheinander eine Reihe von Werten zuzuweisen, wobei diese in der Werteliste durch Komma voneinander zu trennen sind. -Mit diesen beiden Befehlen kann im Bedarfsfall das Verhalten von einer Option -oder mehreren Optionen im Dokument geändert werden. Werden diese Befehle in -einer Umgebung oder einer Gruppe verwendet, bleiben die gemachten Einstellungen -innerhalb dieser lokal begrenzt. +Diese beiden Befehlen erlauben es im Bedarfsfall das Verhalten von einer Option +oder mehreren Optionen im Dokument zu ändern. Werden diese Befehle in einer +Umgebung oder Gruppe genutzt, bleiben die vorgenommenen Einstellungen innerhalb +dieser lokal begrenzt. \end{Declaration} \end{Declaration} @@ -77,13 +77,13 @@ innerhalb dieser lokal begrenzt. % \ChangedAt*{% v2.00:Schriften~-- insbesondere für den mathematischen Satz~-- verbessert;% - v2.01:Unterschneidung (Kerning) der Ziffern für \Univers verbessert% + v2.01:Unterschneidung (Kerning) der Ziffern verbessert;% } % -Das \TUDCD gibt die Verwendung der Schriften \Univers für den Fließtext -sowie \DIN für das Setzen von Überschriften vor, was durch \TUDScript in der -Standardkonfiguration auch so umgesetzt wird. Da jedoch in längeren Texten die -Verwendung von Serifenschriften zu empfehlen ist, gibt es die Möglichkeit, die +Das \TUDCD gibt die Verwendung der Schriftfamilie \OpenSans für den Fließtext +vor, was in der Standardkonfiguration durch \TUDScript auch so umgesetzt wird. +Da jedoch in längeren Texten die Verwendung einer Serifenschriften aus +typografischer Sicht zu empfehlen ist, gibt es allerdings die Möglichkeit, die ursprünglich vorgesehenen Schriften des \CDs nicht zu laden und stattdessen die \hologo{LaTeX}"=Standardschriften beziehungsweise ein anderes Schriftpaket zu verwenden. Die Erläuterungen dazu sind in \autoref{sec:text} zu finden. Zur @@ -94,73 +94,42 @@ Verwendung der Schriften mit \hologo{LaTeXe}"=Klassen, welche nicht zum v2.02;% v2.04:Einfachere Verwendung des Paketes \Package{fontspec}% } -Normalerweise kommen die Schriften des \CDs im PostScript"=Format zum Einsatz, -wenn diese wie unter \autoref{sec:install} beschrieben installiert wurden. -Wird entweder \Engine{LuaLaTeX} oder \Engine{XeLaTeX} als Textsatzsystem -verwendet und das Paket \Package{fontspec} geladen, so werden die Schriften des -\CDs im OpenType"=Format verwendet. Hierfür sind die Hinweise in -\fullref{sec:fonts:fontspec} unbedingt zu beachten. - Durch das \CD werden keine Schriften für den Mathematiksatz festgelegt. Das ist insbesondere für sowohl mathematische Abhandlungen als auch ingenieur- und -naturwissenschaftliche Dokumente nicht tragbar. Dieser Mangel wird behoben, -indem im Mathematikmodus die lateinischen Buchstaben der Hausschriften mit -griechischen Lettern und mathematischen Symbolen aus anderen Paketen ergänzt -werden.% -\footnote{% - \Package{iwona} für die Schrift \DIN und zusätzlich \Package{cmbright} für - die \Univers"=Schriftfamilie% -} -Diese Einstellung lässt sich im Bedarfsfall deaktivieren, wodurch die -Standardschriften oder gegebenenfalls die eines zusätzlich geladenen Paketes -für den mathematischen Satz genutzt werden. Die dafür relevanten Einstellungen -werden in \autoref{sec:math} erläutert. In \autoref{sec:tut} sind zusätzliche -Hinweise zum typografisch guten Mathematiksatz zu finden. +naturwissenschaftliche Dokumente nicht tragbar. Im Mathematikmodus werden +deshalb die lateinischen Glyphen mithilfe des Paketes \Package{mathastext} +sowie die griechischen Lettern der \OpenSans genutzt. Zu Ergänzung kann für +zusätzliche mathematische Symbole das Paket \Package{mdsymbol} geladen werden. +Diese Einstellung lässt sich deaktivieren, wodurch sich die Standardschriften +oder gegebenenfalls die eines zusätzlichen Paketes für den mathematischen Satz +nutzen lassen. Die dafür relevanten Einstellungen werden in \autoref{sec:math} +erläutert. Weiterhin sind ergänzende Hinweise zu einem typografisch sauberen +Mathematiksatz in \autoref{sec:tut} zu finden. -\subsection{Die Schriften des \CDs im PostScript-Format} -\index{PostScript-Schriften}% -% -Für die bei \hologo{LaTeXe} gebräuchliche Verwendung der PostScript-Schriften -ist lediglich die in \fullref{sec:install} beschriebene Installation notwendig. -Geht diese reibungslos vonstatten, kann \TUDScript problemlos genutzt werden. - - -\subsection{Die Schriften des \CDs im OpenType-Format} -\tudhyperdef*{sec:fonts:fontspec}% +\minisec{Die Schriftformate Type1 und OpenType} +\index{Type1-Schriften}% \index{OpenType-Schriften}% -% \ChangedAt{v2.02:OpenType-Schriften mit Paket \Package{fontspec} verwendbar} +% Das \TUDScript-Bundle unterstützt die Nutzung der Schriften des \CDs sowohl -im PostScript- als auch im OpenType"=Format. Letztere müssen ebenfalls über das -\hrfn{https://tu-dresden.de/cd/1_basiselemente/03_hausschrift/}{% - Universitätsmarketing auf Anfrage% -} -bestellt werden. Die in den beiden Archiven \File{Univers\_8\_TTF\/.zip} und -\File{DIN\_TTF\/.zip} enthaltenen Schriften müssen erst für das Betriebssystem -installiert werden und lassen sich nachfolgend mit dem Paket \Package{fontspec} -verwenden. - -Auf die Installation der PostScript"=Schriften kann dennoch nicht ohne Weiteres -verzichtet werden. Denn einerseits sind diese für die Kompilierung eines -\hologo{LaTeX}"~Dokumentes über den klassischen Prozesspfad via -\Path{latex \textrightarrow{} dvips \textrightarrow{} ps2pdf}~-- wie es +im Type1- als auch im OpenType-Format. Beide Formate werden durch das Paket +\Package{opensans} bereitgestellt, wobei unabhängig vom genutzten +Textsatzsystem die Schriften im Type1-Format geladen werden. Die Verwendung der +Schriften im OpenType-Format ist auch beim Einsatz von \Engine{LuaLaTeX} oder +\Engine{XeLaTeX} nicht zwingend erforderlich. Dennoch ist dies problemlos +möglich, indem einfach das Paket \Package{fontspec} eingebunden wird. + +Ein Verzicht auf die Type1-Schriften ist dennoch nicht ohne Weiteres möglich. +Denn einerseits sind diese für die Kompilierung eines Dokumentes über den +klassischen Prozesspfad via \Path{latex\,>\,dvips\,>\,ps2pdf}~-- wie es beispielsweise für die Erstellung von Grafiken mit \Package{pstricks} notwendig -ist~-- erforderlich. Andererseits liefern die Schriftfamilien des \CDs keine -mathematische Glyphen, sodass diese bei der PostScript"=Schriftinstallation aus -den Schriftpaketen \Package{cmbright} und \Package{iwona} entnommen werden. Bei -den Schriften im OpenType"=Format ist dies leider nicht so einfach möglich, da -es schlichtweg an passenden Schriftpaketen für den Mathematiksatz im -OpenType"=Format mangelt, weshalb für den mathematischen Satz in jedem Fall die -PostScript"=Schriften genutzt werden, falls diese installiert sind. Weiterhin -kommt es beim Kerning der OpenType"=Schriften im Fließtext zu Problemen. - -Die Verwendung der Schriften des \CDs im OpenType"=Format sollte folglich nur -erfolgen, wenn eine Installation der PostScript"=Schriften \emph{absolut} nicht -möglich ist beziehungsweise \Engine{LuaLaTeX} oder \Engine{XeLaTeX} zwingend -genutzt werden müssen. Hierfür ist es~-- nach der systemweiten Installation der -OpenType"=Schriften~-- ausreichend, das Paket \Package{fontspec} zu laden. +ist~-- erforderlich. Andererseits werden für den Mathematiksatz die Glyphen den +Type1-Schriften entnommen. Eine Verwendung der OpenType-Schriften für den +Mathematiksatz ist leider nicht ohne einen erheblichen Aufwand möglich, weshalb +\TUDScript~-- insbesondere aufgrund des nicht vorhandenen Mehrwerts~-- darauf +verzichtet. \index{Schriftart|?)}% @@ -176,122 +145,185 @@ OpenType"=Schriften~-- ausreichend, das Paket \Package{fontspec} zu laden. v2.03!\Option{cdfont=nodin}; v2.05!\Option{cdfont=normalbold}; v2.05!\Option{cdfont=ultrabold}; -]{\Option{cdfont=\PSet}}[true,normalbold,din]% + v2.06!\Option{cdfont=liningfigures}; + v2.06!\Option{cdfont=oldstylefigures}; + v2.06!\Option{cdfont=standardgreek}; +]{\Option{cdfont=\PSet}}[true,normalbold,liningfigures]% \printdeclarationlist% % Mit der Option \Option{cdfont} können durch den Anwender alle zentralen Schrifteinstellungen für die \TUDScript-Klassen vorgenommen werden. Dies -betrifft sowohl die Schriften für Überschriften als auch den Fließtext sowie -die Mathematikschriften. Die verwendete Schriftstärke im charakteristischen -Querbalken der Kopfzeile lässt sich hiermit ebenfalls einstellen. +betrifft die Schriften sowohl für den Fließtext als auch den Mathematiksatz. +Dabei lassen sich insbesondere unterschiedliche Kombinationen von normaler und +fetter Schriftstärke für die \OpenSans einstellen. Zu Beginn des Dokumentes +sind diese maßgeblich für die Definition der Mathematikschriften. Die +Schriftstärke im charakteristischen Querbalken der Kopfzeile lässt sich mit +dieser Option ebenfalls einstellen. % \begin{values}{\Option{cdfont}} \itemfalse - Es werden die \hologo{LaTeX}"=Standardschriften und nicht die Hausschriften + Es werden die \hologo{LaTeX}"=Standardschriften und nicht die Hausschrift des \CDs verwendet. Der Anwender kann beliebige Schriftpakete nutzen.% \footnote{% Für die Verwendung der klassischen \hologo{LaTeX}"=Schriften, ist das Paket \Package{lmodern} sehr empfehlenswert.% } - Sollte das Layout des \CDs aktiviert sein (\seeref{\Option{cd}}), werden die - Überschriften in Großbuchstaben und \DIN gesetzt und nur die Schriftart des - Fließtextes kann angepasst werden. \itemtrue*[light/lightfont/noheavyfont] - Es werden die Hausschriften im Stil des \CDs genutzt. Überschriften der - obersten Gliederungsebenen bis einschließlich \Macro*{subsubsection} - verwenden \DIN, darunter liegende% + Es wird die Hausschrift \OpenSans im Stil des \CDs genutzt. Die Überschriften + der obersten Gliederungsebenen bis einschließlich \Macro*{subsubsection} + werden entweder in fetter oder extra"~fetter Schriftstärke gesetzt + (\seeref{\Option{headings=\PSet}'ppage'}), darunter liegende% \footnote{% \Macro{paragraph}(\Package{koma-script})'none' und \Macro{subparagraph}(\Package{koma-script})'none'% - } - \textubn{Univers~65~Bold}. Für den Fließtext im Dokument kommt - \textuln{Univers~45~Light} zum Einsatz. Aus dem Paket \Package{lmodern} wird - die \texttt{Schreibmaschinenschrift} verwendet. + } verwenden immer den fetten Schriftschnitt. Dieser nutzt standardmäßig + \textcdrn{Open~Sans~Regular}, kann allerdings mit \Option{cdfont=heavybold} + stärker eingestellt werden. Im Fließtext kommt \textcdln{Open~Sans~Light} zum + Einsatz. \item[heavy/heavyfont] - Die Schriftstärke der Hausschriften wird erhöht. Die beiden untersten - Gliederungsebenen werden in \textuxn{Univers~75~Black} gesetzt, der Fließtext - in \texturn{Univers~55~Regular}. Ansonsten entspricht alles der Option - \Option{cdfont=true}. Die Mathematikschriften werden nicht beeinflusst, - diese lassen sich gegebenenfalls mit \Macro{boldmath} auf den fetten Schnitt - umschalten. + Diese Einstellung unterscheidet sich von \Option{cdfont=true} insoweit als + die Schriftstärke der Hausschrift erhöht wird. Der Fließtext des Dokumentes + wird in \textcdrn{Open~Sans~Regular} gesetzt. Der fette Schriftschnitt ist im + Normalfall auf \textcdsn{Open~Sans~Semi"~Bold} festgelegt. \end{values} % -Falls die Hausschriften des \TUDCDs verwendet werden, lässt sich die Stärke der -fetten Schriften mit folgenden Einstellungen anpassen. +Die Stärke der fetten Schriften lässt sich mit folgenden Einstellungen anpassen. % \begin{values}{\Option{cdfont}} \item[normalbold] \ChangedAt{v2.05} - Für die fette Schriftstärke wird \texturn{Univers~55~Regular} respektive bei - der stärkeren Grundschrift (\Option{cdfont=heavy}) \textubn{Univers~65~Bold} + Für die fette Schriftstärke wird \textcdrn{Open~Sans~Regular} respektive bei + stärkerer Grundschrift (\Option{cdfont=heavy}) \textcdsn{Open~Sans~Semi"~Bold} verwendet. Dies ist die Voreinstellung. -\item[ultrabold/heavybold] +\item[heavybold/ultrabold] \ChangedAt{v2.05} Die fetten Schriften werden stärker hervorgehoben. Es kommt - \textubn{Univers~65~Bold} respektive \textuxn{Univers~75~Black} bei erhöhter - Schriftstärke (\Option{cdfont=heavy}) zum Einsatz. + \textcdsn{Open~Sans~Semi"~Bold} respektive \textcdbn{Open~Sans~Bold} bei + erhöhter Schriftstärke (\Option{cdfont=heavy}) zum Einsatz. \end{values} % -Für die \TUDScript-Klassen sowie die vom Paket \Package{fix-tudscrfonts} -unterstützten Dokumentklassen kann die für die Gliederungsebenen verwendete -Schriftart angepasst werden. +Die folgende Tabelle verdeutlicht die Möglichkeiten zur Kombination der +Einstellungen: +\begin{center} +\footnotesize% +\setlength{\tabcolsep}{.5em}% +\begin{tabular}{ccccc} + \toprule + & \multicolumn{2}{c}{\Option{cdfont=normalbold}} + & \multicolumn{2}{c}{\Option{cdfont=heavybold}} + \tabularnewline + & \Macro{mdseries} & \Macro{bfseries} & \Macro{mdseries} & \Macro{bfseries} + \tabularnewline\midrule + \Option{cdfont=true} + & \textcdln{Open~Sans~Light} & \textcdrn{Open~Sans~Regular} + & \textcdln{Open~Sans~Light} & \textcdsn{Open~Sans~Semi"~Bold} + \tabularnewline\midrule + \Option{cdfont=heavy} + & \textcdrn{Open~Sans~Regular} & \textcdsn{Open~Sans~Semi"~Bold} + & \textcdrn{Open~Sans~Regular} & \textcdbn{Open~Sans~Bold} + \tabularnewline\bottomrule +\end{tabular} +\end{center} +\par\medskip\noindent +% +\index{Ziffernform}% +Weiterhin lässt sich die Gestalt der Ziffern anpassen, wobei zwischen +Versalziffern und Mediävalziffern gewählt werden. % \begin{values}{\Option{cdfont}} -\item[nodin] - Für Überschriften wird \Univers anstatt \DIN verwendet, die Schriftstärke - kann mit \Option{cdfont=true} respektive \Option{cdfont=heavy} eingestellt - werden. Wurde mit \Option{cdfont=false} zusätzlich die Verwendung der - Schriften des \CDs deaktiviert, wird standardmäßig die fette Schriftstärke - der eingestellten serifenlosen Schriftfamilie genutzt. -\item[din] - Mit dieser Einstellung wird die Schrift \DIN in den Überschriften verwendet. - Diese ist standardmäßig aktiviert. +\item[liningfigures/normalfigures] + \ChangedAt{v2.06} + Mit dieser Einstellung kommen dicktengleiche/äquidistant/proportionale + Versalziffern oder auch Majuskelziffern (\textbf{1234567890}) zum Einsatz. + Mit \Macro{oldstylenums}[\Parameter{Ziffer(n)}] lassen sich + Mediävalziffern oder auch Minuskelziffern explizit setzen. Dieses Verhalten + ist standardmäßig aktiviert. +\item[oldstylefigures/osf/oldnumbers] + \ChangedAt{v2.06} + Für den Fließtext werden nichtproportionale Mediävalziffern oder auch + Minuskelziffern (\textbf{\oldstylenums{0123456789}}) standardmäßig verwendet. \end{values} % -Weiterhin dient die Option \Option{cdfont=\PSet} als erweiterte Schnittstelle +Außerdem dient die Option \Option{cdfont=\PSet} als erweiterte Schnittstelle für den Anwender, um zusätzliche Einstellungen für die Schriftnutzung vornehmen zu können, für welche normalerweise separate Optionen vorgesehen sind. Diese Möglichkeiten werden folgend kurz erläutert und auf die tatsächlich zugrunde liegende Option verweisen. +Die genutzten Mathematikschriften können mit folgenden Werte beeinflusst werden: +% +\begin{values}{\Option{cdfont}} +\item[nomath/nocdmath] + Diese Einstellung deaktiviert die \OpenSans für den mathematischen Satz. Es + werden die \hologo{LaTeX}"=Standardschriften verwendet und es lassen sich + beliebige Schriftpakete für den Mathematikmodus nutzen, + \seeref{\Option{cdmath=false}}. +\item[math/cdmath] + Die \OpenSans wird für die Mathematikschriften genutzt, + \seeref{\Option{cdmath=true}}. +\item[upgreek/uprightgreek] + Griechische Groß- und Kleinbuchstaben sind aufrecht, + \seeref{\Option{slantedgreek=false}}. +\item[slgreek/slantedgreek] + Die Ausgabe der griechischen Glyphen erfolgt kursiv, + \seeref{\Option{slantedgreek=true}}. +\item[texgreek/standardgreek] + \ChangedAt{v2.06} + Es kommt der \LaTeX-Standard zum Einsatz, bei dem griechische Majuskeln + aufrecht und Minuskeln kursiv ausgegeben werden, + \seeref{\Option{slantedgreek=standard}}. +\end{values} +% \ChangedAt{v2.02} Für die \TUDScript-Klassen gibt es bei den \PageStyle{tudheadings}-Seitenstilen folgende Einstellmöglichkeiten für die Schriftart im Querbalken: % \begin{values}{\Option{cdfont}} \item[nohead/noheadfont] - Bei deaktivierten Hausschriften für den Fließtext können diese ebenfalls im + Bei deaktivierter Hausschrift für den Fließtext können diese ebenfalls im Querbalken deaktiviert werden, \seeref{\Option{cdhead=false}}. \item[head/lighthead/lightfonthead/noheavyfonthead] Für den Querbalken der Kopfzeile wird~-- unabhängig von der Verwendung der - Hausschriften im Fließtext~-- die Schrift \Univers in normaler Schriftstärke - verwendet, \seeref{\Option{cdhead=true}}. + Hausschrift im Fließtext~-- \OpenSans in normaler Schriftstärke verwendet, + \seeref{\Option{cdhead=true}}. \item[heavyhead/heavyfonthead] - Im Querbalken wird~-- unabhängig von der Dokumentschrift~-- \Univers in + Im Querbalken wird~-- unabhängig von der Dokumentschrift~-- \OpenSans in erhöhter Stärke genutzt, \seeref{\Option{cdhead=heavy}}. \end{values} +\end{Declaration} + +\begin{Declaration}[v2.06]{\Option{ttfont=\PSet}}[true]% +\printdeclarationlist% +\index{Schriftart}% +\index{Schriftstärke}% % -Die genutzten Mathematikschriften können mit folgenden Werte beeinflusst werden: +\ChangedAt*{% + v2.06:Verwendung der \texttt{Roboto~Mono} als Schreibmaschinenschrift möglich +} +Bei aktivierter Option \Option{cdfont} lässt sich zusätzlich die verwendete +\texttt{Schreibmaschinenschrift} einstellen, wofür selbige aus einem der Pakete +\Package{roboto-mono} oder \Package{lmodern} genutzt wird und insbesondere die +gewählten Einstellungen für die Schriftstärke der Option \Option{cdfont} +beachtet werden. Ein direktes Laden des jeweiligen Paketes durch den Benutzer +ist nicht notwendig. % -\begin{values}{\Option{cdfont}} -\item[nomath/nocdmath] - Diese Einstellung deaktiviert die Verwendung von serifenlosen Schriften für - den mathematischen Satz. Es werden die \hologo{LaTeX}"=Standardschriften - verwendet und der Benutzer kann beliebige Schriftpakete für den - Mathematikmodus nutzen, \seeref{\Option{cdmath=false}}. -\item[math/cdmath] - Serifenlose Mathematikschriften, \seeref{\Option{cdmath=true}}. -\item[upgreek/uprightgreek] - Griechische Großbuchstaben werden aufrecht gesetzt, - \seeref{\Option{slantedgreek=false}}. -\item[slgreek/slantedgreek] - Die Ausgabe der griechischen Majuskeln erfolgt kursiv, - \seeref{\Option{slantedgreek=true}}. +\begin{values}{\Option{ttfont}} +\itemfalse + Es findet keine Anpassung Schreibmaschinenschrift (\Macro*{ttfamily}) statt, + mögliche Änderungen können durch den Anwender erfolgen. +\itemtrue*[roboto/roboto-mono] + Sollte das Paket \Package{roboto-mono} installiert sein, wird die darin + definierte Schreibmaschinenschrift genutzt. Diese ist serifenlos und liegt in + einer Vielzahl unterschiedlicher Schriftschnitte vor, weshalb sich diese + ideal mit der \OpenSans kombinieren lässt. +\item[lmodern/lmtt/lm] + Es wird explizit die Schreibmaschinenschrift aus \Package{lmodern} aktiviert. \end{values} \end{Declaration} -\subsubsection{Auszeichnungen im Text} + +\minisec{Auszeichnungen im Text} \index{Schriftstärke}% \index{Schriftauszeichnung}% % @@ -305,227 +337,175 @@ angegebene Argument zum Einsatz, wie bei \Macro*{textbf}[\Parameter{Text}]. % \begin{Declaration}[v2.04]{\Macro{cdfont}[\Parameter{Schriftart}]} \begin{Declaration}[v2.04]{% - \Macro{textcdfont}[\Parameter{Schriftart}\Parameter{Text}]% + \Macro{textcd}[\Parameter{Schriftart}\Parameter{Text}]% } \printdeclarationlist Diese beiden Befehle dienen zur gezielten Aktivierung einer Schriftart des \CDs in Stärke und Schnitt. Hierbei entspricht \Macro{cdfont} einem Textschalter und ändert die verwendete Schriftart unverzüglich im aktuellen Geltungsbereich auf -\PName{Schriftart}, wohingegen \Macro{textcdfont} als Textkommando fungiert und -den im zweiten Argument gegebenen \PName{Text} in \PName{Schriftart} setzt ohne +\PName{Schriftart}, wohingegen \Macro{textcd} als Textkommando fungiert und den +im zweiten Argument gegebenen \PName{Text} in \PName{Schriftart} setzt ohne dabei die Dokumentschriftart selbst zu ändern. Für die Schriftauswahl muss im ersten Argument die Bezeichnung der gewünschten -Schriftart angegeben werden. Dieser ist der obigen Tabelle zu entnehmen. Für -die Auswahl der Schriftfamilie \Univers kann der Vorsatz \PValue{Univers} im -Argument \PName{Schriftart} entfallen. Ebenso sind weder Leerzeichen noch die -passende Groß- und Kleinschreibung notwendig. Für die Wahl der Schriftstärke -ist die entsprechende Zahl \emph{oder} die Bezeichnung allein ausreichend.% -\footnote{\PValue{45/55/65/75} oder \PValue{Light/Regular/Bold/Black}} -Anstelle des Suffix' \PValue{Oblique} ist auch die Nutzung von \PValue{Italic} -oder \PValue{Slanted} als Alias für die geneigten Schriftlagen möglich. Zur -Auswahl von \DIN ist \PValue{din} als Argument hinreichend. -\end{Declaration} -\end{Declaration} - -\begin{Declaration}{\Macro{univln}} -\begin{Declaration}{\Macro{textuln}[\Parameter{Text}]} -\begin{Declaration}{\Macro{univrn}} -\begin{Declaration}{\Macro{texturn}[\Parameter{Text}]} -\begin{Declaration}{\Macro{univbn}} -\begin{Declaration}{\Macro{textubn}[\Parameter{Text}]} -\begin{Declaration}{\Macro{univxn}} -\begin{Declaration}{\Macro{textuxn}[\Parameter{Text}]} -\begin{Declaration}{\Macro{univls}} -\begin{Declaration}{\Macro{textuls}[\Parameter{Text}]} -\begin{Declaration}{\Macro{univrs}} -\begin{Declaration}{\Macro{texturs}[\Parameter{Text}]} -\begin{Declaration}{\Macro{univbs}} -\begin{Declaration}{\Macro{textubs}[\Parameter{Text}]} -\begin{Declaration}{\Macro{univxs}} -\begin{Declaration}{\Macro{textuxs}[\Parameter{Text}]} -\begin{Declaration}{\Macro{dinbn}} -\begin{Declaration}{\Macro{textdbn}[\Parameter{Text}]} -\settowidth\tempdim{\Macro{textuln}[\Parameter{Text}]}% -\addtolength\tempdim{\dimexpr 2\tabcolsep+2\arrayrulewidth-\textwidth}% -\printdeclarationlist(% - \begin{minipage}{-\tempdim}% - \newcommand*\listfonts[3]{% - \csuse{#3}{#1} & \Macro{#2} & \Macro{#3}[\Parameter{Text}]\tabularnewline +Schriftart angegeben werden. Mögliche Werte sind der nachfolgenden Tabelle zu +entnehmen. Der Vorsatz \PValue{Open Sans} für die \PName{Schriftart} im +Argument ist dabei optional. Ebenso sind weder Leerzeichen noch die passende +Groß- und Kleinschreibung notwendig. Für die Wahl der Schriftstärke ist allein +die Bezeichnung \PValue{Light/Regular/Semi-Bold/Bold/Extra-Bold} ausreichend. +Anstelle des Suffix' \PValue{Italic} ist auch die Nutzung von \PValue{Oblique} +oder \PValue{Slanted} als Alias für die kursiven Schriftlagen möglich. +% +\begin{center}% + \newcommand*\listfonts[2]{% + \csuse{textcd#2}{Open Sans #1} & + \begin{Declaration*}{\Macro{cdfont#2}} + \Macro*{cdfont#2}'none'% + \end{Declaration*} + & + \begin{Declaration*}{\Macro{textcd#2}[\Parameter{Text}]} + \Macro*{textcd#2}[\Parameter{Text}]'none'% + \end{Declaration*} + \tabularnewline }% - \centering% - \begin{tabularm}{3}% + \begin{tabular}{lll}% \toprule% - \textbf{Schriftart} & \textbf{Schalter} & \textbf{Textkommando} + \textbf{Schriftart/Bezeichnung} & \textbf{Schalter} & \textbf{Textkommando} \tabularnewline \midrule - \listfonts{Univers 45 Light}{univln}{textuln} - \listfonts{Univers 55 Regular}{univrn}{texturn} - \listfonts{Univers 65 Bold}{univbn}{textubn} - \listfonts{Univers 75 Black}{univxn}{textuxn} - \listfonts{Univers 45 Light Oblique}{univls}{textuls} - \listfonts{Univers 55 Regular Oblique}{univrs}{texturs} - \listfonts{Univers 65 Bold Oblique}{univbs}{textubs} - \listfonts{Univers 75 Black Oblique}{univxs}{textuxs} - \listfonts{DIN BOLD}{dinbn}{textdbn} + \listfonts{Light}{ln} + \listfonts{Regular}{rn} + \listfonts{Semi-Bold}{sn} + \listfonts{Bold}{bn} + \listfonts{Extra-Bold}{xn} + \listfonts{Light Italic}{li} + \listfonts{Regular Italic}{ri} + \listfonts{Semi-Bold Italic}{si} + \listfonts{Bold Italic}{bi} + \listfonts{Extra-Bold Italic}{xi} \bottomrule% - \allcolumnpar{\footnotesize\vskip0pt% - Die Schrift \DIN darf laut \CD nur mit Majuskeln (Großbuchstaben) - verwendet werden. Wird diese Schrift manuell verwendet, sollte dies mit - \Macro{MakeTextUppercase}[% - \PParameter{\Macro{textdbn}[\Parameter{Text}]}% - ](\Package{textcase})'none' geschehen. Sollen dabei im Argument einzelne - Teile zwingend klein geschrieben werden, wird der Befehl - \Macro{NoCaseChange}(\Package{textcase}) benötigt. - } - \end{tabularm}% - \end{minipage}% -)% -Alternativ zu den beschriebenen Textschaltern und "~kommandos können seit der -Version~v2.04 auch die beiden Befehle \Macro{cdfont} und \Macro{textcdfont} -verwendet werden, welche die gleiche Funktionalität wesentlich komfortabler -bereitstellen. -\end{Declaration} -\end{Declaration} -\end{Declaration} -\end{Declaration} -\end{Declaration} -\end{Declaration} -\end{Declaration} -\end{Declaration} -\end{Declaration} -\end{Declaration} -\end{Declaration} -\end{Declaration} -\end{Declaration} -\end{Declaration} -\end{Declaration} -\end{Declaration} -\end{Declaration} -\end{Declaration} - - -\subsubsection{Auszeichnungen in Überschriften} -\index{Schriftelemente}% -% -Für die Schriftauswahl der Überschriften aller Gliederungsebenen sind die durch -\KOMAScript{} bereitgestellten Schriftelemente verantwortlich. Mehr dazu ist in -\autoref{sec:fonts:elements} zu finden. Da die Überschriften der obersten -Gliederungsebenen bis einschließlich \Macro*{subsubsection} normalerweise in -Majuskeln gesetzt werden, bestehen für den Anwender mit den folgenden Befehlen -gewisse Einflussmöglichkeiten, deren Ausprägung anzupassen. - -\begin{Declaration}{\Macro{ifdin}[\Parameter{Dann-Teil}\Parameter{Sonst-Teil}]}% -\printdeclarationlist% -\index{Layout!Kolumnentitel}% -\index{Layout!Überschriften|!}% -\index{Schriftauszeichnung!Überschriften}% + \end{tabular}% +\end{center}% % -Der Befehl \Macro{ifdin} prüft, ob die Schriftfamilie \DIN aktiv ist und führt -in diesem Fall \Parameter{Dann-Teil} aus, andernfalls \Parameter{Sonst-Teil}. -Dies ist beispielsweise bei Überschriften sinnvoll, wenn innerhalb des -obligatorischen Argumentes zwischen der Ausgabe im Dokument selber und dem -Eintrag für das Inhaltsverzeichnis sowie der Ausprägung der automatischen -Kolumnentitel unterschieden werden soll. +Alternativ zu \Macro{cdfont} und \Macro{textcd} werden für jeden Schriftschnitt +auch explizite Textschalter und "~kommandos bereitgestellt, bei denen das +Argument für die Bezeichnung der Schriftart entfällt. Diese sind in der zweiten +und dritten Spalte der Tabelle aufgeführt. \end{Declaration} - -\begin{Declaration}{\Macro{NoCaseChange}[\Parameter{Text}](\Package{textcase})}% -\printdeclarationlist% -\index{Layout!Überschriften|!}% -\index{Schriftauszeichnung!Groß- und Kleinschreibung}% -% -Für alle Gliederungsebenen bis einschließlich \Macro*{subsubsection} werden die -Überschriften in Großbuchstaben der Schrift \DIN gesetzt, wenn das Layout des -\CDs nicht deaktiviert wurde (\Option{cd=false}). Hierfür wird intern der -Befehl \Macro{MakeTextUppercase}(\Package{textcase})'none' aus dem Paket -\Package{textcase} genutzt. Sollen in einer Überschrift gezielt bestimmte -Kleinbuchstaben erhalten bleiben, ist der Befehl -\Macro{NoCaseChange}(\Package{textcase}) zu nutzen, welcher ebenfalls von -besagtem Paket bereitgestellt wird. Zur erzwungenen Kleinschreibung kann -\Macro{MakeTextLowercase}(\Package{textcase})'none' genutzt werden. \end{Declaration} -% -\begin{Example} -In einer nicht nummerierten Kapitelüberschrift wird ein einzelnes Wort in -Kleinbuchstaben geschrieben: -\begin{Code}[escapechar=§] -\addchap{§Ü§berschrift mit \NoCaseChange{kleinem} Wort} -\end{Code} -\end{Example} \subsection{Schriften für den Mathematiksatz} \tudhyperdef*{sec:math}% \index{Mathematiksatz|?(}% -\index{Griechische Buchstaben|(}% % \begin{Declaration}[v2.03]{\Option{cdmath=\PBoolean}}% [true][\Option{cdfont=false}:false] \printdeclarationlist% % Diese Option dient zur Anpassung der Mathematikschriften. Wird diese aktiviert, -so werden zu den Hausschriften passende Glyphen im Mathematikmodus genutzt, -mit \Option{cdmath=false} wird auf die Standardschriften zurückgeschaltet. Ein -Umschalten innerhalb des Dokumentes ist~-- beispielsweise für Abbildungen oder -Tabellen~-- durch \Macro{TUDoptions}[\PParameter{\Option{cdmath=true}}] sowie -\Macro{TUDoptions}[\PParameter{\Option{cdmath=false}}] möglich. Auf fette -Mathematikschriften kann mit \Macro{boldmath} umgeschaltet werden. Gültige -Werte für die Option \Option{cdmath} sind: +so werden zur Hausschrift passende Glyphen im Mathematikmodus genutzt. Normale +sowie fette Schriftstärke werden zu \emph{Beginn des Dokuments} abhängig von +der zu diesem Zeitpunkt aktiven Einstellung für die Schriften des Fließtexts +(\seeref{\Option{cdfont}}) definiert. Auf fette Mathematikschriften kann im +Dokument mit \Macro{boldmath} umgeschaltet werden, eine Anpassung der +Einstellungen ist durch \Macro{TUDoptions} möglich. Gültige Werte für die +Option \Option{cdmath} sind: % \begin{values}{\Option{cdmath}} \itemfalse Es werden die normalen \hologo{LaTeX}"=Serifenschriften beziehungsweise die Schriften beliebig nutzbarer Pakete für den Mathematiksatz verwendet. \itemtrue* - Im Mathematikmodus wird \Univers genutzt. Außerdem kommen die griechischen - Buchstaben aus dem Paket \Package{cmbright} sowie Symbole aus dem Paket - \Package{iwona} zum Einsatz. -\item[upgreek/uprightgreek] - Die griechischen Majuskeln werden aufrecht gesetzt, - \seeref{\Option{slantedgreek=false}}. -\item[slgreek/slantedgreek] - Die Ausgabe der griechischen Großbuchstaben erfolgt kursiv, - \seeref{\Option{slantedgreek=true}}. + Im Mathematikmodus kommt \OpenSans sowohl für lateinische als auch + griechische Buchstaben zum Einsatz. \end{values} \end{Declaration} +\begin{Declaration}[% + v2.06!\Option{slantedgreek=standard}; +]{\Option{slantedgreek=\PBoolean}}[true] +\printdeclarationlist% +\index{Griechische Buchstaben|(}% +% +Die Option ändert die standardmäßige Neigung der griechischen Großbuchstaben im +Mathematikmodus bei der Verwendung der Standardbefehle für griechische +Buchstaben. +% +\begin{values}{\Option{slantedgreek}} +\itemfalse + Die griechischen Glyphen werden im Mathematiksatz allesamt aufrecht gesetzt. +\itemtrue* + Alle griechischen Buchstaben werden im Mathematikmodus kursiv ausgegeben. +\item[standard/latex] + Die Ausgabe entspricht mit aufrechten Majuskeln und kursiven Minuskeln der + griechischen Lettern dem \LaTeX-Standard beim mathematischen Satz. +\end{values} +\end{Declaration} -\subsubsection{Griechischen Buchstaben} -\tudhyperdef*{sec:greek}% -% -\begin{Declaration}{\Macro{varDelta}} -\begin{Declaration}{\Macro{varTheta}} -\begin{Declaration}{\Macro{varLambda}} -\begin{Declaration}{\Macro{varXi}} -\begin{Declaration}{\Macro{varPi}} -\begin{Declaration}{\Macro{varSigma}} -\begin{Declaration}{\Macro{varUpsilon}} -\begin{Declaration}{\Macro{varPhi}} -\begin{Declaration}{\Macro{varPsi}} -\begin{Declaration}{\Macro{varOmega}} -\begin{Declaration}{\Macro{upDelta}} -\begin{Declaration}{\Macro{upTheta}} -\begin{Declaration}{\Macro{upLambda}} -\begin{Declaration}{\Macro{upXi}} -\begin{Declaration}{\Macro{upPi}} -\begin{Declaration}{\Macro{upSigma}} -\begin{Declaration}{\Macro{upUpsilon}} -\begin{Declaration}{\Macro{upPhi}} -\begin{Declaration}{\Macro{upPsi}} -\begin{Declaration}{\Macro{upOmega}} -\settowidth\tempdim{\Macro{varUpsilon}}% +\begin{Declaration}{\Macro{Gamma}} +\begin{Declaration}{\Macro{Delta}} +\begin{Declaration}{\Macro{Theta}} +\begin{Declaration}{\Macro{Lambda}} +\begin{Declaration}{\Macro{Xi}} +\begin{Declaration}{\Macro{Pi}} +\begin{Declaration}{\Macro{Sigma}} +\begin{Declaration}{\Macro{Upsilon}} +\begin{Declaration}{\Macro{Phi}} +\begin{Declaration}{\Macro{Psi}} +\begin{Declaration}{\Macro{Omega}} +\begin{Declaration}{\Macro{alpha}} +\begin{Declaration}{\Macro{beta}} +\begin{Declaration}{\Macro{gamma}} +\begin{Declaration}{\Macro{delta}} +\begin{Declaration}{\Macro{epsilon}} +\begin{Declaration}{\Macro{varepsilon}} +\begin{Declaration}{\Macro{zeta}} +\begin{Declaration}{\Macro{eta}} +\begin{Declaration}{\Macro{theta}} +\begin{Declaration}{\Macro{vartheta}} +\begin{Declaration}{\Macro{iota}} +\begin{Declaration}{\Macro{kappa}} +\begin{Declaration}{\Macro{lambda}} +\begin{Declaration}{\Macro{mu}} +\begin{Declaration}{\Macro{nu}} +\begin{Declaration}{\Macro{xi}} +\begin{Declaration}{\Macro{pi}} +\begin{Declaration}{\Macro{varpi}} +\begin{Declaration}{\Macro{rho}} +\begin{Declaration}{\Macro{varrho}} +\begin{Declaration}{\Macro{sigma}} +\begin{Declaration}{\Macro{varsigma}} +\begin{Declaration}{\Macro{tau}} +\begin{Declaration}{\Macro{upsilon}} +\begin{Declaration}{\Macro{phi}} +\begin{Declaration}{\Macro{varphi}} +\begin{Declaration}{\Macro{chi}} +\begin{Declaration}{\Macro{psi}} +\begin{Declaration}{\Macro{omega}} +\settowidth\tempdim{\Macro{varepsilon}}% \addtolength\tempdim{\dimexpr 2\tabcolsep+2\arrayrulewidth-\textwidth\relax}% \printdeclarationlist(% \begin{minipage}{-\tempdim}% + \small% \newcommand\tablecontent{}% \newcommand*\greekLetters{% - Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega% + Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega,% + alpha,beta,gamma,delta,epsilon,varepsilon,zeta,eta,theta,vartheta,% + iota,kappa,lambda,mu,nu,xi,pi,varpi,rho,varrho,sigma,varsigma,tau,% + upsilon,phi,varphi,chi,psi,omega% }% \def\do#1{% \appto\tablecontent{% - \Macro*{var#1} & $\csuse{var#1}$ & & - \Macro*{up#1} & $\csuse{up#1}$\tabularnewline +% \begin{Declaration*}{\Macro{up#1}} + \Macro*{up#1}'none'% +% \end{Declaration*} + & $\csuse{up#1}$ & & +% \begin{Declaration*}{\Macro{it#1}} + \Macro*{it#1}'none'% +% \end{Declaration*} + & $\csuse{it#1}$\tabularnewline }% }% \expandafter\docsvlist\expandafter{\greekLetters}% @@ -533,23 +513,28 @@ Werte für die Option \Option{cdmath} sind: \vspace{\intextsep}\noindent \begin{tabularm}{5} \toprule% - \textbf{Befehl (kursiv)} & \textbf{Symbol} & & - \textbf{Befehl (aufrecht)} & \textbf{Symbol} + \textbf{Befehl (aufrecht)} & \textbf{Symbol} & & + \textbf{Befehl (kursiv)} & \textbf{Symbol} \tabularnewline\midrule\tablecontent\bottomrule% - \allcolumnpar{\footnotesize\vskip0pt% - Die Befehle \Macro*{up}[\PName{Name}] und \Macro*{var}[\PName{Name}] - werden normalerweise durch einige Pakete, unter anderem auch von - \Package{cmbright} oder \Package{amsmath}, bereitgestellt. - } \end{tabularm} \end{minipage}% )% % -Unabhängig von den beiden Optionen \Option{cdmath} und \Option{slantedgreek} -können sowohl kursive als auch aufrechte griechischen Großbuchstaben im -Mathematikmodus mit diesen Befehlen direkt verwendet werden. Dies ist nützlich, -um zwischen kursiven Variablen und aufrechten Konstanten zu unterscheiden. Die -griechischen Minuskeln sind leider nur in der kursiven Variante verfügbar. +Unabhängig von der Option \Option{slantedgreek} können sowohl kursive als auch +aufrechte griechischen Glyphen im Mathematikmodus mit diesen Befehlen direkt +verwendet werden. Dies ist nützlich, um zwischen \emph{kursiven Variablen} und +\emph{aufrechten Konstanten} zu unterscheiden. Weiterhin kann anstelle von +\Macro*{up\Parameter{Glyphe}} oder \Macro*{it\Parameter{Glyphe}} auch der +Präfix \Macro*{other\Parameter{Glyphe}} genutzt werden. Damit wird~-- abhängig +von der Option \Option{slantedgreek}~-- die komplementäre Schriftlage der +angegebenen Glyphe gesetzt. +\index{Griechische Buchstaben|)}% +\end{Declaration} +\end{Declaration} +\end{Declaration} +\end{Declaration} +\end{Declaration} +\end{Declaration} \end{Declaration} \end{Declaration} \end{Declaration} @@ -570,33 +555,33 @@ griechischen Minuskeln sind leider nur in der kursiven Variante verfügbar. \end{Declaration} \end{Declaration} \end{Declaration} - -\begin{Declaration}{\Option{slantedgreek=\PBoolean}}[false] -\printdeclarationlist% -% -Die Option ändert die standardmäßige Neigung der griechischen Großbuchstaben im -Mathematikmodus bei der Verwendung der Befehle \Macro*{Delta}, \Macro*{Theta}, -\Macro*{Lambda}, \Macro*{Xi}, \Macro*{Pi}, \Macro*{Sigma}, \Macro*{Upsilon}, -\Macro*{Phi}, \Macro*{Psi} und \Macro*{Omega}. -% -\begin{values}{\Option{slantedgreek}} -\itemfalse - Die griechischen Majuskeln werden in Umgebungen für den Mathematiksatz wie - bei den Standardklassen aufrecht gesetzt. -\itemtrue* - Die Ausgabe der griechischen Großbuchstaben erfolgt im Mathematikmodus kursiv. -\end{values} -% -Wie unabhängig von der Option \Option{slantedgreek} gezielt kursive und -aufrechte Buchstaben gesetzt werden können, wurde zuvor \vpageref{sec:greek} -beschrieben. -\index{Griechische Buchstaben|)}% \end{Declaration} +\end{Declaration} +\end{Declaration} +\end{Declaration} +\end{Declaration} +\end{Declaration} +\end{Declaration} +\end{Declaration} +\end{Declaration} +\end{Declaration} +\end{Declaration} +\end{Declaration} +\end{Declaration} +\end{Declaration} + -\subsubsection{Zusätzliche Hinweise zum Mathematiksatz} -Weitere Hinweise zum typografisch guten Mathematiksatz sind außerdem in -\autoref{sec:tut} zu finden. +\minisec{Zusätzliche Hinweise zum Mathematiksatz} +Unter Umständen werden zusätzliche Symbole für den Mathematiksatz benötigt. +Sehr oft kommt hierfür das Paket \Package{amssymb} zum Einsatz. Dieses stellt +zahlreiche zusätzliche für die \hologo{LaTeX}"=Standardschriften zur Verfügung. +Diese sind in Verbindung mit der \OpenSans aus typografischer Sicht jedoch +keine ideale Lösung. Die Symbole aus dem Paket \Package{mdsymbol} passen +wesentlich besser zu besagter Schriftfamilie, weshalb diesem Paket der Vorzug +gegeben werden sollte, falls die Schriften des \CDs für den mathematischen Satz +genutzt werden. Weitere Hinweise zum typografisch guten Mathematiksatz sind +außerdem in \autoref{sec:tut} zu finden. \index{Mathematiksatz|?)}% @@ -664,7 +649,7 @@ Textspalten im mehrspaltigen Layout anpassen. v2.05!\Option{cdgeometry=adapted};% v2.05!\Option{cdgeometry=calculated};% v2.05!\Option{cdgeometry=custom};% -]{\Option{cdgeometry=\PSet}}[true,restricted]% +]{\Option{cdgeometry=\PSet}}[true,restricted][\Option{cd=false}:false]% \printdeclarationlist% \index{Layout!Seitenstil}% \index{Satzspiegel!doppelseitig}% @@ -682,8 +667,8 @@ vornehmen zu lassen. Hier hat insbesondere die Klassenoption den Satzspiegel. Mehr dazu ist in der \scrguide[Dokumentation von \KOMAScript] zu finden. \ChangedAt{v2.05} -Mit der Einstellung \Option{cdgeometry=custom} kann der Satzspiegel auch durch -den Anwender (fast) beliebig festgelegt werden. +Zusätzlich lässt sich mit \Option{cdgeometry=custom} der Satzspiegel durch den +Anwender (fast) beliebig festlegen. % \begin{values}{\Option{cdgeometry}} \itemfalse @@ -693,23 +678,22 @@ den Anwender (fast) beliebig festgelegt werden. Die Seitenränder werden im asymmetrischen Stil des \CDs fest definiert und auch für den doppelseitigen Satz (Klassenoption \Option{twoside=true}(\Package{typearea})'none') genutzt.% - \footnote{links: 30\,mm, rechts: 20\,mm, oben: 25\,mm, unten: 30\,mm} + \footnote{links: 30\,mm, rechts: 20\,mm, oben: 20\,mm, unten: 30\,mm} \item[symmetric/centred/centered] Der Satzspiegel wird im einseitigen sowie doppelseitigen Satz auf der Seite zentriert.% - \footnote{links: 25\,mm, rechts: 25\,mm, oben: 25\,mm, unten: 30\,mm} + \footnote{links: 25\,mm, rechts: 25\,mm, oben: 20\,mm, unten: 30\,mm} \item[twoside/balanced] Diese Einstellung aktiviert den doppelseitigen Satz (\Option{twoside=true}(\Package{typearea})'none') und ändert den Satzspiegel derart, dass die Ränder der inneren Seiten schmaler sind als die der äußeren.% - \footnote{innen: 20\,mm, außen: 30\,mm, oben: 25\,mm, unten: 30\,mm} + \footnote{innen: 20\,mm, außen: 30\,mm, oben: 20\,mm, unten: 30\,mm} \Attention{% - Der so erzeugte Satzspiegel ist jedoch nicht sehr vorteilhaft. Es ist zu - beachten, dass dabei das Logo der \TnUD sehr nah am inneren Seitenrand - des Dokumentes gesetzt wird, folglich insbesondere auf rechten respektive - ungeraden Seiten sehr weit an den Blattrand rückt. + Der so erzeugte Satzspiegel ist jedoch unvorteilhaft, da das Logo der \TnUD + sehr nah am inneren Seitenrand des Dokumentes gesetzt wird und folglich auf + rechten respektive ungeraden Seiten sehr weit an den Blattrand rückt. } - Diesem Problem kann~-- bei \Class{tudscrbook} sowie \Class{tudscrreprt}~-- + Dieses Problem kann~-- bei \Class{tudscrbook} sowie \Class{tudscrreprt}~-- prinzipiell gelöst werden, indem Titel, Teile und Kapitel über das Aktivieren der \KOMAScript-Option \Option{open=left}(\Package{koma-script})'none' immer auf einer linken Seite beginnen, was allerdings aus typografischer Sicht eher @@ -722,14 +706,15 @@ Satzspiegel nach dem \TUDCD erstellt werden soll. % \begin{values}{\Option{cdgeometry}} \item[restricted] - Der Satzspiegel entspricht den expliziten Vorgaben des \CDs (Voreinstellung). + Der Satzspiegel entspricht den expliziten Vorgaben des \CDs. \item[adapted] Laut dem Handbuch zum \CD werden für Papierformate zwischen DIN~A6 und DIN~A4 \enquote{im Interesse größter Einheitlichkeit die Maßverhältnisse über einen größeren Formatbereich hinweg \enquote{eingefroren}.} Dies kann jedoch zu - schlecht nutzbaren Satzspiegeln führen. Mit dieser Einstellung kann der - äquivalente Satzspiegel für das Format~DIN~A5 aktiviert werden, bei allen - anderen Formaten hat diese Einstellung keinen Einfluss. + schlecht nutzbaren Satzspiegeln führen. Mit dieser Einstellung kann die + Fixierung deaktiviert und der äquivalente Satzspiegel beispielsweise für das + Format~DIN~A5 aktiviert werden. Bei Formaten außerhalb des fixierten Bereichs + hat diese Einstellung keinen Einfluss. \item[calculated] Der Satzspiegel wird anhand der Referenzmaße für das Format~DIN~A4 für das eingestellte Papierformat \emph{skaliert}. Die eigentlich definierten @@ -742,11 +727,11 @@ Vorgaben für die Seitenränder gibt, besteht außerdem die Möglichkeit, diese weitestgehend manuell einzustellen. \begin{values}{\Option{cdgeometry}} \item[custom] - Für die Festlegung der Seitenränder wird von den \TUDScript-Klassen das - Paket \Package{geometry} genutzt. Der Anwender kann mit den beiden, durch das - Paket bereitgestellten Befehlen \Macro{geometry}(\Package{geometry})'none' - und \Macro{newgeometry}(\Package{geometry})'none' den Satzspiegel selbst - festlegen. Für Hinweise zur Verwendung der Befehle sollte die Dokumentation + Für die Festlegung der Seitenränder ist das Paket \Package{geometry} + maßgeblich verantwortlich. Der Anwender kann mit den beiden, durch das Paket + bereitgestellten Befehlen \Macro{geometry}(\Package{geometry})'none' und + \Macro{newgeometry}(\Package{geometry})'none' den Satzspiegel selbst + definieren. Für Hinweise zur Verwendung der Befehle sollte die Dokumentation von \Package{geometry} genutzt werden. \end{values} \end{Declaration} @@ -771,25 +756,6 @@ ein \hologo{TeX}"=Abstand oder eine \hologo{TeX}"=Ausdehnung als Länge bei der Wertzuweisung verwendet wird. \end{Declaration} -\minisec{Kopf"~ und Fußzeile im Zusammenspiel mit dem Satzspiegel} -\index{Layout!Kopfzeile|?}% -\index{Layout!Fußzeile|?}% -% -Da im \CD nicht festgelegt ist, wie die Gestaltung der Kopf"~ und Fußzeilen in -einer wissenschaftlichen Arbeit auszuführen ist, bleibt dem Nutzer dafür eine -gewisse Freiheit. Dafür sollte idealerweise das zu \KOMAScript{} gehörige Paket -\Package{scrlayer-scrpage} genutzt werden. - -In der Dokumentation zu \Package{typearea} wird auch darauf eingegangen, wann -Kopf"~ und Fußzeile bei der Satzspiegelkonstruktion entweder dem Rand oder dem -Textkörper zugeschlagen werden sollten. Dies sollte bei der Erstellung eigener -Kopf"~ und Fußzeilen beachtet werden. Die Einstellung dafür erfolgt mit den -beiden \KOMAScript"=Optionen -\Option{headinclude=\PBoolean}(\Package{typearea})'none'|declare| sowie -\Option{footinclude=\PBoolean}(\Package{typearea})'none'|declare|. -Diese können~-- unabhängig von der Einstellung zur Satzspiegelgestaltung durch -die Option \Option{cdgeometry}~-- verwendet werden. - \minisec{Bindekorrektur} \index{Satzspiegel!Bindekorrektur|!}% % @@ -822,6 +788,25 @@ Dementsprechend wäre eine Bindekorrektur von \Option*{BCOR=5mm} beziehungsweise \index{Satzspiegel|)}% \end{Example} +\minisec{Kopf"~ und Fußzeile im Zusammenspiel mit dem Satzspiegel} +\index{Layout!Kopfzeile|?}% +\index{Layout!Fußzeile|?}% +% +Da im \CD nicht festgelegt ist, wie die Gestaltung der Kopf"~ und Fußzeilen in +einer wissenschaftlichen Arbeit auszuführen ist, bleibt dem Nutzer dafür eine +gewisse Freiheit. Dafür sollte idealerweise das zu \KOMAScript{} gehörige Paket +\Package{scrlayer-scrpage} genutzt werden. + +In der Dokumentation zu \Package{typearea} wird auch darauf eingegangen, wann +Kopf"~ und Fußzeile bei der Satzspiegelkonstruktion entweder dem Rand oder dem +Textkörper zugeschlagen werden sollten. Dies sollte bei der Erstellung eigener +Kopf"~ und Fußzeilen beachtet werden. Die Einstellung dafür erfolgt mit den +beiden \KOMAScript"=Optionen +\Option{headinclude=\PBoolean}(\Package{typearea})'none'|declare| sowie +\Option{footinclude=\PBoolean}(\Package{typearea})'none'|declare|. +Diese können~-- unabhängig von der Einstellung zur Satzspiegelgestaltung durch +die Option \Option{cdgeometry}~-- verwendet werden. + \subsection{Die Gestalt von Titel, Umschlagseite, Teilen sowie Kapiteln \& Co.} \index{Layout!Farben|(}% @@ -864,7 +849,7 @@ Kapitelseiten sowie die Überschriften der weiteren Gliederungsebenen. \item[lightcolor/pale] Die Einstellung entspricht weitestgehend der Option \Option{cd=true}, allerdings wird die primäre Hausfarbe \Color{HKS41} für den Kopf des - \PageStyle{tudheadings}"=Seitenstils und die Überschriften genutzt. + \PageStyle{tudheadings}"=Seitenstils und Überschriften genutzt. \item[barcolor] \ChangedAt{v2.04} Zusätzlich zur vorherigen Einstellung wird außerdem der Querbalken farbig @@ -875,9 +860,9 @@ Kapitelseiten sowie die Überschriften der weiteren Gliederungsebenen. der Querbalken wird farbig hinterlegt. Für die Überschriften wird die primären Hausfarbe verwendet. \item[color] - Der Titel sowie Teil"~ und Kapitelseiten werden allesamt farbig und im \CD - gestaltet, der Seitenkopf wird in der primären Hausfarbe \Color{HKS41} - gesetzt, der Querbalken erhält Linien als Begrenzung. + Der Titel sowie Teil"~ und Kapitelseiten werden allesamt farbig gestaltet, + der Seitenkopf wird in der primären Hausfarbe \Color{HKS41} gesetzt, der + Querbalken erhält Linien als Begrenzung. \item[fullcolor/full] \ChangedAt{v2.03} Entspricht der vorherigen Einstellung, allerdings wird der Querbalken nicht @@ -885,6 +870,26 @@ Kapitelseiten sowie die Überschriften der weiteren Gliederungsebenen. \end{values} \end{Declaration} +\begin{Declaration}[v2.06]{\Option{headings=\PSet}}[heavy] +\printdeclarationlist% +\index{Schriftstärke}% +% +Die Option \Option{headings=\PSet}(\Package{koma-script})'none' wird bereits +von \KOMAScript{} definiert und dient unter anderem zum Festlegen der Größe von +Überschriften. Diese wird von \TUDScript erweitert, um im Layout des \CDs die +Schriftstärke der Überschriften anpassen zu können. +% +\begin{values}{\Option{headings}} +\item[light/normalbold] + Die Überschriften werden in fetter Schrift gesetzt. +\item[heavy/ultrabold] + Für Überschriften wird die extra"~fette Schriftstärke verwendet. +\end{values} +% +Die Einstellungen gelten für die Gliederungsebenen bis einschließlich +\Macro*{subsubsection}. +\end{Declaration} + \subsubsection{Individuelle Einstellungen für einzelne Elemente des Layouts} Das Verhalten aller für das Layout relevanten Elemente wird von der eben zuvor @@ -936,16 +941,20 @@ und dem im \CD umgeschaltet werden. Die neue Titelseite unterstützt alle durch \KOMAScript{} definierten Befehle für den Titel.% \footnote{% \Macro{extratitle}[\Parameter{Schmutztitel}](\Package{koma-script}), + \Macro{frontispiece}[\Parameter{Frontispiz}](\Package{koma-script}) für eine + Seite vor dem eigentlichen Haupttitel sowie \Macro{titlehead}[\Parameter{Kopf}](\Package{koma-script}), \Macro{subject}[\Parameter{Typisierung}], \Macro{title}[\Parameter{Titel}], \Macro{subtitle}[\Parameter{Untertitel}], \Macro{author}[\Parameter{Autor}], \Macro{and}, \Macro{thanks}[\Parameter{Fußnote}](\Package{koma-script}), - \Macro{publishers}[\Parameter{Verlag}](\Package{koma-script}), - \Macro{date}[\Parameter{Datum}] und - \Macro{dedication}[\Parameter{Widmung}](\Package{koma-script}) sowie + \Macro{publishers}[\Parameter{Verlag}](\Package{koma-script}) und + \Macro{date}[\Parameter{Datum}] für den Titel selbst sowie \Macro{uppertitleback}[\Parameter{Titelrückseitenkopf}](\Package{koma-script}) und - \Macro{lowertitleback}[\Parameter{Titelrückseitenfuß}](\Package{koma-script})% + \Macro{lowertitleback}[\Parameter{Titelrückseitenfuß}](\Package{koma-script}) + für die Rückseite des Titels sowie abschließend + \Macro{dedication}[\Parameter{Widmung}](\Package{koma-script}) für eine + Danksagung. } Zusätzlich werden viele neue Felder definiert, welche vor allem für eine wissenschaftliche Arbeit von Relevanz sind. Genaueres dazu @@ -1045,7 +1054,6 @@ Schrift gesetzt werden, so kann dies folgendermaßen erreicht werden: \index{Layout!Teileseiten|?}% \index{Layout!Kapitelseiten|?}% % -\ToDo[doc]{Warnung/Hinweis raus, wenn Gliederungsbefehle reimplementiert}[v2.06] Mit diesen beiden Optionen kann die vertikale Position spezieller Überschriften verändert werden. Mit der Option \Option{pageheadingsvskip} lässt sich sowohl der Titel auf einer Titelseite @@ -1056,12 +1064,6 @@ und Teilen vertikal verschieben. Demgegenüber kann mit der zweiten Option (\KOMAScript-Option \Option{titlepage=false}(\Package{koma-script})'none') als auch die Kapitelüberschrift bei deaktivierter Kapitelseite (\Option{chapterpage=false}) in ihrer vertikalen Position anzupassen. -\Attention{% - Es ist zu beachten, dass von einer Änderung der \KOMAScript-Befehle - \Macro*{partheadstartvskip} und \Macro*{chapterheadstartvskip} dringlichst - abgeraten wird und stattdessen die hier erläuterten Längen genutzt werden - sollten, da ansonsten schwerwiegende Fehler auftreten können. -} Die zuvor genannten Überschriften werden normalerweise im Layout relativ tief im Textbereich gesetzt. Mit negativen Werten werden die Überschriften nach oben @@ -1183,7 +1185,7 @@ werden. v2.03;% v2.04!\Option{cdhead=barcolor}:nur farbig abgesetzter Querbalken;% v2.05!\Option{cdhead=date}:Datum zwischen Kopf- und Textbereich;% -]{\Option{cdhead=\PSet}}[true] +]{\Option{cdhead=\PSet}}[true,nocolor,textwidth] \printdeclarationlist% \index{Layout!Seitenstil|(}% \index{Layout!Kopfzeile}% @@ -1199,15 +1201,16 @@ der Schriftart im Balken verwendet werden: \itemfalse Sollte mit \Option{cdfont=false} die Verwendung der Hausschrift im Stil des \TUDCDs deaktiviert worden sein, wird die Kopfzeile im Querbalken in den - Serifenlosen der genutzten Schrift gesetzt. Sind die Hausschriften aktiviert, + Serifenlosen der aktiven Schrift gesetzt. Ist die Hausschrift aktiviert, hat diese Einstellung keinen Einfluss. \itemtrue*[light/lightfont/noheavyfont] - Im Querbalken wird für \Macro{faculty} \textubn{Univers~65~Bold} verwendet, - die Felder \Macro{department}, \Macro{institute}, \Macro{chair} und - \Macro{extraheadline} kommt \textuln{Univers~45~Light} zum Einsatz. + Im Querbalken wird für \Macro{faculty} \textcdsn{Open~Sans~Semi"~Bold} + verwendet, für \Macro{department}, \Macro{institute}, + \Macro{chair} und \Macro{extraheadline} kommt \textcdln{Open~Sans~Light} zum + Einsatz. \item[heavy/heavyfont] - Der Inhalt von \Macro{faculty} wird weiterhin in \textubn{Univers~65~Bold} - gesetzt, für die restlichen Felder wird \texturn{Univers~55~Regular} genutzt. + Der Inhalt von \Macro{faculty} wird in \textcdbn{Open~Sans~Bold} gesetzt, für + die restlichen Felder wird \textcdrn{Open~Sans~Regular} genutzt. \end{values} % Bei der Ausprägung des Kopfes und des Querbalkens gibt es mehrere Varianten. @@ -1222,13 +1225,15 @@ Einerseits kann der Querbalken mit zwei Außenlinien dargestellt werden: % Andererseits ist auch eine Darstellung mit mehr Farbeinsatz möglich, bei welcher der Querbalken und gegebenenfalls der ganze Seitenkopf farbig -abgesetzt wird. +abgesetzt wird. Dabei erstreckt sich der Kopfbereich immer über die komplette +Seitenbreite, \seeref{\Option{cdhead=paperwidth}}. % \begin{values}{\Option{cdhead}} \item[barcolor] \ChangedAt{v2.04} Im Gegensatz zur vorherigen Einstellung wird der Querbalken mit farbigem - Hintergrund verwendet. + Hintergrund verwendet, der darüber liegende Teil des Kopfes wird ohne + farbigen Hintergrund gesetzt. \item[bicolor/bichrome] \ChangedAt{v2.03} Die Kopfzeile wird farbig abgesetzt, wobei der Hintergrund des Logos und der @@ -1246,8 +1251,8 @@ wird, kann zusätzlich dessen Laufweite festgelegt werden: nicht möglich ist. \item[paperwidth/wide] Die horizontale Ausdehnung des Querbalkens erstreckt sich über die komplette - Seitenbreite bis an den Blattrand. Dieses Verhalten ist standardmäßig im - farbigen Layout aktiviert. + Seitenbreite bis an den Blattrand. Dieses Verhalten lann im farbigen Layout + des Kopfes nicht deaktiviert werden. \end{values} % \ChangedAt{v2.05} @@ -1317,6 +1322,13 @@ so kann auch die Fußzeile einen farbigen Hintergrund erhalten. Die Fußzeile wird farbig abgesetzt, falls entweder der Kopf in einer farbigen Variante genutzt wird (\seeref{\Option{cdhead}}) oder eine Seite mit einem farbigen Hintergrund in der Hausfarbe (Titel oder Kapitelseite) aktiv ist. +\end{values} +% +Mit den Befehlen \Macro{footlogo}'ppage' und \Macro{footcontent}'ppage' können +für den Fußbereich zusätzliche Inhalte definiert werden. Sollte der zur +Verfügung stehende Platz hierfür nicht ausreichen, lässt sich dieser vergrößern. +% +\begin{values}{\Option{cdfoot}} \item[\PValueName{Höhe}] Wird der Option ein Längenwert übergeben, entspricht dies exakt der Verwendung von Option \Option{extrabottommargin=\PName{Höhe}}. @@ -1404,7 +1416,7 @@ Argumente sind der Dokumentation des \Package{graphicx}"=Paketes zu entnehmen. % Ohne die Angabe eines optionalen Argumentes bei \Macro{footlogo} für die Größe werden alle Logos im Fuß auf die Höhe des Logos der \TnUD skaliert. Dies kann -global für alle Logos geändert werden, indem vom Anwender die Option +global für alle Logos geändert werden, indem die Option \Option{footlogoheight=\PName{Längenwert}} gesetzt wird. Sollte die Höhe des Fußbereiches nicht ausreichen, um alle Logos in der gewünschten Größe darstellen zu können, kann diese über \Option{extrabottommargin=\PName{Höhe}} @@ -1438,7 +1450,10 @@ obligatorischen Argument in der linken und der Inhalt aus dem zweiten, optionalen Argument entsprechend in der rechten Fußspalte gesetzt wird. Dabei wird ein etwaiges \DDC-Logo, welches über die Option \Option{ddc} respektive \Option{ddcfoot} gesetzt wurde, beachtet und der für den Text zur Verfügung -stehende Platz im Fuß reduziert. +stehende Platz im Fuß reduziert. Mögliche Einstellungen des Paketes +\Package{scrlayer-scrpage} für den Fuß werden nicht berücksichtigt, hier kann +es zu Überlagerungen der Inhalte kommen. Gleiches gilt für die Verwendung der +Werte \PValue{true} und \PValue{false} für die Option \Option{cdfoot}. \ChangedAt{v2.05} Wird an das Argument für die linke oder die rechte Spalte lediglich ein Stern @@ -1459,6 +1474,11 @@ Definition des Inhalts im Fußbereich \emph{ohne} eine automatische Anpassung der Schriftgröße erfolgen, so ist die Sternversion \Macro{footcontent*} zu verwenden. Auch hier lässt sich gegebenenfalls das optionale Argument für die Schriftformatierung nutzen. +\ChangedAt{v2.06} +Zu guter Letzt können bei der Änderung des Inhaltes im Fußbereich auch +vorherige Anpassungen der Schrift unverändert bleiben, indem mit +\Macro{footcontent}[\POParameter{*}\Parameter{Inhalt}\OParameter{Inhalt}] +im optionalen Argument ein Stern verwendet wird. \end{Declaration} \end{Declaration} @@ -1470,6 +1490,8 @@ Schriftformatierung nutzen. v2.02!\Option{ddc=blue}; v2.02!\Option{ddc=white}; ]{\Option{ddc=\PSet}}[false] +\begin{Declaration}[v2.02]{\Option{ddchead=\PSet}} +\begin{Declaration}[v2.02]{\Option{ddcfoot=\PSet}} \printdeclarationlist% \index{Layout!Fußzeile}% \index{Layout!Kopfzeile}% @@ -1479,11 +1501,23 @@ Schriftformatierung nutzen. Diese Option fügt das Logo von \DDC entweder im Kopf oder Fuß der Seiten mit dem Stil \PageStyle{tudheadings} ein. Diese wird automatisch entweder im Kopf oder~-- falls mit \Macro{headlogo} ein Zweitlogo angegeben wurde~-- im Fuß -gesetzt. Alternativ dazu können die Optionen \Option{ddchead} beziehungsweise -\Option{ddcfoot} genutzt werden, welche das Logo zwingend entweder im Kopf oder -Fuß setzen. Die Verwendung einer der drei Optionen führt zur Deaktivierung der -anderen beiden, sie schließen sich folglich gegenseitig aus. Die möglichen -Werte für diese Optionen sind: +gesetzt. + +Alternativ dazu können die Optionen \Option{ddchead} beziehungsweise +\Option{ddcfoot} genutzt werden, welche das Logo explizit entweder im Kopf oder +Fuß setzen. Ein mit \Macro{headlogo} angegebenes Zweitlogo wird durch +\Option{ddchead=\PSet} definitiv unterdrückt, \Option{ddcfoot=\PSet} setzt das +\DDC-Logo in jedem Fall in den Seitenfuß. Die Verwendung einer der drei +Optionen führt folglich zur Deaktivierung der anderen beiden. + +Das \DDC-Logo wird standardmäßig sowohl im Kopf als auch im Fuß in der gleichen +Höhe gesetzt, wie das Logo der \TnUD und kann zumindest für den Kopf nicht +geändert. Wird es im Fuß verwendet, lässt sich die Größe über die Option +\Option{footlogoheight} ändern. Sollte nach einer Vergrößerung der Darstellung +die Höhe des Fußbereiches nicht ausreichen, so kann diese über +\Option{extrabottommargin=\PName{Höhe}} respektive +\Option{cdfoot=\PValueName{Höhe}} angepasst werden. +Die möglichen Werte für die drei Schlüssel sind: % \begin{values}{\Option{ddc}} \itemfalse @@ -1493,68 +1527,31 @@ Werte für diese Optionen sind: Farbe des Logos geschieht passend zur farblichen Ausprägung der Seite selbst. \end{values} % -Die Farbe des \DDC-Logos wird normalerweise in Abhängigkeit von der Einstellung -für die farbliche Ausprägung (Option \Option{cd=\PSet}) automatisch gewählt. -Soll dies manuell erfolgen, können folgende Werte verwendet werden: +Die Farbe des \DDC-Logos wird in Abhängigkeit der farblichen Ausprägung des +Layouts (Option \Option{cd=\PSet}) automatisch gewählt. Dies lässt sich manuell +ändern: % \begin{values}{\Option{ddc}} \item[color] Im Kopf oder Fuß wird die achtfarbige 4C"~Variante des \DDC-Logos genutzt. \item[colorblack] Es wird das achtfarbige Logo mit schwarzem \DDC-Schriftzug anstelle des - grauen verwendet. Für den Fuß wird der grüne Claim ebenfalls durch einen - schwarzen ersetzt. Dies ist insbesondere für kleine Darstellungen des Logos - im Fuß sinnvoll. + grauen verwendet. Für den Fuß wird der grüne Claim durch einen schwarzen + ersetzt. Dies ist insbesondere für kleine Darstellungen des Logos im Fuß + sinnvoll. \item[gray/grey] Dies Ausgabe des \DDC-Logos erfolgt in Graustufen. \item[black] Verwendung des Logos in Graustufen mit schwarzem Schriftzug. \item[blue] - Der Schriftzug und das Logo werden in der primären Hausfarbe \Color{HKS41} - und den entsprechenden Abstufungen gesetzt + Schriftzug und Logo werden in Abstufungen der Hausfarbe \Color{HKS41} gesetzt. \item[white] Das \DDC-Logo sowie der dazugehörige Schriftzug sind vollständig weiß. \end{values} -% -Das \DDC-Logo wird standardmäßig sowohl im Kopf als auch im Fuß in der gleichen -Höhe gesetzt, wie das Logo der \TnUD und kann zumindest für den Kopf nicht -geändert. Wird es jedoch im Fuß verwendet, lässt sich die Größe allerdings über -die Option \Option{footlogoheight} ändern. Sollte nach einer Vergrößerung der -Darstellung die Höhe des Fußbereiches nicht ausreichen, so kann diese über die -\Option{extrabottommargin=\PName{Höhe}} respektive -\Option{cdfoot=\PValueName{Höhe}} angepasst werden. -\end{Declaration} - -\begin{Declaration}[v2.02]{\Option{ddchead=\PSet}}[false] -\begin{Declaration}[% - v2.02!\Option{ddcfoot=colorblack}; - v2.02!\Option{ddcfoot=gray}; - v2.02!\Option{ddcfoot=black}; - v2.02!\Option{ddcfoot=blue}; - v2.02!\Option{ddcfoot=white}; -]{\Option{ddcfoot=\PSet}}[false] -\printdeclarationlist% -\index{Layout!Fußzeile}% -\index{Layout!Kopfzeile}% -\index{Layout!Zweitlogo}% -\index{Layout!Dresden-concept-Logo@\DDC-Logo}% -% -Mit diesen beiden Optionen wird das Logo von \DDC explizit im Kopf oder Fuß -verwendet. Wird eine der beiden Optionen genutzt, entfällt die automatische -Wahl von Kopf oder Fuß bei der Platzierung des \DDC-Logos~-- wie es bei der -Verwendung der Option \Option{ddc=\PSet} erfolgt~-- deaktiviert. Ein mit -\Macro{headlogo} angegebenes Zweitlogo wird durch \Option{ddchead=\PSet} -definitiv unterdrückt, \Option{ddcfoot=\PSet} setzt das \DDC-Logo in jedem Fall -in den Seitenfuß. Die möglichen Werte der beiden Optionen entsprechen denen der -Option \Option{ddc}. \index{Layout!Seitenstil|)}% \end{Declaration} \end{Declaration} - -\ToDo[imp]{% - Spezialseite zur freien Gestaltung mit Hintergrundebene für Bilder und Texte - (CD-Handbuch S. 80 ff.); Seitenstil: \PageStyle*{special.tudheadings} -}[v2.06] +\end{Declaration} \begin{Declaration}{\Environment{tudpage}[\OLParameter{Sprache}]} \begin{Declaration}{\Key{\Environment{tudpage}}{language=\PName{Sprache}}} @@ -1602,11 +1599,10 @@ Umgebung mehrspaltig gesetzt. Mit \Key{\Environment{tudpage}}{pagestyle} kann der Seitenstil angepasst werden, wobei \PValue{headings}, \PValue{plain} und \PValue{empty} gültige Werte sind. -Die weiteren Parameter entsprechen in ihrem Verhalten prinzipiell den -gleichnamigen Klassenoptionen respektive Befehlen, wirken sich jedoch nur lokal -innerhalb der \Environment{tudpage}"=Umgebung aus. Das Verhalten sowie die -jeweils gültigen Wertzuweisungen können in den entsprechenden Abschnitten des -Handbuchs nachgelesen werden. +Die weiteren Parameter entsprechen in ihrem Verhalten den gleichnamigen +Klassenoptionen oder Befehlen, wirken sich jedoch nur innerhalb der +\Environment{tudpage}"=Umgebung aus. Das Verhalten sowie gültige +Wertzuweisungen ist auf den angegebenen Seiten dokumentiert. \end{Declaration} \end{Declaration} \end{Declaration} @@ -1639,57 +1635,18 @@ bereits durch \KOMAScript{} definiert sind. Darüber hinaus werden für die \TUDScript-Klassen weitere Felder bereitgestellt, welche Auswirkungen auf die Gestalt des Titels haben. Diese werden nachfolgend in diesem \autorefname erläutert. Der Titel~-- bestehend aus einem möglichen Schmutztitel -(\Macro{extratitle}(\Package{koma-script})), der eigentlichen Titelseite -respektive des Titelkopfes und der nachgelagerten Elementen~-- kann mit -\Macro{maketitle} ausgegeben werden. Außerdem kann im zweispaltigen Satz -\Macro{maketitleonecolumn} verwendet werden, womit eine einspaltige Ergänzung -nach dem Titel selbst ermöglicht wird. +(\Macro{extratitle}(\Package{koma-script})) inklusive dazugehöriger Rückseite +(\Macro{frontispiece}[\Parameter{Frontispiz}](\Package{koma-script})), der +eigentlichen Titelseite respektive des Titelkopfes und der nachgelagerten +Elementen~-- kann mit \Macro{maketitle} ausgegeben werden. Außerdem kann im +zweispaltigen Satz \Macro{maketitleonecolumn} verwendet werden, womit eine +einspaltige Ergänzung nach dem Titel selbst ermöglicht wird. Zusätzlich zum Titel lässt sich mit \Macro{makecover} eine Umschlagseite erzeugen. Diese kann insbesondere für gebundene Arbeiten verwendet werden. Es wird~-- im Vergleich zum Titel~-- lediglich einer reduzierte Anzahl an Feldern auf dieser ausgegeben. -\begin{Declaration}[v2.02]{\Font{titlepage}} -\begin{Declaration}[v2.02]{\Font{thesis}} -\printdeclarationlist% -\index{Schriftelemente}% -% -Die \TUDScript-Klassen definieren diese neuen Schriftelemente. Dabei wird -\Font{titlepage} auf der Titelseite für alle Felder verwendet, welche kein -spezielles Schriftelement verwenden, welches ohnehin durch \KOMAScript{} -bereitgestellt wird. Das mit \Macro{thesis} angegebene Feld, in welchem der Typ -einer Abschlussarbeit angegeben wird, nutzt das Schriftelement~\Font{thesis}. - -\ChangedAt{v2.02} -Für alle Felder des Titels und der Umschlagseite lassen sich die verwendeten -Schriften anpassen. In \autoref{sec:fonts:elements} lässt sich nachlesen, wie -dies genau funktioniert. Dabei werden für Titel und Umschlagseite sowohl die -bereits durch \KOMAScript{} bereitgestellten Schriftelemente -\Font{titlehead}(\Package{koma-script})'none', -\Font{subject}(\Package{koma-script})'none', -\Font{title}(\Package{koma-script})'none', -\Font{subtitle}(\Package{koma-script})'none', -\Font{author}(\Package{koma-script})'none', -\Font{publishers}(\Package{koma-script})'none', -\Font{date}(\Package{koma-script})'none' und -\Font{dedication}(\Package{koma-script})'none' -als auch die neuen \Font{titlepage} und \Font{thesis} unterstützt. -% -\begin{Example} -In diesem Dokument wurde der Untertitel derart geändert, dass dieser nicht -standardmäßig in \DIN sondern in \textubn{Univers~65~Bold} ausgegeben wird. -\begin{Code}[escapechar=§] -\addtokomafont{subtitle}{\univbn} -\end{Code} -\end{Example} -\end{Declaration} -\end{Declaration} - -\ToDo[doc]{% - Parameter \Key*{\Macro*{maketitle}}{cd=\PSet}} und - \Key*{\Macro*{maketitle}}{cdtitle=\PSet dokumentieren% -}[v2.05] \begin{Declaration}[% v2.01:Bugfix für Schriftstärke auf Titelseite;% v2.02:Unterstützung der Schriftelemente \Font*{titlehead}, @@ -1700,6 +1657,9 @@ standardmäßig in \DIN sondern in \textubn{Univers~65~Bold} ausgegeben wird. \begin{Declaration}[v2.02]{% \Key{\Macro{maketitle}}{pagenumber=\PName{Seitenzahl}}% } +\begin{Declaration}[v2.06]{\Key{\Macro{maketitle}}{cdgeometry=\PSet}}{% + \seeref{\Option{cdgeometry}'ppage'}% +} \begin{Declaration}[v2.02]{\Key{\Macro{maketitle}}{cdfont=\PSet}}{% \seeref{\Option{cdfont}'ppage'}% } @@ -1740,8 +1700,8 @@ rechts öffnenden Kapiteln gesetzt,% \Option{open=right}(\Package{koma-script})'none', Standard für \Class{tudscrbook}% } -so wird zusätzlich die Option \Option{clearcolor} einbezogen. Dies gilt es -insbesondere bei den Befehlen \Macro{uppertitleback}(\Package{koma-script}) +so wird zusätzlich die Option \Option{cleardoublespecialpage} einbezogen. Dies +ist insbesondere bei den Befehlen \Macro{uppertitleback}(\Package{koma-script}) respektive \Macro{lowertitleback}(\Package{koma-script}) für die Titelrückseite zu beachten. @@ -1766,6 +1726,7 @@ eines \DDC-Logos auf den Titel beschränkt bleiben. \end{Declaration} \end{Declaration} \end{Declaration} +\end{Declaration} \begin{Declaration}{% \Macro{maketitleonecolumn}[% @@ -1786,16 +1747,15 @@ gesetzt werden. Bei einer aktivierten Titelseite (\KOMAScript-Option~\Option{titlepage=true}(\Package{koma-script})'none') -erfolgt die Ausgabe des Argumentes (\PName{Einspaltentext}) direkt nach dieser -auf einer oder gegebenenfalls mehreren neuen Seiten ebenfalls einspaltig. Wird -der Befehl \Macro{maketitleonecolumn} statt mit einer Titelseite jedoch mit -einem Titelkopf +erfolgt die Ausgabe des Argumentes \Parameter{Einspaltentext} direkt nach +dieser auf einer oder gegebenenfalls mehreren neuen Seiten ebenfalls +einspaltig. Wird der Befehl \Macro{maketitleonecolumn} statt mit einer +Titelseite jedoch mit einem Titelkopf (\KOMAScript-Option~\Option{titlepage=false}(\Package{koma-script})'none') zum Einsatz, so folgt diesem die einspaltige Textpassage aus dem obligatorischen -Argument direkt. Dabei erfolgt gegebenenfalls ein automatischer Seitenumbruch, -falls der Inhalt nicht auf eine einzelne Seite passt. Nach dem obligatorischen -Argument \PName{Einspaltentext} wird direkt und ohne zusätzlichen Seitenumbruch -auf das zweispaltige Layout umgeschaltet. +Argument direkt, wobei gegebenenfalls bei entsprechendem Inhalt ein +automatischer Seitenumbruch erfolgt. Danach wird direkt und ohne zusätzlichen +Umbruch auf das zweispaltige Layout umgeschaltet. Der optionale Parameter von \Macro{maketitleonecolumn} kann äquivalent zu \Macro{maketitle} für die Änderung der Seitenzahl, der verwendeten Schrift @@ -1857,12 +1817,12 @@ angegebene Verlag ausgegeben. Für die Einstellung \Option{cdcover=false} wird lediglich der normale \KOMAScript"=Titel als separate Umschlagseite ausgegeben. -Die Titelseite selbst gehört immer zum Buchblock und wird daher im gleichen -Satzspiegel gesetzt. Dem entgegen steht die Umschlagseite, welche zumeist in -einem anderen Layout erscheint. Normalerweise wird das Cover~-- unabhängig von -der Option \Option{cdgeometry}~-- im asymmetrischen Satzspiegel des \CDs -gesetzt. Mit \Key*{\Macro{makecover}}{cdgeometry=false} im optionalen Argument -kann das Verhalten geändert werden. In diesem Fall erscheint auch die +Die Titelseite selbst gehört immer zum Buchblock und sollte daher im gleichen +Satzspiegel gesetzt werden. Dem entgegen steht die Umschlagseite, welche +zumeist in einem anderen Layout erscheint. Normalerweise wird das Cover~-- +unabhängig von der Option \Option{cdgeometry}~-- im asymmetrischen Satzspiegel +des \CDs gesetzt. Mit \Key*{\Macro{makecover}}{cdgeometry=false} im optionalen +Argument kann das Verhalten geändert werden. In diesem Fall erscheint auch die Umschlagseite im Buchblock des restlichen Dokumentes. Allerdings können für diese Einstellung die Seitenränder mit den Befehlen \Macro{coverpagetopmargin}(\Package{koma-script})'none', @@ -1899,26 +1859,64 @@ einzig auf die Umschlagseite aus. \index{Titel!Felder|(}% % Die Befehle \Macro{title} und \Macro{subtitle} sind selbsterklärend. Anzumerken -ist, dass sowohl Titel als auch Untertitel normalerweise in \DIN und deshalb -mit Majuskeln gesetzt werden. +ist, dass die Schriftstärke des Titels von der Option \Option{headings} abhängt +und der Untertitel immer im fetten Schnitt erscheint. \end{Declaration} \end{Declaration} -\begin{Declaration}{\Macro{titledelimiter}[\Parameter{Trennzeichen}]} +\begin{Declaration}[v2.02]{\Font{titlepage}} +\begin{Declaration}[v2.02]{\Font{thesis}} +\begin{Declaration}[v2.06]{\Macro{raggedtitle}} \printdeclarationlist% -\index{Titel!Trennzeichen}% +\index{Schriftelemente}% % -Für den Titel und die Umschlagseite werden durch die \TUDScript-Klassen eine -Reihe von zusätzlichen Feldern bereitgestellt. Einigen dieser Felder wird eine -Beschreibung (\seeref{\autoref{sec:localization}}) vorangestellt. Dazwischen -wird bei der Ausgabe ein Trennzeichen eingefügt. Ein Doppelpunkt gefolgt von -einem Leerzeichen (:\Macro*{nobreakspace}) ist hierfür die Voreinstellung. Mit -dem Befehl \Macro{titledelimiter} lässt sich dieses Trennzeichen beliebig an -die individuellen Wünsche des Anwenders anpassen. +Die \TUDScript-Klassen definieren diese neuen Schriftelemente. Dabei wird +\Font{titlepage} auf der Titelseite für alle Felder verwendet, welche kein +spezielles Schriftelement verwenden, welches ohnehin durch \KOMAScript{} +bereitgestellt wird. Das mit \Macro{thesis} angegebene Feld, in welchem der Typ +einer Abschlussarbeit angegeben wird, nutzt das Schriftelement~\Font{thesis}. + +\ChangedAt{v2.02} +Für alle Felder des Titels und der Umschlagseite lassen sich die verwendeten +Schriften anpassen. In \autoref{sec:fonts:elements} lässt sich nachlesen, wie +dies genau funktioniert. Dabei werden für Titel und Umschlagseite sowohl die +bereits durch \KOMAScript{} bereitgestellten Schriftelemente +\Font{titlehead}(\Package{koma-script})'none', +\Font{subject}(\Package{koma-script})'none', +\Font{title}(\Package{koma-script})'none', +\Font{subtitle}(\Package{koma-script})'none', +\Font{author}(\Package{koma-script})'none', +\Font{publishers}(\Package{koma-script})'none', +\Font{date}(\Package{koma-script})'none' und +\Font{dedication}(\Package{koma-script})'none' +als auch die neuen \Font{titlepage} und \Font{thesis} unterstützt. +\ChangedAt{v2.06} +Der Befehl \Macro{raggedtitle} definiert die Ausrichtung des Titels, welcher +standardmäßig linksbündig gesetzt wird. +\begin{Example} +Um die Einträge auf der Titelseite zentriert auszugeben, genügt folgende +Definition: +\begin{Code} +\let\raggedtitle\centering +\end{Code} +\end{Example} +\end{Declaration} +\end{Declaration} \end{Declaration} \begin{Declaration}{\Macro{author}[\Parameter{Autor(en)}]} \begin{Declaration}{\Macro{authormore}[\Parameter{Autorenzusatz}]} +\begin{Declaration}[% + v2.02;% + v2.05:optionales Argument zur Formatierung mit \Macro*{hypersetup};% + v2.06:wird für alle Klassen bereitgestellt, Verwendung im Titel möglich% +]{% + \Macro{emailaddress}[\OParameter{Einstellungen}\Parameter{E-Mail-Adresse}]% +} +\begin{Declaration}[% + v2.05;% + v2.06:wird für alle Klassen bereitgestellt, Verwendung im Titel möglich% +]{\Macro{emailaddress*}[\Parameter{E-Mail-Adresse}]} \begin{Declaration}{\Macro{dateofbirth}[\Parameter{Geburtsdatum}]} \begin{Declaration}{\Macro{placeofbirth}[\Parameter{Geburtsort}]} \begin{Declaration}{\Macro{matriculationnumber}[\Parameter{Matrikelnummer}]} @@ -1942,16 +1940,30 @@ Befehle können selbst im Argument von \Macro{author} verwendet werden, wodurch für jeden Autor individuelle Angaben möglich sind. Mit \Macro{authormore} wird unter dem Autor eine Zeile ausgegeben, welche -durch den Anwender frei belegt werden kann. Sollte das Paket \Package{isodate} -geladen sein, so wird die damit eingestellte Formatierung des Datums durch -\Macro{dateofbirth}~-- wie übrigens bei jedem anderem Datumsfeld der -\TUDScript-Klassen auch~-- verwendet. Hierfür wird aus besagtem Paket das Makro -\Macro{printdate}(\Package{isodate})'none' genutzt. Die weiteren Befehle als -zusätzliche Angabe erklären sich quasi von selbst. Anzumerken ist, dass die mit -den Befehlen \Macro{course}, \Macro{discipline}, \Macro{matriculationnumber} -sowie \Macro{matriculationyear} angegebenen Informationen auch durch die -\Environment{task}(\Package{tudscrsupervisor})"=Umgebung aus dem Paket -\Package{tudscrsupervisor} genutzt werden, falls diese denn zum Einsatz kommt. +durch den Anwender frei belegt werden kann. Mit \Macro{emailaddress} kann für +jeden Autor eine E"~Mail"=Adresse angegeben werden, welche als Hyperlink +definiert wird, falls das Paket \Package{hyperref} geladen wurde. Das optionale +Argument wird an \Macro{hypersetup}(\Package{hyperref})'none' aus besagtem +Paket übergeben und kann somit für zusätzliche Einstellungen genutzt werden. +Mit der Sternversion \Macro{emailaddress*} erfolgt keine Formatierung des +Eintrags im Argument. + +Sollte das Paket \Package{isodate} oder \Package{datetime2} geladen sein, wird +die damit eingestellte Formatierung des Datums durch \Macro{dateofbirth}~-- wie +übrigens bei jedem anderem Datumsfeld der \TUDScript-Klassen auch~-- für das +Geburtsdatum auf dem Titel verwendet. Hierfür wird entweder +\Macro{printdate}(\Package{isodate})'none' von \Package{isodate} oder +\Macro{DTMDate}(\Package{datetime2})'none' aus \Package{datetime2} genutzt. Mit +dem Befehl \Macro{placeofbirth} lässt sich zusätzlich ein Geburtsort angeben. + +Die weiteren Befehle als zusätzliche Angabe erklären sich quasi von selbst. +Anzumerken ist, dass die mit den Befehlen \Macro{matriculationnumber}, +\Macro{matriculationyear}, \Macro{course} sowie \Macro{discipline} gemachten +Angaben ebenfalls vom Paket \Package{tudscrsupervisor} innerhalb der +\Environment{task}(\Package{tudscrsupervisor})"=Umgebung genutzt werden, falls +diese denn zum Einsatz kommt. +\end{Declaration} +\end{Declaration} \end{Declaration} \end{Declaration} \end{Declaration} @@ -2045,10 +2057,12 @@ diesem Fall mit dem Befehl\Macro{defensedate} das Datum der Verteidigung angegeben werden, wie es beispielsweise bei dem Druck von Dissertationen üblich ist. -Sollte das Paket \Package{isodate} geladen sein, so wird die damit eingestellte -Formatierung des Datums durch \Macro{printdate}(\Package{isodate})'none' aus -diesem Paket für alle Datumsfelder des Dokumentes und folglich auch für die -beiden Felder \Macro{date} und \Macro{defensedate} verwendet. +Sollte eines der Pakete \Package{isodate} oder \Package{datetime2} geladen +sein, so wird mit \Macro{printdate}(\Package{isodate})'none' beziehungsweise +\Macro{DTMDate}(\Package{datetime2})'none' die durch das jeweilige Paket +eingestellte Ausgabeformatierung des Datums für alle Datumsfelder des +Dokumentes und folglich auch für die beiden Felder \Macro{date} und +\Macro{defensedate} verwendet. \end{Declaration} \end{Declaration} \end{Declaration} @@ -2064,13 +2078,12 @@ beiden Felder \Macro{date} und \Macro{defensedate} verwendet. % Mit diesen beiden Befehlen kann der Typ der Dokumentes beziehungsweise der Abschlussarbeit angegeben werden. Während der Befehl \Macro{thesis} den Inhalt -des Feldes unter dem Titel vertikal zentriert und in \DIN auf der Titelseite -ausgibt, erscheint der Inhalt des Befehls \Macro{subject} in \Univers oberhalb -des Titels. Es können auch beide Befehle parallel mit unterschiedlichen -Inhalten verwendet werden. Der Befehl \Macro{thesis} dient den -\TUDScript"=Dokumentklassen außerdem zur Erkennung von Abschlussarbeiten -gedacht, da für diese spezielle Felder bereitgehalten werden und auch die -Titelseite leicht geändert gesetzt wird. +des Feldes unter dem Titel vertikal zentriert auf der Titelseite ausgibt, +erscheint der Inhalt des Befehls \Macro{subject} oberhalb des Titels. Es können +auch beide Befehle parallel mit unterschiedlichen Inhalten verwendet werden. +Der Befehl \Macro{thesis} dient den \TUDScript"=Dokumentklassen außerdem zur +Erkennung von Abschlussarbeiten gedacht, da für diese spezielle Felder +bereitgehalten werden und auch die Titelseite leicht geändert gesetzt wird. Des Weiteren ist es bei beiden Befehlen möglich, spezielle Werte als Argument zur Typisierung des Dokumentes zu verwenden. Diese werden entsprechend der @@ -2152,12 +2165,12 @@ diesem Fall ignoriert. \begin{values}{\Option{subjectthesis}} \itemfalse Die Ausgabe des Typs der Abschlussarbeit (\Macro{thesis}) selbst sowie des - angestrebten Abschlusses (\Macro{graduation}) erfolgt in großen Lettern in - \DIN zentral auf der Titelseite. + angestrebten Abschlusses (\Macro{graduation}) erfolgt in großen Lettern + zentral auf der Titelseite. \itemtrue* Der Typ der Abschlussarbeit (\Macro{thesis}) wird oberhalb des Titels in der Betreffzeile gesetzt. Der angestrebte Abschluss (\Macro{graduation}) wird - zentral in \Univers ausgegeben. + zentral ausgegeben. \end{values} \end{Declaration} @@ -2194,14 +2207,37 @@ Dissertation angegeben. Zusätzlich kann mit \Macro{professor} der betreuende Hochschullehrer beziehungsweise die betreuenden Professoren für studentische Arbeiten angegeben werden. Die Angabe mehrerer Person erfolgt wie beim Befehl \Macro{author} durch die Trennung mittels \Macro{and}. -\index{Titel!Felder|)}% \end{Declaration} \end{Declaration} \end{Declaration} \end{Declaration} +\begin{Declaration}[v2.06]{\Option{titlesignature=\PBoolean}}[false]% +\printdeclarationlist% +% +Einige Lehrstühle an der \TnUD verlangen eine Unterschrift des Autors einer +Abschlussarbeit direkt auf der Titelseite. Mit dem Aktivieren dieser Option +wird ein solches Feld am unteren Seitenrand des Titels erzeugt. +\end{Declaration} + +\begin{Declaration}{\Macro{titledelimiter}[\Parameter{Trennzeichen}]} +\printdeclarationlist% +\index{Titel!Trennzeichen}% +% +Für den Titel und die Umschlagseite werden durch die \TUDScript-Klassen eine +Reihe von zusätzlichen Feldern bereitgestellt. Einigen dieser Felder wird eine +Beschreibung (\seeref{\autoref{sec:localization}}) vorangestellt. Dazwischen +wird bei der Ausgabe ein Trennzeichen eingefügt. Ein Doppelpunkt gefolgt von +einem Leerzeichen (:\Macro*{nobreakspace}) ist hierfür die Voreinstellung. Mit +dem Befehl \Macro{titledelimiter} lässt sich dieses Trennzeichen beliebig an +die individuellen Wünsche des Anwenders anpassen. +\index{Titel!Felder|)}% +\end{Declaration} + + \begin{Bundle}{\Package{koma-script}} \begin{Declaration}{\Macro{extratitle}[\Parameter{Schmutztitel}]} +\begin{Declaration}{\Macro{frontispiece}[\Parameter{Frontispiz}]} \begin{Declaration}{\Macro{titlehead}[\Parameter{Kopf}]} \begin{Declaration}{\Macro{publishers}[\Parameter{Verlag}]} \begin{Declaration}{\Macro{thanks}[\Parameter{Fußnote}]} @@ -2214,8 +2250,12 @@ Diese Befehle entsprechen den in ihrem Verhalten den originalen Pendants der \KOMAScript"=Klassen und sollen hier der Vollständigkeit halber erwähnt werden. Die Ausgabe des mit \Macro{extratitle} definierten Schmutztitels~-- welcher -beliebig gestaltet und formatiert werden kann~-- erfolgt als Bestandteil der -Titelei mit \Macro{maketitle} vor der eigentlichen Titelseite. Mit dem Befehl +beliebig gestaltet und formatiert werden kann~-- und der gegebenenfalls mit +\ChangedAt[\Macro{frontispiece}](){% + v2.06:Schmutztitelrückseite aus \Package{koma-script} wird unterstützt% +}% +\Macro{frontispiece} definierten Rückseite erfolgt als Bestandteil der Titelei +mit \Macro{maketitle} vor der eigentlichen Titelseite. Mit dem Befehl \Macro{titlehead} kann ein zusätzlicher, beliebig formatierbarer Text oberhalb der Typisierung und des Titels ausgegeben werden. Da die vertikale Position des Dokumenttitels durch das \CD fest vorgegeben ist, kann es~-- im Gegensatz zu @@ -2252,6 +2292,7 @@ muss daher vor der Nutzung von \Macro{maketitle} angegeben werden. \end{Declaration} \end{Declaration} \end{Declaration} +\end{Declaration} \end{Bundle} \subsection{Die Teileseite} @@ -2270,6 +2311,24 @@ Seitenstil nutzen, so kann dieser mit ] angepasst werden. +\begin{Declaration}[v2.06]{\Macro{setpartsubtitle}[\Parameter{Untertitel}]} +\begin{Declaration}[v2.06]{\Font{partsubtitle}} +\printdeclarationlist% +\index{Layout!Teileseiten|?}% +\index{Layout!Überschriften}% +\index{Schriftelemente}% +% +Mit \Macro{setpartsubtitle}[\Parameter{Untertitel}] kann für Teile nach der +Überschrift selbst ein Untertitel gesetzt werden. Der Befehl muss in gleicher +Weise wie \Macro{setpartpreamble}(\Package{koma-script})'none' \emph{vor} der +Verwendung von \Macro{part}(\Package{koma-script})'none' oder den davon +abgeleiteten Varianten angegeben werden. Mit dem Schriftelement +\Font{partsubtitle} lässt sich die Schrift für den gegebenen Untertitel +verändern. In \autoref{sec:fonts:elements} ist zu finden, wie es angepasst +werden kann. +\end{Declaration} +\end{Declaration} + \begin{Declaration}{\Option{parttitle=\PBoolean}}[false]% \printdeclarationlist% \index{Layout!Teileseiten|?}% @@ -2279,27 +2338,19 @@ Diese Option ermöglicht es, den mit \Macro{title} gegebenen Titel des Dokumentes selbst in großer Schrift auf einer Teileseite auszugeben, die Bezeichnung des mit \Macro{part}[\Parameter{Bezeichnung}](\Package{koma-script})'none' erzeugten -Teils wird in diesem Fall in kleiner Schrift direkt darunter gesetzt. Diese +Teils wird in diesem Fall als Untertitel direkt darunter gesetzt. Diese Layout"=Variante findet sich im Handbuch für das \TUDCD. \notudscrartcl % \begin{values}{\Option{parttitle}} \itemfalse - Die Bezeichnung des Teils erscheint in großer Schrift auf der Seite, der - Titel des Dokumentes gar nicht. + Die Bezeichnung des Teils erscheint in großer Schrift, der Titel des + Dokumentes wird nicht ausgegeben. \itemtrue* - Der Titel wird in großer Auszeichnung auf der Teileseite gesetzt, die - Bezeichnung des Teils selber in kleinerer. + Der angegebene Titel wird in großer Auszeichnung auf der Teileseite gesetzt, + die Bezeichnung des Teils selber als Untertitel. \end{values} \end{Declaration} -\begin{Declaration}[v2.02]{\Font{parttitle}} -\printdeclarationlist% -\index{Schriftelemente}% -% -Mit dem Schriftelement~\Font{parttitle} lässt sich~-- bei aktivierter Option -\Option{parttitle}~-- die Schrift für die Bezeichnung des Teils beeinflussen. -In \autoref{sec:fonts:elements} ist zu finden, wie es angepasst werden kann. -\end{Declaration} \subsection{Die Kapitelseite} @@ -2356,6 +2407,24 @@ Flattersatz ausgegeben. Mehr dazu ist der \scrguide[\KOMAScript-Dokumentation] zu entnehmen. \end{Declaration} +\begin{Declaration}[v2.06]{\Macro{setchaptersubtitle}[\Parameter{Untertitel}]} +\begin{Declaration}[v2.06]{\Font{chaptersubtitle}} +\printdeclarationlist% +\index{Layout!Kapitelseiten|?}% +\index{Layout!Überschriften}% +\index{Schriftelemente}% +% +Mit \Macro{setchaptersubtitle}[\Parameter{Untertitel}] kann für Kapitel nach +der Überschrift selbst ein Untertitel gesetzt werden. Der Befehl muss in +gleicher Weise wie \Macro{setchapterpreamble}(\Package{koma-script})'none' +\emph{vor} der Verwendung von \Macro{chapter}(\Package{koma-script})'none' oder +den davon abgeleiteten Varianten angegeben werden. Mit dem Schriftelement +\Font{chaptersubtitle} lässt sich die Schrift für den gegebenen Untertitel +verändern. In \autoref{sec:fonts:elements} ist zu finden, wie es angepasst +werden kann. +\end{Declaration} +\end{Declaration} + \subsection{Vakatseiten} \index{Vakatseiten|(}% @@ -2378,17 +2447,11 @@ Für die Vakatseiten kann der Seitenstil mit der \KOMAScript"=Option \Option{cleardoublepage=\PSet}(\Package{koma-script})'none'|declare| eingestellt werden. -\ToDo[doc,imp]{% - Rückseite bei Kapitelseiten (auch bei Teilen?) im doppelseitigen Satz per - Option nicht als Vakatseite setzen. Implementierung von farbigen Seiten - davor (\Option*{open=right}) sowie danach (\Option*{open=left}). Setzen von - speziellen Inhalten auf diesen Seiten äquivalent zu \Macro*{setpartpreamble} - bzw. \Macro*{setchapterpreamble}; ggf. temporär umschalten bzw. Warnung bei - Konflikt. - \url{http://latex.wcms-file3.tu-dresden.de/phpBB3/viewtopic.php?f=11&t=396} -}[v2.06] -\begin{Declaration}{\Option{cleardoublespecialpage=\PSet}}[true]% +\begin{Declaration}[% + v2.06:Einstellung für farbige Rückseiten% +]{\Option{cleardoublespecialpage=\PSet}}[true]% \printdeclarationlist% +\index{Titel}% \index{Layout!Teileseiten}% \index{Layout!Kapitelseiten}% \index{Layout!Rückseiten}% @@ -2407,13 +2470,14 @@ Teil die nachfolgende Rückseite unabhängig von der Einstellung für \Option{cleardoublepage}(\Package{koma-script})'none' immer als vollständig leere Seite ohne Kopf"~ oder Fußzeilen gesetzt wird. -Diese Einstellung erlaubt es, dieses Normalverhalten zu deaktivieren und für -die Seite nach der Teileseite~-- und abhängig von \Option{chapterpage} -auch nach einem Kapitelanfang auf einer separaten Seite~-- den Seitenstil der -Option \Option{cleardoublepage}(\Package{koma-script})'none' zu übernehmen. Des -Weiteren kann auch ein anderer, beliebiger, bereits definierter Seitenstil -gewählt werden. Außerdem kann im farbigen Layout die Rückseite in der gleichen -Farbe wie die Vorderseite von Teil oder Kapitel gesetzt werden. \notudscrartcl +Diese Option erlaubt es, das Normalverhalten zu deaktivieren und für die Seite +nach der Teileseite~-- und abhängig von \Option{chapterpage} auch nach einem +Kapitelanfang auf einer separaten Seite~-- den Seitenstil der Option +\Option{cleardoublepage}(\Package{koma-script})'none' zu übernehmen. Des +Weiteren kann auch ein anderer, bereits definierter Seitenstil gewählt werden. +Außerdem kann im farbigen Layout die Rückseite in der gleichen Farbe wie die +Vorderseite von Titel, Teil oder Kapitel gesetzt werden. +\notudscrartcl % \begin{values}{\Option{cleardoublespecialpage}} \itemfalse @@ -2431,41 +2495,15 @@ Farbe wie die Vorderseite von Teil oder Kapitel gesetzt werden. \notudscrartcl kann ein beliebiger, bereits definierter Seitenstil für die Rückseite nach Teilen und Kapiteln verwendet werden. \item[color] - Im farbigen Layout ist auch die Rückseite von Teilen und Kapiteln farbig, - \seeref{\Option{clearcolor}}. -\end{values} -\ToDo[imp]{\PValue{nocolor}}[v2.06] -\end{Declaration} - -\ToDo[doc,imp]{% - \Option*{clearcolor} in \Option*{cleardoublespecialpage}% -}[v2.06] -\begin{Declaration}{\Option{clearcolor=\PBoolean}}[false]% -\printdeclarationlist% -\index{Titel}% -\index{Layout!Teileseiten}% -\index{Layout!Kapitelseiten}% -\index{Satzspiegel!doppelseitig}% -% -Sollten beim farbigen Layout die \KOMAScript-Optionen -\Option{twoside=true}(\Package{typearea})'none' und auch -\Option{open=right}(\Package{koma-script})'none' gesetzt sein, so werden beim -Aktivieren dieser Option die Rückseiten von Teilen~-- und je nach Einstellung -von \Option{chapterpage} gegebenenfalls auch von Kapiteln~-- farbig gesetzt. -Die Option wirkt sich ebenfalls auf die Rückseite des Titels aus.% -\footnote{% - \seeref{\Macro{uppertitleback}(\Package{koma-script}) und - \Macro{lowertitleback}(\Package{koma-script})} im \scrguide*% -} -Der Stil dieser zusätzlich eingefügten Rückseiten ist abhängig von der Option -\Option{cleardoublespecialpage}. -% -\begin{values}{\Option{clearcolor}} -\itemfalse + Im farbigen Layout ist auch die Rückseite von Teilen und Kapiteln farbig, + \seeref{\Option{cd}}. Die Einstellung wirkt sich ebenfalls auf die Rückseite + des Titels aus.\footnote{% + \seeref{\Macro{uppertitleback}(\Package{koma-script}) und + \Macro{lowertitleback}(\Package{koma-script})} im \scrguide*% + }% +\item[nocolor] Es werden weiße Rückseiten bei Titel, Teilen und gegebenenfalls Kapiteln erzeugt. -\itemtrue* - Die rückwärtigen Seiten der genannten Elemente des Layouts sind farbig. \end{values} \index{Vakatseiten|)}% \end{Declaration} @@ -2478,15 +2516,35 @@ Der Stil dieser zusätzlich eingefügten Rückseiten ist abhängig von der Optio % Vom \TUDScript-Bundle werden weitere Schriftelemente~-- in Ergänzung zu den bereits durch \KOMAScript{} bereitgestellten~-- definiert. Dies sind -\Font{titlepage}, \Font{thesis}, \Font{tudheadings} sowie \Font{parttitle}. -Sowohl die bereits durch \KOMAScript{} definierten als auch alle hier genannten -und folgend erläuterten Schriftelemente sollten im Bedarfsfall vom Anwender -über den Befehl \Macro{addtokomafont}[% +\Font{titlepage}, \Font{thesis}, \Font{tudheadings} sowie \Font{partsubtitle} +und \Font{chaptersubtitle}. Sowohl die durch \KOMAScript{} definierten als auch +alle hier genannten und folgend erläuterten Schriftelemente lassen sich im +Bedarfsfall über den Befehl \Macro{addtokomafont}[% \Parameter{Schriftelement}\Parameter{Einstellungen}% -](\Package{koma-script})'none' angepasst werden. Mehr dazu ist im \scrguide -innerhalb des Abschnitts \emph{Textauszeichnungen} zu finden. +](\Package{koma-script})'none' angepassen. Mehr dazu ist im \scrguide innerhalb +des Abschnitts \emph{Textauszeichnungen} zu finden. + +\subsection{Verwendung von Feldinhalten} +\index{Felder|!}% +\begin{Declaration}[v2.06]{\Macro{getfield}[\Parameter{Feldname}]} +\printdeclarationlist +Mit diesem Makro kann auf den Inhalt eines zuvor angegebenen Feldes zugegriffen +werden. +\begin{Example} +Das für dieses Dokument angegebene Datum lautet \enquote{\getfield{date}}. Es +kann wie folgt ausgegeben werden: +\begin{Code} +\getfield{date} +\end{Code} +\end{Example} +Weitere mögliche Argumente sind beispielsweise \PValue{faculty}, +\PValue{department}, \PValue{institute} und \PValue{chair} sowie \PValue{title}, +\PValue{author}, \PValue{thesis}, \PValue{professor}, \PValue{supervisor} oder +\PValue{place}. +\end{Declaration} + \subsection{Die Farben des \CDs} \index{Layout!Farben}% % @@ -2497,8 +2555,8 @@ automatisch ein. Detaillierte Informationen sind in der Dokumentation von \Package{tudscrcolor}'full' zu finden. \index{Layout|)}% -\ToDo[doc]{Erzwungener Seitenumbruch raus!}[v2.06] -\clearpage + + \section{Zusätzliche Optionen und Erweiterungen} \ChangedAt*{% v2.03:Bugfix für \abstractname, \confirmationname{} und \blockingname{} @@ -2574,13 +2632,13 @@ jederzeit mit folgenden Werten durch den Anwender überschrieben werden. \item[notoc/nottotoc] Die Zusammenfassung wird definitiv nicht ins Inhaltsverzeichnis eingetragen. \item[toc/totoc] - Es wird ein nicht nummerierten Eintrag im Inhaltsverzeichnis auf der obersten - Gliederungsebene der verwendeten Dokumentklasse für die Zusammenfassung - gesetzt. + Es wird auf der obersten Gliederungsebene der aktuell verwendeten + Dokumentklasse (\Macro*{chapter} oder \Macro*{section}) ein nicht + nummerierten Eintrag im Inhaltsverzeichnis für die Zusammenfassung gesetzt. \item[tocleveldown/leveldown/totocleveldown] \ChangedAt{v2.02} - Der Inhaltsverzeichniseintrag wird eine Gliederungsebene unterhalb der - obersten erzeugt. + Der Inhaltsverzeichniseintrag wird eine Stufe unterhalb der obersten + Gliederungsebene (\Macro*{section} oder \Macro*{subsection}) erzeugt. \item[tocmultiple/totocmultiple/tocaggregate/totocaggregate] \ChangedAt{v2.04} Es wird ein \emph{einziger} Inhaltsverzeichniseintrag für \emph{alle} @@ -2788,10 +2846,10 @@ geschieht dies hier in einer etwas kürzeren Ausführung. Sollte Ihnen eine Erläuterung etwas dürftig erscheinen, so hilft mit Sicherheit ein Blick zur Erklärung der Option \Option{abstract}'full'. -Die möglichen Werte für die Gestaltung der Überschrift werden folgend genannt. -Im Gegensatz zur Option \Option{abstract} stehen die Einstellungen -\Option{declaration=true} und \Option{declaration=false} auch für die Klasse -\Class{tudscrbook} zur Verfügung. +Die möglichen Werte für die Gestaltung der Überschrift werden nachfolgend +genannt. Im Gegensatz zur Option \Option{abstract} stehen die beiden +Einstellungen \Option{declaration=true} und \Option{declaration=false} auch für +die Klasse \Class{tudscrbook} zur Verfügung. % \begin{values}{\Option{declaration}} \itemfalse @@ -2827,11 +2885,11 @@ Werten kann das voreingestellte Verhalten überschrieben werden. \item[toc/totoc] Unabhängig von der Wahl der Überschrift erhält jede Erklärung einen nicht nummerierten Eintrag im Inhaltsverzeichnis auf der obersten Gliederungsebene - der aktuell gerade verwendeten Dokumentklasse. + der verwendeten Dokumentklasse (\Macro*{chapter} oder \Macro*{section}). \item[tocleveldown/leveldown/totocleveldown] \ChangedAt{v2.02} - Der Inhaltsverzeichniseintrag wird eine Gliederungsebene unterhalb der - obersten erzeugt. + Der Inhaltsverzeichniseintrag wird eine Stufer unter der obersten + Gliederungsebene (\Macro*{section} oder \Macro*{subsection}) erzeugt. \item[tocmultiple/totocmultiple/tocaggregate/totocaggregate] \ChangedAt{v2.04} Es wird ein \emph{einziger} Inhaltsverzeichniseintrag für \emph{alle} @@ -2839,13 +2897,13 @@ Werten kann das voreingestellte Verhalten überschrieben werden. \end{values} % \ChangedAt{v2.02} -Normalerweise werden die automatischen Kolumnentitel in Abhängigkeit von der -Gliederungsebene der Überschrift gesetzt, falls diese denn aktiviert sind über -die \KOMAScript-Option \Option{automark}(\Package{scrlayer-scrpage})'none'. -Werden manuelle Kolumnentitel genutzt, müssen diese auch für die Erklärungen -manuell gesetzt werden. Mit \Option{declaration=markboth} lässt sich unabhängig -davon das Setzen der Kolumnentitel auf linken und rechten Seiten forcieren, -wobei hierfür der Titel der Überschrift genutzt wird. +Normalerweise werden automatische Kolumnentitel abhängig von der +Gliederungsebene der Überschrift gesetzt, falls diese über die +\KOMAScript-Option \Option{automark}(\Package{scrlayer-scrpage})'none' +aktiviert sind. Werden manuelle Kolumnentitel genutzt, müssen diese auch für +die Erklärungen manuell gesetzt werden. Mit \Option{declaration=markboth} lässt +sich unabhängig davon das Setzen der Kolumnentitel auf linken und rechten +Seiten forcieren, wobei hierfür der Titel der Überschrift genutzt wird. % \begin{values}{\Option{declaration}} \item[markboth] @@ -2918,9 +2976,9 @@ wird. Für Selbstständigkeitserklärung und Sperrvermerk sollte im einfachsten Fall \Macro{declaration} beziehungsweise \Macro{confirmation} und \Macro{blocking} verwendet werden. Sobald diese jedoch in anderer Reihenfolge, mehrfacher -Ausführung, unterschiedlichen Sprachen oder durch zusätzliche Erklärungen -ergänzt werden, so bietet die \Environment{declarations}"=Umgebung die -notwendigen Freiheiten. +Ausführung, unterschiedlichen Sprachen oder um zusätzliche Erklärungen ergänzt +werden, bietet die \Environment{declarations}"=Umgebung entsprechende +Freiheiten. Innerhalb dieser Umgebung können Selbstständigkeitserklärung und Sperrvermerk mit dem Befehl \Macro{declaration} direkt nacheinander folgend beziehungsweise @@ -2933,7 +2991,7 @@ Möglichkeit, eine Erklärung völlig frei zu verfassen. Dieser Befehl kann genutzt werden, wobei im ersten Argument die gewünschte Überschrift und im zweiten der Inhalt respektive Text der Erklärung selbst angegeben werden muss. -Die im Folgenden beschriebenen Parameter können sowohl für die Umgebung +Die folgend beschriebenen Parameter können sowohl für die Umgebung \Environment{declarations} selbst als auch für die zuvor genannten Befehle als optionales Argument verwendet werden. Ähnlich wie die gleichnamigen Optionen sind auch die Umgebungen \Environment{abstract} und \Environment{declarations} @@ -2952,7 +3010,9 @@ sowie die Trennungsmuster innerhalb der Umgebung sprachspezifisch angepasst. Die Kolumnentitel können mit \Key{\Environment{declarations}}{markboth} beeinflusst werden. Mit \Key{\Environment{declarations}}{markboth=true} werden für diese auf linker und rechter Seite \Term{confirmationname} beziehungsweise -\Term{blockingname} verwendet. Automatische respektive manuelle Kolumnentitel +\Term{blockingname} verwendet. +Automatische (\Option{automark}(\Package{scrlayer-scrpage})'none') respektive +manuelle (\Option{manualmark}(\Package{scrlayer-scrpage})'none') Kolumnentitel werden mit \Key{\Environment{declarations}}{markboth=false} genutzt. Mit \Key{\Environment{declarations}}{markboth=\PValueName{Kolumnentitel}} können diese direkt festgelegt werden. Wird \Key{\Environment{declarations}}{markboth} @@ -3056,10 +3116,10 @@ der \Environment{declarations}"=Umgebung. % Beim Sperrvermerk verhält es sich äquivalent zur Selbstständigkeitserklärung. Es wird der in \Term{blockingtext} hinterlegte Standardtext in der gewählten -Sprache ausgegeben. Dieser kann durch den Anwender geändert werden. Wie genau -ist in \autoref{sec:localization} beschrieben. Der Befehl \Macro{blocking} -kann sowohl innerhalb der Umgebung \Environment{declarations} als auch -außerhalb direkt im Dokument verwendet werden. +Sprache ausgegeben. Dieser kann~-- wie in \autoref{sec:localization} +beschrieben~-- geändert werden. Der Befehl \Macro{blocking} kann sowohl +innerhalb der Umgebung \Environment{declarations} als auch direkt im Dokument +verwendet werden. In seiner ursprünglichen Definition, kann er im optionalen Argument über die deklarierten Parameter angepasst werden. Im Standardtext des Sperrvermerks @@ -3068,8 +3128,8 @@ mit \Macro{thesis}, \Macro{subject}[\Parameter{\autoref{tab:thesis}}] respektive mit der Option \Option{subjectthesis} angegeben wurde~-- aufgeführt. Mit \Key{\Macro{blocking}}{company} oder \emph{vorher} mit \Macro{company} kann zusätzlich eine im Sperrvermerk zu nennende Firma oder ähnliches angegeben -werden. Dieses Feld kann auch direkt im optionalen Argument ohne die Verwendung -eines Parameters gesetzt werden. Die weiteren Parameter +werden. Dieses Feld lässt sich auch direkt im optionalen Argument ohne die +Verwendung eines Parameters definieren. Die weiteren Parameter \Key{\Environment{declarations}}{language}, \Key{\Environment{declarations}}{markboth}, \Key{\Environment{declarations}}{pagestyle}, @@ -3128,14 +3188,11 @@ mit \Macro{supervisor}[\Parameter{Name(n)}] definierten Betreuer in dieser. \begin{Declaration}{\Macro{company}[\Parameter{Firma}]} \printdeclarationlist% % -Diese Makros ändern -\ToDo[doc]{wieder rein}[v2.06] -%~-- im Gegensatz zu den Parametern der bereits vorgestellten -%Befehle \Macro{confirmation} und \Macro{blocking}~--% -die entsprechenden Feldwerte global für das gesamte Dokument. -Damit lässt sich die \emph{mehrfache} Angabe eines Parameters vermeiden% -%, wenn beispielsweise ein Erklärung in unterschiedlichen Sprachen erzeugt wird -. +Diese Makros ändern~-- im Gegensatz zu den Parametern von +\Macro{confirmation} und \Macro{blocking}~-- die entsprechenden Feldwerte +global. Damit lässt sich die \emph{mehrfache} Angabe eines Parameters +vermeiden, wenn beispielsweise eine Erklärung in unterschiedlichen Sprachen +erzeugt wird. \index{Selbstständigkeitserklärung|!)}% \index{Sperrvermerk|!)}% \end{Declaration} @@ -3143,51 +3200,14 @@ Damit lässt sich die \emph{mehrfache} Angabe eines Parameters vermeiden% \end{Declaration} \end{Declaration} -\ToDo[doc]{Wieder rein, falls vernünftig implementiert}[v2.06] -%\subsection{Fußnoten in Überschriften} -%\index{Layout!Überschriften}% -%\index{Fußnoten}% -%% -%\begin{Declaration}[% -% v2.02:Fußnoten mit Symbolen in Überschriften möglich% -%]{\Option{footnotes=\PSet}}[nosymbolheadings]% -%\begin{Declaration}[v2.02]{\Counter{symbolheadings}}% -%\printdeclarationlist% -%% -%\ToDo[imp]{Fehler \Macro*{addchap} beheben, Paket \Package*{footmisc}}[v2.06] -%\ToDo[imp]{Zähler auch bei Sternversionen von Kapiteln zurücksetzen}[v2.06] -%\ToDo[imp]{Fußnoten nicht ins Inhaltsverzeichnis und in die Kopfzeile?!}[v2.06] -%\ToDo[imp]{Problem mit \Package*{hyperref} lösbar?}[v2.06] -%% -%Für die Überschriften wird die \KOMAScript-Option \Option{footnotes} erweitert. -%Normalerweise kann diese die Werte \PValue{multiple} und \PValue{nomultiple} -%annehmen, wobei Letzteres der Standardfall ist. Die \TUDScript-Hauptklassen -%erweitern die Option dahingehend, dass auf die Verwendung von Symbolen anstelle -%von Zahlen innerhalb der Überschriften umgeschaltet werden kann. Hierfür wird -%der Zähler \Counter{symbolheadings} definiert, der mit dem Beginn eines neuen -%Kapitels zurückgesetzt wird. -% -%\Attention{% -% Die Option \Option{footnotes=symbolheadings} ist experimentell und kann unter -% Umständen zu Fehlern respektive unerwünschten Ergebnissen führen.% -%} -%% -%\begin{values}{\Option{footnotes}} -%\item[nosymbolheadings/numberheadings] -% Die Fußnoten der Überschriften werden fortlaufend mit denen des Fließtextes -% gesetzt. -%\item[symbolheadings] -% Für die Überschriften werden symbolische Fußnoten mit einem eigenen Zähler -% verwendet. -%\end{values} -%\end{Declaration} -%\end{Declaration} - \subsection{Lesezeichen} \index{Lesezeichen}% % \begin{Declaration}{\Option{tudbookmarks=\PBoolean}}[true]% +\begin{Declaration}{% + \Macro{tudbookmark}[\OParameter{Ebene}\Parameter{Text}\Parameter{Ankername}]% +}% \printdeclarationlist% \index{Titel}% \index{Umschlagseite}% @@ -3207,18 +3227,13 @@ Lesezeichen oder auch Outline"=Einträge im PDF"~Dokument erzeugt. \itemtrue* Es werden automatisch zusätzliche Lesezeichen eingetragen. \end{values} -\end{Declaration} - -\begin{Declaration}{% - \Macro{tudbookmark}[\OParameter{Ebene}\Parameter{Text}\Parameter{Ankername}]% -}% -\printdeclarationlist% % Der Befehl \Macro{tudbookmark} arbeitet prinzipiell in der gleichen Weise wie \Macro{pdfbookmark}(\Package{hyperref})'none' aus \Package{hyperref}. Die -Lesezeichen werden jedoch lediglich bei aktivierte Option \Option{tudbookmarks} +Lesezeichen werden jedoch nur bei aktivierte Option \Option{tudbookmarks} generiert. \end{Declaration} +\end{Declaration} @@ -3333,8 +3348,8 @@ Felder, die über \Macro{referee}, \Macro{advisor}, \Macro{supervisor} oder \index{Typisierung}% % Diese Bezeichner dienen zur Typisierung speziell für eine Abschlussarbeit. Wie -diese genutzt werden können, ist bei der Erläuterung von \Macro{thesis} und -\Macro{subject}'full' beziehungsweise in \autoref{tab:thesis} zu finden. +diese genutzt werden können, ist bei der Erläuterung von \Option*{subjectthesis} +beziehungsweise \Macro*{thesis} und \Macro*{subject}'full' zu finden. \TermTable{% dissertationname,diplomathesisname,masterthesisname,bachelorthesisname,% studentresearchname,projectpapername,seminarpapername,researchname,% @@ -3354,6 +3369,34 @@ diese genutzt werden können, ist bei der Erläuterung von \Macro{thesis} und \end{Declaration} \end{Declaration} +\begin{Declaration}[v2.02]{\Term{graduationtext}} +\printdeclarationlist% +\index{Abschlussarbeit}% +\index{Typisierung}% +% +Wurde erkannt, dass das aktuelle Dokument eine Abschlussarbeit ist, so kann der +zu erlangende akademische Grad mit dem Befehl \Macro{graduation} angegeben +werden. Bei dessen Ausgabe auf dem Titel wird dabei der entsprechende Text dazu +angegeben. +\TermTable*{graduationtext}{.78\textwidth} +\end{Declaration} + +\begin{Declaration}{\Term{datetext}} +\begin{Declaration}{\Term{defensedatetext}} +\printdeclarationlist% +\index{Abschlussarbeit}% +\index{Datum}% +\index{Datum!Abgabedatum}% +\index{Datum!Verteidigungsdatum}% +% +Wird mit \Macro{date} das (Abgabe-)Datum und mit \Macro{defensedate} ein Datum +der Verteidigung für eine Abschlussarbeit angegeben, so werden auch diese +Felder durch einen Text beschrieben. +\TermTable{datetext,defensedatetext} +\index{Titel!Felder|)}% +\end{Declaration} +\end{Declaration} + \begin{Declaration}{\Term{dateofbirthtext}} \begin{Declaration}{\Term{placeofbirthtext}} \begin{Declaration}{\Term{matriculationnumbername}} @@ -3370,8 +3413,8 @@ Studiengang (\Macro{course}), die Studienrichtung (\Macro{discipline}) oder auch die Matrikelnummer (\Macro{matriculationnumber}) und/oder das Immatrikulationsjahr (\Macro{matriculationyear}) angegeben, werden sowohl auf der Titelseite als auch auf der gegebenenfalls mit \Package{tudscrsupervisor} -erstellten Aufgabenstellung die dazugehörigen Bezeichner vorangestellt. Auf dem -Titel werden diese dabei mit dem durch \Macro{titledelimiter} gegebenen +erstellten Aufgabenstellung die dazugehörigen Bezeichner vorangestellt. Auf +dem Titel werden diese dabei mit dem durch \Macro{titledelimiter} gegebenen Trennzeichen vom eigentlichen Feld abgegrenzt. \TermTable{% dateofbirthtext,placeofbirthtext,matriculationnumbername,% @@ -3384,37 +3427,24 @@ Trennzeichen vom eigentlichen Feld abgegrenzt. \end{Declaration} \end{Declaration} -\begin{Declaration}[v2.02]{\Term{graduationtext}} +\begin{Declaration}{\Term{coverpagename}} +\begin{Declaration}{\Term{titlepagename}} \printdeclarationlist% -\index{Abschlussarbeit}% -\index{Typisierung}% +\index{Lesezeichen}% % -Wurde erkannt, dass das aktuelle Dokument eine Abschlussarbeit ist,% -\footnote{% - Entweder wurde \Macro{thesis} oder \Macro{subject} mit einem speziellen Wert - (\seeref{\autoref{tab:thesis}}) oder zusammen mit der Option - \Option{subjectthesis} genutzt.\label{fn:thesis}% -} -so kann der zu erlangende akademische Grad mit dem Befehl \Macro{graduation} -angegeben werden. Bei dessen Ausgabe auf dem Titel wird dabei der entsprechende -Text dazu angegeben. -\TermTable*{graduationtext}{.78\textwidth} +Diese beiden Bezeichner werden bei aktivierter \Option{tudbookmarks} für das +Eintragen von Lesezeichen in ein PDF"=Dokument genutzt. +\TermTable{coverpagename,titlepagename} +\end{Declaration} \end{Declaration} -\begin{Declaration}{\Term{datetext}} -\begin{Declaration}{\Term{defensedatetext}} +\begin{Declaration}{\Term{abstractname}} \printdeclarationlist% -\index{Abschlussarbeit}% -\index{Datum}% -\index{Datum!Abgabedatum}% -\index{Datum!Verteidigungsdatum}% +\index{Zusammenfassung}% % -Wird mit \Macro{date} das (Abgabe-)Datum und mit \Macro{defensedate} ein Datum -der Verteidigung für eine Abschlussarbeit\footref{fn:thesis} angegeben, so -werden auch diese Felder durch einen Text beschrieben. -\TermTable{datetext,defensedatetext} -\index{Titel!Felder|)}% -\end{Declaration} +Dieser Bezeichner wird für die Klasse \Class{tudscrbook} definiert, da selbiger +von \KOMAScript{} für die Buchklasse nicht vorgesehen wird. +\TermTable{abstractname} \end{Declaration} \begin{Declaration}{\Term{confirmationname}} @@ -3437,7 +3467,7 @@ Die Texte der Erklärungen selbst sind derart aufgebaut, dass sie in Abhängigkeit von den angegebenen Informationen unterschiedlich ausgeführt werden. Innerhalb der Selbstständigkeitserklärung (\Macro{confirmation}) werden gegebenenfalls die Felder für den Titel (\Macro{title}) und die Typisierung der -Abschlussarbeit\footref{fn:thesis} sowie die angegebenen Unterstützer% +Abschlussarbeit sowie die angegebenen Unterstützer% \footnote{% \Macro{confirmation}[\POParameter{% \Key{\Macro{confirmation}}{supporter=\PName{Unterstützer}}% @@ -3479,46 +3509,23 @@ angezeigt. \def\@supporter{\PName{Vorname Nachname}}% \makeatother \newcommand*\showfield[1]{% - \Macro*{csuse}[\PParameter{#1}]~\textrightarrow~\csuse{#1}% + \Macro*{getfield}[\PParameter{#1}]'none'~\textrightarrow~\getfield{#1}% }% \noindent Soll eine der Erklärungen geändert und dabei der Inhalt eines Feldes genutzt - werden, lässt sich über den Befehl \Macro*{csuse}[\PParameter{\dots}] aus dem - Paket \Package{etoolbox} auf die Felder zugreifen. Als Argument können dabei - \PValue{@@title}, \PValue{@@author}, \PValue{@@thesis}, \PValue{@supporter} - und \PValue{@company} verwendet werden.% + werden, lässt sich hierfür \Macro{getfield} verwenden.% \footnote{% - Titel: \showfield{@@title}, Autor: \showfield{@@author}, Art der - Abschlussarbeit: \showfield{@@thesis}, Unterstützer: \showfield{@supporter} - und Firma: \showfield{@company}% + Titel:~\showfield{title}, Art der Abschlussarbeit:~\showfield{thesis}, + Autor:~\showfield{author}, Firma:~\showfield{company} sowie ebenfalls + Unterstützer:~\showfield{supporter} } - Gegebenenfalls ist zusätzlich die Definition von \Macro{and} anzupassen. + Gegebenenfalls ist die Definition von \Macro{and} anzupassen. \endgroup \index{Selbstständigkeitserklärung|)}% \index{Sperrvermerk|)}% \end{Declaration} \end{Declaration} -\begin{Declaration}{\Term{abstractname}} -\printdeclarationlist% -\index{Zusammenfassung}% -% -Dieser Bezeichner wird für die Klasse \Class{tudscrbook} definiert, da selbiger -von \KOMAScript{} für die Buchklasse nicht vorgesehen wird. -\TermTable{abstractname} -\end{Declaration} - -\begin{Declaration}{\Term{coverpagename}} -\begin{Declaration}{\Term{titlepagename}} -\printdeclarationlist% -\index{Lesezeichen}% -% -Diese beiden Bezeichner werden bei aktivierter \Option{tudbookmarks} für das -Eintragen von Lesezeichen in ein PDF"=Dokument genutzt. -\TermTable{coverpagename,titlepagename} -\end{Declaration} -\end{Declaration} - \begin{Declaration}{\Term{listingname}} \begin{Declaration}{\Term{listlistingname}} \printdeclarationlist% @@ -3574,14 +3581,14 @@ Nutzung von \Option{tudscrver} nur als Klassenoption möglich ist. \index{Schriftgröße}% \ChangedAt{v2.04:Vertikaler Leerraum abhängig von verwendeter Schriftgröße} Seit der Version~v2.04 werden mehrere Längen in Abhängigkeit der gewählten - Schriftgröße definiert. Mit der Wahl \Option{tudscrver=2.03} lässt sich diese - Funktionalität deaktivieren, wobei hierfür lediglich die \TUDScript-Option - \Option{relspacing=false} aufgerufen wird. + Schriftgröße definiert. Mit der Wahl \Option{tudscrver=2.03} wird diese + Funktionalität deaktiviert, wobei hierfür lediglich die \TUDScript-Option + \Option{relspacing=false} aktiviert wird. \item[\PValue{2.04}] \index{Satzspiegel}% \ChangedAt{% - v2.05:Einstellungen für den Satzspiegel für die jeweilige ISO/DIN"~Klasse - des verwendeten Papierformates identisch% + v2.05:Satzspiegeleinstellungen für die jeweilige ISO/DIN"~Klasse + des Papierformates identisch% } Mit der Version~v2.05 werden die vorgegebenen Einstellungen zum Satzspiegel anhand der B"~ISO/DIN"~Reihe vorgenommen. Damit sind für alle Papierformate @@ -3590,11 +3597,20 @@ Nutzung von \Option{tudscrver} nur als Klassenoption möglich ist. abhängig, sodass die B- und C"~Papierformate der gleichen Klasse größere Seitenränder erhalten, als die D- und A"~Formate. \item[\PValue{2.05}] + \ChangedAt{v2.06:Griechische Buchstaben standardmäßig kursiv} + Mit dem Wechsel der Hausschrift zu \OpenSans ergaben sich einige Änderungen + bezüglich der Erscheinung des \CDs. Mit dieser Kompatibilitätseinstellung + werden die alten Schriftfamilien \Univers und \DIN + (\Option{cdoldfont=true}, \Option{headings=light}, \Option{ttfont=lmodern}) + aktiviert. Weiterhin wirkt sich für diese Schriftfamilien im Mathematikmodus + die Option \Option{slantedgreek=true} lediglich auf die griechischen + Majuskeln aus. +\item[\PValue{2.06}] Dies ist Kompatibilitätseinstellung für \TUDScript~\vTUDScript{} und wird für zukünftige Änderungen bereits vorgehalten. Soll ein mit der momentan aktuellen Version erzeugtes Dokument auch mit einer späteren Version von \TUDScript nach einem \hologo{LaTeX}"=Lauf das gleiche Ausgabeergebnis - liefern, muss dies mit \Option{tudscrver=2.05} angegeben werden. + liefern, muss dies mit \Option{tudscrver=2.06} angegeben werden. \item[\PValue{last}] Es werden keine Kompatibilitätseinstellungen für das Dokument vorgenommen. Mit einer späteren Version von \TUDScript kann ein anderes Umbruchverhalten @@ -3604,3 +3620,43 @@ Nutzung von \Option{tudscrver} nur als Klassenoption möglich ist. \end{Declaration*} \end{Declaration*} \end{Declaration*} + +\ToDo[doc]{Wieder rein, falls vernünftig implementiert}[v2.07] +%\subsection{Fußnoten in Überschriften} +%\index{Layout!Überschriften}% +%\index{Fußnoten}% +% +%\begin{Declaration}[% +% v2.02:Fußnoten mit Symbolen in Überschriften möglich% +%]{\Option{footnotes=\PSet}}[nosymbolheadings]% +%\begin{Declaration}[v2.02]{\Counter{symbolheadings}}% +%\printdeclarationlist% +%% +%\ToDo[imp]{Fehler \Macro*{addchap} beheben, Paket \Package*{footmisc}}[v2.06] +%\ToDo[imp]{Zähler auch bei Sternversionen von Kapiteln zurücksetzen}[v2.06] +%\ToDo[imp]{Fußnoten nicht ins Inhaltsverzeichnis und in die Kopfzeile?!}[v2.06] +%\ToDo[imp]{Problem mit \Package*{hyperref} lösbar?}[v2.06] +%% +%Für die Überschriften wird die \KOMAScript-Option \Option{footnotes} erweitert. +%Normalerweise kann diese die Werte \PValue{multiple} und \PValue{nomultiple} +%annehmen, wobei Letzteres der Standardfall ist. Die \TUDScript-Hauptklassen +%erweitern die Option dahingehend, dass auf die Verwendung von Symbolen anstelle +%von Zahlen innerhalb der Überschriften umgeschaltet werden kann. Hierfür wird +%der Zähler \Counter{symbolheadings} definiert, der mit dem Beginn eines neuen +%Kapitels zurückgesetzt wird. +% +%\Attention{% +% Die Option \Option{footnotes=symbolheadings} ist experimentell und kann unter +% Umständen zu Fehlern respektive unerwünschten Ergebnissen führen.% +%} +%% +%\begin{values}{\Option{footnotes}} +%\item[nosymbolheadings/numberheadings] +% Die Fußnoten der Überschriften werden fortlaufend mit denen des Fließtextes +% gesetzt. +%\item[symbolheadings] +% Für die Überschriften werden symbolische Fußnoten mit einem eigenen Zähler +% verwendet. +%\end{values} +%\end{Declaration} +%\end{Declaration} diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-obsolete.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-obsolete.tex index 90828bcf0e8..c44e01b2c83 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-obsolete.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-obsolete.tex @@ -2,6 +2,8 @@ \chapter{Obsolete sowie vollständig entfernte Optionen und Befehle} % \section{Veraltete Optionen und Befehle in \TUDScript} +\index{Kompatibilität}% +% Einige Optionen und Befehle waren während der Weiterentwicklung von \TUDScript in ihrer ursprünglichen Form nicht mehr umsetzbar oder wurden~-- unter anderem aus Gründen der Kompatibilität zu anderen Paketen~-- schlichtweg verworfen. @@ -10,9 +12,12 @@ Funktionalität ohne größere Aufwände mit \TUDScript in der aktuellen Version \vTUDScript{} darzustellen. Ist dies der Fall, wird hier entsprechend kurz darauf hingewiesen. +\newcommand*\ChangesTo[1]{% + Änderungen für \TUDScript~#1% + \ChangedAt*{#1:Änderungen gegenüber der vorhergehenden Version}% +} -\ChangedAt*{v2.00:Änderungen gegenüber der vorhergehenden Version}% -\subsection{Änderungen für \TUDScript~\NoCaseChange{v}2.00} +\subsection{\ChangesTo{v2.00}} \begin{Obsolete}{v2.00}[\Option{cd=\PSet}]{\Option{cd=alternative}} \begin{Obsolete}{v2.00}[\Option{cdtitle=\PSet}]{\Option{cdtitle=alternative}} \begin{Obsolete}{v2.00}{\Length{titlecolwidth}} @@ -222,8 +227,7 @@ Die Bezeichner wurden in Anlehnung an die dazugehörigen Befehlsnamen umbenannt. \end{Bundle} -\ChangedAt*{v2.02:Änderungen gegenüber der vorhergehenden Version}% -\subsection{Änderungen für \TUDScript~\NoCaseChange{v}2.02} +\subsection{\ChangesTo{v2.02}} \begin{Obsolete}{v2.02:\Option{pageheadingsvskip}}{\Length{chapterheadingvskip}} \printobsoletelist% % @@ -310,8 +314,7 @@ Alle genannten Befehle und Bezeichner wurden für den \noticename{} umbenannt. \end{Bundle} -\ChangedAt*{v2.03:Änderungen gegenüber der vorhergehenden Version}% -\subsection{Änderungen für \TUDScript~\NoCaseChange{v}2.03} +\subsection{\ChangesTo{v2.03}} \begin{Obsolete}{v2.03:\Option{cdgeometry}}{\Option{geometry=\PBoolean}} \printobsoletelist% % @@ -355,8 +358,7 @@ Der Parameter \Key*{\Environment{tudpage}}{color=\PValueName{Farbe}} der \end{Obsolete} -\ChangedAt*{v2.04:Änderungen gegenüber der vorhergehenden Version}% -\subsection{Änderungen für \TUDScript~\NoCaseChange{v}2.04} +\subsection{\ChangesTo{v2.04}} \begin{Obsolete}{v2.04}{\Option{fontspec=\PBoolean}}% \printobsoletelist% % @@ -367,13 +369,12 @@ anschließend zusätzliche Pakete genutzt werden, welche auf die Verwendung von dennoch genutzt werden, müssen alle auf das Paket \Package{fontspec} aufbauenden Einstellungen durch den Anwender mit \Macro*{AfterPackage}[\PParameter{fontspec}\PParameter{\dots}] -verzögert werden. In \fullref{sec:fonts:fontspec} sind weitere Hinweise zur -Verwendung des Paketes \Package{fontspec} zu finden. +verzögert werden. In \fullref{sec:fonts} sind weitere Hinweise zur Verwendung +des Paketes \Package{fontspec} zu finden. \end{Obsolete} -\ChangedAt*{v2.05:Änderungen gegenüber der vorhergehenden Version}% -\subsection{Änderungen für \TUDScript~\NoCaseChange{v}2.05} +\subsection{\ChangesTo{v2.05}} \begin{Obsolete}{v2.05:\Option{pageheadingsvskip}}{\Length{pageheadingsvskip}} \begin{Obsolete}{v2.05:\Option{headingsvskip}}{\Length{headingsvskip}} \printobsoletelist% @@ -394,6 +395,149 @@ Länge \Length*{footlogoheight} festgelegt. \end{Obsolete} +\subsection{\ChangesTo{v2.06}} +\begin{Declaration}[v2.06]{\Option{cdoldfont}}[false] +\printdeclarationlist% +% +Mit der Version~v2.06 wird standardmäßig \OpenSans als Hausschrift verwendet. +Um jedoch weiterhin ältere Dokumente mit den Schriften \Univers und \DIN +erzeugen zu können, wird diese Option bereitgestellt. +\Attention{% + Diese kann ausschließlich als Klassenoption~-- oder für die Pakete + \Package*{tudscrfonts} und \Package*{fix-tudscrfonts} als Paketoption~-- + genutzt werden. +} Eine späte Optionenwahl mit \Macro*{TUDoption} oder \Macro*{TUDoptions} ist +nicht möglich. Wurden mit \Option{cdoldfont=true} die alten Schriftfamilien +aktiviert, kann jedoch weiterhin die Option \Option*{cdfont} genutzt werden. +% +\begin{values}{\Option{cdoldfont}} +\item[false] + Das Verhalten ist äquivalent zu \Option*{cdfont=false}, die Hausschrift ist + nicht aktiv. +\item[true] + Es werden die alten Hausschriften \Univers für den Fließtext sowie \DIN für + Überschriften der obersten Gliederungsebenen bis einschließlich + \Macro*{subsubsection} genutzt. Die Schriftstärke lässt sich mit + \Option*{cdfont=true} respektive \Option*{cdfont=heavy} anpassen. +\end{values} +% +Für die \TUDScript-Klassen sowie die vom Paket \Package*{fix-tudscrfonts} +unterstützten Dokumentklassen kann die für die Gliederungsebenen verwendete +Schriftart angepasst werden. +% +\begin{values}{\Option{cdoldfont}} +\item[nodin] + Für Überschriften wird \Univers anstatt \DIN verwendet. +\item[din] + Mit dieser Einstellung wird die Schrift \DIN in den Überschriften verwendet. +\item[onlydin] + Hiermit werden nur die Überschriften in \DIN gesetzt, für den Fließtext kommt + nicht \Univers sondern die \hologo{LaTeX}"=Standardschriften respektive die + eines geladenen Schriftpaketes zum Einsatz. +\end{values} +\end{Declaration} + +\begin{Obsolete}{v2.06}{\Macro{univln}} +\begin{Obsolete}{v2.06}{\Macro{textuln}[\Parameter{Text}]} +\begin{Obsolete}{v2.06}{\Macro{univrn}} +\begin{Obsolete}{v2.06}{\Macro{texturn}[\Parameter{Text}]} +\begin{Obsolete}{v2.06}{\Macro{univbn}} +\begin{Obsolete}{v2.06}{\Macro{textubn}[\Parameter{Text}]} +\begin{Obsolete}{v2.06}{\Macro{univxn}} +\begin{Obsolete}{v2.06}{\Macro{textuxn}[\Parameter{Text}]} +\begin{Obsolete}{v2.06}{\Macro{univls}} +\begin{Obsolete}{v2.06}{\Macro{textuls}[\Parameter{Text}]} +\begin{Obsolete}{v2.06}{\Macro{univrs}} +\begin{Obsolete}{v2.06}{\Macro{texturs}[\Parameter{Text}]} +\begin{Obsolete}{v2.06}{\Macro{univbs}} +\begin{Obsolete}{v2.06}{\Macro{textubs}[\Parameter{Text}]} +\begin{Obsolete}{v2.06}{\Macro{univxs}} +\begin{Obsolete}{v2.06}{\Macro{textuxs}[\Parameter{Text}]} +\begin{Obsolete}{v2.06}{\Macro{dinbn}} +\begin{Obsolete}{v2.06}{\Macro{textdbn}[\Parameter{Text}]} +\printobsoletelist% +% +Wird die Option \Option{cdoldfont} nicht aktiviert, werden auch die Befehle zur +expliziten Auswahl eines Schriftschnittes nicht mehr bereitgestellt. +Stattdessen können \Macro*{cdfont} oder \Macro*{textcd}[\Parameter{Text}] +genutzt werden, welche in \autoref{sec:text} zu finden sind. +\end{Obsolete} +\end{Obsolete} +\end{Obsolete} +\end{Obsolete} +\end{Obsolete} +\end{Obsolete} +\end{Obsolete} +\end{Obsolete} +\end{Obsolete} +\end{Obsolete} +\end{Obsolete} +\end{Obsolete} +\end{Obsolete} +\end{Obsolete} +\end{Obsolete} +\end{Obsolete} +\end{Obsolete} +\end{Obsolete} + +\begin{Obsolete}{v2.06}[\Option{cdfont=\PSet}]{\Option{cdfont=din}}{% + entfällt, \seeref{\Option{cdoldfont=din}}% +} +\begin{Obsolete}{v2.06}[\Option{cdfont=\PSet}]{\Option{cdfont=nodin}}{% + entfällt, \seeref{\Option{cdoldfont=nodin}}% +} +\printobsoletelist% +% +Die Einstellungen für Überschriften sind mit der Umstellung auf \OpenSans nicht +mehr notwendig. Für die Verwendung der alten Schriftfamilien \Univers und \DIN +muss die Option \Option{cdoldfont} aktiviert werden. +\end{Obsolete} +\end{Obsolete} + +\begin{Obsolete}{v2.06:\Option{cleardoublespecialpage}}{% + \Option{clearcolor=\PBoolean}% +} +\printobsoletelist% +% +Die Option \Option*{clearcolor=\PBoolean} wurde zur Vereinheitlichung der +Benutzerschnittstelle in \Option*{cleardoublespecialpage=\PSet} integriert. +\end{Obsolete} + + +\minisec{Auszeichnungen in Überschriften} +% +Für alle Gliederungsebenen bis einschließlich \Macro*{subsubsection} werden +die Überschriften in Großbuchstaben der Schrift \DIN gesetzt, wenn diese mit +den entsprechenden Einstellungen (\Option*{cdoldfont=true/onyldin}) aktiviert +wurde. Hierfür wird intern \Macro*{MakeTextUppercase}(\Package{textcase})'none' +aus dem Paket \Package{textcase} genutzt, welches zusammen mit den alten +Schriftfamilien geladen wird. Sollen bestimmte Kleinbuchstaben erhalten +bleiben, ist \Macro*{NoCaseChange}(\Package{textcase})'none' zu verwenden. +% +\begin{Example} +In einem Kapitel wird ein einzelnes Wort in Minuskeln geschrieben: +\begin{Code}[escapechar=§] +\chapter{§Ü§berschrift mit \NoCaseChange{kleinem} Wort} +\end{Code} +\end{Example} +% +Die Schrift \DIN durfte laut \CD nur mit Majuskeln (Großbuchstaben) verwendet +werden, weshalb das beschriebene Vorgehen lediglich im \emph{Ausnahmefall} +anzuwenden ist. Die manuellen Nutzung sollte mit +\Macro*{MakeTextUppercase}[% + \PParameter{\Macro{textdbn}[\Parameter{Text}]}% +](\Package{textcase})'none' geschehen. + +\begin{Obsolete}{v2.06}{% + \Macro{ifdin}[\Parameter{Dann-Teil}\Parameter{Sonst-Teil}] +}% +\printobsoletelist% +% +Der Befehl \Macro*{ifdin} prüft, ob die Schriftfamilie \DIN aktiv ist und führt +in diesem Fall \Parameter{Dann-Teil} aus, andernfalls \Parameter{Sonst-Teil}. +\end{Obsolete} + + \section{Das Paket \Package{tudscrcomp} -- Umstieg von anderen Klassen} \begin{Bundle*}{\Package{tudscrcomp}} @@ -477,7 +621,7 @@ Die Funktionalität wird durch die Option \Option*{cdmath} bereitgestellt. \printdeclarationlist% % Die direkte Auswahl der Schriftart sollte mit \Macro*{cdfont} erfolgen. -Zusätzlich gibt es den Befehl \Macro*{textcdfont}, mit dem die Auszeichnung +Zusätzlich gibt es den Befehl \Macro*{textcd}, mit dem die Auszeichnung eines bestimmten Textes in einer anderen Schriftart erfolgen kann, ohne die Dokumentschrift umzuschalten. \end{Declaration} @@ -620,7 +764,7 @@ identisch ist. Vielmehr soll damit die Möglichkeit geschaffen werden, auf beachtet werden, dass für diese Klasse eine explizite Wahl der Schriftgröße über die Option~\Option{fontsize}(\Package{koma-script})'none' notwendig ist. Um kongruent zur Klasse \Class{tudmathposter} zu bleiben, ist die Wahl einer -Schriftgröße von \Option*{fontsize=\PValue{34...36pt}} sinnvoll. Für weitere +Schriftgröße von \Option*{fontsize=\PValue{34\dots36pt}} sinnvoll. Für weitere Informationen zu diesem Thema sind in \autoref{sec:fontsize} vorhanden. Weiterhin sollte für ein ähnliches Ausgabeergebnis die Absatzformatierung über die \KOMAScript-Option \Option*{parskip=half-} eingestellt werden. Ein blaues @@ -638,12 +782,12 @@ verwendet werden. \end{Declaration} \begin{Declaration}{\Option{bluebg}}{% - identisch zu \Option*{backgroundcolor=true}(\Class{tudscrposter})% + identisch zu \Option*{backcolor=true}(\Class{tudscrposter})% } \printdeclarationlist% % Mit der Klasse \Class{tudscrposter} lässt sich das Verhalten mit der Option -\Option*{backgroundcolor}(\Class{tudscrposter}) umsetzen. +\Option*{backcolor}(\Class{tudscrposter}) umsetzen. \end{Declaration} \begin{Declaration}{\Macro{telefon}[\Parameter{Telefonnummer}]}{identisch zu @@ -653,7 +797,7 @@ Mit der Klasse \Class{tudscrposter} lässt sich das Verhalten mit der Option \Macro*{telefax}[\Parameter{Telefaxnummer}](\Class{tudscrposter})% } \begin{Declaration}{\Macro{email}[\Parameter{E-Mail-Adresse}]}{identisch zu - \Macro*{emailaddress*}[\Parameter{E-Mail-Adresse}](\Class{tudscrposter})% + \Macro*{emailaddress*}[\Parameter{E-Mail-Adresse}]% } \begin{Declaration}{\Macro{homepage}[\Parameter{URL}]}{identisch zu \Macro*{webpage*}[\Parameter{URL}](\Class{tudscrposter})% diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-packages.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-packages.tex index 222af7d8237..13ce2d1ec8d 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-packages.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-packages.tex @@ -2,40 +2,24 @@ \chapter{Benötigte, unterstützte und empfehlenswerte Pakete} \index{Kompatibilität|?}% % -\section{Notwendige und ergänzende Pakete} +\section{Notwendige und ergänzende Pakete für \TUDScript} \tudhyperdef*{sec:packages:needed}% +Diese Pakete werden von den \TUDScript"~Klassen zwingend benötigt und +eingebunden. Möchten Sie eines der im Folgenden aufgezählten Pakete selber +mit bestimmten Optionen nutzen, so sollten diese bereits \emph{vor} dem Laden +der Dokumentklasse an das Paket weitergereicht werden, falls bei der folgenden +Beschreibung des Paketes nichts anderweitiges angegeben wird. % -\subsection{Erforderliche Pakete bei der Schriftinstallation} -% -Für die Installation der Schriften sind die folgend genannten Pakete von -\emph{essentieller} Bedeutung und daher \emph{zwingend} notwendig. Das -Vorhandensein dieser wird durch die jeweiligen Schriftinstallationsskripte -(\seeref{\autoref{sec:install}}) geprüft und die Installation beim Fehlen eines -oder mehrerer Pakete mit einer entsprechenden Warnung abgebrochen. -% -\begin{packages} -\item[fontinst](fontware) - Dieses Paket wird für die Installation der Schriften \Univers sowie \DIN - benötigt. Weiterhin ist \Package{fontware} der \hologo{LaTeX}"=Distribution - für die Schriftkonvertierung notwendig. -\item[cmbright,hfbright,cm-super] - Alle mathematischen Glyphen und Symbole, die nicht in den \Univers"~Schriften - enthalten sind, werden diesem Paket entnommen. Außerdem werden für die - \PValue{T1}"~Schriftkodierung die beiden Pakete \Package{cm-super} und - \Package{hfbright} benötigt. Aus dem Paket \Package{lmodern} werden - zusätzlich die \texttt{Schreibmaschinenschriften} verwendet. -\item[iwona] - Sowohl für \Univers als auch für \DIN werden fehlenden Glyphen entnommen. -\end{packages} - - - -\subsection{Notwendige Pakete für die Verwendung der Hauptklassen} -Diese Pakete werden von den neuen Klassen zwingend benötigt und automatisch -geladen, falls dies nicht durch den Anwender in der Präambel geschieht. +\begin{Example} +Das Weiterreichen von Optionen an Pakete muss folgendermaßen erfolgen: +\begin{Code}[escapechar=§] +\PassOptionsToPackage§\Parameter{Paketoptionen}\Parameter{Paket}§ +\documentclass§\OParameter{Klassenoptionen}\PParameter{tudscr\dots}§ +\end{Code} +\end{Example} % \begin{packages} -\item[koma-script,typearea,scrlayer-scrpage,scrbase] +\item[koma-script,typearea,scrbase,scrlayer-scrpage,scrextend] \begin{Declaration*}{\Class{scrbook}} \begin{Declaration*}{\Class{scrreprt}} \begin{Declaration*}{\Class{scrartcl}} @@ -56,27 +40,42 @@ geladen, falls dies nicht durch den Anwender in der Präambel geschieht. \end{Declaration*} \end{Declaration*} \end{Declaration*} -\item[kvsetkeys] - Hiermit wird das von \Package{scrbase} geladene Paket \Package{keyval} - verbessert, welches das Definieren von Klassen"~ und Paketoptionen sowie - Parametern nach dem Schlüssel"=Wert"=Prinzip ermöglicht. Das Verhalten für - unbekannte Schlüssel kann mit \Package{kvsetkeys} festgelegt werden. -\item[etoolbox] - Es werden viele Funktionen zum Testen und zur Ablaufkontrolle bereitgestellt - und das einfache Manipulieren vorhandener Makros ermöglicht. +\item[opensans,iwona] + \index{Schriftart|!}% + \ChangedAt{% + v2.06:Pakete \Package{opensans}, \Package{iwona} und \Package{mathastext} + sind für \TUDScript zwingend erforderlich% + }% + Das Paket \Package{opensans} stellt die Schriftfamilie \OpenSans sowohl für + den Fließtext als auch den mathematischen Satz zur Verfügung. Es enthält alle + nötigen Schriftschnitte sowohl im Type1- als auch im OpenType-Format. Da die + Schriftfamilie in der aktuellen Version keine mathematischen Glyphen + bereitstellt, werden die Pakete \Package{mathastext} und \Package{iwona} + zusätzlich genutzt, um zumindest einen halbwegs erträglichen mathematischen + Satz mit \OpenSans zu ermöglichen. Werden dabei zusätzliche Symbole benötigt, + wird empfohlen, auf das Paket \Package{amssymb} zu verzichten und anstelle + dessen \Package{mdsymbol} zu laden. +\item[mweights] + \index{Schriftstärke}% + \ChangedAt{% + v2.06:Paket \Package{mweights} ist für \TUDScript zwingend erforderlich% + }% + In \hologo{LaTeXe} existieren die Schriftfamilien für Serifenschriften + (\Macro*{rmfamily}), serifenlose Schriften (\Macro*{sffamily}) sowie die + Schreibmaschinenschriften (\Macro*{ttfamily}). Deren Schriftstärke wird für + gewöhnlich mit den beiden Befehlen \Macro*{mddefault} und \Macro*{bfdefault} + einheitlich festgelegt. Bei der Verwendung unterschiedlicher Schriftpakete + kann es unter Umständen zu Problemen bei den Schriftstärken kommen. Diese + Paket erlaubt die individuelle Definition der Schriftstärke für jede der drei + Schriftfamilien. \item[geometry] \index{Satzspiegel}% Das Paket wird zum Festlegen der Seitenränder respektive des Satzspiegels - verwendet. Ein Weiterreichen zusätzlicher Optionen an das Paket wird - dringlich nicht empfohlen. -\item[textcase] - \index{Schriftauszeichnung}% - Mit dem Befehl \Macro{MakeTextUppercase}(\Package{textcase})'none' wird bei - Überschriften in \DIN die Großschreibung erzwungen. Im \emph{Ausnahmefall} - kann dies mit \Macro{NoCaseChange}(\Package{textcase}) unterbunden werden. -\item[trimspaces] - Bei mehreren Eingabefeldern für den Anwender werden die Argumente mithilfe - dieses Paketes um eventuell angegebene, unnötige Leerzeichen befreit. + verwendet. + \Attention{% + Ein Weiterreichen zusätzlicher Optionen an das Paket wird dringlich nicht + empfohlen. + }% \item[graphicx] \index{Grafiken}% Dies ist das De"~facto"~Standard"~Paket zum Einbinden von Grafiken. Zum @@ -86,38 +85,35 @@ geladen, falls dies nicht durch den Anwender in der Präambel geschieht. \index{Farben}% Damit werden die Farben des \CDs zur Verwendung im Dokument definiert. Genaueres ist bei der Beschreibung von \Package{tudscrcolor}'auto' zu finden. - Ein Laden beider Pakete in der Präambel durch den Nutzer ist problemlos - möglich. +\item[kvsetkeys] + Das von \Package{scrbase} geladene Paket \Package{keyval} ermöglicht das + Definieren von Klassen"~ und Paketoptionen sowie Parametern nach dem + Schlüssel"=Wert"=Prinzip. Mit diesem Paket kann das Verhalten für unbekannte + Schlüssel festgelegt werden. +\item[etoolbox,xpatch,letltxmacro,etexcmds] + Diese Pakete stellen viele Funktionen zum Testen und zur Ablaufkontrolle + bereit. Weiterhin wird das Manipulieren vorhandener Makros ermöglicht. \item[environ] \index{Befehlsdeklaration}% Es wird eine verbesserte Deklaration von Umgebungen ermöglicht, bei der auch beim Abschluss der Umgebung auf die übergebenen Parameter zugegriffen werden - kann. Dies wird die Neugestaltung der \Environment{abstract}"=Umgebung - benötigt. + kann. +\item[trimspaces] + Bei mehreren Eingabefeldern für den Anwender werden die Argumente mithilfe + dieses Paketes um eventuell angegebene, unnötige Leerzeichen befreit. \end{packages} % -Möchten Sie eines der hier aufgezählten Pakete selber nutzen, es jedoch mit -bestimmten Optionen laden, so sollten diese bereits \emph{vor} der Definition -der Dokumentklasse an das Paket weitergereicht werden, falls bei der -Beschreibung nichts anderweitiges angegeben worden ist. -% -\begin{Example} -Das Weiterreichen von Optionen an Pakete muss folgendermaßen erfolgen: -\begin{Code}[escapechar=§] -\PassOptionsToPackage§\Parameter{Paketoptionen}\Parameter{Paket}§ -\documentclass§\OParameter{Klassenoptionen}\PParameter{tudscr\dots}§ -\end{Code} -\end{Example} -\subsection{Durch \TUDScript unterstütze Pakete} +\minisec{Durch \TUDScript direkt unterstütze Pakete} % Einige der unter \autoref{sec:packages:recommended} beschriebenen Pakete werden durch \TUDScript direkt unterstützt und erweitern dessen Funktionalität. Dies -sind namentlich \Package{hyperref}, \Package{isodate}, \Package{multicol}, -\Package{quoting}, \Package{ragged2e} und \Package{crop}. Weitere Informationen -dazu ist den nachfolgenden Beschreibung des jeweiligen Paketes zu entnehmen. +sind namentlich \Package{hyperref}, \Package{multicol}, \Package{quoting}, +\Package{ragged2e} und \Package{crop} sowie \Package{isodate} respektive +\Package{datetime2}. Weitere Informationen dazu ist den nachfolgenden +Beschreibung des jeweiligen Paketes zu entnehmen. @@ -139,37 +135,36 @@ dies in keinem Fall. \subsection{Pakete zur Verwendung in jedem Dokument} Die hier vorgestellten Pakete gehören meiner Meinung nach in die Präambel eines -jeden Dokumentes. Egal, in welcher Sprache das Dokument verfasst wird, sollte -diese mit dem Paket \Package{babel} definiert werden~-- auch wenn dies -Englisch ist. Für deutschsprachige Dokumente ist für eine annehmbare -Worttrennung das Paket \Package{hyphsubst} unbedingt zu verwenden. +jeden Dokumentes. Die Dokumentsprache sollte in jedem Fall mit \Package{babel} +oder \Package{polyglossia} definiert werden~-- auch wenn dies Englisch ist. Für +deutschsprachige Dokumente ist für eine annehmbare Worttrennung beim Einsatz +von \Engine{pdfLaTeX} das Paket \Package{hyphsubst} unbedingt zu verwenden. \begin{packages} -\item[fontenc] +\item[fontenc,fontspec] \index{Zeichensatzkodierung}% - Das Paket erlaubt Festlegung der Zeichensatzkodierung des Ausgabefonts. Als - Voreinstellung ist die Ausgabe als 7"~bit kodierte Schrift gewählt, was unter - anderem dazu führt, dass keine echten Umlaute im erzeugten PDF"~Dokument - verwendet werden. Um auf 8"~bit"~Schriften zu schalten, ist - \Macro*{usepackage}[\POParameter{T1}\PParameter{fontenc}] zu nutzen. -\item[selinput,inputenc] - \index{Eingabekodierung}% - \index{Minimalbeispiel|?}% - Hiermit erfolgt die (automatische) Festlegung der Eingabekodierung. Diese ist - vom genutzten \hyperref[sec:tips:editor]{Editors (\autoref{sec:tips:editor})} - und den darin gewählten Einstellung abhängig. Mit: - \begin{Code} - \usepackage{selinput} - \SelectInputMappings{adieresis={ä},germandbls={ß}} - \end{Code}\vspace{-\baselineskip}% - wird es verwendet. Dies macht den Quelltext zum einen für unterschiedliche - Betriebssystem portabel und es kann beispielsweise einfach via Copy~\&~Paste - ein \hrfn{http://www.komascript.de/minimalbeispiel}{Minimalbeispiel} bei - Problemstellungen in einem Forum bereitgestellt werden. Alternativ dazu lässt - sich mit dem Paket \Package{inputenc} - (\Macro*{usepackage}[\OParameter{Eingabekodierung}\PParameter{inputenc}]) - die Eingabekodierung manuell einstellen. Das Paket \Package{fontenc} sollte - in jedem Fall \emph{zuvor} geladen werden. + \ChangedAt{v2.02:\RecPack \Package{fontspec}} + Die Zeichensatzkodierung des Ausgabefonts sollte immer festgelegt werden. Für + \Engine{pdfLaTeX} ist die Ausgabe als 7"~bit"~kodierte Schrift in der + Voreinstellung gewählt, was unter anderem dazu führt, dass keine echten + Umlaute im erzeugten PDF"~Dokument verwendet werden. Um auf 8"~bit"~Schriften + zu schalten, ist \Macro*{usepackage}[\POParameter{T1}\PParameter{fontenc}] zu + nutzen. + + Für die Unicode"=Textsatzsysteme \Engine{LuaLaTeX} oder \Engine{XeLaTeX} + sollte stattdessen das Paket \Package{fontspec} verwendet werden. Damit + können Systemschriften im OpenType-Format und einer beliebigen + Zeichensatzkodierung eingebunden werden, womit sich die Auswahl der + verwendbaren Schriften stark erweitert. Das Paket wird durch \TUDScript + unterstützt. +\item[microtype] + \index{Typografie}% + Dieses Paket kümmert sich um den optischen Randausgleich% + \footnote{englisch: protrusion, margin kerning} + und das Nivellieren der Wortzwischenräume% + \footnote{englisch: font expansion} + im Dokument. Es funktioniert nicht mit der klassischen \Engine*{TeX}"~Engine, + wohl jedoch mit \Engine*{pdfTeX} oder \Engine*{LuaTeX} sowie \Engine*{XeTeX}. \item[babel,polyglossia] \index{Sprachunterstützung}% \index{Bezeichner}% @@ -187,27 +182,20 @@ Worttrennung das Paket \Package{hyphsubst} unbedingt zu verwenden. \Package{ngerman} anstelle von \Package{babel} wird abgeraten. Für \Engine{LuaLaTeX} und \Engine{XeLaTeX} kann das Paket \Package{polyglossia} genutzt werden. -\item[microtype] - \index{Typografie}% - Dieses Paket kümmert sich um den optischen Randausgleich% - \footnote{englisch: protrusion, margin kerning} - und das Nivellieren der Wortzwischenräume% - \footnote{englisch: font expansion} - im Dokument. Es funktioniert nicht mit der klassischen \Engine*{TeX}"=Engine, - wohl jedoch mit \Engine{pdfTeX} als auch \Engine{LuaTeX} sowie \Engine{XeTeX}. \item[hyphsubst,dehyph-exptl] \index{Worttrennung|!}% Die möglichen Trennstellen von Wörtern wird von \hologo{LaTeX} mithilfe eines Algorithmus berechnet. Dieser wird für deutschsprachige Texte mit dem - Paket \Package{hyphsubst} entscheidend verbessert. Es muss bereits \emph{vor} - der Dokumentklasse wie folgt geladen werden: + Paket \Package{hyphsubst} entscheidend verbessert. \Engine{LuaLaTeX} und + \Engine{XeLaTeX} nutzen diese Trennmuster automatisch, für \Engine{pdfLaTeX} + müssen diese mit folgendermaßen eingebunden werden: \begin{Code}[escapechar=§] - \RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} \end{Code}\vspace{-\baselineskip}% In \autoref{sec:tips:hyphenation} wird genauer auf das Zusammenspiel von - \Package{hyphsubst} und \Package{babel} sowie \Package{fontenc} eingegangen, + \Package{hyphsubst} und \Package{babel} sowie \Package{fontenc} eingegangen, ein Blick dahin wird dringend empfohlen. Zusätzliche werden dort weitere - Hinweise für eine verbesserte Worttrennung gegeben. + Hinweise für eine verbesserte Worttrennung gegeben. \end{packages} @@ -218,6 +206,7 @@ werden sondern nur, falls dies auch tatsächlich notwendig ist. Zur besseren sich keinerlei Wertung bezüglich ihrer Nützlichkeit oder meiner persönlichen Wertschätzung ableiten. + \subsubsection{Typografie und Layout} \index{Typografie|(}% % @@ -257,11 +246,11 @@ die Makrotypografie adressieren. vielmehr allein der Lesbarkeit des Textes dient und möglichst gering ausfallen sollte. - Ziel ist es, beim Lesen nach dem Beenden der aktuellen Zeile das Auffinden - der neuen Zeile zu vereinfachen. Bei Serifen ist dies durch die Betonung der - Grundlinie sehr gut möglich. Bei serifenlosen Schriften~-- wie der im \TUDCD - verwendeten \Univers~-- ist dies schwieriger und ein erweiterter Abstand der - Zeilen kann dabei durchaus hilfreich sein. Jedoch sollte nicht nach dem Motto + Ziel ist es, beim Lesen nach dem Beenden einer Zeile das Auffinden der neuen + Zeile zu vereinfachen. Bei Serifen ist dies durch die Betonung der Grundlinie + sehr gut möglich. Bei serifenlosen Schriften~-- wie der im \TUDCD verwendeten + \OpenSans~-- ist dies schwieriger und ein erweiterter Abstand der Zeilen kann + hierbei hilfreich sein. Jedoch sollte nicht nach dem Motto \enquote{viel hilft viel} verfahren werden. Für dieses Dokument wurde \Macro{setstretch}[\PParameter{1.1}](\Package{setspace})'none' für den Zeilenabstand gewählt. Weitere Tipps sind in \autoref{sec:tips:headings} und @@ -280,18 +269,21 @@ die Makrotypografie adressieren. Dieses Paket ermöglicht einen Spaltenausgleich im zweispaltigen Satz auf der letzten Dokumentseite. Alternativ dazu kann auch \Package{multicol} verwendet werden. -\item[isodate] +\item[isodate,datetime2] \index{Datum|?}% Mit \Macro{printdate}[\Parameter{Datum}](\Package{isodate})'none' formatiert - dieses Paket die Ausgabe eines Datums automatisch in ein spezifiziertes - Format. Wird es geladen, werden alle Datumsfelder, welche durch die + das Paket \Package{isodate} die Ausgabe eines Datums automatisch in ein + spezifiziertes Format. Die Datumsangabe kann dabei im deutschen, englischen + oder ISO"~Format erfolgen. Alternativ kann auch das Paket \Package{datetime2} + genutzt werden, welches zwingend die Eingabe im ISO"~Format erfordert. Wird + eines der beiden Pakete geladen, werden alle Datumsfelder, welche durch die \TUDScript-Klassen definiert wurden,% \footnote{% \Macro{date}, \Macro{dateofbirth} und \Macro{defensedate} sowie aus \Package{tudscrsupervisor} \Macro{duedate}(\Package{tudscrsupervisor}) und \Macro{issuedate}(\Package{tudscrsupervisor})% } - in diesem Format ausgegeben. + im durch das jeweilige Paket definierten Ausgabeformat ausgegeben. \item[quoting] \index{Zitate}% \hologo{LaTeX} bietet von Haus aus \emph{zwei} verschiedene Umgebungen~-- @@ -302,10 +294,6 @@ die Makrotypografie adressieren. ignoriert. Mit der Umgebung \Environment{quoting}(\Package{quoting})'none' aus dem gleichnamigen Paket lässt sich dieses Problem umgehen. Wird das Paket geladen, wird diese innerhalb der \Environment{abstract}"=Umgebung verwendet. -\item[ragged2e] - \index{Worttrennung}% - Das Paket verbessert den Flattersatz, indem für diesen die Worttrennung - aktiviert wird. \item[csquotes] \index{Zitate}% Das Paket stellt unter anderem den Befehl @@ -319,6 +307,10 @@ die Makrotypografie adressieren. \ChangedAt{v2.02:\RecPack \Package{noindentafter}} Mit diesem Paket lassen sich automatische Absatzeinzüge für selbst zu bestimmende Befehle und Umgebungen unterdrücken. +\item[ragged2e] + \index{Worttrennung}% + Das Paket verbessert den Flattersatz, indem für diesen die Worttrennung + aktiviert wird. \item[fnpct] \index{Fußnoten|?}% \ChangedAt{v2.05:\RecPack \Package{fnpct}} @@ -340,16 +332,15 @@ die Makrotypografie adressieren. unerwünscht sein. Mit dem Paket \Package{ellipsis} wird das nachfolgende Leerzeichen~-- im Gegensatz zum Standardverhalten~-- nur gesetzt, wenn ein Satzzeichen und kein Buchstabe folgt, \seeref*{\autoref{sec:tips:dots}}. -\stditem[\Application{DeLig}<delig>,\Package{selnolig}] +\stditem[\Application{DeLig}<delig>, \Package{selnolig}] \index{Ligaturen}% Hierbei handelt es sich um ein Java"~Script, das anhand eines Wörterbuches - falsche Ligaturen innerhalb eines Dokumentes automatisiert entfernt. Wird - \Univers verwendet ist dies jedoch nicht notwendig, da diese keinerlei - Ligaturen enthält, die insbesondere in deutschen Texten für einen guten Satz - manuell aufgelöst werden müssten.% + falsche Ligaturen innerhalb eines Dokumentes automatisiert entfernt. Diese + müssten~-- insbesondere in deutschen Texten aufgrund der vielen Komposita~-- + für einen guten Satz manuell aufgelöst werden.% \footnote{% Das sind \enquote{ff}, \enquote{fi}, \enquote{fl}, \enquote{ffi}, und - \enquote{ffl} bei den \hologo{LaTeX}"=Standardschriften.% + \enquote{ffl} bei den meisten \hologo{LaTeX}"=Schriften.% } Mit \Engine{LuaLaTeX} als Textsatzsystem kann auch \Package{selnolig} alternativ dazu verwendet werden. @@ -408,24 +399,6 @@ widmen. Diese sind jedoch ausschließlich nutzbar, wenn als Textsatzsystem \Macro*{usepackage}[\POParameter{libertine}\PParameter{newtxmath}] in der Präambel eingebunden werden. Das Paket \Package{libgreek} enthält griechische Buchstaben für Linux~Libertine. -\item[mweights] - \index{Schriftstärke}% - In \hologo{LaTeXe} existieren die Schriftfamilien für Serifenschriften - (\Macro*{rmfamily}), serifenlose Schriften (\Macro*{sffamily}) sowie die - Schreibmaschinenschriften (\Macro*{ttfamily}). Deren Schriftstärke wird für - gewöhnlich mit den beiden Befehlen \Macro*{mddefault} und \Macro*{bfdefault} - einheitlich festgelegt. Bei der Verwendung unterschiedlicher Schriftpakete - kann es unter Umständen zu Problemen bei den Schriftstärken kommen. Das Paket - \Package{mweights} erlaubt die individuelle Definition der Schriftstärke für - jede der drei Schriftfamilien. -\item[fontspec] - \index{Zeichensatzkodierung}% - \ChangedAt{v2.02:\RecPack \Package{fontspec}} - Wird als Textsatzsystem nicht \Engine{pdfLaTeX} sondern \Engine{XeLaTeX} - oder \Engine{LuaLaTeX} verwendet, können mit diesem Paket Systemschriften im - OpenType"~Format und einer beliebigen Zeichensatzkodierung eingebunden - werden, womit sich die Auswahl der verwendbaren Schriften stark erweitert. - Das Paket wird durch \TUDScript unterstützt. \item[relsize] \index{Schriftgröße}% Die Größe einer Textauszeichnung kann relativ zur aktuellen Schriftgröße @@ -458,6 +431,7 @@ verwiesen. Fließtext alle notwendigen Zeichen für den Mathematiksatz zu extrahieren. \end{packages} + \subsubsection{Mathematiksatz} Dies sind Pakete, die Umgebungen und Befehle für den Mathematiksatz sowie das Setzen von Einheiten und Zahlen im Allgemeinen anbieten. @@ -468,25 +442,9 @@ Setzen von Einheiten und Zahlen im Allgemeinen anbieten. für Mathematikumgebungen Bugfixes zur Verfügung und erweitert dieses. \item[bm] Das Paket bietet mit \Macro*{bm} eine Alternative zu \Macro*{boldsymbol} im - \hrfn{http://tex.stackexchange.com/questions/3238}{Mathematiksatz}. -\end{packages} -% -Für das typografisch korrekte Setzen von Einheiten~-- ein halbes Leerzeichen -zwischen Zahl und \emph{aufrecht} gesetzter Einheit~-- gibt es zwei gut -nutzbare Pakete. -% -\begin{packages} -\index{Einheiten|(}% -\item[units] - Dies ist ein einfaches und sehr zweckdienliches Paket zum Setzen von - Einheiten und für die meisten Anforderungen völlig ausreichend. -\item[siunitx] - Dieses Paket ist in seinem Umfang im Vergleich deutlich erweitert. Neben - Einheiten können zusätzlich auch Zahlen typografisch korrekt gesetzt werden. - Die Ausgabe lässt sich in vielerlei Hinsicht an individuelle Bedürfnisse - anpassen. Für deutschsprachige Dokumenten sollte die Lokalisierung angegeben - werden. Mehr dazu in \autoref{sec:tips:siunitx}. -\index{Einheiten|)}% + \hrfn{http://tex.stackexchange.com/questions/3238}{Mathematiksatz}. Sollten + bei der Nutzung des Paketes Fehler auftreten, sei auf dessen Dokumentation + und insbesondere auf das Makro \Macro*{bmmax} verwiesen. \end{packages} % Die korrekte Formatierung von Zahlen ist häufig ein Problem bei der Verwendung @@ -497,6 +455,10 @@ Dennoch gibt es zu diesem auch Alternativen. % \begin{packages} \index{Zifferngruppierung|(}% + \item[ionumbers] + Dieses Paket ist mir tatsächlich erst bei der Arbeit an \Package{mathswap} + bekannt geworden. Es bietet mehr Funktionalitäten und kann als Alternative + dazu betrachtet werden. \item[icomma] Wird im Mathematikmodus nach dem Komma ein Leerzeichen gesetzt, wird dies bei der Ausgabe beachtet. Der Verfasser muss sich demzufolge jederzeit @@ -506,17 +468,51 @@ Dennoch gibt es zu diesem auch Alternativen. zwischen zwei Ziffern definiert. Folgt dem Komma keine Ziffer, wird jederzeit der obligatorische Freiraum gesetzt, was meiner Meinung nach besser als das Verhalten von \Package{icomma} ist. - \item[ionumbers] - Dieses Paket ist mir tatsächlich erst bei der Arbeit an \Package{mathswap} - bekannt geworden. Es bietet mehr Funktionalitäten und kann als Alternative - dazu betrachtet werden. \index{Zifferngruppierung|)}% \end{packages} % -Weitere Hinweise und Anwendungsfälle zur mathematischen Typografie werden in -\autoref{sec:tut} gegeben. +Für das typografisch korrekte Setzen von Einheiten~-- ein halbes Leerzeichen +zwischen Zahl und \emph{aufrecht} gesetzter Einheit~-- gibt es zwei gut +nutzbare Pakete. +% +\begin{packages} +\index{Einheiten|(}% +\item[units] + Dies ist ein einfaches und sehr zweckdienliches Paket zum Setzen von + Einheiten und für die meisten Anforderungen völlig ausreichend. +\item[siunitx] + Dieses Paket ist in seinem Umfang im Vergleich deutlich erweitert. Neben + Einheiten können zusätzlich auch Zahlen typografisch korrekt gesetzt werden. + Die Ausgabe lässt sich in vielerlei Hinsicht an individuelle Bedürfnisse + anpassen. Für deutschsprachige Dokumenten sollte die Lokalisierung angegeben + werden. Mehr dazu in \autoref{sec:tips:siunitx}. +\index{Einheiten|)}% +\end{packages} +% +Weitere Hinweise zur mathematischen Typografie werden in \autoref{sec:tut} +gegeben. \index{Mathematiksatz|)}% + +\subsubsection{Listen} +\index{Listen|?(}% +% +\begin{packages} +\item[enumitem] + Das Paket \Package{enumitem} erweitert die rudimentären Funktionalitäten der + \hologo{LaTeX}"=Standardlisten + \Environment{itemize}(\Package{koma-script},\Package{enumitem})'none', + \Environment{enumerate}(\Package{koma-script},\Package{enumitem})'none' sowie + \Environment{description}(\Package{koma-script},\Package{enumitem})'none' und + ermöglicht die individuelle Anpassung dieser durch die Bereitstellung vieler + optionale Parameter nach dem Schlüssel"=Wert"=Prinzip. Eine von mir sehr + häufig genutzte Funktion ist beispielsweise die Entfernung des zusätzlichen + Abstand zwischen den einzelnen Einträgen einer Liste mit + \Macro{setlist}[\PParameter{noitemsep}](\Package{enumitem})'none'. +\end{packages} +\index{Listen|?)}% + + \subsubsection{Verzeichnisse aller Art} \index{Verzeichnisse|?(}% % @@ -543,14 +539,6 @@ sei auf das Paket \Package{listings}'full' verwiesen. UTF"~8"~kodierten Literaturdatenbank problemlos möglich. In Verbindung mit \Package{biblatex} wird die zusätzliche Nutzung des Paketes \Package{csquotes} sehr empfohlen. -\item[acro,acronym] - \index{Abkürzungsverzeichnis}% - Soll lediglich ein Abkürzungsverzeichnis erstellt werden, ist dieses Paket - die erste Wahl. Es stellt Befehle zur Definition von Abkürzungen sowie zu - deren Verwendung im Text und zur sortierten Ausgabe eines Verzeichnisses - bereit. Alternativ dazu kann das Paket \Package{acronym} verwendet werden. - Die Sortierung des Abkürzungsverzeichnisses muss hier allerdings manuell - durch den Anwender erfolgen. \item[glossaries,nomencl] \index{Glossar}% \index{Abkürzungsverzeichnis}% @@ -559,43 +547,87 @@ sei auf das Paket \Package{listings}'full' verwiesen. Dies ist ein sehr mächtiges Paket zum Erstellen eines Glossars sowie Abkürzungs- und Symbolverzeichnisses. Die mannigfaltige Anzahl an Optionen ist zu Beginn eventuell etwas abschreckend. Insbesondere wenn Verzeichnisse - für Abkürzungen \emph{und} Formelzeichen beziehungsweise Symbole notwendig - sind, sollte dieses Paket in Erwägung gezogen werden. + für Abkürzungen \emph{und} Formelzeichen respektive Symbole notwendig sind, + sollte dieses Paket in Erwägung gezogen werden. Alternativ dazu kann für ein Symbolverzeichnis auch lediglich eine manuell gesetzte Tabelle genutzt werden. Das hierfür sehr häufig empfohlene Paket \Package{nomencl} bietet meiner Meinung nach demgegenüber keinerlei Vorteile. +\item[acro,acronym] + \index{Abkürzungsverzeichnis}% + Soll lediglich ein Abkürzungsverzeichnis erstellt werden, ist dieses Paket + die erste Wahl. Es stellt Befehle zur Definition von Abkürzungen sowie zu + deren Verwendung im Text und zur sortierten Ausgabe eines Verzeichnisses + bereit. Alternativ dazu kann das Paket \Package{acronym} verwendet werden. + Die Sortierung des Abkürzungsverzeichnisses muss hier allerdings manuell + durch den Anwender erfolgen. \index{Verzeichnisse|?)}% \end{packages} -\subsubsection{Listen} -\index{Listen|?(}% +\subsubsection{Gleitobjekte} +\index{Gleitobjekte|?(}% % +Es werden Pakete für die Beeinflussung von Aussehen, Beschriftung und +Positionierung von Gleitobjekten vorgestellt. Unter \autoref{sec:tips:floats} +sind außerdem Hinweise zur manuellen Manipulation der Gleitobjektplatzierung zu +finden. + \begin{packages} -\item[enumitem] - Das Paket \Package{enumitem} erweitert die rudimentären Funktionalitäten der - \hologo{LaTeX}"=Standardlisten - \Environment{itemize}(\Package{koma-script},\Package{enumitem})'none', - \Environment{enumerate}(\Package{koma-script},\Package{enumitem})'none' sowie - \Environment{description}(\Package{koma-script},\Package{enumitem})'none' und - ermöglicht die individuelle Anpassung dieser durch die Bereitstellung vieler - optionale Parameter nach dem Schlüssel"=Wert"=Prinzip. Eine von mir sehr - häufig genutzte Funktion ist beispielsweise die Entfernung des zusätzlichen - Abstand zwischen den einzelnen Einträgen einer Liste mit - \Macro{setlist}[\PParameter{noitemsep}](\Package{enumitem})'none'. -\index{Listen|?)}% +\item[caption] + Mit der Option \Option{captions=\PSet}(\Package{koma-script})'none'|declare| + bieten die \KOMAScript-Klassen bereits einige Möglichkeiten zum Formatieren + der Beschriftungen für Gleitobjekte. Dieses Paket ist daher meist nur in + gewissen Ausnahmefällen für spezielle Anweisungen notwendig, allerdings auch + bei der Verwendung unbedenklich. +\item[subcaption] + Diese Paket kann zum einfachen Setzen von Unterabbildungen oder "~tabellen + mit den entsprechenden Beschriftungen genutzt werden. Das dazu alternative + Paket \Package{subfig} sollte vermieden werden, da es nicht mehr gepflegt + wird und es mit diesem im Zusammenspiel mit anderen Paketen des Öfteren zu + Problemen kommt. Sollte der Funktionsumfang von \Package{subcaption} nicht + ausreichen, kann anstelle dessen das Paket \Package{floatrow} verwendet + werden, welches ähnliche Funktionalitäten wie \Package{subfig} bereitstellt. +\item[floatrow] + Mit diesem Paket können global wirksame Einstellungen und Formatierungen für + \emph{alle} Gleitobjekte eines Dokumentes über die Paketoptionen oder mit + \Macro{floatsetup}[\PParameter{\dots}](\Package{floatrow})'none' vorgenommen + werden. So lässt sich unter anderem die verwendete Schrift innerhalb der + Umgebungen \Environment{figure} und \Environment{table} mit + \Macro*{floatsetup}[\PParameter{font=\dots}] einstellen. Mit + \begin{Code} + \floatsetup[figure]{capposition=bottom} + \floatsetup[table]{capposition=top} + \end{Code}\vspace{-\baselineskip}% + lässt sich automatisch das typografisch korrekte Setzen von + Abbildungs\emph{unterschriften} sowie Tabellen\emph{überschriften} + erzwingen~-- unabhängig von der Position des Befehls zur Beschriftung + \Macro{caption}(\Package{koma-script},\Package{caption})'none' + innerhalb der jeweiligen Gleitobjektumgebung. Wird das Verhalten wie + empfohlen eingestellt, sollte für eine gute vertikale Platzierung der + Tabellenüberschriften zusätzlich die + \KOMAScript-Option \Option{captions=tableheading}(\Package{koma-script})'none' + genutzt werden. +\item[placeins] + Mit diesem Paket kann die Ausgabe von Gleitobjekten vor Kapiteln und wahlweise + Unterkapiteln erzwungen werden. +\item[flafter] + Dieses Paket erlaubt die frühestmögliche Platzierung von Gleitobjekten im + ausgegeben Dokument erst an der Stelle ihres Auftretens im Quelltext. Diese + werden dementsprechend nie vor ihrer Definition am Anfang der Seite + erscheinen. \end{packages} +\index{Gleitobjekte|?)}% + \subsubsection{Tabellen} \index{Tabellen|?(}% % -Für den Tabellensatz in \hologo{LaTeX} werden von Haus aus die Umgebungen -\Environment{tabbing} und \Environment{tabular} beziehungsweise -\Environment{tabular*} bereitgestellt, welche in ihrer Funktionalität meist -für einen qualitativ hochwertigen Tabellensatz nicht ausreichen. Es werden -deshalb Pakete vorgestellt, die sich zusätzlich verwenden lassen. +Für den Tabellensatz werden standardmäßig die Umgebungen \Environment{tabbing} +und \Environment{tabular} respektive \Environment{tabular*} bereitgestellt, +welche in ihrer Funktionalität für einen qualitativ hochwertigen Tabellensatz +meist nicht ausreichen. Deshalb werden hier zusätzliche Pakete vorgestellt. % \begin{packages} \item[array] @@ -603,18 +635,8 @@ deshalb Pakete vorgestellt, die sich zusätzlich verwenden lassen. Erstellen neuer Spaltentypen und die erweiterte Definition von Tabellenspalten (\PValue{>\PParameter{\dots}}\PName{Spaltentyp}\PValue{<\PParameter{\dots}}), wobei mithilfe sogenannter \enquote{Hooks} vor und nach Einträgen innerhalb - einer Spalte gezielt Anweisungen gesetzt werden können. Außerdem kann die - Zeilenhöhe einer Tabelle mit \Macro{extrarowheight}(\Package{array})'none' - angepasst werden. -\item[multirow] - Es wird der Befehl \Macro{multirow}(\Package{multirow})'none' definiert, der - das Zusammenfassen von mehreren Zeilen in einer Spalte ermöglicht~-- ähnlich - zum Makro \Macro{multicolumn} für Spalten. -\item[widetable] - Mit der Standard"=\hologo{LaTeX}"=Umgebung \Environment{tabular*} kann eine - Tabelle mit einer definierten Breite gesetzt werden. Dieses Paket stellt die - Umgebung \Environment{widetable}(\Package{widetable})'none' zur Verfügung, - die als Alternative genutzt werden kann und eine symmetrische Tabelle erzeugt. + einer Spalte gezielt Anweisungen gesetzt werden können. Die Zeilenhöhe lässt + sich mit \Macro{extrarowheight}(\Package{array})'none' ändern. \item[booktabs] Für einen guten Tabellensatz mit \hologo{LaTeX} gibt es bereits zahlreiche \hrfn{http://userpage.fu-berlin.de/latex/Materialien/tabsatz.pdf}{Tipps} im @@ -632,19 +654,11 @@ deshalb Pakete vorgestellt, die sich zusätzlich verwenden lassen. \Macro{cmidrule}(\Package{booktabs})'none' und \Macro{bottomrule}(\Package{booktabs})'none' für unterschiedliche horizontale Linien bereit. -\item[tabularborder] - Bei Tabellen wird zwischen Spalten automatisch ein horizontaler Abstand - (\Length{tabcolsep}) gesetzt~-- besser gesagt jeweils vor und nach einer - Spalte. Dies geschieht auch \emph{vor} der ersten und \emph{nach} der letzten - Spalte. Dieser zusätzliche Platz an den äußeren Rändern kann störend wirken, - insbesondere wenn die Tabelle über die komplette Textbreite gesetzt wird. Mit - dem Paket \Package{tabularborder} kann dieser Platz automatisch entfernt - werden. - - Dies funktioniert allerdings nur mit der \Environment{tabular}"=Umgebung. - Die Tabellen aus den Paketen \Package{tabularx}, \Package{tabulary} und - \Package{tabu} werden nicht unterstützt. Wie dieser Abstand bei diesen - manuell entfernt werden kann, ist unter \autoref{sec:tips:table} zu finden. +\item[widetable] + Mit der Standard"=\hologo{LaTeX}"=Umgebung \Environment{tabular*} kann eine + Tabelle mit einer definierten Breite gesetzt werden. Dieses Paket stellt die + Umgebung \Environment{widetable}(\Package{widetable})'none' zur Verfügung, + die als Alternative genutzt werden kann und eine symmetrische Tabelle erzeugt. \item[tabularx] Auch mit diesem Paket kann die Gesamtbreite einer Tabelle spezifiziert werden. Dafür wird der Spaltentyp \PValue{X} definiert, welcher als Argument @@ -652,28 +666,41 @@ deshalb Pakete vorgestellt, die sich zusätzlich verwenden lassen. häufig angegeben werden kann (\Macro*{begin}[\PParameter{tabularx}\Parameter{Breite}\Parameter{Spalten}]). Die \PValue{X}"~Spalten ähneln denen vom Typ~\PValue{p}\Parameter{Breite}, - wobei die Breite dieser aus der gewünschten Tabellengesamtbreite und dem - benötigten Platz der gegebenenfalls vorhandenen Standardspalten automatisch - berechnet wird. + wobei die Breite dieser aus der gewünschten Tabellengesamtbreite abzüglich + dem benötigten Platz der gegebenenfalls vorhandenen Standardspalten + automatisch berechnet wird. \item[tabulary] Dies ist ein weiteres Paket zur automatischen Berechnung von Spaltenbreiten. Der zur Verfügung stehende Platz~-- gewünschte Gesamtbreite abzüglich der - notwendigen Breite für die Standardspalten~-- wird jedoch nicht wie bei der - Umgebung \Environment{tabularx}(\Package{tabularx})'none' auf alle Spalten + notwendigen Breite für Standardspalten~-- wird jedoch nicht wie bei der + \Environment{tabularx}(\Package{tabularx})'none' auf alle Spalten gleichmäßig verteilt sondern in der \Environment{tabulary}(\Package{tabulary})'none'"=Umgebung für die Spaltentypen~\PValue{LCRJ} anhand ihres Zellinhaltes gewichtet vergeben. (\Macro*{begin}[\PParameter{tabulary}\Parameter{Breite}\Parameter{Spalten}]). -\item[longtable,ltablex] +\item[longtable,ltxtable,ltablex] Sollen mehrseitige Tabellen mit Seitenumbruch erstellt werden, ist dieses Paket das Mittel der ersten Wahl. Für die Kombination mehrseitiger Tabellen mit einer \Environment{tabularx}(\Package{tabularx})'none'"=Umgebung können die Pakete \Package{ltablex} oder besser noch \Package{ltxtable} verwendet + werden. Alternativ dazu lässt sich auch \Package{tabu} nutzen. +\item[multirow] + Es wird der Befehl \Macro{multirow}(\Package{multirow})'none' definiert, der + das Zusammenfassen von mehreren Zeilen in einer Spalte ermöglicht~-- ähnlich + zum Makro \Macro{multicolumn} für Spalten. +\item[tabularborder] + Bei Tabellen wird zwischen Spalten automatisch ein horizontaler Abstand + (\Length{tabcolsep}) gesetzt~-- besser gesagt jeweils vor und nach einer + Spalte. Dies geschieht auch \emph{vor} der ersten und \emph{nach} der letzten + Spalte. Dieser zusätzliche Platz an den äußeren Rändern kann störend wirken, + insbesondere wenn die Tabelle über die komplette Textbreite gesetzt wird. Mit + dem Paket \Package{tabularborder} kann dieser Platz automatisch entfernt werden. -\item[ltxtable] - Wie bereits erwähnt sollte dieses Paket für mehrseitige Tabellen, die mit der - Umgebung \Environment{tabularx}(\Package{tabularx})'none' erstellt wurden, - verwendet werden. Alternativ dazu lässt sich auch \Package{tabu} nutzen. + + Dies funktioniert allerdings nur mit der \Environment{tabular}"=Umgebung. + Die Tabellen aus den Paketen \Package{tabularx}, \Package{tabulary} und + \Package{tabu} werden nicht unterstützt. Wie dieser Abstand bei diesen + manuell entfernt werden kann, ist unter \autoref{sec:tips:table} zu finden. \item[tabu] \ChangedAt{% v2.02:\RecPack \Package{tabu} ist nur bedingt empfehlenswert @@ -686,71 +713,24 @@ deshalb Pakete vorgestellt, die sich zusätzlich verwenden lassen. als Ersatz für das Paket \Package{ltxtable} empfehlenswert. \Attention{% - Leider wären für das Paket in der Version~v2.8 seit geraumer Zeit ein paar - Bugfixes notwendig. Außerdem wird sich die + Für das Paket in der Version~v2.8 wären seit einigen Jahren mehrere + Bugfixes notwendig. Der originäre Autor hatte außerdem die Änderung der \hrfn{https://groups.google.com/d/topic/comp.text.tex/xRGJTC74uCI}{% Benutzerschnittstelle in einer zukünftigen Version% } - sehr stark ändern. Der Anwender sollte sich zumindest bewusst sein, dass er - mit der Version~v2.8 gesetzte Dokumente gegebenenfalls später anpassen muss. + angekündigt, anscheinend aber mittlerweile die Pflege des Paketes komplett + eingestellt. }% -\index{Tabellen|?)}% -\end{packages} - - - -\subsubsection{Gleitobjekte} -\index{Gleitobjekte|?(}% -% -Es werden Pakete für die Beeinflussung von Aussehen, Beschriftung und -Positionierung von Gleitobjekten vorgestellt. Unter \autoref{sec:tips:floats} -sind außerdem Hinweise zur manuellen Manipulation der Gleitobjektplatzierung zu -finden. - -\begin{packages} -\item[placeins] - Mit diesem Paket kann die Ausgabe von Gleitobjekten vor Kapiteln und wahlweise - Unterkapiteln erzwungen werden. -\item[flafter] - Dieses Paket erlaubt die frühestmögliche Platzierung von Gleitobjekten im - ausgegeben Dokument erst an der Stelle ihres Auftretens im Quelltext. Diese - werden dementsprechend nie vor ihrer Definition am Anfang der Seite - erscheinen. -\item[caption] - Mit der Option \Option{captions=\PSet}(\Package{koma-script})'none'|declare| - bieten die \KOMAScript-Klassen bereits einige Möglichkeiten zum Formatieren - der Beschriftungen für Gleitobjekte. Dieses Paket ist daher meist nur in - gewissen Ausnahmefällen für spezielle Anweisungen notwendig, allerdings auch - bei der Verwendung unbedenklich. -\item[subcaption] - Diese Paket kann zum einfachen Setzen von Unterabbildungen oder "~tabellen - mit den entsprechenden Beschriftungen genutzt werden. Das dazu alternative - Paket \Package{subfig} sollte vermieden werden, da es nicht mehr gepflegt - wird und es mit diesem im Zusammenspiel mit anderen Paketen des Öfteren zu - Problemen kommt. Sollte der Funktionsumfang von \Package{subcaption} nicht - ausreichen, kann anstelle dessen das Paket \Package{floatrow} verwendet - werden, welches ähnliche Funktionalitäten wie \Package{subfig} bereitstellt. -\item[floatrow] - Mit diesem Paket können global wirksame Einstellungen und Formatierungen für - \emph{alle} Gleitobjekte eines Dokumentes über die Paketoptionen oder mit - \Macro{floatsetup}[\PParameter{\dots}](\Package{floatrow})'none' - vorgenommen werden. So kann unter anderem die verwendete Schrift innerhalb - der Umgebungen \Environment{figure} und \Environment{table} eingestellt - werden (\Macro*{floatsetup}[\PParameter{font=\dots}]). Das typografisch - richtige Setzen von Abbildungs\textbf{unterschriften} - \Macro*{floatsetup}[\POParameter{figure}\PParameter{capposition=bottom}]) - sowie Tabellen\textbf{überschriften} - (\Macro*{floatsetup}[\POParameter{table}\PParameter{capposition=top}]) - kann automatisch erzwungen werden~-- unabhängig von der Position des Befehls - zur Beschriftung - \Macro{caption}(\Package{koma-script},\Package{caption})'none' - innerhalb der Gleitobjektumgebung. Wird das Verhalten so wie empfohlen mit - dem \Package{floatrow}"=Paket eingestellt, sollte für eine richtige - Platzierung der Tabellenüberschriften außerdem die \KOMAScript-Option - \Option{captions=tableheading}(\Package{koma-script})'none' - genutzt werden. -\index{Gleitobjekte|?)}% + + Durch Änderungen am \hologo{LaTeXe}"~Kernel wurde das Paket unbrauchbar. + Deshalb sind durch das \hrfn{https://github.com/tabu-fixed/tabu}{% + \hologo{LaTeX3}-Projektteam die allernötigsten Anpassungen% + } vorgenommen worden, damit das Paket in der aktuellen Version~v2.9 zumindest + grundsätzlich lauffähig ist. Ein Großteil der ursprünglich sehr guten + Funktionalitäten kann momentan allerdings nicht genutzt werden. Deshalb ist + das Paket aktuell nur bedingt empfehlenswert. \end{packages} +\index{Tabellen|?)}% \subsubsection{Grafiken und Abbildungen} @@ -769,9 +749,9 @@ und das Layout des Hauptdokumentes nutzen, gibt es zwei mögliche Ansätze. Entweder die Grafiken werden ähnlich wie das Dokument \enquote{programmiert} oder Zeichenprogramme, welche wiederum die Ausgabe oder das Weiterreichen von Text an \hologo{LaTeX} unterstützen, werden genutzt. -% Für das Programmieren von Grafiken sollen hier die wichtigsten Pakete -% vorgestellt werden. Wie diese zu verwenden sind, ist den dazugehörigen -% Paketdokumentationen zu entnehmen. +Für das Programmieren von Grafiken sollen hier die wichtigsten Pakete +vorgestellt werden. Wie diese zu verwenden sind, ist den dazugehörigen +Paketdokumentationen zu entnehmen. \begin{packages} \item[tikz]<pgf> @@ -779,20 +759,18 @@ Text an \hologo{LaTeX} unterstützen, werden genutzt. und sehr häufig~-- insbesondere bei Einsteigern~-- die erste Wahl bei der Verwendung von \Engine{pdfLaTeX}. \item[pstricks] - Das Paket \Package{pstricks} stellt die zweite Variante zum Programmieren - von Grafiken dar. Mit diesem Paket existieren \emph{noch} mehr Möglichkeiten - bei der Erstellung eigener Grafiken, da mit \Package{pstricks} auf PostScript - zugegriffen werden kann und einige der bereitgestellten Befehle davon rege - Gebrauch machen. Der daraus resultierende Nachteil ist, dass mit - \Package{pstricks} die direkte Verwendung von \Engine{pdfLaTeX} nicht - möglich ist. + Diese Paket stellt die zweite Variante zum Programmieren von Grafiken dar. + Da hiermit auf PostScript (direkt) zugegriffen werden kann, existieren + \emph{noch} mehr Möglichkeiten bei der Erstellung eigener Grafiken, wovon + die bereitgestellten Befehle rege Gebrauch machen. - Die Grafiken aus den Umgebungen - \Environment{pspicture}(\Package{pstricks})'none' müssen deshalb zunächst - über den Pfad \Path{latex \textrightarrow{} dvips \textrightarrow{} ps2pdf} - in PDF"~Dateien gewandelt werden. Diese lassen sich von \Engine{pdfLaTeX} - anschließend als Abbildungen einbinden. Um dieses Vorgehen zu ermöglichen, - können folgende Pakete genutzt werden: + Daraus resultiert allerdings der Nachteil, dass die mit \Package{pstricks} + erstellten Grafiken nicht direkt in eine PDF"~Datei kompiliert werden können. + Vielmehr müssen die Grafiken aus den Umgebungen + \Environment{pspicture}(\Package{pstricks})'none' zunächst über den Pfad + \Path{latex\,>\,dvips\,>\,ps2pdf} in PDF"~Dateien gewandelt werden. Diese + lassen sich von \Engine{pdfLaTeX} anschließend als Abbildungen einbinden. Um + dieses Vorgehen zu ermöglichen, lassen sich folgende Pakete nutzen: % \begin{packages} \item[pst-pdf] @@ -802,12 +780,12 @@ Text an \hologo{LaTeX} unterstützen, werden genutzt. die Ausgaberoutinen des verwendeten Editors durchgeführt werden. \item[auto-pst-pdf,pdftricks2] Das Paket automatisiert die Erzeugung der \Package{pstricks}"=Grafiken mit - dem Paket \Package{pst-pdf}. Dafür muss \Engine{pdfLaTeX} per Option mit - Schreibrechten ausgeführt werden. Dazu ist der Aufruf von \Path{pdflatex} - mit der Option \Path{-{}-shell-escape} respektive \Path{-{}-enable-write18} - notwendig. Bitte beachten Sie dazu ebenfalls die Hinweise in - \autoref{sec:tips:auto-pst-pdf}. Eine Alternative dazu ist das Paket - \Package{pdftricks2}. + dem Paket \Package{pst-pdf}. Hierfür muss \Engine{pdfLaTeX} per Option mit + erweiterten Schreibrechten ausgeführt werden. Dazu ist der Aufruf von + \Path{pdflatex} mit der Option \Path{-{}-shell-escape} respektive + \Path{-{}-enable-write18} notwendig. Bitte beachten Sie dazu ebenfalls die + Hinweise in \autoref{sec:tips:auto-pst-pdf}. Eine Alternative dazu ist das + Paket \Package{pdftricks2}. \end{packages} \end{packages} % @@ -865,9 +843,10 @@ weitere Informationen zu finden. Dieses Paket vereint die Vorzüge der automatischen Benennung referenzierter Objekte mit dem Befehl \Macro{autoref}(\Package{hyperref})'none' aus dem Paket \Package{hyperref} und der Verwendung von \Package{varioref}. +\end{packages} \index{Lesezeichen|?)}% \index{Querverweise|?)}% -\end{packages} + \subsubsection{Aufteilung des Hauptdokumentes in Unterdateien} Um während des Entwurfes eines Dokumentes die Zeitdauer für das Kompilieren zu @@ -905,96 +884,25 @@ hat den Vorteil, dass das Hauptdokument zum einen übersichtlich bleibt und Sie zum anderen Ihre persönliche Präambel generisch wachsen lassen und für andere Dokumente wiederverwenden können. + \subsubsection{Die kleinen und großen Helfer\dots} Hier taucht alles auf, was nicht in die vorherigen Kategorien eingeordnet werden konnte. % \begin{packages} -\item[crop] - \index{Beschnittzugabe}\index{Schnittmarken}% - Hiermit können eine Beschnittzugabe sowie Schnittmarken~-- beispielsweise für - Poster~-- erzeugt werden. Hierzu ist in \autoref{sec:tips:crop} ein Beispiel - zu finden. \item[marginnote] \index{Randnotizen}% - Randnotizen, welche mit \Macro{marginpar}(\Package{koma-script})'none' erzeugt - werden, sind spezielle Gleitobjekte in \hologo{LaTeX}. Das kann dazu führen, - dass eine Notiz am Blattrand nicht direkt an der ursprünglich intendierten - Stelle gesetzt wird. Das Paket \Package{marginnote} stellt den Befehl + Mit dem Befehl \Macro{marginpar}(\Package{koma-script})'none' lassen sich + Randnotizen erzeugen. Diese sind in \hologo{LaTeX} spezielle Gleitobjekte, + wodurch selbige nicht immer direkt an der ursprünglich intendierten Stelle am + Blattrand gesetzt werden. Das Paket \Package{marginnote} stellt den Befehl \Macro{marginnote}(\Package{marginnote})'none' für nicht"~gleitende - Randnotizen zur Verfügung. Das Paket \Package{mparhack} ist eine Alternative - dazu. + Randnotizen zur Verfügung. Eine Alternative dazu ist Paket \Package{mparhack}. \item[todonotes] \index{Randnotizen}% Mit \Package{todonotes} können noch offene Aufgaben in unterschiedlicher Formatierung am Blattrand oder im direkt Fließtext ausgegeben werden. Aus allen Anmerkungen lässt sich eine Liste aller offenen Punkte erzeugen. -\item[listings] - \index{Quelltextdokumentation}% - Dieses Paket eignet sich hervorragend zur Quelltextdokumentation in - \hologo{LaTeX}. Es bietet die Möglichkeit, externe Quelldateien einzulesen - und darzustellen sowie die Syntax in Abhängigkeit der verwendeten - Programmiersprache hervorzuheben. Zusätzlich lässt sich ein Verzeichnis mit - allen eingebundenen sowie direkt im Dokument angegebenen Quelltextauszügen - erstellen. - \ChangedAt{v2.02:\RecPack \Package{listings}} - Wird \Package{listings} in Dokumenten mit UTF"~8"~Kodierung verwendet, sollte - direkt nach dem Laden des Paketes in der Präambel Folgendes hinzugefügt - werden: - \begin{Code} - \lstset{% - inputencoding=utf8,extendedchars=true, - literate=% - {ä}{{\"a}}1 {ö}{{\"o}}1 {ü}{{\"u}}1 - {Ä}{{\"A}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1 - {~}{{\textasciitilde}}1 {ß}{{\ss}}1 - } - \end{Code}\vspace{-\baselineskip}% -\item[afterpage] - Der Befehl \Macro{afterpage}[\PParameter{\dots}](\Package{afterpage})'none' - kann genutzt werden, um den Inhalt aus dessen Argument direkt nach der - Ausgabe der aktuellen Seite auszuführen. -\item[pagecolor] - \index{Farben}% - Mit dem Paket kann die Hintergrundfarbe der Seiten im Dokument geändert - werden. -\item[pdfpages] - Das Paket ermöglicht die Einbindung von einzelnen oder mehreren PDF"~Dateien. -\item[filecontents] - \index{Minimalbeispiel|?}% - Dieses Paket erweitert die durch den \hologo{LaTeX}"=Kernel bereitgestellte - Umgebung \Environment{filecontents}(\Package{filecontents})'none' dahingehend, - dass bereits existierende Dateien überschrieben werden können. -\item[mwe,blindtext] - \index{Minimalbeispiel|?}% - \ChangedAt{v2.02:\RecPack \Package{mwe}} - Mit dem Paket \Package{mwe} lassen sich sehr einfach Minimalbeispiele - erzeugen, die sowohl Blindtexte als auch Abbildungen enthalten sollen. Werden - keine Grafiken sondern lediglich Textabschnitte etc. benötigt, ist das Laden - von \Package{blindtext} ausreichend. -\item[coseoul] - Mit diesem Paket kann die Struktur der Gliederung relativ erstellt werden. - Es wird keine absolute Gliederungsebene (\Macro*{chapter}, \Macro*{section}) - angegeben sondern die Relation zwischen vorheriger und aktueller Ebene - (\Macro*{levelup}, \Macro*{levelstay}, \Macro*{leveldown}). -\item[calc] - \index{Berechnungen}% - Normalerweise lassen sich Berechnungen im Dokument lediglich mit - Low"~Level"~\hologo{TeX}"=Primitiven durchführen. Dieses Paket stellt eine - einfachere Syntax für Rechenoperationen der vier Grundrechenarten zur - Verfügung. Zusätzlich werden neue Befehle zur Bestimmung der Höhe und Breite - bestimmter Textauszüge definiert. -\item[chngcntr] - \index{Zähler}% - Das Paket erlaubt die Manipulation aller möglichen, bereits definierten - \hologo{LaTeX}"=Zähler. Es können Zähler so umdefiniert werden, dass sie bei - der Änderung eines anderen Zählers automatisch zurückgesetzt werden oder eben - nicht. Ein kleines Beispiel dazu ist in \autoref{sec:tips:counter} zu finden. -\item[filemod] - Wird entweder \Engine{pdfLaTeX} oder \Engine{LuaLaTeX} als Textsatzsystem - eingesetzt, können mit diesem Paket das Änderungsdatum zweier Dateien - miteinander verglichen und in Abhängigkeit davon definierbare Aktionen - ausgeführt werden. \item[xparse] \index{Befehlsdeklaration}% Dieses mächtige Paket entstammt dem \hologo{LaTeX3}"=Projekt und bietet für @@ -1033,8 +941,94 @@ werden konnte. direkt davor oder danach zu reagieren, um beispielsweise Paketabhängigkeiten aufzulösen oder nach dem Laden eines bestimmten Paketes gezielt Befehle anzupassen. Mehr dazu ist im \scrguide zu finden. +\item[calc] + \index{Berechnungen}% + Normalerweise lassen sich Berechnungen im Dokument lediglich mit + Low"~Level"~\hologo{TeX}"=Primitiven durchführen. Dieses Paket stellt eine + einfachere Syntax für Rechenoperationen der vier Grundrechenarten zur + Verfügung. Zusätzlich werden neue Befehle zur Bestimmung der Höhe und Breite + bestimmter Textauszüge definiert. +\item[mwe,blindtext] + \index{Minimalbeispiel|?}% + \ChangedAt{v2.02:\RecPack \Package{mwe}} + Mit dem Paket \Package{mwe} lassen sich sehr einfach Minimalbeispiele + erzeugen, die sowohl Blindtexte als auch Abbildungen enthalten sollen. Werden + keine Grafiken sondern lediglich Textabschnitte etc. benötigt, ist das Laden + von \Package{blindtext} ausreichend. +\item[filecontents] + \index{Minimalbeispiel|?}% + Dieses Paket erweitert die im \hologo{LaTeX}"=Kernel definierte Umgebung + \Environment{filecontents}(\Package{filecontents})'none' dahingehend, + dass bereits existierende Dateien überschrieben werden können. +\item[pdfpages] + Das Paket ermöglicht die Einbindung von einzelnen oder mehreren PDF"~Dateien. +\item[crop] + \index{Beschnittzugabe}\index{Schnittmarken}% + Hiermit können eine Beschnittzugabe sowie Schnittmarken~-- beispielsweise für + Poster~-- erzeugt werden. Hierzu ist in \autoref{sec:tips:crop} ein Beispiel + zu finden. +\item[pagecolor] + \index{Farben}% + Mit dem Paket kann die Hintergrundfarbe der Seiten im Dokument geändert + werden. +\item[afterpage] + Der Befehl \Macro{afterpage}[\PParameter{\dots}](\Package{afterpage})'none' + kann genutzt werden, um den Inhalt aus dessen Argument direkt nach der + Ausgabe der aktuellen Seite auszuführen. +\item[filemod] + Wird entweder \Engine{pdfLaTeX} oder \Engine{LuaLaTeX} als Textsatzsystem + eingesetzt, können mit diesem Paket das Änderungsdatum zweier Dateien + miteinander verglichen und in Abhängigkeit davon definierbare Aktionen + ausgeführt werden. +\item[listings] + \index{Quelltextdokumentation}% + Dieses Paket eignet sich hervorragend zur Quelltextdokumentation in + \hologo{LaTeX}. Es bietet die Möglichkeit, externe Quelldateien einzulesen + und darzustellen sowie die Syntax in Abhängigkeit der verwendeten + Programmiersprache hervorzuheben. Zusätzlich lässt sich ein Verzeichnis mit + allen eingebundenen sowie direkt im Dokument angegebenen Quelltextauszügen + erstellen. + \ChangedAt{v2.02:\RecPack \Package{listings}} + Wird \Package{listings} in Dokumenten mit UTF"~8"~Kodierung verwendet, + sollte direkt nach dem Laden des Paketes in der Präambel Folgendes + hinzugefügt werden: + \begin{Code} + \lstset{% + inputencoding=utf8,extendedchars=true, + literate=% + {ä}{{\"a}}1 {ö}{{\"o}}1 {ü}{{\"u}}1 + {Ä}{{\"A}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1 + {~}{{\textasciitilde}}1 {ß}{{\ss}}1 + } + \end{Code}\vspace{-\baselineskip}% +\item[coseoul] + Mit diesem Paket kann die Struktur der Gliederung relativ erstellt werden. + Es wird keine absolute Gliederungsebene (\Macro*{chapter}, \Macro*{section}) + angegeben sondern die Relation zwischen vorheriger und aktueller Ebene + (\Macro*{levelup}, \Macro*{levelstay}, \Macro*{leveldown}). +\item[selinput,inputenc] + \index{Eingabekodierung}% + \index{Minimalbeispiel|?}% + Die verwendete Eingabekodierung ist standardmäßig auf \PValue{utf8} + festgelegt, was von (fast) allen \LaTeX-Editoren unterstützt wird. Dies + sollte im Normalfall auch nicht geändert werden. Ältere Dokumente sind aber + vielleicht noch in einer anderen Eingabekodierung gespeichert. Kann diese + nicht geändert werden, so ist es für \Engine{pdfLaTeX} möglich, eine + andere~-- im \hyperref[sec:tips:editor]{Editor (\autoref{sec:tips:editor})} + vom Anwender eingestellte~-- Eingabekodierungen zu nutzen. Diese kann mit dem + Paket \Package{selinput} (automatisch) für \LaTeX{} festgelegt werden Mit: + \begin{Code} + \usepackage{selinput} + \SelectInputMappings{adieresis={ä},germandbls={ß}} + \end{Code}\vspace{-\baselineskip}% + wird es verwendet. Alternativ dazu lässt sich mit dem Paket + \Package{inputenc} die Eingabekodierung manuell mit + \Macro*{usepackage}[\OParameter{Eingabekodierung}\PParameter{inputenc}] + einstellen. Das Paket \Package{fontenc} sollte in jedem Fall \emph{zuvor} + geladen werden. \end{packages} + \subsubsection{Bugfixes} \begin{packages} \item[scrhack]<koma-script> @@ -1051,8 +1045,10 @@ werden konnte. \Macro{marginpar}(\Package{koma-script})'none' bereitgestellt. Alternativ dazu lässt sich auch \Package{marginnote} verwenden. \item[fix-cm] - Sollte bei einer Schriftgrößenänderung eine oder mehrere Warnungen der Form - \texttt{Font shape `T1/cmr/m/n' in size <...> not available} erscheinen, so - sollte das Paket \Package{fix-cm} \emph{vor} der Klasse geladen werden. Siehe - dazu \autoref{sec:tips:fontsize}. + Sollte bei einer Schriftgrößenänderung eine oder mehrere Warnungen der Form + \begin{Code} + Font shape `T1/cmr/m/n' in size <...> not available + \end{Code}\vspace{-\baselineskip}% + erscheinen, so sollte das Paket \Package{fix-cm} \emph{vor} der Klasse + geladen werden. Siehe dazu auch die Hinweise in \autoref{sec:tips:fontsize}. \end{packages} diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-poster.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-poster.tex index 78e7f3377f5..6c895d7a332 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-poster.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-poster.tex @@ -13,25 +13,29 @@ durch diese Klasse angebotenen Befehle und Optionen können gleichermaßen mit \Class{tudscrposter} verwendet werden. Ein Minimalbeispiel zur Verwendung der Klasse ist in \fullref{sec:exmpl:poster} zu finden. -Der größte Unterschied zu den Hauptklassen ist zum einen ein vereinfachter +Der größte Unterschied zu den Hauptklassen ist insbesondere ein vereinfachter Titel. Eine Umschlagseite steht für \Class{tudscrposter} nicht zur Verfügung, -der dazugehörige Befehl \Macro*{makecover} sowie die Option \Option*{cdcover} -sind nicht definiert. Der Titel selbst kann mit \Macro{maketitle} lediglich als -Titelkopf gesetzt werden, eine separate Titelseite existiert nicht. Aus diesem -Grund sind auch nur eine reduzierte Anzahl an Befehlen für den Titel verfügbar. -Dies sind \Macro{title}, \Macro{subtitle}, \Macro{subject} und -\Macro{titlehead}(\Package{koma-script}), welche wie gewohnt genutzt werden -können. +die entsprechende Option \Option*{cdcover} sowie der dazugehörige Befehl +\Macro*{makecover} sind nicht definiert. Der Titel selbst kann mit +\Macro{maketitle} lediglich als Titelkopf gesetzt werden, eine separate +Titelseite existiert nicht. Aus diesem Grund sind mit \Macro{title}, +\Macro{subtitle}, \Macro{subject} und \Macro{titlehead}(\Package{koma-script}) +auch nur eine reduzierte Anzahl an Befehlen für den Titel verfügbar, die wie +gewohnt genutzt werden können. Prinzipiell lassen sich auch noch die beiden +Befehle für den Schmutztitel \Macro{extratitle}(\Package{koma-script}) sowie +\Macro{frontispiece}(\Package{koma-script}) nutzen, wobei deren Verwendung für +ein Poster eher fraglich ist. Alle weiteren in \autoref{sec:title} vorgestellten Befehle und Optionen sind für \Class{tudscrposter} nicht definiert. Dies betrifft zum einen sowohl das Schriftelement \Font*{thesis} als auch die Befehle \Macro*{titledelimiter}, \Macro*{thesis}, \Macro*{referee}, \Macro*{advisor}, \Macro*{graduation} und -\Macro*{defensedate}. Zum anderen stehen die Makros \Macro*{matriculationyear}, -\Macro*{matriculationnumber}, \Macro*{dateofbirth} und \Macro*{placeofbirth} -für ergänzende Autorenangaben wie auch die Option \Option*{subjectthesis} nicht -zur Verfügung. Die durch \KOMAScript{} für eine Titelseite bereitgestellten -Befehle \Macro*{date}, \Macro*{publishers}(\Package{koma-script}) und +\Macro*{defensedate}. Zum anderen stehen die Makros für ergänzende +Autorenangaben \Macro*{dateofbirth}, \Macro*{placeofbirth}, +\Macro*{matriculationyear} und \Macro*{matriculationnumber} wie auch +die Option \Option*{subjectthesis} \emph{nicht} zur Verfügung. Die durch +\KOMAScript{} für eine Titelseite bereitgestellten Befehle +\Macro*{date}, \Macro*{publishers}(\Package{koma-script}) und \Macro*{dedication}(\Package{koma-script}) sowie \Macro*{uppertitleback}(\Package{koma-script}) und \Macro*{lowertitleback}(\Package{koma-script}) haben bei der Klasse @@ -53,13 +57,17 @@ lediglich noch die Gliederungsebene der Überschrift angepasst werden. \section{Layout und Formatierung eines Posters} % Die augenscheinlichsten Einstellungen für die Gestaltung eines Posters sind -sicherlich das verwendete Papierformat sowie die farbliche Ausprägung und die +sicherlich das verwendete Papierformat und die farbliche Ausprägung sowie die Auswahl der Schriftart und deren Größe. Als Grundeinstellung für die Klasse \Class{tudscrposter} sind die Schriften des \TUDCDs aktiviert. Diese lassen -sich wie auch bei den Hauptklassen anpassen. Weitere Informationen hierzu sind -der Erläuterung zur Option \Option{cdfont}'full' zu entnehmen. Der Inhalt eines -Posters lässt sich frei gestalten, es gibt hierfür keinerlei vordefinierte -Befehle und Optionen. +sich~-- wie auch bei den Hauptklassen~-- anpassen. Weitere Informationen hierzu +sind der Erläuterung zur Option \Option{cdfont}'full' zu entnehmen. + +Nachfolgend wird kurz erläutert, wie sich allgemeine Formatierung eines mit +\Class{tudscrposter} erstellten Posters anpassen lässt. Der Inhalt kann völlig +frei gestaltet werden, es gibt hierfür bisher keinerlei von \TUDScript +vordefinierte Befehle und Optionen, welche die Inhalte in ein bestimmtes Layout +übersetzen. @@ -207,13 +215,13 @@ der Gliederungsüberschriften sowie des Seitenstils, welcher standardmäßig auf \end{values} \end{Declaration} -\begin{Declaration}{\Option{backgroundcolor=\PSet}}[true] +\begin{Declaration}{\Option{backcolor=\PSet}}[true] \printdeclarationlist% % Mit dieser Option kann die Hintergrundfarbe eines Posters definiert werden. % -\begin{values}{\Option{backgroundcolor}} -\itemfalse*[nocolor] +\begin{values}{\Option{backcolor}} +\itemfalse[nocolor] Es wird keine Farbe festgelegt, der Hintergrund erscheint weiß. \itemtrue*[color] Der Seitenhintergrund wird in der primären Hausfarbe \Color{HKS41} gewählt. @@ -238,7 +246,7 @@ Die von der Einstellung \Option{bleedmargin=\PName{Längenwert}} abhängigen Elemente sind zum einen Kopf- und Fußbereich, beeinflusst durch die Optionen \Option{cdhead} und \Option{cdfoot}. Werden diese farbig gesetzt, so werden diese um den angegebenen \PName{Längenwert} über das gewünschte Zielformat -hinaus vergrößert. Zum anderen wird auch der mit \Option{backgroundcolor} +hinaus vergrößert. Zum anderen wird auch der mit \Option{backcolor} gegebenenfalls eingestellte, farbige Seitenhintergrund erweitert. Wie sich der Entwurf eines Posters in einem bestimmten Zielformat auf einem übergroßem Papierbogen tatsächlich realisieren lässt, wird in \fullref{sec:tips:crop} @@ -254,7 +262,8 @@ Der Fußbereich eines Posters kann mit \Macro{footcontent} eigens und frei definiert werden. Geschieht dies nicht, wird standardmäßig ein vordefinierte Fuß gesetzt, welcher Angaben von bestimmten Feldern ausgibt, die insbesondere als Kontaktinformationen gedacht sind. Welche das im Einzelnen sind, wird -nachfolgend erläutert. +nachfolgend erläutert. Die farbliche Ausprägung des Fußes wird durch die Option +\Option{cdfoot} festgelegt. \begin{Declaration}{% \Macro{faculty}[\OParameter{Fußzeile}\Parameter{Fakultät}]% @@ -289,8 +298,6 @@ Zusätzlich zu den Angaben der Einrichtung kann mit \Macro{professor} der aktuelle Inhaber der genannten Professur im linken Fußbereich angegeben werden. \end{Declaration} -\ToDo[imp]{Symbole für Telefon, Fax und E-Mail? Woher?}[v2.06] -\ToDo[imp]{marvosym?}[v2.06]%\Email\fax\Faxmachine\FAX\Letter\Mobilefone\Telefon \begin{Declaration}{\Macro{author}[\Parameter{Autor(en)}]} \begin{Declaration}{\Macro{contactperson}[\Parameter{Name(n)}]} \begin{Declaration}{\Macro{authormore}[\Parameter{Autorenzusatz}]} @@ -299,10 +306,6 @@ aktuelle Inhaber der genannten Professur im linken Fußbereich angegeben werden. \begin{Declaration}{\Macro{office}[\Parameter{Adresse/Gebäude}]} \begin{Declaration}{\Macro{telephone}[\Parameter{Telefonnummer}]} \begin{Declaration}{\Macro{telefax}[\Parameter{Telefaxnummer}]} -\begin{Declaration}{% - \Macro{emailaddress}[\OParameter{Einstellungen}\Parameter{E-Mail-Adresse}]% -} -\begin{Declaration}{\Macro{emailaddress*}[\Parameter{E-Mail-Adresse}]} \printdeclarationlist% % Der oder die mit \Macro{author} angegebenen Autoren werden im rechten Teil des @@ -312,25 +315,16 @@ voneinander zu trennen. Die Befehle \Macro{authormore}, \Macro{course} und \Macro{emailaddress} können für zusätzliche Angaben zu jedem Autor innerhalb des Argumentes von \Macro{author} verwendet werden. Vor der Ausgabe aller Autoreninformationen wird der Bezeichner \Term{authorname} in fetter Schrift -gesetzt. Wurde \Macro{author} nicht angegeben, so erfolgt keine Ausgabe. +gesetzt. Ohne die Angabe von \Macro{author} erfolgt keine Ausgabe. Danach folgen alle mit \Macro{contactperson} gemachten Angaben. Auch hier ist -\Macro{and} für eine Trennung mehrerer Personen zu nutzen, wobei auch hier -lediglich die Befehle \Macro{office}, \Macro{telephone}, \Macro{telefax} und -\Macro{emailaddress} nicht jedoch \Macro{authormore} sowie \Macro{course} und +\Macro{and} für eine Trennung mehrerer Personen zu nutzen, wobei hier lediglich +die Befehle \Macro{emailaddress}, \Macro{office}, \Macro{telephone} und +\Macro{telefax} nicht jedoch \Macro{authormore} sowie \Macro{course} und \Macro{discipline} für zusätzliche Angaben zu verwenden sind. Bevor die Ansprechpartner ausgegeben werden, wird der Bezeichner \Term{contactpersonname} in fetter Schrift gesetzt. Es ist natürlich auch möglich nur Autor(en) oder Ansprechpartner anzugeben. - -Die mit \Macro{emailaddress} angegebene E"~Mail"=Adresse wird als Hyperlink -definiert, falls das Paket \Package{hyperref} geladen wurde. Das optionale -Argument wird an \Macro{hypersetup}(\Package{hyperref})'none' aus besagtem -Paket übergeben. Mit der Sternversion \Macro{emailaddress*} kann die -Formatierung des Eintrags im Argument~-- gegebenenfalls lokal in einer -Gruppe~-- manuell vorgenommen werden. -\end{Declaration} -\end{Declaration} \end{Declaration} \end{Declaration} \end{Declaration} @@ -355,6 +349,9 @@ vorgenommen werden müssen. \end{Declaration} \end{Declaration} + +\section{Sprachabhängige Bezeichner für den Fußbereich} + \begin{Declaration}{\Term{contactname}} \begin{Declaration}{\Term{authorname}} \begin{Declaration}{\Term{contactpersonname}} @@ -366,4 +363,9 @@ rechten Spalte im Fuß vor der Ausgabe der eigentlichen Felder gesetzt. \end{Declaration} \end{Declaration} \end{Declaration} + +\ToDo[imp]{% + Symbole für Telefon, Fax und E-Mail in \autoref{sec:poster:foot}? + Woher? marvosym?%\Email\fax\Faxmachine\FAX\Letter\Mobilefone\Telefon +}[v2.07] \end{Bundle*} diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-preface.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-preface.tex index d061bdef554..b37950fb16b 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-preface.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-preface.tex @@ -1,42 +1,35 @@ \addchap[tocentry={}]{\prefacename} -Die im Folgenden beschriebenen Klassen und Pakete wurden für das Erstellen von -\hologo{LaTeX}"=Dokumenten im \TUDCD entwickelt.% -\footnote{% - \url{https://tu-dresden.de/cd}\qquad - \url{https://tu-dresden.de/cd/6_handbuch}% -} -Diese basieren auf den gerade im deutschsprachigen Raum häufig verwendeten -\KOMAScript"=Klassen, welche eine Vielzahl von Einstellmöglichkeiten bieten, -die weit über die Möglichkeiten der \hologo{LaTeX}"=Standardklassen -hinausgehen. Zusätzlich bietet das hier dokumentierten \TUDScript-Bundle -weitere, insbesondere das Dokumentlayout betreffende Auswahlmöglichkeiten. +In diesem Handbuch werden die für das Erstellen von \hologo{LaTeX}"=Dokumenten +im \hrfn{https://tu-dresden.de/cd/}{\TUDCD} entwickelten Klassen und Pakete +beschrieben. Diese basieren auf den gerade im deutschsprachigen Raum häufig +verwendeten \KOMAScript"=Klassen, die eine Vielzahl von Einstellmöglichkeiten +bieten, welche weit über die Möglichkeiten der \hologo{LaTeX}"=Standardklassen +hinausgehen. Zusätzlich bietet das \TUDScript-Bundle weitere, insbesondere das +Dokumentlayout betreffende Auswahlmöglichkeiten. Es sei angemerkt, dass die hier beschriebenen Klassen eine Abweichung vom \TUDCD zulassen, da dieses gerade unter typografischen Gesichtspunkten durchaus als diskussionswürdig zu erachten ist. Prinzipiell ist es mit den -entsprechenden Einstellungen möglich, auf das standardmäßige Layout der -\KOMAScript"=Klassen zurückzuschalten. Ohne die gezielte Verwendung dieser -Optionen durch den Anwender werden per Voreinstellung alle Vorgaben des \CDs -umgesetzt. +entsprechenden Einstellungen möglich, auf das Layout der \KOMAScript"=Klassen +zurückzuschalten. Ohne die gezielte Verwendung dieser Optionen durch den +Anwender werden per Voreinstellung alle Vorgaben des \CDs umgesetzt. -In diesem Handbuch werden dem Anwender Hinweise für eine einfache Installation -der benötigten Schriften des \CDs sowie eine Beschreibung der zusätzlich zu den -\KOMAScript"=Klassen nutzbaren Optionen und Befehle gegeben. Dabei werden -Grundkenntnisse in der Verwendung von \hologo{LaTeXe} vorausgesetzt. Sollten +Dieses Handbuch enthält eine Beschreibung der \emph{zusätzlich} zu den +\KOMAScript"=Klassen nutzbaren Optionen und Befehle. Dabei werden +Grundkenntnisse in der Verwendung von \hologo{LaTeX} vorausgesetzt. Sollten diese nicht vorhanden sein, wird das Lesen der \hologo{LaTeXe}"=Kurzbeschreibung \hrfn{http://mirrors.ctan.org/info/lshort/german/l2kurz.pdf}{\File{l2kurz.pdf}} -dringend empfohlen. Für den stärker vertieften Einstieg in \hologo{LaTeX} gibt -es eine \hrfn{http://www.fadi-semmo.de/latex/workshop/}{Workshop-Reihe} von -Fadi~Semmo. Außerdem stellt Nicola~L.~C.~Talbot sehr ausführliche Tutorials für +dringend empfohlen. Für den vertiefenden Einstieg in \hologo{LaTeX} stellt +Nicola~L.~C.~Talbot sehr ausführliche Tutorials für \hrfn{http://www.dickimaw-books.com/latex/novices/}{\hologo{LaTeX}-Novizen} und \hrfn{http://www.dickimaw-books.com/latex/thesis/}{Dissertationen} zur -freien Verfügung. Außerdem werden in \autoref{part:additional} dieses Handbuchs -Minimalbeispiele sowie etwas ausführlichere Tutorials angeboten. +freien Verfügung. Zusätzlich werden in \autoref{part:additional} dieses +Handbuchs Minimalbeispiele sowie etwas ausführlichere Tutorials angeboten. Des Weiteren sollte \emph{jeder} Anwender das \hologo{LaTeXe}"=Sündenregister \hrfn{http://mirrors.ctan.org/info/l2tabu/german/l2tabu.pdf}{\File{l2tabu.pdf}} kennen, um typische Fehler zu vermeiden. Antworten auf häufig gestellte Fragen -liefert \hrfn{http://projekte.dante.de/DanteFAQ/WebHome}{DANTE"~FAQ}. Falls der +liefert \hrfn{http://projekte.dante.de/DanteFAQ/WebHome}{DanteFAQ}. Falls der Nutzer unerfahren bei der Verwendung von \KOMAScript{} sein sollte, so ist ein Blick in das \scrguide[dazugehörige Handbuch] sehr zu empfehlen, wenn nicht sogar unumgänglich. @@ -45,9 +38,9 @@ Der aktuelle Stand der Klassen und Pakete aus dem \TUDScript-Bundle in der Version~\vTUDScript{} wurde nach bestem Wissen und Gewissen auf Herz und Nieren getestet. Dennoch kann nicht für das Ausbleiben von Fehlern garantiert werden. Beim Auftreten eines Problems sollte dieses genauso wie Inkompatibilitäten mit -anderen Paketen im Forum unter +anderen Paketen im \Forum* respektive im \GitHubRepo*[issues] unter \begin{quoting} -\Forum'% +\Forum'\newline\GitHubRepo'[issues]% \end{quoting} gemeldet werden. Für eine schnelle und erfolgreiche Fehlersuche sollte bitte ein \hrfn{http://www.komascript.de/minimalbeispiel}{\textbf{Minimalbeispiel}} @@ -59,8 +52,6 @@ Bundle in meiner Freizeit entstanden ist und auch gepflegt wird, bitte ich um Nachsicht, falls ich nicht sofort antworte und/oder eine Fehlerkorrektur vornehmen kann. -\makeatletter -\medskip +\bigskip \noindent Falk Hanisch\newline -Dresden, \@date -\makeatother +Dresden, \getfield{date} diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-supervisor.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-supervisor.tex index 939af615f78..845fdd3360c 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-supervisor.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-supervisor.tex @@ -1,5 +1,6 @@ +\setchapterpreamble{\tudhyperdef'{sec:supervisor}} \chapter[Das Paket \Package*{tudscrsupervisor} -- Studentische Betreuung]{% - Ergänzungen für studentische Arbeiten + Betreuung studentischer Arbeiten } \begin{Bundle*}{\Package{tudscrsupervisor}} % @@ -43,11 +44,11 @@ Matrikelnummer (\Macro{matriculationnumber}) und das Immatrikulationsjahr Ausgabe ignoriert werden. Der eigentliche Inhalt der Umgebung~-- sprich die Aufgabenstellung selbst~-- wird nach dem generierten Kopf ausgegeben -Nach dem Inhalt der Aufgabenstellung werden der oder die definierten Gutachter -beziehungsweise Prüfer (\Macro{referee}) sowie der oder die Betreuer -(\Macro{supervisor}) zeilenweise aufgelistet. Dabei wird vor dem jeweiligen -Namen der dazugehörige Bezeichner (\Term{refereename}, \Term{refereeothername} -respektive \Term{supervisorname}, \Term{supervisorothername}) gesetzt. +Dem Inhalt der Aufgabenstellung folgt eine zeilenweise Auflistung des oder der +definierten Gutachter beziehungsweise Prüfer (\Macro{referee}) sowie Betreuer +(\Macro{supervisor}). Dabei wird vor dem jeweiligen Namen der dazugehörige +Bezeichner (\Term{refereename}, \Term{refereeothername} respektive +\Term{supervisorname}, \Term{supervisorothername}) gesetzt. \ChangedAt{v2.05} Dies ist das voreingestellte Verhalten und kann über die Wahl des Parameters \Key{\Environment{task}}{style=\PValue{table}} aktiviert werden. Wird hingegen @@ -116,10 +117,11 @@ beispielsweise \masterthesisname{} oder \diplomathesisname{} benötigt. \printdeclarationlist% % Mit diesen beiden Befehlen sollte das Datum der Ausgabe der Aufgabenstellung -sowie der spätest mögliche Abgabetermin angegeben werden. Ist das Paket -\Package{isodate} geladen, wird die damit eingestellte Formatierung des Datums -durch den Befehl \Macro{printdate}(\Package{isodate})'none' aus diesem Paket -für \Macro{issuedate} und \Macro{duedate} verwendet. +sowie der spätest mögliche Abgabetermin angegeben werden. Wurde das Paket +\Package{isodate} oder \Package{datetime2} geladen, wird die damit eingestellte +Ausgabeformatierung des Datums mit \Macro{printdate}(\Package{isodate})'none' +beziehungsweise \Macro{DTMDate}(\Package{datetime2})'none' für \Macro{duedate} +und \Macro{issuedate} verwendet. \end{Declaration} \end{Declaration} @@ -161,9 +163,9 @@ welche wiederum mit den entsprechenden sprachabhängigen Bezeichner \end{Declaration} \begin{Declaration}{% - \Macro{evaluationform}[% + \hskip-.06em\Macro{evaluationform}[% \LParameter\Parameter{Aufgabe}\Parameter{Inhalt}% - \Parameter{Bewertung}\Parameter{Note}% + \Parameter{Bewertung}\Parameter{Note}\hskip-.06em% ]% } \printdeclarationlist% @@ -271,13 +273,6 @@ Hierzu sei auch auf das Minimalbeispiel in \autoref{sec:exmpl:notice} verwiesen. \begin{Declaration}{\Macro{office}[\Parameter{Dienstsitz}]} \begin{Declaration}[v2.02]{\Macro{telephone}[\Parameter{Telefonnummer}]} \begin{Declaration}[v2.05]{\Macro{telefax}[\Parameter{Telefaxnummer}]} -\begin{Declaration}[% - v2.02;% - v2.05:optionales Argument zur Formatierung mit \Macro*{hypersetup}% -]{% - \Macro{emailaddress}[\OParameter{Einstellungen}\Parameter{E-Mail-Adresse}]% -} -\begin{Declaration}[v2.05]{\Macro{emailaddress*}[\Parameter{E-Mail-Adresse}]} \printdeclarationlist% % @@ -288,18 +283,14 @@ Kontaktperson genannt werden, so müssen diese innerhalb des Befehls Person kann innerhalb des Argumentes von \Macro{contactperson} der Dienstsitz (\Macro{office}), die dienstliche Telefon- (\Macro{telephone}) sowie "~faxnummer (\Macro{telefax}) und die geschäftliche E"~Mail"=Adresse (\Macro{emailaddress}) -angegeben werden. Sollte das Paket \Package{hyperref} geladen werden, wird die -gegebene E"~Mail"=Adresse direkt in einen entsprechenden Link gewandelt. -Alternativ dazu kann mit der Sternversion \Macro{emailaddress*} die Formatierung -des Eintrags im Argument~-- gegebenenfalls in einer Gruppe~-- manuell erfolgen. -\end{Declaration} -\end{Declaration} +angegeben werden. \end{Declaration} \end{Declaration} \end{Declaration} \end{Declaration} + \section{Zusätzliche sprachabhängige Bezeichner} \index{Bezeichner|!(}% % @@ -382,9 +373,9 @@ Umgebung \Environment{evaluation} durch den Anwender überschrieben werden. \begin{Declaration}{\Term{assessmentname}} \printdeclarationlist% % -Bei der standardisierten Form des Gutachten (\Macro{evaluationform}) werden die -darin~-- zur strukturierter Gliederung~-- erzeugten Überschriften mit den -Bezeichnern \Term{taskname}, \Term{contentname} und \Term{assessmentname} +Bei der standardisierten Form des Gutachtens (\Macro{evaluationform}) werden +die darin~-- für eine strukturierte Gliederung~-- erzeugten Überschriften mit +den Bezeichnern \Term{taskname}, \Term{contentname} und \Term{assessmentname} gesetzt. \TermTable{taskname,contentname,assessmentname} \end{Declaration} @@ -399,7 +390,7 @@ mit dem Parameter \Key{\Environment{evaluation}}{grade=\PName{Note}} der Umgebung \Environment{evaluation} angegeben, so wird diese innerhalb von \Term{gradetext} verwendet. \grade{\PName{Note}} -\TermTable*{gradetext}{.7\textwidth} +\TermTable*{gradetext}{.8\textwidth} \end{Declaration} \begin{Declaration}{\Term{noticename}} diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr.tex index 33074c7fc01..e159b32e121 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr.tex @@ -1,7 +1,10 @@ -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} -\documentclass[english,ngerman]{tudscrmanual} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\documentclass[english,ngerman,ttfont=roboto]{tudscrmanual} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} \lstset{% inputencoding=utf8,extendedchars=true, literate=% @@ -19,20 +22,21 @@ %\tracingbundle \begin{document} -\newcommand*\cdurl{% +\newrobustcmd*\cdurl{% \begingroup% \hypersetup{hidelinks}% - \href{https://tu-dresden.de/cd}{https://tu-dresden.de/cd}% + \href{https://tu-dresden.de/cd/}{https://tu-dresden.de/cd}% \endgroup% } -\faculty{\protect\cdurl} -\date{30.05.2017} -\author{Falk Hanisch\thanks{\noexpand\mailto{\tudscrmail}}} -\subject{\TUDScript \vTUDScript{} basierend auf \KOMAScript} -\title{% - Ein \NoCaseChange{\hologo{LaTeXe}}-Bundle für Dokumente im~neuen \CD der \TnUD +\faculty{\cdurl} +\date{28.06.2019} +\author{% + Falk Hanisch% + \expandafter\emailaddress\expandafter{\tudscrmail}% } -\addtokomafont{subtitle}{\univbn} +\publishers{\GitHubRepo'[]} +\subject{\TUDScript \vTUDScript{} basierend auf \KOMAScript} +\title{Ein {LaTeX}-Bundle für Dokumente im \TUDCD} \ifdef{\tudprintflag}{% \subtitle{Benutzerhandbuch\thanks{\href{tudscr}{Online-Version}}}% }{% @@ -45,6 +49,7 @@ \def\and{, }% \let\thanks\@gobble% \let\footnote\@gobble% + \let\emailaddress\@gobble% \hypersetup{% pdfauthor = {\@author},% pdftitle = {\@title},% @@ -52,19 +57,12 @@ pdfkeywords = {LaTeX, \TUDScript, Benutzerhandbuch},% }% \endgroup% -\renewcommand*\@pnumwidth{1.9em} -\renewcommand*\@tocrmarg{2.9em} \makeatother - -\ChangedAt*{% - v2.00:Generalüberholung und komplette Neuimplementierung von \TUDScript% -}% \maketitle - \include{tudscr-preface} \tableofcontents \include{tudscr-introduction} @@ -123,38 +121,42 @@ \include{tudscr-installation} \include{tudscr-obsolete} \include{tudscr-additional} -\ToDo[doc]{% - Benutzerdefinierte Anpassungen von \TUDScript, Kapitelstile, Farbeinsatz etc.% -}[v2.06] \include{tudscr-index} \clearpage +\ToDo[imp,doc]{% + Benutzerdefinierte Anpassungen von \TUDScript, Kapitelstile, Farbeinsatz etc.% +}[v2.07] \ToDo[imp]{% - \File{.layout}-Dateien direkt in das LyX-Projekt integrieren lassen?% -}[v2.06] -\ToDo[imp]{Paket für \Package*{glossaries}-Stile}[v2.06] - -\ToDo[imp]{\Macro*{DeclareSectionCommand}}[v2.06] -\ToDo[imp]{Unterstützung für algorithm2e o.ä. (Überschriften?!)}[v2.06] - -\ToDo[rls]{KOMA-Script-Version anpassen (LoadClass) v3.18/v3.23}[v2.06] - -\ToDo[imp]{TeXstudio: alle cwl über docstrip, separate .ins-Datei}[v2.06] -\ToDo[imp]{TeXstudio: tudscrposter.cwl erstellen}[v2.06] -\ToDo[imp]{TeXstudio: tudscrmanual.cwl/tudscrtutorial.cwl erneuern}[v2.06] - + Spezialseite zur freien Gestaltung mit Hintergrundebene für Bilder und Texte + (CD-Handbuch S. 80 ff.); Seitenstil: \PageStyle*{special.tudheadings} +}[v2.07] +\ToDo[doc,imp]{% + Rückseite bei Kapitelseiten (auch bei Teilen?) im doppelseitigen Satz per + Option nicht als Vakatseite setzen. Implementierung von farbigen Seiten + davor (\Option*{open=right}) sowie danach (\Option*{open=left}). Setzen von + speziellen Inhalten auf diesen Seiten äquivalent zu \Macro*{setpartpreamble} + bzw. \Macro*{setchapterpreamble}; ggf. temporär umschalten bzw. Warnung bei + Konflikt. + \url{http://latex.wcms-file3.tu-dresden.de/phpBB3/viewtopic.php?f=11&t=396} +}[v2.07] + +\ToDo[imp]{LyX: layout-Dateien in das Projekt integrieren lassen?}[v2.07] +\ToDo[imp]{\Package*{glossaries}: Paket für Stile aus Tutorial}[v2.07] + +\ToDo[imp]{TeXstudio: cwl-Dateien über docstrip, separate .ins-Datei}[v2.07] \ToDo[rls]{TeXstudio: alle *.cwl erneuern, automatisch über *.dtx} + +\ToDo[rls]{GitHub auf offene Issues prüfen} \ToDo[rls]{\emph{alle} dtx-Dateien der vorherigen Version mit WinMerge sichten} \ToDo[rls]{Layout und Umbrüche kontrollieren} -\ToDo[rls]{% - Datum tudscr-version.dtx, tudscr-comp.dtx, Handbuch und README aktualisieren% -} +\ToDo[rls]{Datum in tudscr-version.dtx, tudscr-comp.dtx, Handbuch \& README} \ToDo[rls]{% Release auf GitHub und CTAN, Tag für Homepage und im Forum ändern\\ - \url{http://latex.wcms-file3.tu-dresden.de/phpBB3/viewtopic.php?t=303}% + {\small\url{http://latex.wcms-file3.tu-dresden.de/phpBB3/viewtopic.php?t=303}}% } \ListOfToDo \end{document} diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tutorials/mathswap.tex b/Master/texmf-dist/source/latex/tudscr/doc/tutorials/mathswap.tex index 4f6c72691fb..92e081b5b67 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tutorials/mathswap.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tutorials/mathswap.tex @@ -1,8 +1,12 @@ -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[english,ngerman]{tudscrartcl} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} + \usepackage{tudscrtutorial} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} \lstset{% inputencoding=utf8,extendedchars=true, literate=% @@ -40,8 +44,8 @@ Dezimaltrennzeichen nicht dem Zahlenformat entsprechen, welches für die verwendete Dokumentsprache normalerweise notwendig wäre. - Dieses Tutorial beschäftigt sich mit den typografischen Eigenheiten von - Gruppierungs- und Dezimaltrennzeichen bei der Angabe von Zahlen in einem + Dieses Tutorial behandelt die typografischen Eigenheiten von Gruppierungs- + und Dezimaltrennzeichen bei der Angabe von Zahlen in einem \hologo{LaTeXe}"=Dokument. Sowohl bei der Einbindung von externen Daten als auch bei der Erstellung von fremdsprachigen Dokumenten ist dies ein durchaus relevantes Thema. Um sich die manuelle Konvertierung der Daten zu ersparen, @@ -59,10 +63,9 @@ auch die für jedes \hologo{pdfLaTeX}-Dokument meiner Meinung nach sinnvollen Pakete geladen. % \begin{Preamble} -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} -\documentclass[english,ngerman]{tudscrartcl}% andere Klassen sind möglich +\documentclass[english,ngerman]{tudscrartcl}% andere Klassen möglich \usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{\usepackage[ngerman=ngerman-x-latest]{hyphsubst}}{} \usepackage{babel} \usepackage{microtype} diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tutorials/mathtype.tex b/Master/texmf-dist/source/latex/tudscr/doc/tutorials/mathtype.tex index bd9245f0cd2..231af982b49 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tutorials/mathtype.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tutorials/mathtype.tex @@ -1,8 +1,12 @@ -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[english,ngerman]{tudscrartcl} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} + \usepackage{tudscrtutorial} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} \lstset{% inputencoding=utf8,extendedchars=true, literate=% @@ -17,7 +21,7 @@ \begin{document} \date{07.11.2016} \author{Falk Hanisch\thanks{\noexpand\scriptsize\noexpand\mailto{\tudscrmail}}} -\title{Ein Beitrag zum mathematischen Satz in \NoCaseChange{\hologo{LaTeXe}}} +\title{Ein Beitrag zum mathematischen Satz in \hologo{LaTeXe}} \makeatletter \begingroup% \def\and{, }% @@ -48,10 +52,9 @@ auch die für jedes \hologo{pdfLaTeX}-Dokument meiner Meinung nach sinnvollen Pakete geladen. % \begin{Preamble} -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[ngerman]{tudscrartcl}% andere Klassen sind möglich \usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{\usepackage[ngerman=ngerman-x-latest]{hyphsubst}}{} \usepackage{babel} \usepackage{microtype} diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tutorials/treatise.tex b/Master/texmf-dist/source/latex/tudscr/doc/tutorials/treatise.tex index 01c2650091f..30b1399ce86 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tutorials/treatise.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tutorials/treatise.tex @@ -1,11 +1,16 @@ -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} +\RequirePackage{fix-cm} \documentclass[% english,ngerman,% - cdgeometry=no,DIV=12,automark,% + cdgeometry=no,DIV=12,automark% ]{tudscrartcl} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} + \usepackage{tudscrtutorial} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} \lstset{% inputencoding=utf8,extendedchars=true, literate=% @@ -15,8 +20,8 @@ } \lstset{escapechar=§} -\TUDoptions{cdfont=false} \usepackage{lmodern} +\TUDoptions{cdfont=false} \KOMAoptions{headings=normal} \usepackage{tudscrsupervisor} @@ -78,7 +83,6 @@ \usepackage{bookmark} -\ActivateWarningFilters[Tutorial]% \begin{filecontents}{\jobname.bib} @book{talbot2012, author = {Nicola L. C. Talbot}, @@ -151,7 +155,6 @@ urldate = {2014-12-01} } \end{filecontents} -\DeactivateWarningFilters[Tutorial]% \begin{document} @@ -180,7 +183,7 @@ Anforderungen an eine wissenschaftliche Arbeit in einem Dokument abzudecken, insbesondere weil es für diese fast von jedem Lehrstuhl mehr oder weniger unterschiedliche Vorgaben zu Formatierung und Layout gibt. Dennoch soll hier - versucht werden, einen Großteil der für gewöhnlich auftretenden Erfordernisse + versucht werden, einen Großteil der für gewöhnlich auftretenden Erfordernisse zu bearbeiten. Dieses Tutorial hat \emph{nicht} die Intention, \hologo{LaTeX}"=Einsteigern @@ -192,9 +195,8 @@ Wünsche dürfen sie mir gegenüber gerne kommunizieren. Für absolute Neueinsteiger gibt es einige freie Tutorials, welche die ersten - Schritte mit \hologo{LaTeXe} stark erleichtern. Sehr empfehlenswert ist die - ausführliche \hrfn{http://www.fadi-semmo.de/latex/workshop/}{Workshop-Reihe} - von Fadi~Semmo. Außerdem stellt Nicola~L.~C.~Talbot sehr gute Tutorials für + Schritte mit \hologo{LaTeXe} stark erleichtern. Nicola~L.~C.~Talbot stellt + sehr gute Tutorials für \hrfn{http://www.dickimaw-books.com/latex/novices/}{\hologo{LaTeX}-Novizen} \cite{talbot2012} sowie \hrfn{http://www.dickimaw-books.com/latex/thesis/}{Dissertationen} @@ -235,16 +237,6 @@ Dokument verwendet werden sollten. Alle weiteren in diesem Tutorial genutzten und/oder empfohlenen Pakete werden in den relevanten Abschnitten des Tutorials genauer erläutert. -Den Anfang macht das Paket \Package{hyphsubst}. Dieses wird für eine wesentlich -verbesserte Worttrennung für die deutsche Sprache benötigt und muss bereits -\emph{vor} der Klasse geladen werden, damit es problemlos funktioniert. In -\autoref{sec:hyphenation} können Sie weitere Informationen zur Verwendung von -\Package{hyphsubst} sowie zum Thema \emph{Worttrennung} finden. -% -\begin{Preamble} -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} -\end{Preamble} -% Beim Laden der Klasse mit \Macro*{documentclass} können Sie globale Optionen angeben. Diese werden sowohl an die Klasse selbst weitergereicht als auch allen in der Präambel geladenen Pakete zur Verfügung gestellt. Falls das Paket @@ -259,26 +251,44 @@ diese nicht nur an das Paket \Package{babel} sondern auch an andere Pakete \usepackage{babel} \end{Preamble} % -Bei der Verwendung von \Engine{pdfLaTeX} sollte zum einen die Eingabekodierung -des erstellten Datei spezifiziert werden. Das Paket \Package{selinput} erkennt -automatisch, welche Kodierung der genutzte Editor verwendet. Alternativ lässt -sich die Eingabekodierung mit dem Paket \Package{inputenc} auch manuell -festgelegen. Zum anderen werden die Schriften in der Ausgabe ebenfalls kodiert. -Mit dem Paket \Package{fontenc} lässt sich die verwendete Schriftkodierung für -das Dokument spezifizieren, wobei im Normalfall die europäischen Zeichen mit -der Option~\Option{T1}(\Package{fontenc}) aktiviert werden sollten. Es wird -empfohlen, das Paket \Package{fontenc} \emph{vor} \Package{selinput} respektive -\Package{inputenc} zu laden. +Mit dem Paket \Package{fontenc} lässt sich die Kodierung der für die Ausgabe +der verwendeten Schriften im Dokument spezifizieren, wobei die europäische +Zeichenkodierung mit der Option~\Option{T1}(\Package{fontenc}) aktiviert wird. +Kommt mit \Engine{LuaLaTeX} oder \Engine{XeLaTeX} ein Unicode"=Textsatzsystem +zum Einsatz, sollte besser das Paket \Package{fontspec} geladen werden. + +Weiterhin kann die Eingabekodierung der kompilierten Datei eingestellt werden. +Diese ist standardmäßig \PValue{utf8}. Bei der Verwendung von \Engine{pdfLaTeX} +sind auch andere Kodierungen möglich.% +\footnote{% + Sollte die Datei in einer anderen Kodierung gespeichert sein, so kann das + Paket \Package{selinput} genutzt werden, um die Kodierung automatisch zu + erkennen. Alternativ lässt sich die Eingabekodierung auch mit dem Paket + \Package{inputenc} auch manuell festgelegen. In beiden Fällen sollte das + Paket \Package{fontenc} \emph{vorher} geladen worden sein. +} + +Wurde ein Sprachpaket für die deutsche Sprache geladen (\Package{babel} oder +\Package{polyglossia}), so werden für \Engine{LuaLaTeX} und \Engine{XeLaTeX} +erweiterte Trennmuster verwendet. Für \Engine{pdfLaTeX} lässt sich eine +wesentlich verbesserte Worttrennung für die deutsche Sprache mit dem Paket +\Package{hyphsubst} aktivieren. In \autoref{sec:hyphenation} können Sie weitere +Informationen zur Verwendung von \Package{hyphsubst} sowie zum Thema +\emph{Worttrennung} finden. % \begin{Preamble} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} \end{Preamble} % Für die \KOMAScript-Klassen wird außerdem das Paket \Package{scrhack} bereitgestellt. Dieses behebt einige Probleme bei der Kompatibilität mit anderen Paketen bezüglich des Erstellens von Verzeichnissen. Deshalb sollte -dieses frühzeitig in der Präambel geladen werden. +dieses bei Bedarf frühzeitig in der Präambel geladen werden. % \begin{Preamble} \usepackage{scrhack} @@ -313,13 +323,13 @@ Gesichtspunkten konstruiert. Dabei ist für dessen Aufteilung maßgeblich die angegeben. Diese wird in \autoref{sec:bcor} erläutert. \subsection{Änderung des Zeilenabstandes (Durchschuss)} -Auf die Änderung des standardmäßigen Zeilenabstandes sollte aus typografischer -Sicht bei der Verwendung einer Standardschrift im Normalfall verzichtet werden. -Die Gründe hierfür werden im Handbuch von \TUDScript bei der Vorstellung des -Paketes \Package{setspace} erklärt, welches im Zweifelsfall für dieses Anliegen -den Befehl \Macro{setstretch}(\Package{setspace}) bereitstellt. Wird ein -Dokument in der \Univers-Hausschrift der \TnUD gesetzt, sollte der Wert von -\Macro{setstretch}(\Package{setspace}) im Bereich 1.05--1.1 liegen. +Auf eine Änderung des Zeilenabstandes sollte aus typografischer Sicht bei der +Verwendung einer Standardschrift im Normalfall verzichtet werden. Die Gründe +hierfür werden im Handbuch von \TUDScript bei der Vorstellung des Paketes +\Package{setspace} erklärt, welches für dieses Anliegen den Befehl +\Macro{setstretch}[\Parameter{Faktor}](\Package{setspace}) bereitstellt. Wird +die \OpenSans-Hausschrift der \TnUD verwendet, sollte der Faktor im Bereich +\PValue{1.05}--\PValue{1.1} liegen. \subsection{Bindekorrektur} \label{sec:bcor}% @@ -1006,14 +1016,14 @@ Ende. Um dieses Manko zu beheben, wird am Schluss jeder \PValue{X}"~Spalte mit \PValue{X<\PParameter{\Macro{strut}}} einfach der Befehl \Macro{strut} angehängt, der vertikalen Leerraum ober- und unterhalb der aktuellen Grundlinie einfügt. In \autoref{sec:tables} wird ein Ansatz aufgezeigt, wie dies -automatisiert über einen neuen Spaltenstil ausmerzt werden kann. Der Rest des +automatisiert über einen neuen Spaltenstil ausgemerzt werden kann. Der Rest des Stils ist identisch zu \PValue{acrotabularx}. % \CodeHook{\let\newglossarystyle\renewglossarystyle} \begin{Preamble*} \newglossarystyle{acrotabu}{% \renewenvironment{theglossary}{% - \begin{tabu}spread 0pt{@{}lX<{\strut}l@{}}% + \begin{tabu}{@{}lX<{\strut}l@{}}% 'spread 0pt' defekt in v2.9 }{% \end{tabu}\par\bigskip% }% @@ -1053,31 +1063,31 @@ zumindest das notwendige Glossar erstellt. Als erstes sollte ein gut nutzbarer Befehl zum Definieren eines neuen Symbols erstellt werden. In Anlehnung an den Befehl für Abkürzungen \Macro*{newacronym} -wird er \Macro{newsymbol}|?| genannt. Dieser hat genau ein optionales und vier +wird er \Macro{newformulasymbol}|?| genannt. Dieser hat ein optionales und vier obligatorische Argumente, wobei das optionale Argument prinzipiell alle Schlüssel"~Wert"~Paare enthalten kann, die durch das Paket \Package{glossaries} akzeptiert werden. Welche davon letztlich auch Auswirkungen haben, hängt -allerdings von der Gestaltung des Stils durch den Anwender ab. Der nachfolgend -definierte Befehl hat folgende Gestalt: +allerdings von der Gestaltung des Stils durch den Anwender ab. Der Befehl hat +folgende Definition: % \begin{quoting}[leftmargin=\parindent] -\Macro{newsymbol}[% - \LParameter\Parameter{Label}\Parameter{Bezeichnung}% +\Macro{newformulasymbol}[% + \LParameter\Parameter{Label}\Parameter{Name}% \Parameter{Symbol}\Parameter{Einheit}% ]|?|% \end{quoting} % Mit \PName{Label} erfolgt die eindeutige Kennzeichnung des Symbols. Außerdem -wird dies für die Sortierung verwendet, was unter Umständen etwas problematisch -sein könnte. Eine manuelle Festlegung für den dazugehörigen Schlüssel durch den -Anwender über das optionale Argument mit \PValue{sort=}\PName{Bezeichnung} ist -eventuell sinnvoll. Nach dem \PName{Label} schließt die \PName{Bezeichnung} für -das Formelzeichen an, gefolgt vom \PName{Symbol} sowie der dazugehörige -physikalische \PName{Einheit}. +wird dies standardmäßig für die Sortierung verwendet, was unter Umständen etwas +problematisch sein könnte. In diesem Fall ist eine manuelle Festlegung für den +dazugehörigen Schlüssel durch den Anwender über das optionale Argument mit +\PValue{sort=}\PName{Sortierung} eventuell sinnvoll. Nach dem \PName{Label} +schließt der \PName{Name} für das Formelzeichen an, gefolgt vom \PName{Symbol} +sowie der dazugehörige physikalische \PName{Einheit}. % \CodeHook{\let\newcommand\renewcommand} \begin{Preamble*} -\newcommand*{\newsymbol}[5][]{% +\newcommand*{\newformulasymbol}[5][]{% \newglossaryentry{#2}{% type=symbols,% name={#3},% @@ -1102,12 +1112,12 @@ Fließtext gut genutzt werden kann und ansehnlich ist, wird für diese der Befeh \Macro{sfrac}(\Package{xfrac}) aus dem Paket \Package{xfrac} genutzt. % \begin{Trunk*} -\newsymbol{l}{Länge}{l}{m} -\newsymbol{m}{Masse}{m}{kg} -\newsymbol{a}{Beschleunigung}{a}{\sfrac{m}{s^2}} -\newsymbol{t}{Zeit}{t}{s} -\newsymbol{f}{Frequenz}{f}{s^{-1}} -\newsymbol{F}{Kraft}{F}{m \cdot kg \cdot s^{-2} = \sfrac{J}{m}} +\newformulasymbol{l}{Länge}{l}{m} +\newformulasymbol{m}{Masse}{m}{kg} +\newformulasymbol{a}{Beschleunigung}{a}{\sfrac{m}{s^2}} +\newformulasymbol{t}{Zeit}{t}{s} +\newformulasymbol{f}{Frequenz}{f}{s^{-1}} +\newformulasymbol{F}{Kraft}{F}{m \cdot kg \cdot s^{-2} = \sfrac{J}{m}} \end{Trunk*} % @@ -1205,7 +1215,7 @@ Hilfe ist. \begin{Preamble*} \newglossarystyle{symblongtabu}{% \renewenvironment{theglossary}{% - \begin{longtabu}spread 0pt[l]{ccX<{\strut}l}% + \begin{longtabu}[l]{ccX<{\strut}l}% 'spread 0pt' defekt in v2.9 }{% \end{longtabu}% }% @@ -1213,7 +1223,7 @@ Hilfe ist. \renewcommand*{\glsgroupskip}{}% \renewcommand*{\glossaryheader}{% \toprule - \bfseries Formelzeichen & \bfseries Einheit & + \bfseries Symbol & \bfseries Einheit & \bfseries Bezeichnung & \bfseries Seite(n) \tabularnewline\midrule\endhead% \bottomrule\endfoot% @@ -1250,13 +1260,13 @@ Das Symbolverzeichnis kann sich nun durchaus sehen lassen. \newglossarystyle{symbtabu}{% \setglossarystyle{symblongtabu}% \renewenvironment{theglossary}{% - \begin{tabu}spread 0pt{ccX<{\strut}l}% + \begin{tabu}{ccX<{\strut}l}% 'spread 0pt' defekt in v2.9 }{% \bottomrule\end{tabu}% }% \renewcommand*{\glossaryheader}{% \toprule - \bfseries Formelzeichen & \bfseries Einheit & + \bfseries Symbol & \bfseries Einheit & \bfseries Bezeichnung & \bfseries Seite(n) \tabularnewline\midrule% }% @@ -1328,7 +1338,7 @@ Ausgabe. \newglossarystyle{symbsplitlongtabu}{% \newcommand*\symbollevel{-1}% \renewenvironment{theglossary}{% - \begin{longtabu}spread 0pt[l]{ccX<{\strut}l}% + \begin{longtabu}[l]{ccX<{\strut}l}% 'spread 0pt' defekt in v2.9 }{% \end{longtabu}% }% @@ -1336,7 +1346,7 @@ Ausgabe. \renewcommand*{\glsgroupskip}{}% \newcommand*\symbolhead{% \toprule - \bfseries Formelzeichen & \bfseries Einheit & + \bfseries Symbol & \bfseries Einheit & \bfseries Bezeichnung & \bfseries Seite(n) \tabularnewline\midrule }% @@ -1407,7 +1417,7 @@ der notwendige Tabellenkopf nach der Überschrift gesetzt, falls es sich um den Jetzt könnte man den Glossarstil \PValue{symbsplitlongtabu} bereits verwenden und jedem Formelzeichen bei der Definition mit \begin{quoting}[leftmargin=\parindent] -\Macro{newsymbol}[% +\Macro{newformulasymbol}[% \POParameter{parent={greekletters/romanletters}}% \PParameter{\dots}\PParameter{\dots}\PParameter{\dots}\PParameter{\dots}% ]|?|% @@ -1483,14 +1493,14 @@ das Resultat mit der Liste \Macro*{greeksymbollist} abgeglichen. \end{Hint*} % Mit \Macro*{ifisgreeksymbol} kann jetzt auf die Art des Symbols getestet. Dies -wird innerhalb von \Macro{newsymbol}|?| genutzt, um den passenden Elterneintrag -auszuwählen. Über das optionale Argument kann jederzeit mit +wird innerhalb von \Macro{newformulasymbol}|?| genutzt, um den passenden +Elterneintrag auszuwählen. Über das optionale Argument kann jederzeit mit \POParameter{parent={greekletters/romanletters}} der automatische ermittelte Elterneintrag überschrieben werden. % \begin{Hint} \newcommand*\symbollettergroup{} -\newcommand*{\newsymbol}[5][]{% +\newcommand*{\newformulasymbol}[5][]{% \ifisgreeksymbol{#4}{% \renewcommand*{\symbollettergroup}{greekletters}% }{% @@ -2030,12 +2040,12 @@ Gleitumgebung gänzlich zu verzichten. Hierfür eignet sich beispielsweise die Umgebung \Environment{center}, welche zum einen etwas Abstand vor und nach dem Objekt zum umgebenden Text erzeugt -sowie zum anderen die Grafik beziehungsweise Tabelle und die dazugehörige -Bezeichnung zusammenhält. \KOMAScript stellt für diesen Anwendungsfall das -Makro \Macro{captionof}(\Package{koma-script}) für die Beschriftung zur -Verfügung. Werden die Pakete \Package{caption} und \Package{hyperref} geladen, -sollte weiterhin \Macro{caption}(\Package{koma-script},\Package{caption}) -ergänzt um ein zuvor aufgerufenes +und zum anderen die Grafik respektive Tabelle und die dazugehörige Bezeichnung +zusammenhält. \KOMAScript{} stellt für diesen Anwendungsfall das Makro +\Macro{captionof}(\Package{koma-script}) für die Beschriftung zur Verfügung. +Werden die Pakete \Package{caption} und \Package{hyperref} geladen, sollte +weiterhin \Macro{caption}(\Package{koma-script},\Package{caption}) ergänzt um +ein zuvor aufgerufenes \Macro{captionsetup}[\PParameter{type=figure/table}](\Package{caption}) genutzt werden. Damit lassen sich Bildunter- sowie Tabellenüberschriften auch ohne die bekannten Gleitumgebungen \Environment{figure} respektive @@ -2061,7 +2071,7 @@ bereitstellt. Das Resultat ist identisch zu \autoref{fig:nonfloating-A}. \begin{figure}[H] \includegraphics{TUD-black} \caption{Eine nichtgleitende Grafik in einer \texttt{figure}"=Umgebung} -\label{fig:...} +\label{fig:nonfloating-B} \end{figure} \end{Hint} @@ -2078,7 +2088,7 @@ Quelltextauszuges ist die Dokumentation von \Package{floatrow} zu beachten. \caption{% Eine nichtgleitende Grafik mit \texttt{\textbackslash floatbox}% }% - \label{fig:nonfloating-B}% + \label{fig:nonfloating-C}% } \end{Hint} \InputCode\noindent @@ -2099,7 +2109,10 @@ Zum Thema \enquote{Tabellensatz mit \hologo{LaTeX}} sind bereits zahlreiche zu diesem Punkt relativ kurz halten. Zwei Regeln sollten beim Satz von Tabellen in jedem Fall beachtet werden: % -\begin{enumerate}[itemindent=0pt,labelwidth=*,labelsep=1em,label=\Roman*.,noitemsep] +\begin{enumerate}[% + itemindent=0pt,noitemsep,% + labelwidth=*,labelsep=1em,label=\Roman*.% +] \item keine vertikalen Linien \item keine doppelten Linien \end{enumerate} @@ -2623,22 +2636,26 @@ mit einer Mustererkennung ermittelt. Die verwendeten Muster basieren jedoch auf der englischen Sprache, weshalb in nicht"~englischsprachigen Texten auch heute noch teilweise falsche Trennstellen gefunden werden. -Zu Beginn wurde bei der Einleitung in \autoref{sec:introduction} auf das Paket +In \autoref{sec:introduction} wurde bereits auf das Paket \Package{hyphsubst} hingewiesen, welches dieses Manko~-- aufgrund der nicht mehr so stark gegebenen Restriktionen bezüglich des Speicherbedarfes~-- mit -einem Wörterbuch behebt. Dieses Paket muss \emph{vor} dem Laden der -Dokumentklasse eingebunden werden. Außerdem wird das Paket \Package{babel} -benötigt. Damit auch Wörter mit Umlauten richtig getrennt werden, ist zudem die -Verwendung der \PValue{T1}"~Schriftkodierung notwendig. Der Beginn einer -Dokumentpräambel könnte folgendermaßen aussehen: +einem Wörterbuch behebt. Dieses Paket muss für \Engine{pdfLaTeX} vom Anwender +eingebunden werden, \Engine{LuaLaTeX} und \Engine{XeLaTeX} verwenden die +Trennmuster~-- ein geladenes Sprachpaket wie \Package{polyglossia} oder +\Package{babel} vorausgesetzt~-- automatisch. Damit auch Wörter mit Umlauten +richtig getrennt werden, ist zudem das Paket \Package{fontenc} mit der +\PValue{T1}"~Schriftkodierung respektive \Package{fontspec} notwendig. Der +Beginn einer Dokumentpräambel könnte folgendermaßen aussehen: % \begin{Hint} -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[ngerman,§\PName{Klassenoptionen}§]§\Parameter{Dokumentklasse}§ -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} \usepackage{babel} -§\dots§ \end{Hint} % Die Option \Option{ngerman}(\Package{hyphsubst}) lädt dabei die Trennmuster für @@ -2649,8 +2666,8 @@ stattdessen die Option \Option{german}(\Package{hyphsubst}) mit dem Wert \subsection{Einmalige und globale Worttrennungskorrektur} -Sollte es dennoch passieren, dass ein Wort nicht richtig getrennt wird, kann -dies manuell korrigiert werden. Dafür stellt das Paket \Package{babel} mehrere +Sollte es dennoch passieren, dass ein Wort nicht korrekt getrennt wird, lässt +sich dies manuell korrigieren. Dafür stellt das Paket \Package{babel} mehrere Kurzbefehle zur Verfügung. Mit dem Makro \Macro{hyphenation} lassen sich für ein bestimmtes Wort außerdem alle potenziellen Trennstellen angeben. Zum Thema \tudhyperref{sec:tips:hyphenation}{Worttrennungen in deutschsprachigen Texten} @@ -2748,56 +2765,6 @@ kann auch das Makro \texttt{\textbackslash acs} genutzt werden. \end{Hint*} -\subsection{Mathematiksatz} -Von \hologo{LaTeXe} werden einige Umgebungen für das Setzen mathematischer -Formeln und Ausdrücke bereitgestellt, welche meist jedoch nicht \emph{alle} -Anforderungen eines Nutzers an den Mathematiksatz erfüllen können. Das Paket -\Package{amsmath} bietet deshalb eine Reihe weiterführender Umgebungen für das -Setzen von einzeiligen und mehrzeiligen sowie ausgerichteter Formeln zur -Verfügung. Auf eine Einführung in das Paket wird~-- aufgrund der bereits in -großer Zahl vorhandenen Einführungen~-- in diesem Tutorial verzichtet. Außerdem -stehen mit \Tutorial{mathtype} und \Tutorial{mathswap} zwei weitere Tutorials -zur Verfügung, die sich explizit mit der Thematik eines guten mathematischen -Satz beschäftigen. - -Das Paket \Package{amsmath} stellt für \hologo{LaTeXe} den De"~facto"~Standard -für den mathematischen Satz dar. Allerdings wird es~-- insbesondere aus diesem -Grund~-- sehr \enquote{vorsichtig} weiterentwickelt. Für das Setzen neuer -Dokumente sollte deshalb das Paket \Package{mathtools} verwendet werden, das -auf \Package{amsmath} basiert und dieses um zusätzliche Funktionalitäten -ergänzt sowie Bugfixes bereithält. - - -\subsection{Einheiten} -Mit dem Paket \Package{siunitx} lassen sich sowohl physikalische Einheiten als -auch Zahlen typografisch korrekt setzen. Sollen die Funktionalitäten in einem -deutschsprachigen Dokument problemlos nutzbar sein, so sind die Hinweise zum -\tudhyperref{sec:tips:siunitx}{Setzen von Einheiten mit \Package{siunitx}} im -\TUDScript-Handbuch zu beachten. Das Paket \Package{units} ist nicht ganz so -mächtig wie \Package{siunitx}, kann allerdings als pragmatische Alternative -gesehen und genutzt werden. - - -\subsection{Darstellung von mathematischen Brüchen} -Für ansehnliche und insbesondere im Fließtext gut lesbare mathematische Brüche -stellt das Paket \Package{xfrac} den Befehl \Macro{sfrac}(\Package{xfrac}) zur -Verfügung. -% -\begin{Preamble} -\usepackage{xfrac} - -\end{Preamble} - - -\subsection{Ligaturen} -Die meisten \hologo{LaTeX}"=Schriftfamilien enthalten Ligaturen, die für einen -typografisch sauberen Satz bei zusammengesetzten Wörtern, wie sie gerade im -Deutschen relativ häufig vorkommen, aufgetrennt werden müssten. Mit der -Anwendung \Application{DeLig}<delig> kann dies automatisiert geschehen. Wird -\Engine{LuaLaTeX} als Textsatzsystem genutzt, kann alternativ für dieses -Unterfangen das Paket \Package{selnolig} verwendet werden. - - \subsection{Listen} \label{sec:lists}% % @@ -2809,7 +2776,7 @@ häufigste Anliegen bei der Verwendung dieser Umgebungen ist das Reduzieren der Abstände zwischen den einzelnen, mit \Macro{item}(\Package{koma-script},\Package{enumitem}) gesetzten Punkten, welche sehr häufig als zu groß empfunden werden. Eine Aufzählung erscheint ohne -weitere Anpassungen wie folgt: +Anpassungen wie folgt: % \CodePreamble{Aufzählung mit vertikalen Standardabständen} \begin{Hint*} @@ -2849,7 +2816,8 @@ Hier soll dies lediglich für die Umgebung \Environment*{itemize} geschehen: % Alternativ zur globalen Änderung einer speziellen oder aller Aufzählungslisten kann der Schlüssel \PValue{noitemsep} auch nur gezielt an einzelne Umgebung -über das optionale Argument weitergereicht werden. +über das optionale Argument weitergereicht werden +(\Macro*{begin}[\PParameter{itemize}\POParameter{noitemsep}]). Natürlich erlaubt das Paket noch weitergehende Einstellungen für die Umgebungen \Environment{itemize}(\Package{koma-script},\Package{enumitem}), @@ -2860,17 +2828,13 @@ eigenen Bedürfnissen angepasst werden. Genaueres hierzu ist der Dokumentation des Paketes \Package{enumitem} entnehmen. -\subsection{Datumsformatierung} -Das Paket \Package{isodate} stellt \Macro{printdate}(\Package{isodate}) bereit. -Dieser Befehl kann für die Formatierung von Datumsangaben verwendet werden. -Wird das Paket mit einer der Dokumentklassen aus dem \TUDScript-Bundle geladen, -wird der genannte Befehl automatisch für alle bereitgestellten Datumsfelder -verwendet. -% -\begin{Preamble} -\usepackage{isodate} - -\end{Preamble} +\subsection{Ligaturen} +Die meisten \hologo{LaTeX}"=Schriftfamilien enthalten Ligaturen, die für einen +typografisch sauberen Satz bei zusammengesetzten Wörtern, wie sie gerade im +Deutschen häufig vorkommen, aufgetrennt werden müssten. Mit der Anwendung +\Application{DeLig}<delig> kann dies automatisiert geschehen. Wird +\Engine{LuaLaTeX} als Textsatzsystem genutzt, kann alternativ das Paket +\Package{selnolig} verwendet werden. \subsection{Auslassungspunkte} @@ -2884,14 +2848,67 @@ beschrieben, weshalb hier nur kurz darauf eingegangen wird. Es wird das Paket \usepackage{ellipsis} \end{Preamble} % -Für deutschsprachige Texte sollten außerdem noch +Für deutschsprachige Texte sollten außerdem noch folgendes ausgeführt werden: % \begin{Preamble} \let\ellipsispunctuation\relax \end{Preamble} + + +\subsection{Mathematiksatz} +Von \hologo{LaTeXe} werden einige Umgebungen für das Setzen mathematischer +Formeln und Ausdrücke bereitgestellt, welche meist jedoch nicht \emph{alle} +Anforderungen eines Nutzers an den Mathematiksatz erfüllen können. Das Paket +\Package{amsmath} bietet deshalb eine Reihe weiterführender Umgebungen für das +Setzen von einzeiligen und mehrzeiligen sowie ausgerichteter Formeln zur +Verfügung. Auf eine Einführung in das Paket wird~-- aufgrund der bereits in +großer Zahl vorhandenen Einführungen~-- in diesem Tutorial verzichtet. Außerdem +stehen mit \Tutorial{mathtype} und \Tutorial{mathswap} zwei weitere Tutorials +zur Verfügung, die sich explizit mit der Thematik eines guten mathematischen +Satz beschäftigen. + +Das Paket \Package{amsmath} stellt für \hologo{LaTeXe} den De"~facto"~Standard +für den mathematischen Satz dar. Allerdings wird es~-- insbesondere aus diesem +Grund~-- sehr \enquote{vorsichtig} weiterentwickelt. Für das Setzen neuer +Dokumente sollte deshalb das Paket \Package{mathtools} verwendet werden, das +auf \Package{amsmath} basiert und dieses um zusätzliche Funktionalitäten +ergänzt sowie Bugfixes bereithält. + + +\subsection{Darstellung von mathematischen Brüchen} +Für ansehnliche und insbesondere im Fließtext gut lesbare mathematische Brüche +stellt das Paket \Package{xfrac} den Befehl \Macro{sfrac}(\Package{xfrac}) zur +Verfügung. % -ausgeführt werden. +\begin{Preamble} +\usepackage{xfrac} + +\end{Preamble} + + +\subsection{Einheiten} +Mit dem Paket \Package{siunitx} lassen sich sowohl physikalische Einheiten als +auch Zahlen typografisch korrekt setzen. Sollen die Funktionalitäten in einem +deutschsprachigen Dokument problemlos nutzbar sein, so sind die Hinweise zum +\tudhyperref{sec:tips:siunitx}{Setzen von Einheiten mit \Package{siunitx}} im +\TUDScript-Handbuch zu beachten. Das Paket \Package{units} ist nicht ganz so +mächtig wie \Package{siunitx}, kann allerdings als pragmatische Alternative +gesehen und genutzt werden. + + +\subsection{Datumsformatierung} +Das Paket \Package{isodate} stellt \Macro{printdate}(\Package{isodate}) bereit. +Dieser Befehl kann für die Formatierung von Datumsangaben verwendet werden. +Wird das Paket mit einer der Dokumentklassen aus dem \TUDScript-Bundle geladen, +wird der genannte Befehl automatisch für alle bereitgestellten Datumsfelder +verwendet. Alternativ dazu kann das Paket \Package{datetime2} genutzt werden, +dessen Befehl \Macro{DTMDate}(\Package{datetime2}) wird ebenfalls unterstützt. +% +\begin{Preamble} +\usepackage{isodate} + +\end{Preamble} @@ -2916,11 +2933,11 @@ Dokumentschriften innerhalb der erstellten Grafiken ermöglichen. Im Handbuch zu \TUDScript wird dies für \tudhyperref{sec:tips:svg}{\Application{Inkscape}} genauer erläutert. Eine andere Variante ist das \enquote{Programmieren} von Grafiken. Die zwei bekanntesten \hologo{LaTeX}"=Pakete sind \Package{tikz}<pgf> -und \Package{pstricks}<pstricks-base>. Für diese beiden wird im Folgenden eine -Abbildung exemplarisch erstellt, ohne dabei tiefer ins Detail gehen zu wollen. -Ebenfalls wird darauf verzichtet, diese im Kopierbeispiel einzubinden. Für -beide Pakete gibt es neben der umfangreichen Dokumentation zahlreiche Beispiele -und Erläuterungen im Internet. +und \Package{pstricks}<pstricks-base>. Mit beiden wird folgend eine Abbildung +exemplarisch erstellt, ohne dabei ins Detail zu gehen, da es~-- neben den +umfangreichen Dokumentationen~-- zahlreiche Beispiele und Erläuterungen im +Internet gibt. + \subsection{Das Paket \Package{tikz}} @@ -3249,25 +3266,21 @@ function perfect = isperfect(test_value) % 28 is a perfect number: 1 + 2 + 4 + 7 + 14 = 28 == 28 % % Arguments: - % % test_value (input) check to see if this value % is perfect or not % perfect (output) if yes, set this to 1 % if no, set this to 0 - + % % this will keep track of the sum of all integer divisors tempsum = 0; - % we check all possible divisors for (divisor = 1 : test_value - 1) div_result = test_value / divisor; - if (div_result == floor(div_result)) % this is an integer divisor, so add it to the sum tempsum = tempsum + divisor; end end - % now, does the sum equal the test_value? if (tempsum == test_value) perfect = 1; @@ -3313,7 +3326,7 @@ dazugehörigen \Forum gestellt werden. \addsec{Index} Da das Tutorial etwas umfangreicher ist, wird für alle erläuterten Optionen, Umgebungen und Befehle ein Index erstellt. Bei Elementen, die weder \TUDScript -noch \KOMAScript zuzuordnen sind, wird das dazugehörige Paket mit angeführt. +noch \KOMAScript{} zuzuordnen sind, wird das dazugehörige Paket mit angeführt. \PrintIndex \FinishTutorial[% diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-area.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-area.dtx index 8a83208a5d0..b5bbf426ee7 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-area.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-area.dtx @@ -1,10 +1,10 @@ -% \CheckSum{2186} +% \CheckSum{2247} % \iffalse meta-comment % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2017 +% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2019 % % ---------------------------------------------------------------------------- % @@ -48,17 +48,24 @@ % % \iffalse %%% From File: tudscr-area.dtx -%<*driver> -\ifx\ProvidesFile\@undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-area.dtx}[% - 2017/03/29 v2.05l TUD-Script (type or page area)% +%<*dtx> +% \fi% +% +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\ProvidesFile{tudscr-area.dtx}[2019/06/28 v2.06 TUD-Script\space% + (type or page area)% ] -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} +% +% \iffalse \documentclass[english,ngerman,xindy]{tudscrdoc} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} \usepackage{babel} -\usepackage{tudscrfonts} % only load this package, if the fonts are installed +\usepackage{tudscrfonts} \KOMAoptions{parskip=half-} \usepackage{bookmark} \usepackage[babel]{microtype} @@ -75,7 +82,7 @@ \tableofcontents \DocInput{\filename} \end{document} -%</driver> +%</dtx> % \fi % % \selectlanguage{ngerman} @@ -93,8 +100,6 @@ % andere als glücklich gewählt. Insbesondere für den doppelseitigen Satz ist % das Standardlayout nicht gut nutzbar. Für die \TUDScript-Klassen wird % deshalb die Abweichung vom sonst fest vorgegebenen Satzspiegel ermöglicht. -% \ToDo{Abhängigkeiten zwischen Satzspiegel und Seitenstilen beseitigen}[v2.07] -% \ToDo{DIV=calc vordefinieren?}[v2.07] % \ToDo{% % Unterstützung von PDF-Boxen für die Druckausgabe %^^A\url{https://groups.google.com/forum/#!topic/de.comp.text.tex/1gouJ0Zov6o} @@ -137,7 +142,7 @@ }% \pretocmd{\CROP@center}{% \@tud@x@crop@centertrue% - }{}{\tud@patch@wrn{CROP@center}} + }{}{\tud@patch@wrn{CROP@center}}% } % \end{macrocode} % \end{macro}^^A \CROP@center @@ -271,6 +276,12 @@ \tud@if@v@lower{2.03}{\newlength\tud@len@ddcdiff}{} % \end{macrocode} % \end{length}^^A \tud@len@ddcdiff +% \begin{macro}{\tud@head@fontsize} +% Für den Querbalken wird außerdem die zu verwendende Schriftgröße definiert. +% \begin{macrocode} +\newcommand*\tud@head@fontsize{} +% \end{macrocode} +% \end{macro}^^A \tud@head@fontsize % \begin{macro}{\tud@cdgeometry@set} % \changes{v2.03}{2015/01/23}{Längenberechnung für den Satzspiegel an % Referenzlänge \cs{tud@len@widemargin} gekoppelt}^^A @@ -278,10 +289,12 @@ % \changes{v2.05}{2016/04/03}{Option \opt{layout} von \pkg{geometry} möglich}^^A % \begin{macro}{\if@tud@cdgeometry@adjust} % \changes{v2.05}{2015/11/29}{neu}^^A -% \begin{length}{\tud@len@layoutheight} -% \changes{v2.05}{2016/04/03}{neu}^^A +% \begin{macro}{\tud@cdgeometry@assignlayout} +% \changes{v2.06}{2018/08/13}{neu}^^A % \begin{length}{\tud@len@layoutwidth} % \changes{v2.05}{2016/04/03}{neu}^^A +% \begin{length}{\tud@len@layoutheight} +% \changes{v2.05}{2016/04/03}{neu}^^A % \begin{length}{\tud@len@layouthoffset} % \changes{v2.05}{2016/04/03}{neu}^^A % \begin{length}{\tud@len@layoutvoffset} @@ -300,20 +313,24 @@ % DIN~A5 mit den skalierten Seitenrändern erstellt. % \begin{macrocode} \newif\if@tud@cdgeometry@adjust -\newlength\tud@len@layoutheight \newlength\tud@len@layoutwidth +\newlength\tud@len@layoutheight \newlength\tud@len@layouthoffset \newlength\tud@len@layoutvoffset -\newcommand*\tud@cdgeometry@set{% - \ifGm@layout% - \setlength\tud@len@layoutheight{\Gm@layoutheight}% - \setlength\tud@len@layoutwidth{\Gm@layoutwidth}% - \else% - \setlength\tud@len@layoutheight{\paperheight}% +% \end{macrocode} +% Mit \cs{tud@cdgeometry@assignlayout} wird die Layoutgröße, welche ggf. mit +% dem Paket \pkg{geometry} angegeben wurde, entsprechend gesetzt. +% \begin{macrocode} +\newcommand*\tud@cdgeometry@assignlayout{% + \ifdim\tud@len@layoutwidth<\p@\relax% \setlength\tud@len@layoutwidth{\paperwidth}% \fi% - \setlength\tud@len@layouthoffset{\Gm@layouthoffset}% - \setlength\tud@len@layoutvoffset{\Gm@layoutvoffset}% + \ifdim\tud@len@layoutheight<\p@\relax% + \setlength\tud@len@layoutheight{\paperheight}% + \fi% +} +\newcommand*\tud@cdgeometry@set{% + \tud@cdgeometry@assignlayout% \tud@if@v@lower{2.05}{% \ifdim\tud@len@layoutheight<\dimexpr105mm+1.5mm\relax% \def\@tempa{0}% @@ -393,8 +410,8 @@ \setlength\tud@len@heavyline{\@tempa\tud@len@heavyline}% \setlength\tud@len@thinline{0.25pt}% \setlength\tud@len@thinline{\@tempa\tud@len@thinline}% - \setlength{\@tempdima}{4.5pt}% - \setlength{\@tempdima}{\@tempa\@tempdima}% + \setlength\@tempdima{4.5pt}% + \setlength\@tempdima{\@tempa\@tempdima}% \edef\tud@head@fontsize{\strip@pt\@tempdima}% \or% <=A6/B6 \setlength\tud@len@widemargin{15mm}% @@ -467,8 +484,8 @@ \setlength\tud@len@heavyline{\@tempa\tud@len@heavyline}% \setlength\tud@len@thinline{2pt}% \setlength\tud@len@thinline{\@tempa\tud@len@thinline}% - \setlength{\@tempdima}{36pt}% - \setlength{\@tempdima}{\@tempa\@tempdima}% + \setlength\@tempdima{36pt}% + \setlength\@tempdima{\@tempa\@tempdima}% \edef\tud@head@fontsize{\strip@pt\@tempdima}% \fi% % \end{macrocode} @@ -480,8 +497,8 @@ \setlength\tud@len@widemargin{\@tempa\tud@len@widemargin}% \setlength\tud@len@heavyline{\@tempa\tud@len@heavyline}% \setlength\tud@len@thinline{\@tempa\tud@len@thinline}% - \setlength{\@tempdima}{\tud@head@fontsize pt}% - \setlength{\@tempdima}{\@tempa\@tempdima}% + \setlength\@tempdima{\tud@head@fontsize pt}% + \setlength\@tempdima{\@tempa\@tempdima}% \edef\tud@head@fontsize{\strip@pt\@tempdima}% \fi% % \end{macrocode} @@ -513,8 +530,9 @@ % \end{macrocode} % \end{length}^^A \tud@len@layoutvoffset % \end{length}^^A \tud@len@layouthoffset -% \end{length}^^A \tud@len@layoutwidth % \end{length}^^A \tud@len@layoutheight +% \end{length}^^A \tud@len@layoutwidth +% \end{macro}^^A \tud@cdgeometry@assignlayout % \end{macro}^^A \if@tud@cdgeometry@adjust % \end{macro}^^A \tud@cdgeometry@set % @@ -523,6 +541,23 @@ %<*class&option> % \fi % +% \begin{macro}{\tud@cdgeometry@reset} +% \changes{v2.06}{2018/08/17}{neu}^^A +% \begin{macro}{\if@tud@cdgeometry@reset} +% \changes{v2.06}{2018/08/17}{neu}^^A +% Mit diesem Befehl wird das Laden von zuvor definierte Satzspiegeln durch die +% Option \opt{cdgeometry} temporär deaktiviert. Dies geschieht, um lediglich +% die im Hintergrund verwendeten Makros neu zu setzen. +% \begin{macrocode} +\newif\if@tud@cdgeometry@reset +\newcommand*\tud@cdgeometry@reset[1]{% + \@tud@cdgeometry@resettrue% + \TUDoptions{cdgeometry=#1}% + \@tud@cdgeometry@resetfalse% +} +% \end{macrocode} +% \end{macro}^^A \if@tud@cdgeometry@reset +% \end{macro}^^A \tud@cdgeometry@reset % \subsection{Optionen für den Satzspiegel} % \begin{option}{cdgeometry} % \changes{v2.05}{2016/03/06}{\val{custom} neu}^^A @@ -543,11 +578,9 @@ % (\opt{geometry}|=|\val{no}). Mit \cs{tud@cdgeometry@@process} werden alle % getroffenen Satzspiegeloptionen umgesetzt und nachfolgend definiert. % \begin{macrocode} -\cs@lock{tud@cdgeometry@num}{0} +\tud@locked@newnum{tud@cdgeometry@num}{0} \newcommand*\tud@cdgeometry@calc@num{0} \TUD@key{cdgeometry}[true]{% - \let\@tempb\tud@cdgeometry@num% - \let\@tempc\tud@cdgeometry@calc@num% \TUD@set@numkey{cdgeometry}{@tempa}{% \TUD@bool@numkey,% {typearea}{0},% @@ -563,36 +596,50 @@ }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false/typearea - \cs@set@lock{tud@cdgeometry@num}{0}% + \tud@locked@num@set{tud@cdgeometry@num}{0}% \or% true/cd - \cs@set@lock{tud@cdgeometry@num}{2}% + \tud@locked@num@set{tud@cdgeometry@num}{2}% \or% symmetric - \cs@set@lock{tud@cdgeometry@num}{3}% + \tud@locked@num@set{tud@cdgeometry@num}{3}% \or% twoside - \cs@set@lock{tud@cdgeometry@num}{4}% + \tud@locked@num@set{tud@cdgeometry@num}{4}% \TUD@KOMAoptions{twoside=true}% \or% oneside \ifnum\tud@cdgeometry@num>\thr@@\relax% - \cs@set@lock{tud@cdgeometry@num}{3}% + \tud@locked@num@set{tud@cdgeometry@num}{3}% \fi% \TUD@KOMAoptions{twoside=false}% \or% restricted - \cs@std@lock{tud@cdgeometry@num}{2}% + \tud@locked@num@preset{tud@cdgeometry@num}{2}% \renewcommand*\tud@cdgeometry@calc@num{0}% \or% adapted - \cs@std@lock{tud@cdgeometry@num}{2}% + \tud@locked@num@preset{tud@cdgeometry@num}{2}% \renewcommand*\tud@cdgeometry@calc@num{1}% \or% calculated - \cs@std@lock{tud@cdgeometry@num}{2}% + \tud@locked@num@preset{tud@cdgeometry@num}{2}% \renewcommand*\tud@cdgeometry@calc@num{2}% \or% custom - \cs@set@lock{tud@cdgeometry@num}{1}% + \tud@locked@num@set{tud@cdgeometry@num}{1}% \fi% - \@tempswafalse% - \ifx\@tempb\tud@cdgeometry@num\relax\else\@tempswatrue\fi% - \ifx\@tempc\tud@cdgeometry@calc@num\relax\else\@tempswatrue\fi% - \if@tempswa% - \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}% +% \end{macrocode} +% Innerhalb des Dokumentes kann die Option genutzt werden, um zwischen den +% unterschiedlichen Satzspiegeln zu wechseln. Da bei der Konstruktion dieser +% die internen Längen verwendet werden, welche von \pkg{typearea} respektive +% \pkg{geometry} definiert werden, muss beim Umschalten der jeweils zuletzt +% definierte Satzspiegel geladen werden. Falls jedoch eine Neuberechnung +% erfolgte, wird auf das Laden verzichtet (\cs{if@tud@cdgeometry@reset}). +% \begin{macrocode} + \if@atdocument% + \if@tud@cdgeometry@reset\else% + \ifcase\tud@cdgeometry@num\relax% + \tud@loadgeometry{current@typearea}% + \@tud@x@geometry@fixmarginstrue% + \or% + \tud@loadgeometry{current@custom}% + \@tud@x@geometry@fixmarginstrue% + \fi% + \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}% + \fi% \fi% \fi% } @@ -613,7 +660,7 @@ \TUD@key{extrabottommargin}{% \TUD@set@dimenkey{extrabottommargin}{\tud@dim@extrabottommargin}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \TUD@SpecialOptionAtDocument{tud@cdgeometry@@process}% + \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}% \fi% } % \end{macrocode} @@ -654,46 +701,17 @@ % \begin{macrocode} \DefineFamilyMember{KOMA} \DefineFamilyKey{KOMA}{twoside}{% - \TUD@SpecialOptionAtDocument{tud@cdgeometry@@process}% + \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}% \FamilyKeyStateProcessed% } \DefineFamilyKey{KOMA}{twocolumn}{% - \TUD@SpecialOptionAtDocument{tud@cdgeometry@@process}% + \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}% \FamilyKeyStateProcessed% } % \end{macrocode} % \end{option}^^A twocolumn % \end{option}^^A twoside % -% \begin{macro}{\tud@x@typearea@warnings@off} -% \changes{v2.05}{2016/07/26}{neu}^^A -% \begin{macro}{\tud@x@typearea@warnings@on} -% \changes{v2.05}{2016/07/26}{neu}^^A -% Sollte das Paket \pkg{silence} vorhanden sein wird es geladen, um die vom -% Paket \pkg{typearea} erzeugten Warnungen beim Laden einer \TUDScript-Klasse -% zu unterdrücken, da im Normalfall das Paket gar nicht für die Berechnung des -% Satzspiegels zum Einsatz kommt. Sollte dies vom Anwender so eingestellt -% werden, wird vor dem Beginn des Dokumentes \cs{recalctypearea} aufgerufen und -% die entsprechenden Warnungen werden etwas später und in Abhängigkeit der -% verwendeten Schriftart erzeugt. -% \begin{macrocode} -\newcommand*\tud@x@ta@warnings@off{} -\newcommand*\tud@x@ta@warnings@on{} -\IfFileExists{silence.sty}{% - \RequirePackage{silence}[2012/07/02]% - \WarningFilter[typearea]{typearea}{DIV for}% - \WarningFilter[typearea]{typearea}{Bad type area settings!}% - \WarningFilter[typearea]{typearea}{Maybe no optimal type area settings!}% - \WarningFilter[typearea]{typearea}{Very low DIV value!}% - \BeforePackage{typearea}{\ActivateWarningFilters[typearea]}% - \AfterPackage{typearea}{\DeactivateWarningFilters[typearea]}% - \renewcommand*\tud@x@ta@warnings@off{\ActivateWarningFilters[typearea]} - \renewcommand*\tud@x@ta@warnings@on{\DeactivateWarningFilters[typearea]} -}{} -% \end{macrocode} -% \end{macro}^^A \tud@x@ta@warnings@on -% \end{macro}^^A \tud@x@ta@warnings@off -% % \iffalse %</class&option> %<*class&body> @@ -702,16 +720,45 @@ % \subsection{Realisierung der Satzspiegeleinstellungen} % Das Paket \pkg{geometry} erlaubt eine genaue Vorgabe des Satzspiegels und % der Seitenränder, wie es vom \CD der \TnUD verlangt wird. -% \ToDo{Satzspiegel ohne \pkg{geometry}; besser über \cs{storeareas}}[v2.07]% +% \ToDo{Satzspiegel ohne \pkg{geometry}; besser über \cs{storeareas}?!}[v2.07]% % \ToDo{Benutzerschnittstelle äquivalent zu \pkg{geometry}}[v2.07]% +% \begin{macro}{\tud@cdgeometry@process} +% \changes{v2.05}{2015/11/29}{neu}^^A +% Mit \cs{tud@cdgeometry@process} bzw. \cs{tud@cdgeometry@@process} erfolgt die +% Festlegung des Satzspiegels. Für die Erstellung des Satzspiegels wird das +% Paket \pkg{geometry} verwendet. Mit der Option (\opt{cdgeometry}|=|\val{no}) +% wird jedoch der von \pkg{typearea} berechnete Satzspiegel an \pkg{geometry} +% weitergereicht. Somit wird es möglich, unabhängig vom genutzten Paket +% (\pkg{typearea} oder \pkg{geometry}) zur Festlegung des Satzspiegels, diesen +% innerhalb des Dokumentes zu ändern. +% \begin{macrocode} +\newcommand*\tud@cdgeometry@process{% + \tud@cdgeometry@@process% + \KOMAoptions{pagesize=\@pagesizelast}% +% \end{macrocode} +% Nachder Änderung des Satzspiegels werden alle Logoboxen neu erstellt. +% \begin{macrocode} + \global\@tud@mainlogo@settrue% +% \end{macrocode} +% Damit Änderungen am Satzspiegel im Dokument sicher übernommen werden, wird +% das Setzen des Satzspiegels forciert. Dafür wird \cs{tud@currentgeometry} +% zurückgesetzt und anschließend der aktuelle Seitenstil erneut geladen, um das +% erneute Ausführen von \cs{tud@BeforeSelectAnyPageStyle} zu erzwingen. +% \begin{macrocode} + \gdef\tud@currentgeometry{}% + \expandafter\pagestyle\expandafter{\currentpagestyle}% +} +% \end{macrocode} +% \end{macro}^^A \tud@cdgeometry@process +% Wurde die \cls{standalone}-Klasse mit der Option \opt{crop} geladen, werden +% sämtliche Einstellungen für den Satzspiegel unterdrückt. % \begin{macrocode} -\newcommand*\tud@cdgeometry@process{} -\newcommand*\tud@cdgeometry@@process{} \if@tud@x@standalone@crop \PreventPackageFromLoading{geometry}% + \let\tud@cdgeometry@process\relax% \else \RequirePackage{geometry}[2010/09/12]% -\fi +\fi% \AfterPackage*{geometry}{% \CheckCommand*\Gm@initnewgm{% \Gm@passfalse @@ -850,14 +897,16 @@ \Gm@changelayout}% }% % \end{macrocode} -% \begin{macro}{\tud@setgeometry} -% \changes{v2.04}{2015/03/12}{neu}^^A -% \begin{macro}{\tud@savegeometry} -% \changes{v2.05}{2016/04/03}{neu}^^A -% \begin{macro}{\tud@loadgeometry} -% \changes{v2.05}{2016/03/06}{neu}^^A +% \begin{macro}{\geometry} +% \begin{macro}{\newgeometry} +% \begin{macro}{\restoregeometry} +% \begin{macro}{\Gm@changelayout} % \begin{macro}{\if@tud@x@geometry@enabled} % \changes{v2.05}{2016/03/06}{neu}^^A +% \begin{macro}{\tud@x@geometry@fixmargins} +% \changes{v2.06}{2018/08/13}{neu}^^A +% \begin{macro}{\if@tud@x@geometry@fixmargins} +% \changes{v2.06}{2018/08/13}{neu}^^A % Für einen benutzerdefinierten Satzspiegel ist es notwendig, die durch den % Anwender in der Präambel getätigten Einstellungen zu sichern und am Ende der % Präambel für die unterschiedlichen, durch die Klasse benötigten Satzspiegel @@ -865,105 +914,78 @@ % \KOMAScript{} beachtet. Hierfür werden die originalen Befehle \cs{geometry} % und \cs{newgeometry} angepasst, weshalb diese vorher gesichert werden. % \begin{macrocode} - \tud@cmd@store{geometry} - \tud@cmd@store{newgeometry} -% \end{macrocode} -% Mit dem Befehl \cs{tud@setgeometry} wird abhängig davon, ob dieser in der -% Präambel oder im Dokument von \cs{tud@cdgeometry@@process} verwendet wird, -% entweder \cs{geometry} oder \cs{newgeometry} aufgerufen. Mit dem Schalter -% \cs{if@tud@x@geometry@enabled} wird im Fall, dass ein der Satzspiegel durch -% den Anwender eingestellt wurde, das rekursive Aufrufen von \cs{geometry} bzw. -% \cs{newgeometry} und einer daraus resultierenden Endlosschleife unterbunden. -% \begin{macrocode} \newif\if@tud@x@geometry@enabled% \@tud@x@geometry@enabledtrue% - \newcommand*\tud@setgeometry[1]{% - \@tud@x@geometry@enabledfalse% -% \end{macrocode} -% Unabhängig von der gewählten Option \opt{cdgeometry} für den Satzspiegel -% sollen die von \pkg{geometry} bereitgestellten Möglichkieten für den -% Papierbogen nutzbar bleiben. -% \begin{macrocode} - \ifGm@pass% - \def\@tempb{}% - \else% - \edef\@tempb{layoutoffset={\the\Gm@layouthoffset,\the\Gm@layoutvoffset}}% - \ifGm@layout% - \eappto\@tempb{,layoutsize={\the\Gm@layoutwidth,\the\Gm@layoutheight}}% - \fi% - \fi% + \tud@cs@store{geometry}% + \tud@cs@store{newgeometry}% + \renewcommand*\geometry[1]{% + \tud@x@geometry@user{#1}{geometry}% + }% + \renewcommand*\newgeometry[1]{% + \tud@cs@store{Gm@restore@org}% + \tud@x@geometry@user{#1}{newgeometry}% + \tud@cs@restore{Gm@restore@org}% + }% % \end{macrocode} -% Um etwaige Änderungen am Papierformat innerhalb des Dokumentes beachten zu -% können, werden die aktuellen Maße für das Papierformat an \cs{Gm@restore@org} -% angehangen. +% Bei der Verwendung von \cs{restoregeometry} wird der am Ende der Präambel +% der passend zur entsprechende Einstellung von \opt{cdgeometry} gesicherte +% Satzspiegel geladen. Über das optinale Argument kann der gewünschte Wert für +% die Option \opt{cdgeometry} angegeben werden. % \begin{macrocode} + \renewcommand*\restoregeometry[1][custom]{% + \tud@cdgeometry@reset{#1}% \if@atdocument% - \edef\@tempa{\@tempb,#1}% - \tud@cmd@store{Gm@restore@org}% - \eappto\Gm@restore@org{% - \paperwidth=\the\paperwidth\relax% - \paperheight=\the\paperheight\relax% - }% - \def\@tempc{\tud@cmd@use{newgeometry}}% - \expandafter\@tempc\expandafter{\@tempa}% - \tud@cmd@restore{Gm@restore@org}% - \else% -% \end{macrocode} -% Zu Beginn des Dokumentes werden mit \cs{Gm@initnewgm} vor jedem Satzspiegel -% die zuvor gemachten Einstellungen zurückgesetzt. -% \begin{macrocode} - \Gm@initnewgm% - \edef\@tempa{% - paperwidth=\the\paperwidth,paperheight=\the\paperheight,\@tempb,#1% - }% - \def\@tempc{\tud@cmd@use{geometry}}% - \expandafter\@tempc\expandafter{\@tempa}% + \ifcase\tud@cdgeometry@num\relax% false + \tud@loadgeometry{init@typearea}% + \@tud@x@geometry@fixmarginstrue% + \or% custom + \tud@loadgeometry{init@custom}% + \@tud@x@geometry@fixmarginstrue% + \fi% + \tud@cdgeometry@process% \fi% - \@tud@x@geometry@enabledtrue% }% % \end{macrocode} -% Beim Speichern eines Satzspiegels sichert \pkg{geometry} tatsächlich nicht -% alle notwendigen Einstellungen und Befehle. Deshalb wird etwas nachgeholfen. +% Sollte im Dokument durch den Anwender der Satzspiegel manuell geändert +% werden, muss darauf reagiert und die unterschiedlichen Satzspiegel der Klasse +% angepasst werden. Hierfür wird am Ende von \cs{Gm@changelayout} ein Patch +% eingehängt. % \begin{macrocode} - \newcommand*\tud@savegeometry[1]{% - \def\Gm@restore{}% - \savegeometry{#1}% - \csepreto{Gm@restore@@#1}{% - \etex@unexpanded{\def\Gm@lmargin}{\Gm@lmargin}% - \etex@unexpanded{\def\Gm@rmargin}{\Gm@rmargin}% - \noexpand\Gm@bindingoffset=\the\Gm@bindingoffset% - \ifGm@includemp% - \noexpand\Gm@includemptrue% - \else% - \noexpand\Gm@includempfalse% - \fi% - \ifGm@layout% - \noexpand\Gm@layouttrue% - \else% - \noexpand\Gm@layoutfalse% + \apptocmd{\Gm@changelayout}{% + \if@tud@x@geometry@enabled% + \if@atdocument% + \@tud@x@geometry@fixmarginstrue% + \tud@cdgeometry@reset{custom}% + \tud@cdgeometry@process% \fi% - }% - }% - \newcommand*\tud@loadgeometry[1]{% - \@tud@x@geometry@enabledfalse% - \loadgeometry{#1}% + \fi% + }{}{\tud@patch@wrn{Gm@changelayout}}% % \end{macrocode} -% Die nächsten beiden Makros müssen nach der Satzspiegeländerung des ausgeführt -% werden, um den Durchschuss und eine etwaige Zentrierung durch das Paket -% \pkg{crop} wiederherzustellen. -% \begin{macrocode} - \@currsize% - \if@tud@x@crop@center\CROP@center\fi% - \@tud@x@geometry@enabledtrue% +% Das Paket \pkg{geometry} bietet die Möglichkeit, den kompletten Satzspiegel +% bzw. das Layout mit einem Offset zu beaufschlagen. Dieser wird den Längen +% \cs{oddsidemargin} und \cs{evensidemargin} bzw. \cs{topmargin} zugeschlagen. +% Da intern jedoch diese Längen nach der einmaligen Anwendung der Nutzerbefehle +% mehrmals wiederverwendet werden, müssen diese u.U. korrigert bzw. auf ihren +% ursprünglichen Wert zurückgesetzt werden. +% \begin{macrocode} + \newif\if@tud@x@geometry@fixmargins% + \newcommand*\tud@x@geometry@fixmargins{% + \ifGm@pass\else% + \addtolength\oddsidemargin{-\tud@len@layouthoffset}% + \addtolength\evensidemargin{-\tud@len@layouthoffset}% + \addtolength\topmargin{-\tud@len@layoutvoffset}% + \@tud@x@geometry@fixmarginsfalse% + \fi% }% % \end{macrocode} +% \end{macro}^^A \if@tud@x@geometry@fixmargins +% \end{macro}^^A \tud@x@geometry@fixmargins % \end{macro}^^A \if@tud@x@geometry@enabled -% \end{macro}^^A \tud@loadgeometry -% \end{macro}^^A \tud@savegeometry -% \end{macro}^^A \tud@setgeometry -% \begin{macro}{\geometry} -% \begin{macro}{\newgeometry} -% \begin{macro}{\tud@geometry} +% \end{macro}^^A \Gm@changelayout +% \end{macro}^^A \restoregeometry +% \end{macro}^^A \newgeometry +% \end{macro}^^A \geometry +% \begin{macro}{\tud@x@geometry@user} % \changes{v2.05}{2016/03/06}{neu}^^A % \begin{parameter}{paper} % \begin{parameter}{papername} @@ -976,11 +998,9 @@ % \begin{parameter}{layoutheight} % \begin{parameter}{layoutsize} % \begin{parameter}{bleedmargin} -% \begin{macro}{\tud@area@def} -% \changes{v2.05}{2016/03/06}{neu}^^A -% \begin{macro}{\tud@area@set} +% \begin{macro}{\tud@x@geometry@area@def} % \changes{v2.05}{2016/03/06}{neu}^^A -% \begin{macro}{\tud@x@geometry@init} +% \begin{macro}{\tud@x@geometry@area@set} % \changes{v2.05}{2016/03/06}{neu}^^A % \begin{macro}{\tud@x@geometry@paper} % \changes{v2.05}{2016/07/20}{neu}^^A @@ -988,6 +1008,47 @@ % \changes{v2.05}{2016/07/20}{neu}^^A % \begin{macro}{\tud@x@geometry@parameter} % \changes{v2.05}{2016/07/20}{neu}^^A +% \begin{macro}{\tud@x@geometry@init} +% \changes{v2.05}{2016/03/06}{neu}^^A +% Bei der Redefinition der Befehle \cs{geometry} und \cs{newgeometry} kommt +% intern das Makro \cs{tud@x@geometry@user} zum Einsatz, womit kleinere +% Feinheiten zwischen den beiden Befehlen unterschieden werden können. +% \begin{macrocode} + \newcommand*\tud@x@geometry@paper{}% + \newcommand*\tud@x@geometry@layout{}% + \newcommand*\tud@x@geometry@parameter{}% + \newcommand*\tud@x@geometry@init{}% + \newcommand*\tud@x@geometry@user[2]{% + \let\tud@x@geometry@paper\@empty% + \let\tud@x@geometry@layout\@empty% + \let\tud@x@geometry@parameter\@empty% + \TUD@parameter@set{geometry}{#1}% + \ifx\tud@x@geometry@layout\@empty\else% + \begingroup% + \tud@x@geometry@area@set{layout}% + \edef\tud@res@a{% + \endgroup% + \noexpand\setlength\noexpand\tud@len@layoutwidth{\the\paperwidth}% + \noexpand\setlength\noexpand\tud@len@layoutheight{\the\paperheight}% + }% + \tud@res@a% + \fi% + \tud@x@geometry@area@set{paper}% + \ifstr{#2}{newgeometry}{% + \eappto\Gm@restore@org{% + \noexpand\paperwidth=\the\paperwidth\relax% + \noexpand\paperheight=\the\paperheight\relax% + }% + \tud@x@geometry@getlayout{\tud@res@a}% + \epreto{\tud@x@geometry@parameter}{\tud@res@a,}% + \def\tud@res@a{\tud@cs@use{newgeometry}}% + \expandafter\tud@res@a\expandafter{\tud@x@geometry@parameter}% + \edef\tud@x@geometry@init{\tud@x@geometry@parameter}% + }{% + \eappto\tud@x@geometry@init{\tud@x@geometry@parameter}% + }% + }% +% \end{macrocode} % Das folgende Konstrukt ist aus der Idee entstanden, die Parameter \val{paper} % sowie \val{layout} des Paketes \pkg{geometry} auf die passenden Optionen von % \KOMAScript{} abbilden zu können und insbesondere Schnittmarken für alle @@ -998,52 +1059,73 @@ % ziemlich unübersichtliches Konstrukt geworden, weshalb das Ganze in einer % folgenden Version mit \KOMAScript-Mitteln neu implementiert werden soll. % }[v2.07] -% \ToDo{% -% Aus paperwidth und paperheight Orientierung automatisch feststellen. -% }[v2.07] +% \ToDo{Orientierung automatisch aus paperwidth/paperheight}[v2.07] % \begin{macrocode} \TUD@parameter@family{geometry}{% - \TUD@parameter@def{paper}{\tud@area@def{paper}{#1}}% + \TUD@parameter@def{paper}{\tud@x@geometry@area@def{paper}{#1}}% \TUD@parameter@let{papername}{paper}% - \TUD@parameter@def{paperwidth}{\tud@area@def{paper}{#1:\the\paperheight}}% - \TUD@parameter@def{paperheight}{\tud@area@def{paper}{\the\paperwidth:#1}}% \TUD@parameter@def{papersize}{% \def\@tempa##1,##2,##3\@nil{% \IfArgIsEmpty{##2}{% - \tud@area@def{paper}{##1:##1}% + \tud@x@geometry@area@def{paper}{##1:##1}% }{% - \tud@area@def{paper}{##1:##2}% + \tud@x@geometry@area@def{paper}{##1:##2}% }% }% \@tempa#1,,\@nil% }% - \TUD@parameter@def{layout}{\tud@area@def{layout}{#1}}% - \TUD@parameter@let{layoutname}{layout}% - \TUD@parameter@def{layoutwidth}{% - \tud@area@def{layout}{#1:\the\tud@len@layoutheight}% + \TUD@parameter@def{paperwidth}{% + \tud@x@geometry@area@def{paper}{#1:\paperheight}% }% - \TUD@parameter@def{layoutheight}{% - \tud@area@def{layout}{\the\tud@len@layoutwidth:#1}% + \TUD@parameter@def{paperheight}{% + \tud@x@geometry@area@def{paper}{\paperwidth:#1}% + }% + \TUD@parameter@def{layout}{% + \ifstr{#1}{false}{% + \setlength\tud@len@layoutwidth{\z@}% + \setlength\tud@len@layoutheight{\z@}% + \setlength\tud@len@layouthoffset{\z@}% + \setlength\tud@len@layoutvoffset{\z@}% + }{% + \tud@x@geometry@area@def{layout}{#1}% + }% }% + \TUD@parameter@let{layoutname}{layout}% \TUD@parameter@def{layoutsize}{% \def\@tempa##1,##2,##3\@nil{% \IfArgIsEmpty{##2}{% - \tud@area@def{layout}{##1:##1}% + \tud@x@geometry@area@def{layout}{##1:##1}% + }{% + \tud@x@geometry@area@def{layout}{##1:##2}% + }% + }% + \@tempa#1,,\@nil% + }% + \TUD@parameter@def{layoutwidth}{\setlength\tud@len@layoutwidth{#1}}% + \TUD@parameter@def{layoutheight}{\setlength\tud@len@layoutheight{#1}}% + \TUD@parameter@def{layoutoffset}{% + \def\@tempa##1,##2,##3\@nil{% + \IfArgIsEmpty{##2}{% + \setlength\tud@len@layouthoffset{##1}% + \setlength\tud@len@layoutvoffset{##1}% }{% - \tud@area@def{layout}{##1:##2}% + \setlength\tud@len@layouthoffset{##1}% + \setlength\tud@len@layoutvoffset{##2}% }% }% \@tempa#1,,\@nil% }% + \TUD@parameter@def{layouthoffset}{\setlength\tud@len@layouthoffset{#1}}% + \TUD@parameter@def{layoutvoffset}{\setlength\tud@len@layoutvoffset{#1}}% \TUD@parameter@def{bleedmargin}{\TUDoption{bleedmargin}{#1}}% \TUD@parameter@handler@macro{% \eappto\tud@x@geometry@parameter{% \expandonce\kv@key=\expandonce\kv@value,% }% }{% - \tud@area@def{paper}{#2}% + \tud@x@geometry@area@def{paper}{#2}% }% - } + }% % \end{macrocode} % Wenig Kommentar dazu, weil eigentlich schon wieder obsolet! Die möglichen % Werte für \val{paper} und \val{layout} werden abgefangen und für die beiden @@ -1052,7 +1134,7 @@ % Hilfsmakros \cs{tud@x@geometry@\dots} für \val{paper}, \val{layout} sowie % \val{parameter} für alles Übrige. % \begin{macrocode} - \newcommand*\tud@area@def[2]{% + \newcommand*\tud@x@geometry@area@def[2]{% \tud@lowerstring{\@tempa}{#2}% \def\@tempb##1paper##2\@nil{% \ifstr{##2}{paper}{\def\@tempa{##1}}{}% @@ -1115,118 +1197,42 @@ \fi% \if@tempswa% \cseappto{tud@x@geometry@#1}{\@tempa,}% - \def\@tempb##1:##2:##3\@nil{% - \IfArgIsEmpty{##2}{}{% - \ifstr{#1}{paper}{% - \setlength\paperwidth{##1}% - \setlength\paperheight{##2}% - }{% - \ifstr{#1}{layout}{% - \setlength\tud@len@layoutwidth{##1}% - \setlength\tud@len@layoutheight{##2}% - }{}% - }% - }% - }% - \expandafter\@tempb\@tempa::\@nil% \else% \appto\tud@x@geometry@parameter{#2,}% \fi% - } + }% % \end{macrocode} -% Der Befehl \cs{tud@area@set} bewerkstelligt die korrekte Abarbeitung der +% Der Befehl \cs{tud@x@geometry@area@set} bewerkstelligt die Abarbeitung der % zuvor gesammelten Schlüssel. % \begin{macrocode} - \newcommand*\tud@area@set[1]{% + \newcommand*\tud@x@geometry@area@set[1]{% \letcs{\@tempa}{tud@x@geometry@#1}% \ifdefvoid{\@tempa}{}{% \def\@tempb##1:##2:##3\@nil{% - \tud@cmd@store{@tempa}% - \tud@cmd@store{@tempb}% - \tud@cmd@store{@tempc}% - \IfArgIsEmpty{##2}{% - \KOMAoption{paper}{##1}% - }{% - \if@landscape% - \KOMAoption{paper}{##2:##1}% - \else% - \KOMAoption{paper}{##1:##2}% - \fi% - }% - \tud@cmd@restore{@tempa}% - \tud@cmd@restore{@tempb}% - \tud@cmd@restore{@tempc}% + \begingroup% + \IfArgIsEmpty{##2}{% + \def\@tempb{\KOMAoption{paper}{##1}}% + }{% + \if@landscape% + \def\@tempb{\KOMAoption{paper}{##2:##1}}% + \else% + \def\@tempb{\KOMAoption{paper}{##1:##2}}% + \fi% + }% + \edef\@tempb{\endgroup\expandonce\@tempb}% + \@tempb% }% \def\@tempc##1{\@tempb##1::\@nil}% \expandafter\forcsvlist\expandafter\@tempc\expandafter{\@tempa}% }% - } -% \end{macrocode} -% Bei der redefinition von \cs{geometry} und \cs{newgeometry} kommt intern -% \cs{tud@geometry} zum Einsatz, womit kleinere Feinheiten zwischen den beiden -% Befehlen unterschieden werden können. -% \begin{macrocode} - \newcommand*\tud@x@geometry@init{} - \newcommand*\tud@x@geometry@paper{} - \newcommand*\tud@x@geometry@layout{} - \newcommand*\tud@x@geometry@parameter{} - \newcommand*\tud@geometry[2]{% - \ifGm@layout% - \setlength\tud@len@layoutheight{\Gm@layoutheight}% - \setlength\tud@len@layoutwidth{\Gm@layoutwidth}% - \else% - \setlength\tud@len@layoutheight{\paperheight}% - \setlength\tud@len@layoutwidth{\paperwidth}% - \fi% - \let\tud@x@geometry@paper\@empty% - \let\tud@x@geometry@layout\@empty% - \let\tud@x@geometry@parameter\@empty% - \TUD@parameter@set{geometry}{#1}% - \tud@area@set{paper}% - \ifstr{#2}{newgeometry}{% - \eappto\Gm@restore@org{% - \paperwidth=\the\paperwidth\relax% - \paperheight=\the\paperheight\relax% - }% - }{% - \etex@unexpanded{\epreto{\tud@x@geometry@parameter}}{% - paperwidth=\the\paperwidth,paperheight=\the\paperheight,% - }% - }% - \ifx\tud@x@geometry@layout\@empty\else% - \begingroup% - \setlength\paperwidth{\Gm@layoutwidth}% - \setlength\paperheight{\Gm@layoutheight}% - \tud@area@set{layout}% - \edef\tud@reserved{% - \endgroup% - \etex@unexpanded{\epreto{\tud@x@geometry@parameter}}{% - layoutwidth=\the\paperwidth,layoutheight=\the\paperheight,% - }% - }% - \tud@reserved% - \fi% - \def\@tempa{\tud@cmd@use{#2}}% - \expandafter\@tempa\expandafter{\tud@x@geometry@parameter}% - \ifstr{#2}{geometry}{% - \ifbool{@tud@x@geometry@enabled}{% - \eappto\tud@x@geometry@init{,\expandonce\tud@x@geometry@parameter}% - }{}% - }{}% - } - \renewcommand*\geometry[1]{\tud@geometry{#1}{geometry}} - \renewcommand*\newgeometry[1]{% - \tud@cmd@store{Gm@restore@org}% - \tud@geometry{#1}{newgeometry}% - \tud@cmd@restore{Gm@restore@org}% - } + }% % \end{macrocode} +% \end{macro}^^A \tud@x@geometry@init % \end{macro}^^A \tud@x@geometry@parameter % \end{macro}^^A \tud@x@geometry@layout % \end{macro}^^A \tud@x@geometry@paper -% \end{macro}^^A \tud@x@geometry@init -% \end{macro}^^A \tud@area@set -% \end{macro}^^A \tud@area@def +% \end{macro}^^A \tud@x@geometry@area@set +% \end{macro}^^A \tud@x@geometry@area@def % \end{parameter}^^A bleedmargin % \end{parameter}^^A layoutsize % \end{parameter}^^A layoutheight @@ -1238,44 +1244,144 @@ % \end{parameter}^^A paperwidth % \end{parameter}^^A papername % \end{parameter}^^A paper -% \end{macro}^^A \tud@geometry -% \end{macro}^^A \newgeometry -% \end{macro}^^A \geometry -% \begin{macro}{\restoregeometry} -% \begin{macro}{\Gm@changelayout} -% Sollte im Dokument durch den Anwender der Satzspiegel manuell geändert -% werden, muss darauf reagiert und die unterschiedlichen Satzspiegel der Klasse -% angepasst werden. Hierfür wird am Ende von \cs{Gm@changelayout} ein Patch -% eingehängt. +% \end{macro}^^A \tud@x@geometry@user +% \begin{macro}{\tud@x@geometry@getlayout} +% \changes{v2.06}{2018/08/13}{neu}^^A % \begin{macrocode} - \apptocmd{\Gm@changelayout}{% - \ifboolexpr{bool {@tud@x@geometry@enabled} and bool {@atdocument}}{% - \tud@cdgeometry@process% - }{}% - }{}{\tud@patch@wrn{Gm@changelayout}}% + \newcommand*\tud@x@geometry@getlayout[1]{% % \end{macrocode} -% Bei der Verwendung von \cs{restoregeometry} wird der am Ende der Präambel -% der passend zur entsprechende Einstellung von \opt{cdgeometry} gesicherte -% Satzspiegel geladen. Über das optinale Argument kann der gewünschte Wert für -% die Option \opt{cdgeometry} angegeben werden. +% Unabhängig von der gewählten Option \opt{cdgeometry} für den Satzspiegel +% sollen die von \pkg{geometry} bereitgestellten Möglichkieten für den +% Papierbogen nutzbar bleiben. Die zu setzenden Einstellungen für das Layout +% werden in das im Argument übergebene Makro geschrieben. % \begin{macrocode} - \renewcommand*\restoregeometry[1][]{% - \IfArgIsEmpty{#1}{}{% - \tud@cmd@store{TUD@SpecialOptionAtDocument}% - \let\TUD@SpecialOptionAtDocument\@gobble% - \TUDoption{cdgeometry}{#1}% - \tud@cmd@restore{TUD@SpecialOptionAtDocument}% - }% - \ifnum\tud@cdgeometry@num=\@ne\relax - \tud@loadgeometry{init@custom}% + \ifGm@pass% + \let#1\@empty% \else% - \tud@loadgeometry{init@typearea}% + \tud@cdgeometry@assignlayout% + \begingroup% +% \end{macrocode} +% Das Setzen des Layouts erfolgt nur, wenn die dazugehörigen Längen \emph{nicht} +% denen des Papierbogens entsprechen. +% \begin{macrocode} + \@tud@res@swafalse% + \ifdim\tud@len@layoutwidth=\paperwidth\relax\else\@tud@res@swatrue\fi% + \ifdim\tud@len@layoutheight=\paperheight\relax\else\@tud@res@swatrue\fi% + \edef\tud@res@a{% + \endgroup% + \etex@unexpanded{\def#1}{% + layoutoffset={% + \the\tud@len@layouthoffset,\the\tud@len@layoutvoffset% + }% + \if@tud@res@swa% + ,layoutsize={\the\tud@len@layoutwidth,\the\tud@len@layoutheight}% + \fi% + }% + }% + \tud@res@a% \fi% - \tud@AfterChangingArea% }% % \end{macrocode} -% \end{macro}^^A \Gm@changelayout -% \end{macro}^^A \restoregeometry +% \end{macro}^^A \tud@x@geometry@getlayout +% \begin{macro}{\tud@x@geometry@set} +% \changes{v2.04}{2015/03/12}{neu}^^A +% \begin{macro}{\tud@savegeometry} +% \changes{v2.05}{2016/04/03}{neu}^^A +% \begin{macro}{\tud@loadgeometry} +% \changes{v2.05}{2016/03/06}{neu}^^A +% Mit dem Befehl \cs{tud@x@geometry@set} wird abhängig davon, ob dieser in der +% Präambel oder im Dokument von \cs{tud@cdgeometry@@process} verwendet wird, +% entweder \cs{geometry} oder \cs{newgeometry} aufgerufen. Mit dem Schalter +% \cs{if@tud@x@geometry@enabled} wird im Fall, dass ein der Satzspiegel durch +% den Anwender eingestellt wurde, das rekursive Aufrufen von \cs{geometry} bzw. +% \cs{newgeometry} und einer daraus resultierenden Endlosschleife unterbunden. +% \begin{macrocode} + \newcommand*\tud@x@geometry@set[1]{% + \@tud@x@geometry@enabledfalse% +% \end{macrocode} +% Um etwaige Änderungen am Papierformat innerhalb des Dokumentes beachten zu +% können, werden die aktuellen Maße für das Papierformat an \cs{Gm@restore@org} +% angehangen. +% \begin{macrocode} + \if@atdocument% + \edef\@tempa{#1}% + \tud@cs@store{Gm@restore@org}% + \eappto\Gm@restore@org{% + \noexpand\paperwidth=\the\paperwidth\relax% + \noexpand\paperheight=\the\paperheight\relax% + }% + \def\@tempc{\tud@cs@use{newgeometry}}% + \expandafter\@tempc\expandafter{\@tempa}% + \tud@cs@restore{Gm@restore@org}% + \else% +% \end{macrocode} +% Zu Beginn des Dokumentes werden mit \cs{Gm@initnewgm} vor jedem Satzspiegel +% die zuvor gemachten Einstellungen zurückgesetzt. +% \begin{macrocode} + \Gm@initnewgm% + \edef\@tempa{% + paperwidth=\the\paperwidth,paperheight=\the\paperheight,#1% + }% + \def\@tempc{\tud@cs@use{geometry}}% + \expandafter\@tempc\expandafter{\@tempa,driver=none}% + \fi% + \@tud@x@geometry@enabledtrue% + }% +% \end{macrocode} +% Beim Speichern eines Satzspiegels sichert \pkg{geometry} tatsächlich nicht +% alle notwendigen Einstellungen und Befehle. Deshalb wird etwas nachgeholfen. +% \begin{macrocode} + \newcommand*\tud@savegeometry[1]{% + \let\Gm@restore\@empty% + \savegeometry{#1}% + \csepreto{Gm@restore@@#1}{% + \noexpand\Gm@bindingoffset=\the\Gm@bindingoffset% + \ifGm@includehead% + \noexpand\Gm@includeheadtrue% + \else% + \noexpand\Gm@includeheadfalse% + \fi% + \ifGm@includefoot% + \noexpand\Gm@includefoottrue% + \else% + \noexpand\Gm@includefootfalse% + \fi% + \ifGm@includemp% + \noexpand\Gm@includemptrue% + \else% + \noexpand\Gm@includempfalse% + \fi% + \ifGm@layout% + \noexpand\Gm@layouttrue% + \else% + \noexpand\Gm@layoutfalse% + \fi% + }% + }% + \newcommand*\tud@loadgeometry[1]{% + \@tud@x@geometry@enabledfalse% + \loadgeometry{#1}% +% \end{macrocode} +% Die nächsten beiden Makros müssen nach der Satzspiegeländerung des ausgeführt +% werden, um den Durchschuss und eine etwaige Zentrierung durch das Paket +% \pkg{crop} wiederherzustellen. +% \begin{macrocode} + \@currsize% + \if@tud@x@crop@center\CROP@center\fi% + \@tud@x@geometry@enabledtrue% + }% +% \end{macrocode} +% \end{macro}^^A \tud@loadgeometry +% \end{macro}^^A \tud@savegeometry +% \end{macro}^^A \tud@x@geometry@set +% \begin{macro}{\tud@cdgeometry@@process} +% \changes{v2.02}{2014/06/23}{geändert für das Paket \pkg{scrlayer-scrpage}}^^A +% \changes{v2.03}{2015/01/09}{Satzspiegel des \CDs angepasst}^^A +% \changes{v2.03}{2015/01/09}{intiale Festlegung der Länge \cs{marginpar}}^^A +% \changes{v2.03}{2015/01/13}{Satzspiegel kompatibilitätsabhängig}^^A +% \begin{macro}{\tud@cdgeometry@@@process} +% \begin{macro}{\tud@cdgeometry@layout} +% \changes{v2.06}{2018/08/13}{neu}^^A % \begin{macro}{\tud@cdgeometry@hmargin} % \begin{macro}{\tud@cdgeometry@vmargin} % \begin{macro}{\tud@cdgeometry@tudmargin} @@ -1288,38 +1394,12 @@ % Gesetzt werden diese in Abhängigkeit von der Option \opt{cdgeometry} im % Makro \cs{tud@cdgeometry@@process} bzw. \cs{tud@cdgeometry@@@process}. % \begin{macrocode} + \newcommand*\tud@cdgeometry@layout{}% \newcommand*\tud@cdgeometry@hmargin{}% \newcommand*\tud@cdgeometry@vmargin{}% \newcommand*\tud@cdgeometry@tudmargin{}% \tud@if@v@lower{2.03}{\newcommand*\tud@cdgeometry@ddcmargin{}}{}% % \end{macrocode} -% \end{macro}^^A \tud@cdgeometry@ddcmargin -% \end{macro}^^A \tud@cdgeometry@tudmargin -% \end{macro}^^A \tud@cdgeometry@vmargin -% \end{macro}^^A \tud@cdgeometry@hmargin -% \begin{macro}{\tud@cdgeometry@process} -% \changes{v2.05}{2015/11/29}{neu}^^A -% Nur falls \pkg{typearea} zum Einsatz kommt, wird am Ende der Präambel die -% Satzspiegelberechnung mit \cs{recalctypearea} angestoßen, ansonsten wird -% bloß \cs{tud@AfterChangingArea} ausgeführt. -% \ToDo{Alles auf Anfang!}[v2.07] -% \begin{macrocode} - \renewcommand*\tud@cdgeometry@process{% -% \ifcase\tud@cdgeometry@num\relax% -% \csuse{@ta@usegeometryfalse}% -% \recalctypearea% -% \else% - \tud@AfterChangingArea% -% \fi% - }% -% \end{macrocode} -% \end{macro}^^A \tud@cdgeometry@process -% \begin{macro}{\tud@cdgeometry@@process} -% \changes{v2.02}{2014/06/23}{geändert für das Paket \pkg{scrlayer-scrpage}}^^A -% \changes{v2.03}{2015/01/09}{Satzspiegel des \CDs angepasst}^^A -% \changes{v2.03}{2015/01/09}{intiale Festlegung der Länge \cs{marginpar}}^^A -% \changes{v2.03}{2015/01/13}{Satzspiegel kompatibilitätsabhängig}^^A -% \begin{macro}{\tud@cdgeometry@@@process} % Das Makro \cs{tud@cdgeometry@@process} setzt die Option für den gewünschten % Satzspiegel um, sowohl für die Seitenränder als auch zur Einberechnung der % Kopf- und/oder Fußzeile. Um mehrere Satzspiegel verwenden zu können~-- was @@ -1332,7 +1412,7 @@ % innerhalb des Dokumentes mit dem Befehl \cs{loadgeometry}\marg{Stil} oberer % sowie ggf. untere Seitenrand geändert werden. % \begin{macrocode} - \renewcommand*\tud@cdgeometry@@process{% + \newcommand*\tud@cdgeometry@@process{% \csuse{@ta@usegeometryfalse}% % \end{macrocode} % Die Maßvorgaben werden entsprechend der Seitengröße gesetzt. @@ -1340,42 +1420,21 @@ \tud@cdgeometry@set% % \end{macrocode} % Für den Fall, dass \pkg{typearea} die Satzspiegelberechnung übernimmt oder -% dieser durch den Benutzerdefiniert wurde, werden die Ergebnisse aus der +% dieser durch den Benutzer definiert wurde, werden die Ergebnisse aus der % Berechnung respektive die aktiven Einstellungen direkt an \pkg{geometry} % weitergereicht. Dazu werden die berechneten Werte in die entsprechenden % Hilfsmakros für die Erstellung der \pkg{geometry}-Satzspiegel übergeben. +% Gegebenenfalls werden die Offsets für das Layout korrigiert. % \begin{macrocode} \ifnum\tud@cdgeometry@num<\tw@\relax% false/custom + \if@tud@x@geometry@fixmargins% + \tud@x@geometry@fixmargins% + \fi% % \end{macrocode} -% Anschließend erfolgen die horizontalen und vertikalen Randeinstellungen. -% Zunächst für \pkg{typearea}. Hierfür ist eine Sonderbehandlung notwendig, -% falls mit \cs{geometry} eine Größe für den Druckbereich/das Layout angegeben -% wurde. Dafür wird das Papierformat temporär auf die Größe des angegebenen -% Layouts geändert und der Satzspiegel neu berechnet. Damit diese Berechnung -% jedoch nicht umgesetzt wird, wird \cs{activateareas} unschädlich gemacht. +% Die von \pkg{typearea} berechneten Seitenränder werden an \pkg{geometry} +% weitergereicht. % \begin{macrocode} \ifcase\tud@cdgeometry@num\relax% - \ifGm@layout% - \tud@skip@store{paperheight}% - \tud@skip@store{paperwidth}% - \setlength\paperheight{\tud@len@layoutheight}% - \setlength\paperwidth{\tud@len@layoutwidth}% - \fi% - \tud@cmd@store{activateareas}% - \tud@cmd@store{tud@AfterChangingArea}% - \let\activateareas\relax% - \let\tud@AfterChangingArea\relax% - \recalctypearea% - \ifGm@layout% - \tud@skip@restore{paperheight}% - \tud@skip@restore{paperwidth}% - \fi% - \tud@cmd@restore{activateareas}% - \tud@cmd@restore{tud@AfterChangingArea}% -% \end{macrocode} -% Nachdem der Satzspiegel im Zweifelsfall neu berechnet wurde, werden die von -% \pkg{typearea} berechneten Seitenränder an \pkg{geometry} weitergereicht. -% \begin{macrocode} \edef\tud@cdgeometry@hmargin{% left=\the\dimexpr\oddsidemargin+1in-\ta@bcor\relax,% textwidth=\the\textwidth,% @@ -1410,8 +1469,8 @@ \else% custom \ifGm@pass\else% \edef\tud@cdgeometry@hmargin{% - left=\Gm@lmargin,% - right=\Gm@rmargin,% + left=\the\dimexpr\oddsidemargin+1in-\Gm@bindingoffset\relax,% + textwidth=\the\textwidth,% \ifGm@includemp% includemp=true,% \else% @@ -1496,11 +1555,23 @@ % ist. % \begin{macrocode} \ifdim\dimexpr\tud@dim@extrabottommargin\relax=\z@\relax\else% - \ClassWarning{\TUD@Class@Name}{% - Option `extrabottommargin' is ineffective when\MessageBreak% - package typearea or custom layout is used\MessageBreak% - (`cdgeometry=false/custom')% - }% + \begingroup% + \edef\tud@res@a{% + The key `extrabottommargin' is ineffective\MessageBreak% + when\space% + \ifcase\tud@cdgeometry@num% + package `typearea' is used for layout with\MessageBreak% + `cdgeometry=typearea'% + \else% + a user-defined layout is used with\MessageBreak% + `cdgeometry=custom'% + \fi% + }% + \edef\tud@res@a{% + \endgroup% + \noexpand\ClassWarning{\noexpand\TUD@Class@Name}{\tud@res@a}% + }% + \tud@res@a% \fi% % \end{macrocode} % Hier erfolgt die Definition der Hilfsmakros für das CD-konforme asymmetrische @@ -1658,12 +1729,13 @@ % \begin{macrocode} \ifdim\tud@len@areadiff<\z@\relax\setlength\tud@len@areadiff{\z@}\fi% \global\tud@len@areadiff=\tud@len@areadiff% +%<*book|report|article> + \setlength\tud@len@areaheadvskip{.22\tud@len@topmargin}% \if@tud@cdgeometry@adjust% - \setlength\tud@len@areaheadvskip{.3\tud@len@topmargin}% - \else% - \setlength\tud@len@areaheadvskip{.6\tud@len@topmargin}% + \setlength\tud@len@areaheadvskip{.5\tud@len@areaheadvskip}% \fi% \global\tud@len@areaheadvskip=\tud@len@areaheadvskip% +%</book|report|article> % \end{macrocode} % Für den Satzspiegel der Version~v2.02 wird außerdem die Länge für den höheren % Seitenfuß gesetzt. @@ -1689,45 +1761,53 @@ % Satzspiegel. % \begin{macrocode} \newcommand*\tud@cdgeometry@@@process{% + \tud@x@geometry@getlayout{\tud@cdgeometry@layout}% % \end{macrocode} % Für den Satzspiegel der Version~v2.02 wird als erstes der Satzspiegel für den % TUD-Kopf zusammen mit dem \DDC-Fuß erstellt. Das Einbeziehen der Fußzeile in % den Satzspiegel erfolgt nicht ggf. über die Option \opt{includefoot} sondern % manuell bei der Definition von \cs{tud@cdgeometry@ddcmargin}. % \begin{macrocode} - \eappto\tud@cdgeometry@hmargin{,layouthoffset=\the\Gm@layouthoffset}% - \eappto\tud@cdgeometry@vmargin{,layoutvoffset=\the\Gm@layoutvoffset}% \tud@if@v@lower{2.03}{% - \edef\@tempa{% + \tud@x@geometry@set{% + \tud@cdgeometry@layout,% \tud@cdgeometry@hmargin,% \tud@cdgeometry@vmargin,% \tud@cdgeometry@tudmargin,% \tud@cdgeometry@ddcmargin,% ignorehead,ignorefoot% }% - \tud@setgeometry{\@tempa}% \tud@savegeometry{tudareaddc}% }{}% % \end{macrocode} % Danach folgt der Seitenstil, mit dem TUD-Kopf und der Standardfußzeile. % \begin{macrocode} - \edef\@tempa{% + \tud@x@geometry@set{% + \tud@cdgeometry@layout,% \tud@cdgeometry@hmargin,% \tud@cdgeometry@vmargin,% \tud@cdgeometry@tudmargin% }% - \tud@setgeometry{\@tempa}% \tud@savegeometry{tudarea}% % \end{macrocode} % Als letztes wird der Standardsatzspiegel erstellt. % \begin{macrocode} - \edef\@tempa{% + \tud@x@geometry@set{% + \tud@cdgeometry@layout,% \tud@cdgeometry@hmargin,% \tud@cdgeometry@vmargin% }% - \tud@setgeometry{\@tempa}% \tud@savegeometry{stdarea}% % \end{macrocode} +% Je nach gewählter Option wird der aktuelle Satzspiegel für \pkg{typearea} +% oder \pkg{geometry} gesichert. +% \begin{macrocode} + \ifcase\tud@cdgeometry@num\relax% false + \tud@savegeometry{current@typearea}% + \or% custom + \tud@savegeometry{current@custom}% + \fi% +% \end{macrocode} % Falls die (abermalige) Erstellung der Satzspiegel im Dokument erfolgt, sollte % anschließend auch der richtige Satzspiegel wieder ausgewählt werden. % \begin{macrocode} @@ -1738,6 +1818,11 @@ \fi% }% % \end{macrocode} +% \end{macro}^^A \tud@cdgeometry@ddcmargin +% \end{macro}^^A \tud@cdgeometry@tudmargin +% \end{macro}^^A \tud@cdgeometry@vmargin +% \end{macro}^^A \tud@cdgeometry@hmargin +% \end{macro}^^A \tud@cdgeometry@layout % \end{macro}^^A \tud@cdgeometry@@@process % \end{macro}^^A \tud@cdgeometry@@process % \begin{macro}{\tud@cdgeometry@hincl} @@ -1773,13 +1858,98 @@ % \end{macro}^^A \tud@cdgeometry@mpincl % \end{macro}^^A \tud@cdgeometry@fincl % \end{macro}^^A \tud@cdgeometry@hincl -% Damit sind alle notwendigen Satzspiegel für die unterschiedlichen Seitenstile -% definiert. Im Normalfall werden durch \cs{tud@cdgeometry@@process} alle -% benötigten Satzspiegel erstellt. Mit dem Setzen des Seitenstils wird der -% jeweils richtige bzw. benötigte Satzspiegel ausgewählt. +% \begin{macro}{\tud@cdgeometry@@init} +% \changes{v2.04}{2015/03/10}{neu}^^A +% Damit alle Satzspiegeleinstellungen korrekt vorgenommen und auch alle +% Klassenoptionen korrekt verarbeitet werden, wird die Berechnung erstmalig mit +% \cs{AtEndPreamble} am Ende der Präambel ausgeführt. Dabei werden sowohl der +% benutzerdefinierte Satzspiegel als auch die durch \pkg{typearea} berechneten +% Einstellungen gesichert. % \begin{macrocode} -} + \newcommand*\tud@cdgeometry@@init{% + \csuse{@ta@usegeometryfalse}% + \tud@x@geometry@getlayout{\tud@cdgeometry@layout}% + \tud@cs@store{tud@cdgeometry@num}% +% \end{macrocode} +% Bei der Initialisierung der zusätzlichen Satzspiegel soll keine Warnung +% bezüglich der Angabe eines vergrößerten Fußbereichs erscheinen. +% \begin{macrocode} + \tud@cs@store{tud@dim@extrabottommargin}% + \def\tud@dim@extrabottommargin{\z@}% +% \end{macrocode} +% Zunächst werden die benutzerdefinierten Einstellungen für den Satzspiegel +% gesichert. +% \begin{macrocode} + \tud@cdgeometry@reset{custom}% + \begingroup% + \epreto\tud@x@geometry@init{% + paperwidth=\the\paperwidth,paperheight=\the\paperheight,% + \tud@cdgeometry@layout,% + \tud@cdgeometry@mpincl,% + \if@reversemargin% + reversemarginpar=true,% + \else% + reversemarginpar=false,% + \fi% + bindingoffset=\the\ta@bcor,% + \tud@cdgeometry@hincl,% + \tud@cdgeometry@fincl,% + }% + \edef\tud@res@a{% + \endgroup% + \noexpand\tud@cs@use{geometry}{\tud@x@geometry@init,driver=none}% + \noexpand\@tud@x@geometry@fixmarginstrue% + }% + \tud@res@a% + \tud@cdgeometry@@process% + \tud@savegeometry{init@custom}% +% \end{macrocode} +% Und nun der Teil für \pkg{typearea}. Bei der Initialisierung werden mögliche +% Warnungen des Paketes deaktiviert. Diese werden nur ausgegeben, wenn der +% Schlüssel \opt{cdgeometry=typearea} angegeben wurde oder im Dokument mit +% \cs{restoregeometry[typearea]} auf den initialen Satzspiegel umgestellt wird. +% \begin{macrocode} + \tud@cdgeometry@reset{typearea}% + \tud@x@typearea@warnings@off[\tud@res@a]% + \tud@x@typearea@init% + \tud@x@typearea@warnings@on% + \tud@cdgeometry@@process% + \tud@savegeometry{init@typearea}% +% \end{macrocode} +% Alle gesammelten Warnungen von \pkg{typearea} werden dem initialisierten +% Satzspiegel hinzugefügt. +% \begin{macrocode} + \def\tud@res@b##1{% + \eappto\Gm@restore@@init@typearea{% + \noexpand\PackageWarningNoLine{typearea}{##1}% + }% + }% + \forlistloop\tud@res@b{\tud@res@a}% +% \end{macrocode} +% Hier werden die temporär geäanderten Einstellungen zurückgesetzt. +% \begin{macrocode} + \tud@cs@restore{tud@cdgeometry@num}% + \tud@cs@restore{tud@dim@extrabottommargin}% % \end{macrocode} +% Der Kopf im \CD der \TnUD erfordert einen eigenen Satzspiegel, der ggf. durch +% \cs{tud@BeforeSelectAnyPageStyle} aktiviert bzw. deaktiviert wird. +% \begin{macrocode} + \BeforeSelectAnyPageStyle{\tud@BeforeSelectAnyPageStyle{##1}}% +% \end{macrocode} +% Ganz zum Schluss wird der Satzspiegel für die aktuelle Einstellung von +% \opt{cdgeometry} gesetzt. +% \begin{macrocode} + \ifcase\tud@cdgeometry@num\relax% typearea + \tud@loadgeometry{init@typearea}% + \or% custom + \tud@loadgeometry{init@custom}% + \fi% + \@tud@x@geometry@fixmarginstrue% + \tud@cdgeometry@process% + \let\tud@cdgeometry@@init\relax% + }% +% \end{macrocode} +% \end{macro}^^A \tud@cdgeometry@@init % \begin{macro}{\tud@BeforeSelectAnyPageStyle} % \changes{v2.02}{2014/06/23}{neu}^^A % \changes{v2.04}{2015/04/21}{Auswahl der Schriften für Fußbereich ergänzt}^^A @@ -1797,276 +1967,303 @@ % werden zwei~-- für die KOmpatibilitätsvariante drei~-- Layouts erstellt. % Diese können mit \cs{loadgeometry}\marg{Stil} geladen werden. % \begin{macrocode} -\newcommand*\tud@currentgeometry{} -\newcommand*\tud@BeforeSelectAnyPageStyle[1]{% + \newcommand*\tud@currentgeometry{} + \newcommand*\tud@BeforeSelectAnyPageStyle[1]{% % \end{macrocode} % Der \pgs{tudheadings}-Seitenstil wird mit dem Befehl \cs{newpairofpagestyles} % derart definiert, dass zwischen \pgs{tudheadings} und \pgs{plain.tudheadings} % auch mit \LaTeX-Standardseitenstilen \pgs{headings} bzw. \pgs{plain} % umgeschaltet werden kann. Dies wird hiermit beachtet. % \begin{macrocode} - \ifstr{#1}{\GetRealPageStyle{#1}}{% + \ifstr{#1}{\GetRealPageStyle{#1}}{% % \end{macrocode} % Für den Fall, das ein \pgs{tudheadings}-Seitenstil geladen werden soll, muss % der dazugehörige Satzspiegel ausgewählt werden\dots % \begin{macrocode} - \tud@if@tudheadings{#1}{% + \tud@if@tudheadings{#1}{% % \end{macrocode} % \dots wobei in der Version~v2.02 zwei unterschiedliche existierten, und % abhängig von der Verwendung des \DDC-Logos im Fuß waren. % \begin{macrocode} - \tud@if@v@lower{2.03}{% + \tud@if@v@lower{2.03}{% % \end{macrocode} % In diesem Fall werden die Seitenfußeinstellungen mit \cs{tud@ddc@check} in % \cs{@tempb} geschrieben und abhängig davon der richtige Satzspiegel geladen. % Dabei wird zuvor mit dem Wert aus \cs{tud@currentgeometry} geprüft, ob dies % überhaupt notwendig ist. % \begin{macrocode} - \tud@ddc@check% + \tud@ddc@check% % \end{macrocode} % Das \DDC-Logo im Fuß ist nicht aktiviert. % \begin{macrocode} - \ifcase\@tempb\relax% \tud@ddc@foot@num=false - \ifstr{\tud@currentgeometry}{tudarea}{}{% - \tud@loadgeometry{tudarea}% - \gdef\tud@currentgeometry{tudarea}% - }% + \ifcase\@tempb\relax% \tud@ddc@foot@num=false + \ifstr{\tud@currentgeometry}{tudarea}{}{% + \tud@loadgeometry{tudarea}% + \gdef\tud@currentgeometry{tudarea}% + }% % \end{macrocode} % Das \DDC-Logo im Fuß ist aktiviert. % \begin{macrocode} - \else% \tud@ddc@foot@num!=false - \ifstr{\tud@currentgeometry}{tudareaddc}{}{% - \tud@loadgeometry{tudareaddc}% - \gdef\tud@currentgeometry{tudareaddc}% - }% - \fi% + \else% \tud@ddc@foot@num!=false + \ifstr{\tud@currentgeometry}{tudareaddc}{}{% + \tud@loadgeometry{tudareaddc}% + \gdef\tud@currentgeometry{tudareaddc}% + }% + \fi% % \end{macrocode} % Ab der Version~v2.03 ist nur noch ein Satzspiegel vonnöten. % \begin{macrocode} - }{% - \ifstr{\tud@currentgeometry}{tudarea}{}{% - \tud@loadgeometry{tudarea}% - \gdef\tud@currentgeometry{tudarea}% + }{% + \ifstr{\tud@currentgeometry}{tudarea}{}{% + \tud@loadgeometry{tudarea}% + \gdef\tud@currentgeometry{tudarea}% + }% }% - }% % \end{macrocode} % Die Länge \cs{tud@len@areavskip} gibt an, wie groß die Differenz zwischen % Kopfhöhe zwischen aktuellem und dem speziellen \pgs{tudheadings}-Seitenstil % ist. Da diese in diesem Fall identisch sind, wird die Länge zu \cs{z@} % gesetzt. % \begin{macrocode} - \setlength\tud@len@areavskip{\z@}% + \setlength\tud@len@areavskip{\z@}% % \end{macrocode} % Im Seitenfuß wird für die Seitenzahl und ggf. die Kolumnentitel die passende % Schrift verwendet. % \begin{macrocode} - \tud@font@koma@set{pagefoot}{\usekomafont{tudheadings}}% - \tud@font@koma@set{pagenumber}{\usekomafont{tudheadings}}% + \tud@komafont@set{pagenumber}{\usekomafont{tudheadings}}% + \tud@komafont@set{pagefoot}{\usekomafont{tudheadings}}% % \end{macrocode} % Dies ist der Fall, wenn kein \pgs{tudheadings}-Seitenstil geladen werden soll. % Zusätzlich zum Satzspeigel wird außerdem der Seitenstil \pgs{empty} % zurückgesetzt. % \begin{macrocode} - }{% - \ifstr{\tud@currentgeometry}{stdarea}{}{% - \tud@loadgeometry{stdarea}% - \gdef\tud@currentgeometry{stdarea}% - }% + }{% + \ifstr{\tud@currentgeometry}{stdarea}{}{% + \tud@loadgeometry{stdarea}% + \gdef\tud@currentgeometry{stdarea}% + }% % \end{macrocode} % Die Länge \cs{tud@len@areavskip} wird auf den berechneten Wert gesetzt. % Nur für den Fall, dass die Kopfzeile zum Satzspiegel gerechnet wird und % dieser nicht durch \pkg{typearea} berechnet wurde, muss diese Länge etwas % angepasst werden. % \begin{macrocode} - \setlength\tud@len@areavskip{\tud@len@areadiff}% - \ifnum\tud@cdgeometry@num>\@ne\relax% true/symmetric/twoside - \if@hincl% - \addtolength\tud@len@areavskip{% - \dimexpr-\headheight-\tud@len@headsep\relax% - }% + \setlength\tud@len@areavskip{\tud@len@areadiff}% + \ifnum\tud@cdgeometry@num>\@ne\relax% true/symmetric/twoside + \if@hincl% + \addtolength\tud@len@areavskip{% + \dimexpr-\headheight-\tud@len@headsep\relax% + }% + \fi% \fi% - \fi% % \end{macrocode} % Die Schriften für Seitenzahl und Kolumnentitel werden zurückgesetzt. % \begin{macrocode} - \tud@font@koma@unset{pagefoot}% - \tud@font@koma@unset{pagenumber}% - }% + \tud@komafont@unset{pagenumber}% + \tud@komafont@unset{pagefoot}% + }% % \end{macrocode} % Die Länge \cs{tud@len@areavskip} wird vorsichtshalber global gesetzt. % \begin{macrocode} - \global\tud@len@areavskip=\tud@len@areavskip% - }{}% -} + \global\tud@len@areavskip=\tud@len@areavskip% + }{}% + } % \end{macrocode} % \end{macro}^^A \tud@currentgeometry % \end{macro}^^A \tud@BeforeSelectAnyPageStyle -% \begin{macro}{\tud@AfterChangingArea} -% \changes{v2.04}{2015/03/10}{neu}^^A -% Der Befehl \cs{AfterCalculatingTypearea} wird durch das Paket \pkg{typearea} -% bereitgestellt. Die durch \pkg{typearea} berechneten Längenwerte für den -% Satzspiegel werden zur Weiterverarbeitung gesichert. Für die Erstellung des -% Satzspiegels wird das Paket \pkg{geometry} verwendet. Bei der entsprechenden -% Option (\opt{cdgeometry}|=|\val{no}) wird jedoch der von \pkg{typearea} -% berechnete Satzspiegel an \pkg{geometry} weitergereicht. Somit wird es -% möglich, unabhängig vom genutzten Paket (\pkg{typearea} oder \pkg{geometry}) -% zur Festlegung des Satzspiegels, diesen innerhalb des Dokumentes zu ändern. -% \begin{macrocode} -\newcommand*\tud@AfterChangingArea{% - \tud@cdgeometry@@process% - \KOMAoptions{pagesize=\@pagesizelast}% -% \end{macrocode} -% Nachder Änderung des Satzspiegels werden alle Logoboxen neu erstellt. -% \begin{macrocode} - \global\@tud@mainlogo@settrue% -% \end{macrocode} -% Damit Änderungen am Satzspiegel im Dokument sicher übernommen werden, wird -% das Setzen des Satzspiegels forciert. Dafür wird \cs{tud@currentgeometry} -% zurückgesetzt und anschließend der aktuelle Seitenstil erneut geladen, um das -% erneute und korrekte Ausführen von \cs{tud@BeforeSelectAnyPageStyle} zu -% erzwingen. +% Damit sind alle notwendigen Satzspiegel für die unterschiedlichen Seitenstile +% definiert. Im Normalfall werden durch \cs{tud@cdgeometry@@process} alle +% benötigten Satzspiegel erstellt. Mit dem Setzen des Seitenstils wird der +% jeweils richtige bzw. benötigte Satzspiegel ausgewählt. % \begin{macrocode} - \gdef\tud@currentgeometry{}% - \expandafter\pagestyle\expandafter{\currentpagestyle}% } % \end{macrocode} -% \end{macro}^^A \tud@AfterChangingArea -% \begin{macro}{\tud@cdgeometry@init} -% \changes{v2.04}{2015/03/10}{neu}^^A -% Damit alle Satzspiegeleinstellungen korrekt vorgenommen und auch alle -% Klassenoptionen korrekt verarbeitet werden, wird die Berechnung erstmalig mit -% \cs{AtEndPreamble} am Ende der Präambel ausgeführt. Dies geschieht jedoch -% \emph{nicht}, wenn die \cls{standalone}-Klasse mit der Option \opt{crop} -% geladen wurde, um die Seitenränder nicht zu ändern. -% \begin{macrocode} -\newcommand*\tud@cdgeometry@init{% - \AtEndPreamble{% - \if@tud@x@standalone@crop% - \pagestyle{empty}% - \let\tud@AfterChangingArea\relax% - \let\tud@cdgeometry@process\relax% - \else% -% \end{macrocode} -% Am Ende der Präambel wird der Satzspiegel des Dokumentes gesetzt. Dabei -% werden auch sowohl der benutzderdefinierte Satzspiegel als auch die durch -% \pkg{typearea} berechneten Einstellungen gesichert. -% \begin{macrocode} - \csuse{@ta@usegeometryfalse}% - \def\tud@reserved##1{% - \tud@setgeometry{% - \tud@cdgeometry@mpincl,% - \if@reversemargin% - reversemarginpar=true,% - \else% - reversemarginpar=false,% - \fi% - bindingoffset=\the\ta@bcor,% - \tud@cdgeometry@hincl,% - \tud@cdgeometry@fincl,% - \tud@x@geometry@init,% - driver=none% - }% - \addtolength\oddsidemargin{-\Gm@layouthoffset}% - \addtolength\evensidemargin{-\Gm@layouthoffset}% - \addtolength\topmargin{-\Gm@layoutvoffset}% - \tud@savegeometry{init@##1}% - }% -% \end{macrocode} -% Ist die Option \opt{cdgeometry}|=|\val{custom} nicht aktiv, werden mit -% \cs{geometry} etwaig gemachte Einstellungen überschrieben. -% \begin{macrocode} - \begingroup% - \let\scr@grouplevel@test\@gobble% - \setlength\paperheight{\Gm@layoutheight}% - \setlength\paperwidth{\Gm@layoutwidth}% - \let\activateareas\relax% -% \end{macrocode} -% Der Kram ist dafür da, etwaige Warnungen von \pkg{typearea} aufgrund der -% fehlenden Wahl für die Satzspiegelaufteilung zu unterdrücken. -% \begin{macrocode} - \tud@x@ta@warnings@off% - \KOMAoptionOf[\def\@tempa]{typearea.\scr@pkgextension}{DIV}% - \def\@tempb{{0}}% - \ifx\@tempa\@tempb\relax% - \KOMAoptionOf[\def\@tempa]{typearea.\scr@pkgextension}{paper}% - \@for\@tempb:=\@tempa\do{% - \@tempswatrue% - \ifx\@tempb\defaultpapersize\relax% - \@tempswafalse% - \fi% - }% - \if@tempswa% - \KOMAoptions{DIV=11}% - \fi% - \fi% - \recalctypearea% - \tud@x@ta@warnings@on% - \edef\tud@x@geometry@init{% - left=\the\dimexpr\oddsidemargin+1in-\ta@bcor\relax,% - textwidth=\the\textwidth,% - marginparwidth=\the\marginparwidth,% - marginparsep=\the\marginparsep,% - bindingoffset=\the\ta@bcor,% - \if@hincl% - top=\the\dimexpr\topmargin+1in\relax,% - \else% - top=\the\dimexpr\topmargin% - +\headheight+\headsep+1in\relax,% - \fi% - headheight=\the\headheight,% - headsep=\the\headsep,% - textheight=\the\textheight,% - footskip=\the\footskip% - }% - \tud@reserved{typearea}% - \global\let\Gm@restore@@init@typearea\Gm@restore@@init@typearea% +% \begin{macro}{\typearea} +% \begin{macro}{\areaset} +% \begin{macro}{\storereareas} +% \begin{macro}{\tud@x@typearea@before} +% \changes{v2.06}{2018/08/13}{neu}^^A +% \begin{macro}{\tud@x@typearea@after} +% \changes{v2.06}{2018/08/13}{neu}^^A +% \begin{macro}{\tud@x@typearea@init} +% \changes{v2.06}{2018/08/13}{neu}^^A +% Für die Verwendung von \pkg{typearea} ist eine Sonderbehandlung notwendig, +% falls mit \cs{geometry} eine Größe für den Druckbereich/das Layout angegeben +% wurde. Dafür wird das Papierformat temporär auf die Größe des angegebenen +% Layouts geändert bevor der Satzspiegel berechnet wird. Die Einstellungen in +% der Präambel werden in \cs{tud@x@typearea@init} gesichert. +% \begin{macrocode} +\newcommand*\tud@x@typearea@before{% + \tud@skip@store{paperheight}% + \tud@skip@store{paperwidth}% + \begingroup% + \tud@cdgeometry@assignlayout% + \edef\tud@res@a{% \endgroup% + \etex@unexpanded{\setlength\paperheight}{\the\tud@len@layoutheight}% + \etex@unexpanded{\setlength\paperwidth}{\the\tud@len@layoutwidth}% + }% + \tud@res@a% +} +\newcommand*\tud@x@typearea@after{% + \tud@skip@restore{paperheight}% + \tud@skip@restore{paperwidth}% + \if@atdocument% + \tud@cdgeometry@reset{typearea}% + \tud@cdgeometry@process% + \else% + \TUD@key@preset{cdgeometry}{false}% + \fi% +} +\newcommand*\tud@x@typearea@init{\recalctypearea}% +% \end{macrocode} +% Die notwendigen Patches für die Befehle aus \pkg{typearea}. +% \begin{macrocode} +\xpretocmd{\typearea}{% + \tud@x@typearea@before% + \def\tud@x@typearea@init{\typearea[#1]{#2}}% +}{}{\tud@patch@wrn{typearea}} +\xapptocmd{\typearea}{\tud@x@typearea@after}{}{\tud@patch@wrn{typearea}} +\xpretocmd{\areaset}{% + \tud@x@typearea@before% + \begingroup% + \setlength\@tempdima{#2}% + \setlength\@tempdimb{#3}% + \edef\tud@res@a{% + \endgroup% + \noexpand\def\noexpand\tud@x@typearea@init{% + \noexpand\areaset[#1]{\the\@tempdima}{\the\@tempdimb}% + }% + }% + \tud@res@a% +}{}{\tud@patch@wrn{areaset}} +\xapptocmd{\areaset}{\tud@x@typearea@after}{}{\tud@patch@wrn{areaset}} % \end{macrocode} -% Falls \opt{cdgeometry}|=|\val{custom} aktiv ist, werden die Einstellungen -% übernommen. -% \begin{macrocode} - \tud@reserved{custom}% -% \end{macrocode} -% Nach einer Neuberechnung oder Änderung des Satzspiegels durch \pkg{typearea} +% Nach einer Wiederherstellung gespeicherter Satzspiegel durch \pkg{typearea} % werden die für die Seitenstile benötigten Satzspiegel mit \pkg{geometry} neu % erstellt. -% \ToDo{Test für \cs{AfterRestoreareas} entfernen}[v3.18] % \begin{macrocode} - \AfterCalculatingTypearea{\tud@AfterChangingArea}% - \AfterSettingArea{\tud@AfterChangingArea}% - \ifundef{\AfterRestoreareas}{}{% - \AfterRestoreareas{\tud@AfterChangingArea}% +\tud@cs@store{storeareas} +\renewcommand*\storeareas[1]{% + \begingroup + \tud@x@geometry@fixmargins% + \tud@cs@use{storeareas}{#1}% + \edef\tud@res@a{% + \endgroup% + \etex@unexpanded{\def#1}{% + \expandonce#1% + \def\noexpand\tud@cdgeometry@num{\tud@cdgeometry@num}% }% -% \end{macrocode} -% Der Kopf im \CD der \TnUD erfordert einen eigenen Satzspiegel, der ggf. durch -% \cs{tud@BeforeSelectAnyPageStyle} aktiviert bzw. deaktiviert wird. -% \begin{macrocode} - \BeforeSelectAnyPageStyle{\tud@BeforeSelectAnyPageStyle{##1}}% - \tud@cdgeometry@process% + }% + \tud@res@a% +} +\AfterRestoreareas{\tud@cdgeometry@process}% +% \end{macrocode} +% \end{macro}^^A \tud@x@typearea@init +% \end{macro}^^A \tud@x@typearea@after +% \end{macro}^^A \tud@x@typearea@before +% \end{macro}^^A \storereareas +% \end{macro}^^A \areaset +% \end{macro}^^A \typearea +% +% \iffalse +%</class&body> +%<*class&option> +% \fi +% +% \begin{macro}{\tud@x@typearea@warnings@off} +% \changes{v2.06}{2018/08/22}{neu}^^A +% \begin{macro}{\tud@x@typearea@warnings@on} +% \changes{v2.06}{2018/08/22}{neu}^^A +% Das Paket \pkg{typearea} meldet schlechte Einstellungen für den Satzspiegel +% mittels Warnungen an den Anwender. Diese sind allerdings~-- abhängig von der +% gewählten Option opt{cdgeometry} für den Satzspiegel~-- gegebenefalls nicht +% relevant. Da \TUDScript innerhalb von \cs{tud@cdgeometry@@init} am Ende der +% Präambel ohnehin anhand von \cs{tud@x@typearea@init} den Satzspiegel von +% \pkg{typearea} neu berechnet, werden alle relevanten Warnungen beim Laden des +% Paketes deaktivert. +% +% Dem Befehl \cs{tud@x@typearea@warnings@off} kann im optionalen Argument ein +% Makro übergeben werden, für welches eine \pkg{etoolbox}-Liste erzeugt wird, +% in der alle Inhalte der ignorierten Warnungen gepseichert wird, um später auf +% diese zurückgreifen zu können. +% \begin{macrocode} +\newcommand*\tud@x@typearea@warnings@off[1][]{% + \IfArgIsEmpty{#1}{}{\let#1\@empty}% + \tud@cs@store{PackageWarningNoLine}% + \renewcommand*\PackageWarningNoLine[2]{% + \@tud@res@swatrue% + \ifstr{##1}{typearea}{% + \ifstrstart{##2}{Bad type area settings!}{\@tud@res@swafalse}{}% + \ifstrstart{##2}{% + Maybe no optimal type area settings!% + }{\@tud@res@swafalse}{}% + \ifstrstart{##2}{Very low DIV value!}{\@tud@res@swafalse}{}% + }{}% + \if@tud@res@swa% + \tud@cs@use{PackageWarning}{##1}{##2}% + \else% + \IfArgIsEmpty{#1}{}{\listeadd#1{##2}}% \fi% - \let\tud@cdgeometry@init\relax% }% } -\AfterPackage!{scrlayer-scrpage}{\tud@cdgeometry@init} +\newcommand*\tud@x@typearea@warnings@on{% + \tud@cs@restore{PackageWarningNoLine}% +} +\BeforePackage{typearea}{% + \tud@x@typearea@warnings@off% +} +\AfterPackage{typearea}{% + \tud@x@typearea@warnings@on% +} % \end{macrocode} -% \end{macro}^^A \tud@cdgeometry@init +% \end{macro}^^A \tud@x@typearea@warnings@on +% \end{macro}^^A \tud@x@typearea@warnings@off +% +% \iffalse +%</class&option> +%<*class&body> +% \fi +% +% Die Seitenstile und Satzspiegel korrelieren sehr stark, weshalb das Paket +% \pkg{scrlayer-scrpage} geladen sein muss und auch alle darauf aufbauenden +% Einstellungen abgeschlossen sein müssen, um die Satzspiegel zu definieren. +% Deshalb wird \cs{tud@cdgeometry@init} erst nach besagtem Paket aufgerufen. % Sollte das Laden des Paketes \pkg{geometry} verhindert werden, sind einige % wenige Befehle vorzuhalten. +% \ToDo{Abhängigkeiten Satzspiegel<>Seitenstil beseitigen}[v2.07] % \begin{macrocode} \TUD@UnwindPackage{geometry}{% - \newif\ifGm@layout% - \newif\ifGm@showcrop% - \newif\ifGm@pass% - \let\Gm@layoutheight\paperheight% - \let\Gm@layoutwidth\paperwidth% - \let\Gm@layouthoffset\z@% - \let\Gm@layoutvoffset\z@% - \renewcommand*\tud@cdgeometry@@process{\tud@cdgeometry@set}% - \let\tud@BeforeSelectAnyPageStyle\@gobble% - \providecommand*\tud@setgeometry[1]{}% - \providecommand*\tud@savegeometry[1]{}% + \newcommand*\tud@cdgeometry@@init{% + \tud@cdgeometry@process% + \let\tud@cdgeometry@@init\relax% + }% + \newcommand*\tud@cdgeometry@@process{% + \setlength\tud@len@layoutwidth{\paperwidth}% + \setlength\tud@len@layoutheight{\paperheight}% + \tud@cdgeometry@set% + }% + \newcommand*\tud@x@geometry@fixmargins{}% +} +% \end{macrocode} +% \begin{macro}{\tud@cdgeometry@@init} +% \changes{v2.04}{2015/03/10}{neu}^^A +% Wird das Paket \pkg{svg-extract} für das Erzeugen einer solitären Grafik +% genutzt, so sollen keinerlei Einstellungen für den Satzspiegel vorgenommen +% werden. +% \begin{macrocode} +\newcommand*\tud@cdgeometry@init{\tud@cdgeometry@@init}% +\AfterPackage{svg-extract}{% + \renewcommand*\tud@cdgeometry@init{% + \if@svgx@standalone% + \@tud@x@scr@fontsize@settrue% + \else% + \tud@cdgeometry@@init% + \fi% + }% } % \end{macrocode} +% \end{macro}^^A \tud@cdgeometry@@init % \begin{macro}{\cleardoubleoddpageusingstyle} % \begin{macro}{\cleardoubleevenpageusingstyle} % \begin{macro}{\cleardoublepageusingstyle} diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-base.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-base.dtx index ca16321084d..f932b224e2b 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-base.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-base.dtx @@ -1,10 +1,10 @@ -% \CheckSum{752} +% \CheckSum{790} % \iffalse meta-comment % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2017 +% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2019 % % ---------------------------------------------------------------------------- % @@ -48,25 +48,35 @@ % % \iffalse %%% From File: tudscr-base.dtx -%<*driver> -\ifx\ProvidesFile\@undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-base.dtx}[% - 2017/05/30 v2.05m TUD-Script\space% -%</driver> +%<*dtx> +% \fi +% +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\ProvidesFile{tudscr-base.dtx}[2019/06/28 v2.06 TUD-Script\space% +% +% \iffalse +%</dtx> %<package&base>\ProvidesPackage{tudscrbase}[% -%<*driver|package&base> +%<*package&base> %!TUD@Version -%<package> package +%</package&base> +%<package&base> package +%<*dtx|package&base> +% \fi (basics for the bundle)% ] -%</driver|package&base> -%<*driver> -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} +% \iffalse +%</dtx|package&base> +%<*dtx> \documentclass[english,ngerman,xindy]{tudscrdoc} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} \usepackage{babel} -\usepackage{tudscrfonts} % only load this package, if the fonts are installed +\usepackage{tudscrfonts} \KOMAoptions{parskip=half-} \usepackage{bookmark} \usepackage[babel]{microtype} @@ -83,7 +93,7 @@ \tableofcontents \DocInput{\filename} \end{document} -%</driver> +%</dtx> % \fi % % \selectlanguage{ngerman} @@ -97,11 +107,20 @@ % benötigen das Paket und laden dieses auch. % % \ToDo{% -% Schnittstelle äquivalent zu \cs{KOMA@kav@\dots}? Falls ja, dann Löschen -% von Elementen aus \pkg{etoolbox}-Listen mit \cs{list(cs)(g/e/x)}rem oder -% ähnlich ermöglichen% -% }[v2.07] -% \ToDo{alle benötigten Pakete zur Not mit Unwind@Package abfangen}[v2.06] +% Schnittstelle äquivalent zu \cs{KOMA@kav@\dots}? Dann hierfür +% \pkg{etoolbox}-Listen und \cs{listadd} sowie \cs{listremove} nutzen +% }[v2.??] +% \ToDo{% +% Teile im Quelltext suchen, die nur einmalig durchlaufen werden müssen +% (bswp. notwendige Pakete und Schriften) und über aux-Eintrag abkürzen?! +% }[v2.??] +%^^A\BeforeClosingMainAux{% +%^^A \if@tud@xxx\if@filesw% +%^^A \immediate\write\@mainaux{% +%^^A \string\global\string\let\string\tud@test@xxx\string\relax% +%^^A }% +%^^A \fi\fi% +%^^A} % % % \StopEventually{\PrintIndex\PrintChanges\PrintToDos} @@ -115,86 +134,71 @@ % \subsection{Notwendige Pakete für \TUDScript} % % \iffalse -%<*package|class&doc> +%<*package&base> % \fi % % Das Paket \pkg{scrbase} wird zur Optionsdefinition benötigt, \pkg{scrlfile} % für verschiedene Hooks vor sowie nach Klassen und Paketen. -% \ToDo{Patches für \pkg{scrbase} raus}[v3.21] -% \begin{macrocode} -%<*base> -\RequirePackage{scrbase}[2013/12/19] -\@ifpackagelater{scrbase}{2015/10/04}{}{% - \providecommand*\kernel@ifstar[1]{\kernel@ifnextchar*{\@firstoftwo{#1}}}% -} -\@ifpackagelater{scrbase}{2016/05/11}{}{% - \renewcommand*\test@@ifdimunt[1]{% - \@tempswafalse - \ifstr{#1}{pt}{\@tempswatrue}{% - \ifstr{#1}{pc}{\@tempswatrue}{% - \ifstr{#1}{in}{\@tempswatrue}{% - \ifstr{#1}{bp}{\@tempswatrue}{% - \ifstr{#1}{cm}{\@tempswatrue}{% - \ifstr{#1}{mm}{\@tempswatrue}{% - \ifstr{#1}{dd}{\@tempswatrue}{% - \ifstr{#1}{cc}{\@tempswatrue}{% - \ifstr{#1}{sp}{\@tempswatrue}{% - \ifstr{#1}{ex}{\@tempswatrue}{% - \ifstr{#1}{em}{\@tempswatrue}{% - \scr@ifpdfoutput{% - \ifstr{#1}{px}{\@tempswatrue}{}% - }{}% - }% - }% - }% - }% - }% - }% - }% - }% - }% - }% - }% - }% -} -%</base> -% \end{macrocode} -% Das Paket \pkg{fix-tudscrfonts} muss bereits vor der Dokumentklasse geladen -% werden und führt anschließend spezifische Anpassungen an diese aus. Dafür -% ist das Paket \pkg{scrlfile} notwendig. % \begin{macrocode} -%<fontsfix|doc>\RequirePackage{scrlfile}[2013/12/19] +\RequirePackage{scrbase}[2018/03/30] % \end{macrocode} -% Das Paket \pkg{etoolbox} wird für die Manipulation bereits definierter +% Die folgenden Pakete werden für die Manipulation bereits definierter % Makros sowie zur erweiterten Auswertung boolescher Ausdrücke benötigt. % \begin{macrocode} -%<base|fontsfix|doc>\RequirePackage{etoolbox}[2011/01/03] +\RequirePackage{etoolbox}[2011/01/03] +\RequirePackage{xpatch}[2012/10/02] +\RequirePackage{letltxmacro}[2016/05/16] % \end{macrocode} % Das Paket \pkg{kvsetkeys} erweitert \pkg{keyval} um die Möglichkeit, das % Verhalten bei der Angabe eines nicht definierten Schlüssels festzulegen. % \begin{macrocode} -%<*base> \RequirePackage{etexcmds}[2011/02/16] \RequirePackage{kvsetkeys}[2012/04/25] -%</base> % \end{macrocode} -% -% \iffalse -%</package|class&doc> -%<*package&base|class&doc> -% \fi +% Mit dem Paket \pkg{trimspaces} können eventuell vorhandene Leerzeichen aus +% einem Argument entfernt. Dies wird beispielsweise beim Einlesen von Feldern +% oder bei der expliziten Auswahl einer Schrift des \CD sgenutzt. +% \begin{macrocode} +\RequirePackage{trimspaces}[2009/09/17] +% \end{macrocode} % % \subsection{Grundlegende Befehle für \TUDScript} % \subsubsection{Temporäre Makros zur internen Verwendung durch \TUDScript} % % Hier werden Makros definiert, die allein für die interne temporäre Nutzung % gedacht sind. +% \ToDo{Sämtliche \cs{@temp\dots}-Makros auf \cs{tud@res@\dots} ändern}[v2.??] +% \ToDo{\cs{tud@reserved} in \cs{tud@res@?}, Achtung bei Dopplungen!}[v2.??] % \begin{macro}{\tud@reserved} % \changes{v2.05}{2015/10/27}{neu}^^A -% Ein Makro zur temporären Verwendung. +% \begin{macro}{\tud@res@a} +% \changes{v2.06}{2018/07/12}{neu}^^A +% \begin{macro}{\tud@res@b} +% \changes{v2.06}{2018/07/12}{neu}^^A +% \begin{macro}{\tud@res@c} +% \changes{v2.06}{2018/07/12}{neu}^^A +% \begin{macro}{\if@tud@res@swa} +% \changes{v2.06}{2018/07/12}{neu}^^A +% \begin{macro}{\tud@res@cnt} +% \changes{v2.06}{2019/06/13}{neu}^^A +% \begin{macro}{\tud@res@read} +% \changes{v2.06}{2019/06/21}{neu}^^A +% Makros zur temporären Verwendung. % \begin{macrocode} \newcommand*\tud@reserved{} -% \end{macrocode} +\newcommand*\tud@res@a{} +\newcommand*\tud@res@b{} +\newcommand*\tud@res@c{} +\newif\if@tud@res@swa +\newcount\tud@res@cnt +\newread\tud@res@read +% \end{macrocode} +% \end{macro}^^A \tud@res@read +% \end{macro}^^A \tud@res@cnt +% \end{macro}^^A \if@tud@res@swa +% \end{macro}^^A \tud@res@c +% \end{macro}^^A \tud@res@b +% \end{macro}^^A \tud@res@a % \end{macro}^^A \tud@reserved % \begin{macro}{\tud@toks@} % \changes{v2.05}{2015/11/01}{neu}^^A @@ -205,29 +209,13 @@ % zu \cs{addto@hook}~-- ein Makro zum Anfügen des expandierten Arguments an ein % token-Register bereitgestellt. % \begin{macrocode} -%<package&base>\newtoks\tud@toks@ +\newtoks\tud@toks@ \newcommand*\eaddto@hook[2]{% \expandafter\addto@hook\expandafter#1\expandafter{#2}% } % \end{macrocode} % \end{macro}^^A \eaddto@hook % \end{macro}^^A \tud@toks@ -% Die Befehle für die Klasse \cls{tudscrdoc} bereits definierten Befehle -% werden vor dem Laden von \pkg{tudscrbase} undefiniert gesetzt. -% \begin{macrocode} -%<*doc> -\BeforePackage{tudscrbase}{% - \undef\tud@reserved% - \undef\eaddto@hook% -} -%</doc> -% \end{macrocode} -% -% \iffalse -%</package&base|class&doc> -%<*package&base> -% \fi -% % % \subsubsection{Robuster Test auf leeres Argument} % @@ -240,23 +228,6 @@ % \end{macrocode} % \end{macro}^^A \ifxblank % -% \subsubsection{Robuster Test auf numerischen Ausdruck} -% -% \begin{macro}{\ifxnumber} -% Dieser Befehl dient zum Testen, ob ein gegebenes Argument eine Zahl ist. -% Die Syntax lautet: \cs{ifxnumber}\marg{Argument}\marg{Wahr}\marg{Falsch} -% \ToDo{kann eigentlich raus, geht auch mit \cs{expandafter}}[v2.06] -% \begin{macrocode} -\newcommand*\ifxnumber[1]{% - \if\relax\detokenize\expandafter{\romannumeral-0#1}\relax% - \expandafter\@firstoftwo% - \else% - \expandafter\@secondoftwo% - \fi% -} -% \end{macrocode} -% \end{macro}^^A \ifxnumber -% % \subsubsection{Test auf booleschen Ausdruck in Form eines Strings} % % \begin{macro}{\ifstrbool} @@ -265,7 +236,8 @@ % Ausdruck interpretiert werden kann. Ist der String als \enquote{wahr} % interpretierbar, wird das zweite Argument ausgeführt. Kann der String als % \enquote{falsch} angesehen werden, dementsprechen das dritte. Ist der String -% kein logischer Wert, kommt das letzte Argument zum Tragen. Die Syntax lautet: +% kein logischer Wert, kommt das letzte Argument zum Tragen. Die Syntax lautet: +% % \cs{ifstrbool}\marg{Argument}\marg{Wahr}\marg{Falsch}\marg{Andernfalls} % \begin{macrocode} \newcommand*\ifstrbool[4]{% @@ -286,30 +258,6 @@ % \end{macrocode} % \end{macro}^^A \ifstrbool % -% \subsubsection{Test auf Angabe einer Länge} -% -% \begin{macro}{\ifxlen} -% \changes{v2.05}{2016/06/16}{neu}^^A -% Hiermit kann getestet werden, ob das gegebene Argument einer Länge entspricht. -% \begin{macrocode} -\newcommand*\ifxlen[1]{% - \begingroup% - \protected@edef\@tempa{#1}% - \@tempswafalse% - \expandafter\ifisdimen\expandafter{\@tempa}{\@tempswatrue}{}% - \expandafter\ifisskip\expandafter{\@tempa}{\@tempswatrue}{}% - \expandafter\ifisdimexpr\expandafter{\@tempa}{\@tempswatrue}{}% - \if@tempswa\edef\@tempa{\the\@tempa}\fi% - \expandafter\ifdimen\expandafter{\@tempa}{% - \aftergroup\@firstoftwo% - }{% - \aftergroup\@secondoftwo% - }% - \endgroup -} -% \end{macrocode} -% \end{macro}^^A \iflanguageloaded -% % \subsubsection{Test auf eine verwendbare Sprache} % % \begin{macro}{\iflanguageloaded} @@ -357,7 +305,7 @@ % % \subsubsection{Division für rationale Zahlen} % -% Mit \LaTeXe kann~-- ohne die Verwendung zusätzlicher Pakete~-- nicht ohne +% Mit \LaTeXe{} kann~-- ohne die Verwendung zusätzlicher Pakete~-- nicht ohne % Weiteres eine Division durchgeführt werden, die als Ergenis eine rationale % Zahl liefert. Dem wird hier Abhilfe geleistet. % \begin{macro}{\tud@divide} @@ -401,10 +349,10 @@ % Mit dem im temporären Zählerregister \cs{@tempcnta} gespeicherten Faktor % wird der Dividend erweitert und der berechnete Quotient wieder gekürzt. % \begin{macrocode} - \setlength{\@tempdimc}{% + \setlength\@tempdimc{% \dimexpr(\@tempcnta\@tempdima / \@tempdimb * \p@)\relax% }% - \setlength{\@tempdimc}{\dimexpr \@tempdimc/\@tempcnta\relax}% + \setlength\@tempdimc{\dimexpr \@tempdimc/\@tempcnta\relax}% % \end{macrocode} % Das Ergebnis wird in das angegebene Makro expandiert. % \begin{macrocode} @@ -433,41 +381,41 @@ % % \subsubsection{Erweiterung von \KOMAScript-Schriftelementen} % -% \begin{macro}{\tud@font@koma@set} -% \begin{macro}{\tud@font@koma@unset} -% \begin{macro}{\tud@font@koma@reset} +% \begin{macro}{\tud@komafont@set} +% \begin{macro}{\tud@komafont@unset} +% \begin{macro}{\tud@komafont@reset} % \changes{v2.02}{2014/08/24}{neu}^^A % Es wird die Möglichkeit geschaffen, bestimmten Schriftelementen weitere % Eigenschaften mitzugeben. Damit dies optionsabhängig geschehen kann und % \cs{addtokomafont} nur einmalig verwendete werden muss, wird im Zweifelsfall -% einem Schriftelement ein Hilfsmakro \cs{tud@font@koma@\meta{Element}} -% zugewiesen, welches intern angepasst werden kann. Mit \cs{tud@font@koma@set} +% einem Schriftelement ein Hilfsmakro \cs{tud@komafont@\meta{Element}} +% zugewiesen, welches intern angepasst werden kann. Mit \cs{tud@komafont@set} % werden dem angegebenen Element die gewünschten Schriftattribute zugeteilt. % \begin{macrocode} -\newcommand*\tud@font@koma@set[2]{% - \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\csuse{tud@font@koma@#1}}}% - \csdef{tud@font@koma@#1}{#2\nobreak}% +\newcommand*\tud@komafont@set[2]{% + \ifcsdef{tud@komafont@#1}{}{\addtokomafont{#1}{\csuse{tud@komafont@#1}}}% + \csdef{tud@komafont@#1}{#2\nobreak}% } % \end{macrocode} -% Mit \cs{tud@font@koma@unset} kann das angegebene Element wieder zurückgesetzt +% Mit \cs{tud@komafont@unset} kann das angegebene Element wieder zurückgesetzt % werden. Dabei wird das hinzugefügte Makro auf \cs{relax} gesetzt. % \begin{macrocode} -\newcommand*\tud@font@koma@unset[1]{% - \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\csuse{tud@font@koma@#1}}}% - \csdef{tud@font@koma@#1}{\relax}% +\newcommand*\tud@komafont@unset[1]{% + \ifcsdef{tud@komafont@#1}{}{\addtokomafont{#1}{\csuse{tud@komafont@#1}}}% + \csdef{tud@komafont@#1}{\relax}% } % \end{macrocode} % Werden \KOMAScript-Schriftelemente auf ihre Ausgangsdefinition zurückgesetzt, -% so kann diesen mit \cs{tud@font@koma@reset} kann das passende Hilfsmakro +% so kann diesen mit \cs{tud@komafont@reset} kann das passende Hilfsmakro % abermals zugewiesen werden. % \begin{macrocode} -\newcommand*\tud@font@koma@reset[1]{% - \ifcsdef{tud@font@koma@#1}{\addtokomafont{#1}{\csuse{tud@font@koma@#1}}}{}% +\newcommand*\tud@komafont@reset[1]{% + \ifcsdef{tud@komafont@#1}{\addtokomafont{#1}{\csuse{tud@komafont@#1}}}{}% } % \end{macrocode} -% \end{macro}^^A \tud@font@koma@unset -% \end{macro}^^A \tud@font@koma@reset -% \end{macro}^^A \tud@font@koma@set +% \end{macro}^^A \tud@komafont@unset +% \end{macro}^^A \tud@komafont@reset +% \end{macro}^^A \tud@komafont@set % % \subsubsection{Optionsdefinition für \TUDScript} % @@ -492,43 +440,100 @@ % \end{macro}^^A \TUDExecuteOptions % \end{macro}^^A \TUDProcessOptions % \begin{macro}{\TUD@key} -% \begin{macro}{\TUD@ifkey} +% \begin{macro}{\TUD@key@define} +% \changes{v2.06}{2018/07/19}{neu}^^A +% \begin{macro}{\TUD@key@@define} +% \changes{v2.06}{2018/07/19}{neu}^^A +% \begin{macro}{\TUD@key@preset} +% \changes{v2.06}{2018/07/19}{neu}^^A +% Dies ist der zentrale Befehl zur Definition von Optionen, welcher die von +% \KOMAScript{} Schnittstelle \cs{DefineFamilyKey} nutzt. +% +% Da sich die Klassenoptionen teilweise selbst gegenseitig beeinflussen oder +% aber in bestimmten Fällen eine Option in Abhängigkeit von einer anderen +% unterschiedliche Standardwerte annehmen soll, wird dafür eine Möglichkeit +% geschaffen. Hierfür wird für jede Option ein korrelierende Schalter +% \cs{if@tud@key@\meta{Schlüssel}@set} definiert. Dieser wird auf \val{true} +% gesetzt, sobald der Schlüssel explizit gesetzt wurde, womit ein Standardwert +% einer Klassenoption überschrieben werden kann. Das Setzen der Standardwerte +% erfolgt intern mit dem Befehl \cs{TUD@key@preset}. +% \begin{macrocode} +\newcommand*\TUD@key[2][.\@currname.\@currext]{% +% \end{macrocode} +% Basierend auf dem Namen des Schalters wird die notwendige, boolesche Variable +% erzeugt (\cs{if@tud@key@\meta{Schlüssel}@set}), welche im Falle des direkten +% Aufrufs des Schlüssels, ein Überschreiben mit einem Standardwert verhindert. +% \begin{macrocode} + \providebool{@tud@key@#2@set}% + \DefineFamilyMember[{#1}]{TUD}% + \kernel@ifnextchar[%] + {\TUD@key@define{#1}{#2}}% + {\TUD@key@@define{#1}{#2}}% +} +\newcommand*\TUD@key@define{} +\def\TUD@key@define#1#2[#3]#4{% + \DefineFamilyKey[{#1}]{TUD}{#2}[{#3}]{% + #4% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \booltrue{@tud@key@#2@set}% + \fi% + }% +} +\newcommand*\TUD@key@@define{} +\def\TUD@key@@define#1#2#3{% + \DefineFamilyKey[{#1}]{TUD}{#2}{% + #3% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \booltrue{@tud@key@#2@set}% + \fi% + }% +} +% \end{macrocode} +% Es kann intern über \cs{if@tud@key@\meta{Schlüssel}@set} geprüft werden, ob +% einem Schlüssel ein explizites Wert zugewiesen wurde. Sollte dies nicht der +% Fall sein, kann dieser hiermit intern beliebig angepasst werden. Da es durch +% das Setzen der Option mit \cs{TUDoption} zu einer Sperrung kommt, muss diese +% folgend wieder rückgängig gemacht werden. +% \begin{macrocode} +\newcommand*\TUD@key@preset[2]{% + \ifbool{@tud@key@#1@set}{}{% + \TUDoption{#1}{#2}% + \boolfalse{@tud@key@#1@set}% + }% +} +% \end{macrocode} +% \end{macro}^^A \TUD@key@preset +% \end{macro}^^A \TUD@key@@define +% \end{macro}^^A \TUD@key@define +% \end{macro}^^A \TUD@key % \begin{macro}{\TUD@set@ifkey} -% \begin{macro}{\TUD@numkey} -% \begin{macro}{\TUD@bool@numkey} -% \changes{v2.03}{2015/01/09}{neu}^^A +% \changes{v2.06}{2018/08/01}{forcierte Kleinschreibung Schlüsselwerte}^^A % \begin{macro}{\TUD@set@numkey} % \changes{v2.02}{2014/11/05}{neu}^^A -% \begin{macro}{\TUD@lengthkey} +% \changes{v2.06}{2018/08/01}{forcierte Kleinschreibung Schlüsselwerte}^^A +% \begin{macro}{\TUD@bool@numkey} % \changes{v2.03}{2015/01/09}{neu}^^A -% \begin{macro}{\TUD@set@lengthkey} % \begin{macro}{\TUD@set@dimenkey} % \changes{v2.05}{2016/06/15}{neu}^^A +% \changes{v2.06}{2018/08/01}{forcierte Kleinschreibung Schlüsselwerte}^^A % \begin{macro}{\TUD@unknown@keyval} -% Dies sind die Befehle zur Definition der Optionen. Klassenoptionen können -% entweder als Schalter (\cs{TUD@ifkey}) oder aber mit mehreren möglichen -% Werten (\cs{TUD@numkey}) definiert werden. Prinzipiell ist auch eine freie +% Dies sind die Befehle zum Setzen der Optionen. Diese können entweder als +% Schalter (\cs{TUD@set@ifkey}) oder aber mit mehreren möglichen Werten +% (\cs{TUD@set@numkey}) definiert werden. Prinzipiell ist auch eine freie % Definition mit anschließender Abarbeitung ohne die zuvor genannten Befehle % möglich. % \begin{macrocode} -\newcommand*\TUD@key[1][.\@currname.\@currext]{% - \DefineFamilyMember[{#1}]{TUD}% - \DefineFamilyKey[{#1}]{TUD}% -} -% \end{macrocode} -% Dies sind die Befehle zur Definition einer booleschen Option. -% \begin{macrocode} -\newcommand*\TUD@ifkey[1][.\@currname.\@currext]{% - \DefineFamilyMember{TUD}% - \FamilyBoolKey[#1]{TUD}% +\newcommand*\TUD@set@ifkey[3]{% + \tud@lowerstring\tud@res@a{#3}% + \edef\tud@res@b{% + \etex@unexpanded{\FamilySetBool{TUD}{#1}{#2}}{\tud@res@a}% + }\tud@res@b% } -\newcommand*\TUD@set@ifkey{\FamilySetBool{TUD}} -% \end{macrocode} -% Dies sind die Befehle zur Definition einer Option mit definierten Werten. -% \begin{macrocode} -\newcommand*\TUD@numkey[1][.\@currname.\@currext]{% - \DefineFamilyMember{TUD}% - \FamilyNumericalKey[#1]{TUD}% +\newcommand*\TUD@set@numkey[4]{% + \tud@lowerstring\tud@res@a{#4}% + \edef\tud@res@b{% + \etex@unexpanded{\FamilySetNumerical{TUD}{#1}{#2}{#3}}{\tud@res@a}% + }\tud@res@b% } % \end{macrocode} % Um Dopplungen im Code zu vermeiden, werden für die numerische Schlüssel die @@ -537,140 +542,104 @@ \newcommand*\TUD@bool@numkey{% {false}{0},{off}{0},{no}{0},{true}{1},{on}{1},{yes}{1}% } -\newcommand*\TUD@set@numkey{\FamilySetNumerical{TUD}} -% \end{macrocode} -% Dies sind die Befehle zur Definition einer Option zur Festlegung einer Länge. -% \begin{macrocode} -\newcommand*\TUD@lengthkey[1][.\@currname.\@currext]{% - \DefineFamilyMember{TUD}% - \FamilyLengthKey[#1]{TUD}% -} -\newcommand*\TUD@set@lengthkey{\FamilySetLength{TUD}} % \end{macrocode} % Mit \cs{TUD@set@dimenkey} wird der übergebene Längenwert im spezifiezierten % Makro gespeichert. % \begin{macrocode} \newcommand*\TUD@set@dimenkey[3]{% - \ifxlen{#3}{% - \def#2{#3}% - \FamilyKeyStateProcessed% - }{% - \TUD@unknown@keyval{#1}{#3}{dimens}% - }% + \tud@lowerstring\tud@res@a{#3}% + \edef\tud@res@b{% + \etex@unexpanded{\FamilySetUseLengthMacro{TUD}{#1}{#2}}{\tud@res@a}% + }\tud@res@b% } % \end{macrocode} % Dieser Befehl wird lediglich pro forma definiert. An diesen kann eine Liste -% möglicher Wertzuweisungen übergeben werden, welche durch \KOMAScript derzeit -% jedoch nicht abgearbeitet und ausgegeben wird. +% möglicher Wertzuweisungen übergeben werden, welche durch \KOMAScript{} +% derzeit jedoch nicht abgearbeitet und ausgegeben wird. % \begin{macrocode} \newcommand*\TUD@unknown@keyval{\FamilyUnknownKeyValue{TUD}} % \end{macrocode} % \end{macro}^^A \TUD@unknown@keyval % \end{macro}^^A \TUD@set@dimenkey -% \end{macro}^^A \TUD@set@lengthkey -% \end{macro}^^A \TUD@lengthkey % \end{macro}^^A \TUD@set@numkey % \end{macro}^^A \TUD@bool@numkey -% \end{macro}^^A \TUD@numkey % \end{macro}^^A \TUD@set@ifkey -% \end{macro}^^A \TUD@ifkey -% \end{macro}^^A \TUD@key -% \begin{macro}{\TUD@key@lock} -% \begin{macro}{\TUD@std@ifkey@lock} -% \begin{macro}{\TUD@std@numkey@lock} -% \begin{macro}{\TUD@set@ifkey@lock} -% \begin{macro}{\TUD@set@numkey@lock} -% Da sich die Klassenoptionen teilweise selbst gegenseitig beeinflussen oder -% aber in bestimmten Fällen eine Option in Abhängigkeit von einer anderen -% unterschiedliche Standardwerte annehmen soll, wird dafür eine Möglichkeit -% geschaffen. Dabei kann der Nutzer jederzeit einen von einer Option abhängigen -% Standardwert einer Klassenoption überschreiben. Die Klassenoptionen selber -% werden intern mit dem Befehl \cs{TUD@key@lock} definiert und die Standardwerte -% sowie deren Manipulation innerhalb der Optionen mit \cs{TUD@std@ifkey@lock} -% bzw. \cs{TUD@std@numkey@lock} gesetzt. Mit \cs{TUD@set@ifkey@lock} und -% \cs{TUD@set@numkey@lock} werden bei der expliziten Anwendung einer Option -% durch den Nutzer die entsprechenden Werte geändert und gegen ein internes -% Überschreiben gesperrt. -% \begin{macrocode} -\newcommand*\TUD@key@lock[2][.\@currname.\@currext]{% -% \end{macrocode} -% Basierend auf dem Namen des Schalters wird die notwendige, boolesche Variable -% erzeugt (\cs{if@tud@\meta{Schaltername}@lock}), welche im Falle des direkten -% Aufrufs des Schlüssels durch den Anwender, ein internes Überschreiben -% verhindert. -% \begin{macrocode} - \newbool{@tud@#2@locked}% - \TUD@key[{#1}]{#2}% -} -% \end{macrocode} -% Es kann intern über \cs{if\meta{Schaltername}@lock} geprüft werden, ob einem -% mit Schlüssel, der mit \cs{TUD@key@lock} definiert wurde, durch den Anwender -% ein explizites Verhalten zugewiesen wurde. Sollte dies nicht der Fall sein, -% kann dieser hiermit intern beliebig angepasst werden. Da es durch das Setzen -% der Option mit \cs{TUDoption} zu einer Sperrung kommt, muss diese folgend -% wieder rückgängig gemacht werden. -% \begin{macrocode} -\newcommand*\TUD@std@ifkey@lock[3]{% - \ifbool{@tud@#1@locked}{}{% - \TUD@set@ifkey{#1}{#2}{#3}% - \boolfalse{@tud@#1@locked}% - }% -} -\newcommand*\TUD@set@ifkey@lock[1]{% - \booltrue{@tud@#1@locked}% - \TUD@set@ifkey{#1}% -} -\let\TUD@std@numkey@lock\TUD@std@ifkey@lock -\newcommand*\TUD@set@numkey@lock[1]{% - \booltrue{@tud@#1@locked}% - \TUD@set@numkey{#1}% -} -% \end{macrocode} -% \end{macro}^^A \TUD@set@numkey@lock -% \end{macro}^^A \TUD@set@ifkey@lock -% \end{macro}^^A \TUD@std@numkey@lock -% \end{macro}^^A \TUD@std@ifkey@lock -% \end{macro}^^A \TUD@key@lock -% \begin{macro}{\cs@lock} -% \begin{macro}{\cs@std@lock} -% \begin{macro}{\cs@set@lock} -% Mit \cs{cs@lock}\marg{Name}\marg{Definition} kann ein Befehl definiert -% werden, welcher intern nur mit \cs{cs@std@lock}\marg{Name}\marg{Definition} -% geschrieben wird, wenn nicht über eine entsprechende Option ein explizites -% Verhalten mit \cs{cs@set@lock}\marg{Name}\marg{Definition} zugewiesen wurde. -% Dies ist äquivalent zu \cs{TUD@std@ifkey@lock} und \cs{TUD@set@ifkey@lock} -% bzw. \cs{TUD@std@numkey@lock} und \cs{TUD@set@numkey@lock} -% \begin{macrocode} -\newcommand*\cs@lock[2]{% +% \begin{macro}{\tud@locked@newnum} +% \begin{macro}{\tud@locked@num@preset} +% \begin{macro}{\tud@locked@num@set} +% Mit \cs{tud@locked@newnum}\marg{Name}\marg{Definition} lässt sich ein Makro +% definieren, für das mit \cs{tud@locked@num@preset}\marg{Name}\marg{Definition} +% eine Voreinstellung definiert werden kann, solange der Wert nicht mit +% \cs{tud@locked@num@set}\marg{Name}\marg{Definition} explizit überschrieben +% wurde. +% \begin{macrocode} +\newcommand*\tud@locked@newnum[2]{% \expandafter\newcommand\expandafter*\csname#1\endcsname{#2}% \newbool{#1@locked}% + \tud@num@set{#1}{#2}% } -\newcommand*\cs@std@lock[2]{% +\newcommand*\tud@locked@num@preset[2]{% \ifbool{#1@locked}{}{% - \csdef{#1}{#2}% + \tud@num@set{#1}{#2}% \boolfalse{#1@locked}% }% } -\newcommand*\cs@set@lock[2]{% - \csdef{#1}{#2}% +\newcommand*\tud@locked@num@set[2]{% + \tud@num@set{#1}{#2}% \booltrue{#1@locked}% } +\newcommand*\tud@num@set[2]{% + \ifcsdef{#1}{% + \ifnumber{#2}{% + \csdef{#1}{#2}% + }{% + \PackageError{tudscrbase}{% + `#2' is not a valid numerical expression% + }{% + You set the numerical expression `\@backslashchar#1'\MessageBreak% + to value `#2', which isn't numerical.% + }% + }% + }{% + \PackageError{tudscrbase}{% + `\@backslashchar#1' was never defined% + }{% + You tried using the numerical expression `\@backslashchar#1'\MessageBreak% + but you didn't define it with `\string\tud@locked@newnum'.% + }% + }% +} % \end{macrocode} -% \end{macro}^^A \cs@set@lock -% \end{macro}^^A \cs@std@lock -% \end{macro}^^A \cs@lock -% \begin{macro}{\tud@setbool} +% \end{macro}^^A \tud@locked@num@set +% \end{macro}^^A \tud@locked@num@preset +% \end{macro}^^A \tud@locked@newnum +% \begin{macro}{\tud@locked@newbool} +% \begin{macro}{\tud@locked@bool@preset} +% \begin{macro}{\tud@locked@bool@set} +% \begin{macro}{\tud@bool@set} % \changes{v2.05}{2015/07/03}{neu}^^A -% \begin{macro}{\bool@lock} -% \begin{macro}{\bool@std@lock} -% \begin{macro}{\bool@set@lock} % Diese Makros dienen in Anlehnung an die vorherigen zum Definieren und Setzen -% von sperrbaren booleschen Schaltern. Dabei wird \cs{tud@setbool} definiert, +% von sperrbaren booleschen Schaltern. Dabei wird \cs{tud@bool@set} definiert, % um nicht nur \val{true} und \val{false} sondern auch alle anderen bekannten % booleschen Zuweisungen (\val{yes} und \val{on} sowie \val{no} und \val{off}) % mit diesen Befehlen verwenden zu können. % \begin{macrocode} -\newcommand*\tud@setbool[2]{% +\newcommand*\tud@locked@newbool[2][false]{% + \newbool{#2}% + \newbool{#2@locked}% + \tud@bool@set{#2}{#1}% +} +\newcommand*\tud@locked@bool@preset[2]{% + \ifbool{#1@locked}{}{% + \tud@bool@set{#1}{#2}% + \boolfalse{#1@locked}% + }% +} +\newcommand*\tud@locked@bool@set[2]{% + \tud@bool@set{#1}{#2}% + \booltrue{#1@locked}% +} +\newcommand*\tud@bool@set[2]{% \ifstrbool{#2}{\booltrue{#1}}{\boolfalse{#1}}{% \PackageError{tudscrbase}{% `#2' is not a valid boolean expression% @@ -681,128 +650,123 @@ }% }% } -\newcommand*\bool@lock[2][false]{% - \newbool{#2}% - \newbool{#2@locked}% - \tud@setbool{#2}{#1}% -} -\newcommand*\bool@std@lock[2]{% - \ifbool{#1@locked}{}{% - \tud@setbool{#1}{#2}% - \boolfalse{#1@locked}% - }% -} -\newcommand*\bool@set@lock[2]{% - \tud@setbool{#1}{#2}% - \booltrue{#1@locked}% -} % \end{macrocode} -% \end{macro}^^A \bool@set@lock -% \end{macro}^^A \bool@std@lock -% \end{macro}^^A \bool@lock -% \end{macro}^^A \tud@setbool -% -% \iffalse -%</package&base> -%<*package&(base|fontsfix)> -% \fi -% -% \begin{macro}{\tud@cmd@store} -% \begin{macro}{\tud@cmd@restore} -% \begin{macro}{\tud@cmd@reset} -% \begin{macro}{\tud@cmd@update} +% \end{macro}^^A \tud@bool@set +% \end{macro}^^A \tud@locked@bool@set +% \end{macro}^^A \tud@locked@bool@preset +% \end{macro}^^A \tud@locked@newbool +% \begin{macro}{\tud@cs@letltx} +% \changes{v2.06}{2019/06/13}{\cs{LetLtxMacro} zum Sichern originärer Makros}^^A +% \begin{macro}{\tud@cs@store} +% \changes{v2.06}{2018/07/15}{% +% mit \cs{DeclareRobustCommand} definierte Befehle unterstüzt% +% }^^A +% \begin{macro}{\tud@cs@restore} +% \changes{v2.06}{2018/07/15}{% +% stellt originäre Makros auch wieder her, wenn diese mit \cs{undef} +% zwischendurch \emph{undefiniert} gesetzt wurden% +% }^^A +% \begin{macro}{\tud@cs@reset} +% \begin{macro}{\tud@cs@update} % \changes{v2.04}{2015/03/03}{neu}^^A -% \begin{macro}{\tud@cmd@use} -% \begin{macro}{\tud@cmd@check} +% \begin{macro}{\tud@cs@use} +% \begin{macro}{\tud@cs@check} % \changes{v2.03}{2015/01/09}{neu}^^A % Mit diesen Befehlen wird es möglich, Originalbefehle sichern, nutzen und % wiederherstellen zu können. Dies wird benötigt, um zwischen den einzelnen % Layouts über Optionseinstellungen zu wechseln und dabei von einem definierten % Anfangszustand auszugehen. % -% Mit dem Aufruf \cs{tud@cmd@store}\marg{Befehlsname} wird der im Argument +% Der Befehl \cs{tud@cs@letltx} nutzt intern \cs{LetLtxMacro} aus dem Paket +% \pkg{letltxmacro}, um auch robust definierte Befehle korrekt zu sichern. +% \begin{macrocode} +\newcommand*\tud@cs@letltx[2]{% + \expandafter\expandafter\expandafter\LetLtxMacro% + \expandafter\csname #1\expandafter\endcsname\csname #2\endcsname% +} +% \end{macrocode} +% Mit dem Aufruf \cs{tud@cs@store}\marg{Befehlsname} wird der im Argument % angegebene Befehl in einem neuem Makro \cs{@@tud@\meta{Befehlsname}} % gespeichert. Dieser kann danach beliebig angepasst werden. Soll der Befehl zu % einem späteren Zeitpunkt auf den Orginalzustand zurücksetzen, kann hierfür -% jederzeit der Befehl \cs{tud@cmd@reset}\marg{Befehlsname} verwendet werden. -% Durch das Makro \cs{tud@cmd@restore}\marg{Befehlsname} wird das mit -% \cs{tud@cmd@store} erstellte Hilfsmakro zusätzlich noch gelöscht. Der -% ursprüngliche Befehl kann als solcher mit \cs{tud@cmd@use}\marg{Befehlsname} -% weiterhin genutzt werden. Ein zuvor bereits gesicherter Befehl kann mit dem -% Makro \cs{tud@cmd@update}\marg{Befehlsname} auf die momentane Definition +% jederzeit der Befehl \cs{tud@cs@reset}\marg{Befehlsname} verwendet werden. +% Durch das Makro \cs{tud@cs@restore}\marg{Befehlsname} wird das mit +% \cs{tud@cs@store} erstellte Hilfsmakro zusätzlich noch gelöscht. Der +% ursprüngliche Befehl kann als solcher mit \cs{tud@cs@use}\marg{Befehlsname} +% weiterhin genutzt werden. Ein zuvor bereits gesicherter Befehl kann mit +% \cs{tud@cs@update}\marg{Befehlsname} auf die momentane Definition % aktualisiert werden. % \begin{macrocode} -\newcommand*\tud@cmd@store[1]{% - \tud@cmd@check{#1}% - \ifcsdef{@@tud@#1}{}{\csletcs{@@tud@#1}{#1}}% +\newrobustcmd*\tud@cs@store[1]{% + \tud@cs@check{#1}% + \ifcsdef{@@tud@#1}{}{% + \tud@cs@letltx{@@tud@#1}{#1}% + }% } -%<*base> -\newcommand*\tud@cmd@restore[1]{% - \tud@cmd@check{#1}% +\newrobustcmd*\tud@cs@restore[1]{% +% \end{macrocode} +% Sollte ein zuvor gesichertes Makro mit \cs{undef} oder \cs{csundef} +% zwischenzeitlich \emph{undefiniert} gesetzt worden sein, wird das originäre +% Makro dennoch wiederhergestellt. Hierfür wird es zu \cs{relax} gesetzt, damit +% die Überprüfung mit \cs{tud@cs@check} keinen Fehler erzeugt. +% \begin{macrocode} + \ifcsdef{#1}{}{% + \ifcsdef{@@tud@#1}{% + \cslet{#1}{\relax}% + }{}% + }% +% \end{macrocode} +% Die eigentliche Wiederherstellung. +% \begin{macrocode} + \tud@cs@check{#1}% \ifcsdef{@@tud@#1}{% - \csletcs{#1}{@@tud@#1}% + \tud@cs@letltx{#1}{@@tud@#1}% \csundef{@@tud@#1}% }{}% } -\newcommand*\tud@cmd@reset[1]{% - \tud@cmd@check{#1}% - \ifcsdef{@@tud@#1}{\csletcs{#1}{@@tud@#1}}{}% +\newrobustcmd*\tud@cs@reset[1]{% + \tud@cs@check{#1}% + \ifcsdef{@@tud@#1}{% + \tud@cs@letltx{#1}{@@tud@#1}% + }{}% } -\newcommand*\tud@cmd@update[1]{% - \tud@cmd@check{#1}% - \ifcsdef{@@tud@#1}{\csletcs{@@tud@#1}{#1}}{}% +\newrobustcmd*\tud@cs@update[1]{% + \tud@cs@check{#1}% + \ifcsdef{@@tud@#1}{% + \tud@cs@letltx{@@tud@#1}{#1}% + }{}% } -\newcommand*\tud@cmd@use[1]{% - \tud@cmd@check{#1}% +\newrobustcmd*\tud@cs@use[1]{% + \tud@cs@check{#1}% \ifcsdef{@@tud@#1}{% \csuse{@@tud@#1}% }{% \csuse{#1}% }% } -%</base> % \end{macrocode} % Dieses Makro dient zum Überprüfen, ob der zu sichernde beziehungsweise % wiederherzustellende Befehl überhaupt definiert ist. Sollte das nicht der % Fall sein, wird ein Fehler ausgegeben. % \begin{macrocode} -\newcommand*\tud@cmd@check[1]{% +\newrobustcmd*\tud@cs@check[1]{% \ifcsdef{#1}{}{% - \PackageError{% -%<base> tudscrbase% -%<fontsfix> fix-tudscrfonts% - }{`\@backslashchar#1' is not defined}{% - The command `\@backslashchar#1' was never defined\MessageBreak% + \PackageError{tudscrbase}{% + `\@backslashchar#1' is not defined}{% + The command `\@backslashchar#1' was never defined.\MessageBreak% Please contact the TUD-Script maintainer\MessageBreak% via \tudscrmail. A bugfix is urgently required.% }% }% } % \end{macrocode} -% Die Befehle \cs{tud@cmd@store} und \cs{tud@cmd@check} werden für das Paket -% \pkg{fix-tudscrfonts} bereits außerhalb von \pkg{tudscrbase} definiert. Damit -% deshalb keine Probleme entstehen, werden diese kurzerhand vor dem Laden von -% \pkg{tudscrbase} undefiniert gesetzt. -% \begin{macrocode} -%<*fontsfix> -\BeforePackage{tudscrbase}{% - \undef\tud@cmd@store% - \undef\tud@cmd@check% -} -%</fontsfix> -% \end{macrocode} -% \end{macro}^^A \tud@cmd@check -% \end{macro}^^A \tud@cmd@use -% \end{macro}^^A \tud@cmd@update -% \end{macro}^^A \tud@cmd@reset -% \end{macro}^^A \tud@cmd@restore -% \end{macro}^^A \tud@cmd@store -% -% \iffalse -%</package&(base|fontsfix)> -%<*package&base> -% \fi -% +% \end{macro}^^A \tud@cs@check +% \end{macro}^^A \tud@cs@use +% \end{macro}^^A \tud@cs@update +% \end{macro}^^A \tud@cs@reset +% \end{macro}^^A \tud@cs@restore +% \end{macro}^^A \tud@cs@store +% \end{macro}^^A \tud@cs@letltx % \begin{macro}{\tud@skip@store} % \changes{v2.04}{2015/03/02}{neu}^^A % \changes{v2.05}{2016/07/13}{Verwendung von \cs{tud@skip@check}}^^A @@ -913,7 +877,7 @@ argument of \string\TUD@parameter@family\space has to be\MessageBreak% a unique family name. Alternatively, you can specify\MessageBreak% the family name within the optional argument of\MessageBreak% - \@backslashchar#2. + \@backslashchar#2.% }% }{}% } @@ -962,7 +926,7 @@ % Hierfür wird die angegebene Parameterliste sukzessive abgearbeitet. Elemente, % welche in Schlüssel"=Wert"=Syntax angegeben wurden, bleiben unverändert\dots % \begin{macrocode} - \def\@tempb{}% + \let\@tempb\@empty% \def\@tempa##1{% \@expandtwoargs\in@{=}{##1}% \ifin@% @@ -979,7 +943,7 @@ % Parameterliste zu verwenden. Hierfür werden Umlaute sowie das \enquote*{ß} % unschädlich gemacht. % \begin{macrocode} - \begingroup + \begingroup% \let\IeC\@firstofone% \def\"####1{####1e}% \def\ss{ss}% @@ -1023,6 +987,9 @@ % Das erste obligatorische Argument von \cs{TUD@parameter@handler@macro} wird % für die Verarbeitung unbekannter Schlüssel-Wert-Paare genutzt, das zweite für % einfache optionale Argumente. +% \ToDo{% +% Eine Katastrophe, dringend überarbeiten; generelle Lösung mit \cs{toks@}?% +% }[v2.??]% % \begin{macrocode} \newcommand*\TUD@parameter@handler@macro[3][\TUD@parameter@@family]{% \TUD@parameter@checkfamily{#1}{TUD@parameter@handler@macro}% @@ -1066,7 +1033,7 @@ }% \appto\@tempa{% \ifstr{\kv@value}{twocolumn}{\def\kv@value{2}}{}% - \ifxnumber{\kv@value}{\def\tud@reserved{columns=\kv@value}}{}% + \ifnumber{\kv@value}{\def\tud@reserved{columns=\kv@value}}{}% \iflanguageloaded{\kv@value}{\def\tud@reserved{language=\kv@value}}{}% \ifx\tud@reserved\relax% \PackageError{tudscrbase}{% @@ -1074,7 +1041,7 @@ }{% If `\kv@value' is a language, you haven't loaded it.\MessageBreak% Otherwise, there's no handler for the given value.\MessageBreak% - You should specify a certian key (<key>=\kv@value). + You should specify a certian key (<key>=\kv@value).% }% \fi% }% @@ -1102,11 +1069,6 @@ % \end{macrocode} % \end{macro}^^A \TUD@parameter@error % -% \iffalse -%</package&base> -%<*package&base|class&doc> -% \fi -% % \subsubsection{Ausführung von paketspezifischem Quellcode} % % Ab und an ist es notwendig, bestimmten Quelltext gezielt in Abhängigkeit vom @@ -1118,15 +1080,96 @@ % Argument wird das Paket angegeben, im zweiten der Quellcode. % \begin{macrocode} \newcommand*\TUD@UnwindPackage[2]{\AtEndPreamble{\@ifpackageloaded{#1}{}{#2}}} -%<doc>\BeforePackage{tudscrbase}{\undef\TUD@UnwindPackage} +\@onlypreamble\TUD@UnwindPackage % \end{macrocode} % \end{macro}^^A \TUD@UnwindPackage -% -% \iffalse -%</package&base|class&doc> -%<*package&base> -% \fi -% +% \begin{macro}{\TUD@CheckPackage} +% \changes{v2.06}{2019/06/21}{neu}^^A +% \begin{macro}{\tud@if@packagelater@exists} +% \changes{v2.06}{2019/06/21}{neu}^^A +% Mit \cs{TUD@CheckPackage} wird geprüft, ob ein Paket mindestens in der +% angegebenen Version existiert. Sollte das Paket in einer früheren Version +% existieren, wird eine Warnung ausgegeben. Dabei wird das Paket \emph{nicht} +% geladen. Damit lässt sich sicherstellen, dass beispielsweise Schriftdateien +% in einer bestimmten Version vorhanden sind, ohne diese durch das Paket selbst +% zu laden. Ist das Paket gar nicht installiert, wird durch den Aufruf von +% \cs{RequirePackage} ein Fehler erzeugt respektive MiKTeX zur automatischen +% Nachinstallation animiert. +% \begin{macrocode} +\newcommand*\TUD@CheckPackage[2]{% + \tud@if@packagelater@exists{#1}{#2}{}{% + \PackageWarningNoLine{tudscrbase}{% + The version `#2' of package `#1'\MessageBreak% + is urgently required. An erroneous output\MessageBreak + may occur. Please update your distribution% + }% + \IfFileExists{#1.\@pkgextension}{}{\RequirePackage{#1}[#2]}% + }% +} +\@onlypreamble\TUD@CheckPackage +% \end{macrocode} +% Hiermit wird geprüft, ob ein installiertes Paket in einer bestimmten Version +% installiert ist, ohne dieses zu laden. Hierfür wird die Datei zeilenweise +% gelesen, bis der Eintrag \cs{ProvidesPackage\marg{Paketname}\oarg{Version}} +% gefunden wird. +% \begin{macrocode} +\newcommand*\tud@if@packagelater@exists[2]{% + \begingroup% + \let\tud@res@a\@empty% + \def\tud@res@b[##1]{\def\tud@res@a{##1}}% + \def\ProvidesPackage##1{% + \@ifnextchar[%] + {\tud@res@b}{\tud@res@b[]}% + }% + \IfFileExists{#1.\@pkgextension}{% + \openin\tud@res@read=#1.\@pkgextension% + \@tud@res@swatrue% + \loop% + \read\tud@res@read to\tud@res@c% + \@expandtwoargs\in@{\string\ProvidesPackage}% + {\expandafter\detokenize\expandafter{\tud@res@c}}% + \ifin@% + \@tud@res@swafalse% + \tud@res@c% + \fi% + \ifeof\tud@res@read\@tud@res@swafalse\fi% + \if@tud@res@swa% + \repeat% + \closein\tud@res@read% + }{}% + \edef\tud@res@a{\endgroup\noexpand\@ifl@t@r{\tud@res@a}{#2}} + \tud@res@a% +} +\@onlypreamble\tud@if@packagelater@exists +% \end{macrocode} +% \end{macro}^^A \tud@if@packagelater@exists +% \end{macro}^^A \TUD@CheckPackage +% \begin{macro}{\TUD@RecommendPackage} +% \changes{v2.06}{2018/07/12}{neu}^^A +% Bestimmte Pakete sind für die Funktionalität von \TUDScript empfohlen, aber +% nicht zwingend erforderlich. Sind diese nicht vorhanden, wird eine Warnung +% ausgegeben. +% \begin{macrocode} +\newcommand*\TUD@RecommendPackage[1]{% + \kernel@ifnextchar[%] + {\TUD@@RecommendPackage#1}% + {\TUD@@RecommendPackage#1[]}% +} +\@onlypreamble\TUD@RecommendPackage +\newcommand*\TUD@@RecommendPackage{} +\def\TUD@@RecommendPackage#1[#2]{% + \IfFileExists{#1.sty}{% + \RequirePackage{#1}[#2]% + }{% + \PackageWarning{tudscrbase}{% + The usage of package `#1' (#2) is\MessageBreak% + recommended but it isn't installed% + }% + }% +} +\@onlypreamble\TUD@@RecommendPackage +% \end{macrocode} +% \end{macro}^^A \TUD@RecommendPackage % \begin{macro}{\TUD@AfterPackage@set} % \changes{v2.04}{2015/03/09}{neu}^^A % \begin{macro}{\TUD@AfterPackage@do} @@ -1175,16 +1218,16 @@ % \begin{macrocode} %<*package&base> \newcommand*\TUD@KOMAoptions[1]{} -\ifdef{\KOMAClassName}{% - \let\TUD@KOMAoptions\KOMAoptions -}{% +\ifundef{\KOMAClassName}{% \renewcommand*\TUD@KOMAoptions[1]{% \PackageWarning{tudscrbase}{% You should load package `scrextend' right after the\MessageBreak% documentclass. Option \string\TUD@KOMAoptions{`#1'} is gobbled% }% }% - \AfterPackage*{scrextend}{\let\TUD@KOMAoptions\KOMAoptions} + \AfterPackage*{scrextend}{\let\TUD@KOMAoptions\KOMAoptions}% +}{% + \let\TUD@KOMAoptions\KOMAoptions% } %</package&base> % \end{macrocode} @@ -1239,13 +1282,12 @@ % Im Makro \cs{tud@x@multicol@num} wird die Anzahl der gewünschten Spalten in % einer Umgebung für die Verwendung des \pkg{multicol}-Paketes gespeichert. % \begin{macrocode} -\cs@lock{tud@x@multicol@num}{1} +\newcommand*\tud@x@multicol@num{1} % \end{macrocode} % Der Befehl \cs{tud@x@multicol@check} prüft, ob das Paket \pkg{multicol} % geladen wurde. Falls dies nicht der Fall ist, wird eine Warnung ausgegeben % und die Änderung des Wertes über einen Parameter der Umgebungen \env{tudpage} -% respektive \env{abstract} sowie \env{declarations} über \cs{set@set@lock} -% verhindert. +% respektive \env{abstract} sowie \env{declarations} verhindert. % \begin{macrocode} \newcommand*\tud@x@multicol@check{% \ifnum\tud@x@multicol@num>\@ne\relax% @@ -1253,10 +1295,10 @@ The option `columns=\tud@x@multicol@num' is only\MessageBreak% supported, when package `multicol' is loaded% }% - \cs@set@lock{tud@x@multicol@num}{1}% + \renewcommand*\tud@x@multicol@num{1}% \fi% } -\AfterPackage{multicol}{\renewcommand*\tud@x@multicol@check{\relax}} +\AfterPackage{multicol}{\let\tud@x@multicol@check\relax} % \end{macrocode} % \end{macro}^^A \tud@x@multicol@check % \end{macro}^^A \tud@x@multicol@num diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-color.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-color.dtx index 0bb7410c99d..c581f28f6b4 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-color.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-color.dtx @@ -4,7 +4,7 @@ % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2017 +% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2019 % % ---------------------------------------------------------------------------- % @@ -48,25 +48,35 @@ % % \iffalse %%% From File: tudscr-color.dtx -%<*driver> -\ifx\ProvidesFile\@undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-color.dtx}[% - 2017/03/29 v2.05l TUD-Script\space% -%</driver> +%<*dtx> +% \fi +% +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\ProvidesFile{tudscr-color.dtx}[2019/06/28 v2.06 TUD-Script\space% +% +% \iffalse +%</dtx> %<package>\ProvidesPackage{tudscrcolor}[% -%<*driver|package> +%<*package> %!TUD@Version +%</package> %<package> package +%<*dtx|package> +% \fi (corporate design colors)% ] -%</driver|package> -%<*driver> -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} +% \iffalse +%</dtx|package> +%<*dtx> \documentclass[english,ngerman,xindy]{tudscrdoc} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} \usepackage{babel} -\usepackage{tudscrfonts} % only load this package, if the fonts are installed +\usepackage{tudscrfonts} \KOMAoptions{parskip=half-} \usepackage{bookmark} \usepackage[babel]{microtype} @@ -83,7 +93,7 @@ \tableofcontents \DocInput{\filename} \end{document} -%</driver> +%</dtx> % \fi % % \selectlanguage{ngerman} @@ -147,10 +157,10 @@ % \subsubsection{Notwendige Farben für \TUDScript} % % \begin{macro}{\tud@setcolors@do} -% Die eigentliche Definitionen der Farben erfolgt erst durch die Ausführung des -% Befehls \cs{tud@setcolors@do}. Damit wird es möglich, auf die angegebenen -% Optionen in Form von \cs{tud@setcolors@add} oder den durch das Paket -% \pkg{xcolor} angegebenen Farbraum zu reagieren. +% Die Definitionen der Farben erfolgt erst durch die Ausführung von +% \cs{tud@setcolors@do}. Damit wird es möglich, auf die angegebenen Optionen in +% Form von \cs{tud@setcolors@add} oder den durch das Paket \pkg{xcolor} +% angegebenen Farbraum zu reagieren. % \begin{macrocode} \newcommand*\tud@setcolors@do{% % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-comp.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-comp.dtx index aaffafce8af..33f85a76d52 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-comp.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-comp.dtx @@ -1,10 +1,10 @@ -% \CheckSum{1495} +% \CheckSum{1467} % \iffalse meta-comment % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2017 +% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2019 % % ---------------------------------------------------------------------------- % @@ -48,29 +48,39 @@ % % \iffalse %%% From File: tudscr-comp.dtx -%<*driver> -\ifx\ProvidesFile\@undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-comp.dtx}[% - 2017/05/30 v2.05m TUD-Script\space% -%</driver> -%<package&identify&comp&base>\ProvidesPackage{tudscrcomp}[% -%<package&identify&comp&book>\ProvidesPackage{tudscrcomp-book}[% -%<package&identify&comp&poster>\ProvidesPackage{tudscrcomp-poster}[% -%<package&identify&fontsfix>\ProvidesPackage{fix-tudscrfonts}[% -%<*driver|package&identify> +%<*dtx> +% \fi +% +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\ProvidesFile{tudscr-comp.dtx}[2019/06/28 v2.06 TUD-Script\space% +% +% \iffalse +%</dtx> +%<*package&identify> +%<comp&base>\ProvidesPackage{tudscrcomp}[% +%<comp&book>\ProvidesPackage{tudscrcomp-book}[% +%<comp&poster>\ProvidesPackage{tudscrcomp-poster}[% +%<fixfonts>\ProvidesPackage{fix-tudscrfonts}[% %!TUD@Version -%<package&comp> package -%<package&fontsfix> package for font fixes +%<comp> package +%<fixfonts> package for font fixes +%</package&identify> +%<*dtx|package&identify> +% \fi (compatibility for old tud(scr) classes)% ] -%</driver|package&identify> -%<*driver> -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} +% \iffalse +%</dtx|package&identify> +%<*dtx> \documentclass[english,ngerman,xindy]{tudscrdoc} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} \usepackage{babel} -\usepackage{tudscrfonts} % only load this package, if the fonts are installed +\usepackage{tudscrfonts} \KOMAoptions{parskip=half-} \usepackage{bookmark} \usepackage[babel]{microtype} @@ -87,7 +97,7 @@ \tableofcontents \DocInput{\filename} \end{document} -%</driver> +%</dtx> % \fi % % \selectlanguage{ngerman} @@ -110,21 +120,23 @@ % \StopEventually{\PrintIndex\PrintChanges\PrintToDos} % % \iffalse -%<*class|(package&fonts)> +%<*class|package&fonts> +%<*option> % \fi % % \begin{macro}{\TUD@deprecated@key} % \changes{v2.03}{2015/02/05}{neu}^^A % \begin{macro}{\TUD@deprecated@cs} % \changes{v2.03}{2015/02/05}{neu}^^A +% \begin{macro}{\TUD@deprecated@@cs} +% \changes{v2.06}{2018/08/07}{neu}^^A % \begin{macro}{\TUD@deprecated@lengthcs} % \changes{v2.05}{2016/06/20}{neu}^^A % Um alte Optionen und Befehle dem Anwender bei der Verwendung kenntlich zu % machen, werden entsprechende Warnungen definiert. Für Optionen wird dabei % lediglich die empfohlene Option ausgegeben. Das Ausführen dieser wird später -% definert. +% definiert. % \begin{macrocode} -%<*option> \newcommand*\TUD@deprecated@key[2]{% %<*class> \ClassWarning{\TUD@Class@Name}% @@ -133,32 +145,63 @@ \PackageWarning{tudscrfonts}% %</package&fonts> {% - The option key `#1' is deprecated\MessageBreak% - It's recommended to use `#2'\MessageBreak% + The key `#1' is deprecated. It's\MessageBreak% + recommended to use `#2'\MessageBreak% instead% }% \TUDoptions{#2}% } -%</option> % \end{macrocode} % Bei alten Befehlen wird nach der Warnung die Definition des neuen Befehls auf % den alten überschrieben. % \begin{macrocode} -%<*class&body> \newcommand*\TUD@deprecated@cs[2]{% - \AtBeginDocument{% - \ifcsundef{#1}{% - \expandafter\newrobustcmd\csname #1\endcsname{% - \ClassWarning{\TUD@Class@Name}{% - The command `\@backslashchar#1' is deprecated\MessageBreak% - It's recommended to use `\@backslashchar#2' instead% + \begingroup% + \edef\tud@res@a{% + \endgroup% + \noexpand\AfterEndPreamble{% + \noexpand\TUD@deprecated@@cs{#1}{#2}% + }% + }% + \tud@res@a% +} +\newcommand*\TUD@deprecated@@cs[2]{% + \ifcsundef{#1}{% + \begingroup% + \def\tud@res@a{% + The command `\@backslashchar#1' is deprecated.\MessageBreak% + }% + \def\tud@res@b##1@##2\@nil{% + \IfArgIsEmpty{##2}{% + \appto\tud@res@a{% + You should use `\@backslashchar#2' instead% + }% + }{% + \appto\tud@res@a{% + You should not use this command. It is substituted\MessageBreak% + with `\@backslashchar#2' internally% + }% }% - \csletcs{#1}{#2}% - \csuse{#2}% }% - }{}% - }% + \tud@res@b#2@\@nil% + \edef\tud@res@c{% + \endgroup% + \noexpand\newrobustcmd\csname #1\endcsname{% +%<*class> + \noexpand\ClassWarning{\noexpand\TUD@Class@Name}% +%</class> +%<*package&fonts> + \noexpand\PackageWarning{tudscrfonts}% +%</package&fonts> + {\tud@res@a}% + \noexpand\csletcs{#1}{#2}% + \noexpand\csuse{#2}% + }% + }% + \tud@res@c% + }{}% } +%<*class> \newcommand*\TUD@deprecated@lengthcs[2][]{% \ifdim\csuse{#2}<\maxdimen\relax% \ClassWarning{\TUD@Class@Name}{% @@ -171,16 +214,13 @@ #1% \fi% } -%</class&body> +%</class> % \end{macrocode} % \end{macro}^^A \TUD@deprecated@lengthcs +% \end{macro}^^A \TUD@deprecated@@cs % \end{macro}^^A \TUD@deprecated@cs % \end{macro}^^A \TUD@deprecated@key % -% \iffalse -%<*option> -% \fi -% % \begin{option}{tudscrver} % \changes{v2.02}{2014/08/22}{neu}^^A % \begin{macro}{\tud@v@comp} @@ -194,7 +234,11 @@ % die zugehörigen Nummern gespeichert. % \begin{macrocode} \newcommand*\tud@v@comp{\tud@v@last} -\TUD@key{tudscrver}[last]{% +% \end{macrocode} +% Damit dieser Schlüssel gezielt als erstes bei der Abarbeitung der Optionen +% aufgerufen werden kann, wird diesem ein spezielles Mitglied zugeteilt. +% \begin{macrocode} +\TUD@key[.comp]{tudscrver}[last]{% \tud@v@get\@tempa{#1}% \ifcsundef{tud@v@\@tempa}{% %<*class> @@ -208,7 +252,7 @@ this value is not supported. Because of this, the\MessageBreak% value for `tudscrver' was set to `first'% }% - \def\tud@v@comp{0}% + \renewcommand*\tud@v@comp{0}% }{% %<*class> \ClassInfoNoLine{\TUD@Class@Name}% @@ -217,13 +261,19 @@ \PackageInfoNoLine{tudscrfonts}% %</package&fonts> {% - Switching compatibility level to `\@tempa'% + Switching compatibility level to `v\@tempa'% }% \edef\tud@v@comp{\csuse{tud@v@\@tempa}}% }% \FamilyKeyStateProcessed% } % \end{macrocode} +% Da die Schlüssel global für \emph{jedes} Mitglied ausgewertet werden, muss +% auch ein Schlüssel für das Standardmitglied definiert werden, der einfach +% nichts macht. +% \begin{macrocode} +\TUD@key{tudscrver}{\FamilyKeyStateProcessed}% +% \end{macrocode} % Eine zusätzliche Bedingung gibt es noch: Die Kompatibilität kann nur beim % Laden der Klasse bzw. des Paketes gesetzt werden, danach nicht mehr. % \begin{macrocode} @@ -234,6 +284,7 @@ \AtEndOfPackage% %</package> {% + \RelaxFamilyKey[.comp]{TUD}{tudscrver}% \TUD@key{tudscrver}[]{% %<*class> \ClassError{\TUD@Class@Name}% @@ -244,10 +295,10 @@ {Option `tudscrver' too late}{% Option `tudscrver' can only be set while loading the\MessageBreak% %<*class> - class `\TUD@Class@Name' + class `\TUD@Class@Name'\space% %</class> %<*package&fonts> - package `tudscrfonts' + package `tudscrfonts'\space% %</package&fonts> but you have tried to set it up later.% }% @@ -273,7 +324,7 @@ KOMA-Script v\TUD@Version@KOMA is required% }{% \TUD@Version\space must at least be used with\MessageBreak% - KOMA-Script v\TUD@Version@KOMA, but \KOMAScriptVersion is used.% + KOMA-Script v\TUD@Version@KOMA, but \KOMAScriptVersion was found.% }% }% %</class> @@ -336,11 +387,14 @@ % \changes{v2.05l}{2017/03/29}{neu}^^A % \begin{macro}{\tud@v@2.05m} % \changes{v2.05m}{2017/05/30}{neu}^^A +% \begin{macro}{\tud@v@2.06} +% \changes{v2.06}{2018/06/26}{neu}^^A % \begin{macro}{\tud@v@last} % \changes{v2.02}{2014/08/22}{neu}^^A % \changes{v2.03}{2015/01/13}{angepasst}^^A % \changes{v2.04}{2015/02/18}{angepasst}^^A % \changes{v2.05}{2015/07/03}{angepasst}^^A +% \changes{v2.06}{2018/06/26}{angepasst}^^A % Die numerischen Werte zu den einzelnen Versionen. % \begin{macrocode} \csdef{tud@v@first}{0} @@ -349,7 +403,6 @@ \csdef{tud@v@2.01a}{0} \csdef{tud@v@2.01b}{0} \csdef{tud@v@2.02}{0} -\csdef{tud@v@2.02}{0} \csdef{tud@v@2.03}{1} \csdef{tud@v@2.03a}{1} \csdef{tud@v@2.04}{2} @@ -371,9 +424,11 @@ \csdef{tud@v@2.05k}{3} \csdef{tud@v@2.05l}{3} \csdef{tud@v@2.05m}{3} -\csdef{tud@v@last}{3} +\csdef{tud@v@2.06}{4} +\csdef{tud@v@last}{4} % \end{macrocode} % \end{macro}^^A \tud@v@last +% \end{macro}^^A \tud@v@2.06 % \end{macro}^^A \tud@v@2.05m % \end{macro}^^A \tud@v@2.05l % \end{macro}^^A \tud@v@2.05k @@ -457,63 +512,6 @@ % % \subsection{Veraltete Optionen} % -% \begin{option}{fontspec} -% \changes{v2.02}{2014/08/29}{neu}^^A -% \changes{v2.05}{2015/07/06}{veraltet}^^A -% Früher musste die Unterstützung für die Schriftauswahl via \pkg{fontspec} -% manuell über die folgende Option aktiviert werden. -% \begin{macrocode} -\TUD@key{fontspec}[true]{% -%<*class> - \ClassWarningNoLine{\TUD@Class@Name}% -%</class> -%<*package&fonts> - \PackageWarningNoLine{tudscrfonts}% -%</package&fonts> - {% - The option key `fontspec' is deprecated\MessageBreak% - You should load the package `fontspec' manually% - }% - \TUD@set@ifkey{fontspec}{@tud@x@fontspec@enabled}{#1}% -} -% \end{macrocode} -% Da dieser Prozess sehr tief in die Schriftauswahl eingreift und das Laden des -% Paketes die Schriftauswahl für das ganze Dokument verändert, wird diese -% Option nur beim Laden der Klasse dzw. des Paketes zugelassen. -% \begin{macrocode} -%<*class> -\AtEndOfClass% -%</class> -%<*package&fonts> -\AtEndOfPackage% -%</package&fonts> -{% - \TUD@key{fontspec}[]% - {% -%<*class> - \ClassError{\TUD@Class@Name}% -%</class> -%<*package&fonts> - \PackageError{tudscrfonts}% -%</package&fonts> - {Option `fontspec' too late}{% - Option `fontspec' can only be set while loading the\MessageBreak% -%<*class> - class `\TUD@Class@Name' -%</class> -%<*package&fonts> - package `tudscrfonts' -%</package&fonts> - but you have tried to set it up later.% - }% - \FamilyKeyStateProcessed% - }% - \if@tud@x@fontspec@enabled% - \RequirePackage{fontspec}[2017/01/24]% - \fi% -} -% \end{macrocode} -% \end{option}^^A fontspec % \begin{option}{cdfonts} % \begin{option}{tudfonts} % Diese Optionen werden nur aus Gründen der Kompatibilität zu v1.0 definiert. @@ -521,21 +519,13 @@ \TUD@key{cdfonts}[true]{% \TUD@set@ifkey{cdfonts}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@tempswa% - \TUD@deprecated@key{cdfonts=#1}{cdfont=true}% - \else% - \TUD@deprecated@key{cdfonts=#1}{cdfont=false}% - \fi% + \TUD@deprecated@key{cdfonts=#1}{cdfont=#1}% \fi% } \TUD@key{tudfonts}[true]{% \TUD@set@ifkey{tudfonts}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@tempswa% - \TUD@deprecated@key{tudfonts=#1}{cdfont=true}% - \else% - \TUD@deprecated@key{tudfonts=#1}{cdfont=false}% - \fi% + \TUD@deprecated@key{tudfonts=#1}{cdfont=#1}% \fi% } % \end{macrocode} @@ -556,6 +546,37 @@ } % \end{macrocode} % \end{option}^^A heavyfont +% \begin{option}{sansmath} +% \begin{option}{serifmath} +% Mit dieser Option kann die genutzte Standardschrift für den Mathematiksatz +% für das gesamte Dokument umgestellt werden. Die \cls{tudbook}-Klasse hat +% neben der Option \opt{sansmath} außerdem den zusätzlichen Schlüssel +% \opt{serifmath} definiert, welcher aus Gründen der Kompatibilität hier +% ebenfalls vorgehalten wird. +% \begin{macrocode} +\TUD@key{sansmath}[true]{% + \TUD@set@ifkey{sansmath}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa% + \TUD@deprecated@key{sansmath}{cdmath=true}% + \else% + \TUD@deprecated@key{sansmath=#1}{cdmath=false}% + \fi% + \fi% +} +\TUD@key{serifmath}[true]{% + \TUD@set@ifkey{serifmath}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa% + \TUD@deprecated@key{serifmath}{cdmath=false}% + \else% + \TUD@deprecated@key{serifmath=#1}{cdmath=true}% + \fi% + \fi% +} +% \end{macrocode} +% \end{option}^^A serifmath +% \end{option}^^A sansmath % \begin{option}{din} % \begin{option}{nodin} % \begin{option}{noDIN} @@ -567,9 +588,9 @@ \TUD@set@ifkey{din}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{din}{cdfont=din}% + \TUD@deprecated@key{din}{cdoldfont=din}% \else% - \TUD@deprecated@key{din=#1}{cdfont=nodin}% + \TUD@deprecated@key{din=#1}{cdoldfont=nodin}% \fi% \fi% } @@ -577,9 +598,9 @@ \TUD@set@ifkey{nodin}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{nodin}{cdfont=nodin}% + \TUD@deprecated@key{nodin}{cdoldfont=nodin}% \else% - \TUD@deprecated@key{nodin=#1}{cdfont=din}% + \TUD@deprecated@key{nodin=#1}{cdoldfont=din}% \fi% \fi% } @@ -587,9 +608,9 @@ \TUD@set@ifkey{noDIN}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{noDIN}{cdfont=nodin}% + \TUD@deprecated@key{noDIN}{cdoldfont=nodin}% \else% - \TUD@deprecated@key{noDIN=#1}{cdfont=din}% + \TUD@deprecated@key{noDIN=#1}{cdoldfont=din}% \fi% \fi% } @@ -597,37 +618,6 @@ % \end{option}^^A noDIN % \end{option}^^A nodin % \end{option}^^A din -% \begin{option}{sansmath} -% \begin{option}{serifmath} -% Mit dieser Option kann die genutzte Standardschrift für den Mathematiksatz -% für das gesamte Dokument umgestellt werden. Die \cls{tudbook}-Klasse hat -% neben der Option \opt{sansmath} außerdem den zusätzlichen Schlüssel -% \opt{serifmath} definiert, welcher aus Gründen der Kompatibilität hier -% ebenfalls vorgehalten wird. -% \begin{macrocode} -\TUD@key{sansmath}[true]{% - \TUD@set@ifkey{sansmath}{@tempswa}{#1}% - \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@tempswa% - \TUD@deprecated@key{sansmath}{cdmath=true}% - \else% - \TUD@deprecated@key{sansmath=#1}{cdmath=false}% - \fi% - \fi% -} -\TUD@key{serifmath}[true]{% - \TUD@set@ifkey{serifmath}{@tempswa}{#1}% - \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@tempswa% - \TUD@deprecated@key{serifmath}{cdmath=false}% - \else% - \TUD@deprecated@key{serifmath=#1}{cdmath=true}% - \fi% - \fi% -} -% \end{macrocode} -% \end{option}^^A serifmath -% \end{option}^^A sansmath % % \iffalse %<*class> @@ -736,12 +726,100 @@ % \end{macrocode} % \end{option}^^A colour % \end{option}^^A color +% \begin{option}{clearcolor} +% \changes{v2.06}{2018/08/21}{in \opt{cleardoublespecialpage} integriert}^^A +% \begin{option}{clearcolour} +% Die Option wurde in Option \opt{cleardoublespecialpage} integriert. +% \begin{macrocode} +%<*book|report> +\TUD@key{clearcolor}[true]{% + \TUD@set@ifkey{clearcolor}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa% + \TUD@deprecated@key{clearcolor}{cleardoublespecialpage=color}% + \else% + \TUD@deprecated@key{clearcolor=#1}{cleardoublespecialpage=nocolor}% + \fi% + \fi% +} +\TUD@key{clearcolour}[true]{\TUDoptions{clearcolor=#1}} +%</book|report> +% \end{macrocode} +% \end{option}^^A clearcolour +% \end{option}^^A clearcolor % % \iffalse %</class> +% \fi +% +% \begin{option}{fontspec} +% \changes{v2.02}{2014/08/29}{neu}^^A +% \changes{v2.05}{2015/07/06}{veraltet}^^A +% \begin{macro}{\if@tud@x@fontspec@requested} +% Früher musste die Unterstützung für die Schriftauswahl via \pkg{fontspec} +% manuell über die folgende Option aktiviert werden. +% \begin{macrocode} +\newif\if@tud@x@fontspec@requested +\TUD@key{fontspec}[true]{% + \TUD@set@ifkey{fontspec}{@tud@x@fontspec@requested}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% +%<*class> + \ClassWarningNoLine{\TUD@Class@Name}% +%</class> +%<*package&fonts> + \PackageWarningNoLine{tudscrfonts}% +%</package&fonts> + {% + The key `fontspec' is deprecated.\MessageBreak% + You should load the package `fontspec' manually% + }% + \fi% +} +% \end{macrocode} +% Da dieser Prozess sehr tief in die Schriftauswahl eingreift und das Laden des +% Paketes die Schriftauswahl für das ganze Dokument verändert, wird diese +% Option nur beim Laden der Klasse dzw. des Paketes zugelassen. +% \begin{macrocode} +%<*class> +\AtEndOfClass% +%</class> +%<*package&fonts> +\AtEndOfPackage% +%</package&fonts> +{% + \TUD@key{fontspec}[]% + {% +%<*class> + \ClassError{\TUD@Class@Name}% +%</class> +%<*package&fonts> + \PackageError{tudscrfonts}% +%</package&fonts> + {Option `fontspec' too late}{% + Option `fontspec' can only be set while loading the\MessageBreak% +%<*class> + class `\TUD@Class@Name'\space% +%</class> +%<*package&fonts> + package `tudscrfonts'\space% +%</package&fonts> + but you have tried to set it up later.% + }% + \FamilyKeyStateProcessed% + }% + \if@tud@x@fontspec@requested% + \RequirePackage{fontspec}[2017/01/24]% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \if@tud@x@fontspec@requested +% \end{option}^^A fontspec +% +% \iffalse %</option> -%</class|(package&fonts)> -%<*class&body> +%</class|package&fonts> +%<*body> +%<*class> % \fi % % \subsection{Veraltete Befehle und Längen} @@ -877,28 +955,137 @@ % \end{macro}^^A \startdate % % \iffalse -%</class&body> -%<*body> -%<*class|(package&fonts)> +%</class> +%<*class|package&fonts> % \fi % -% Ab der \TUDScript-Version~v2.04 werden einige vertikale Abstände abhängig von -% der Schriftgröße definiert. Sollte eine frühere Kompatibilitätseinstellung -% angegeben worden sein, wird dieses verhalten deaktiviert. -% \begin{macrocode} -%<*class> -\AtEndOfClass% -%</class> -%<*package&fonts> -\AtEndOfPackage% -%</package&fonts> -{% - \tud@if@v@lower{2.04}{\TUDoptions{relspacing=false}}{}% +% \begin{macro}{\textcdfont} +% \begin{macro}{\tudfont} +% \begin{macro}{\univln} +% \begin{macro}{\univrn} +% \begin{macro}{\univbn} +% \begin{macro}{\univxn} +% \begin{macro}{\univls} +% \begin{macro}{\univrs} +% \begin{macro}{\univbs} +% \begin{macro}{\univxs} +% \begin{macro}{\textuln} +% \begin{macro}{\texturn} +% \begin{macro}{\textubn} +% \begin{macro}{\textuxn} +% \begin{macro}{\textuls} +% \begin{macro}{\texturs} +% \begin{macro}{\textubs} +% \begin{macro}{\textuxs} +% \begin{macro}{\dinbn} +% \begin{macro}{\textdbn} +% Für die Klassen und das Paket \pkg{tudscrfonts} werden die expliziten Befehle +% zur Schriftauswahl zumindest vorgehalten und auf die neuen Schriften gelegt. +% \begin{macrocode} +\TUD@deprecated@cs{textcdfont}{textcd}% +\TUD@deprecated@cs{tudfont}{cdfont}% +\TUD@deprecated@cs{univln}{cdfontln}% +\TUD@deprecated@cs{univrn}{cdfontrn}% +\TUD@deprecated@cs{univbn}{cdfontsn}% +\TUD@deprecated@cs{univxn}{cdfontbn}% +\TUD@deprecated@cs{univls}{cdfontli}% +\TUD@deprecated@cs{univrs}{cdfontri}% +\TUD@deprecated@cs{univbs}{cdfontsi}% +\TUD@deprecated@cs{univxs}{cdfontbi}% +\TUD@deprecated@cs{textuln}{textcdln}% +\TUD@deprecated@cs{texturn}{textcdrn}% +\TUD@deprecated@cs{textubn}{textcdsn}% +\TUD@deprecated@cs{textuxn}{textcdbn}% +\TUD@deprecated@cs{textuls}{textcdli}% +\TUD@deprecated@cs{texturs}{textcdri}% +\TUD@deprecated@cs{textubs}{textcdsi}% +\TUD@deprecated@cs{textuxs}{textcdbi}% +\TUD@deprecated@cs{dinbn}{cdfontxn}% +\TUD@deprecated@cs{textdbn}{textcdxn}% +% \end{macrocode} +% \end{macro}^^A \textdbn +% \end{macro}^^A \dinbn +% \end{macro}^^A \textuxs +% \end{macro}^^A \textubs +% \end{macro}^^A \texturs +% \end{macro}^^A \textuls +% \end{macro}^^A \textuxn +% \end{macro}^^A \textubn +% \end{macro}^^A \texturn +% \end{macro}^^A \textuln +% \end{macro}^^A \univxs +% \end{macro}^^A \univbs +% \end{macro}^^A \univrs +% \end{macro}^^A \univls +% \end{macro}^^A \univxn +% \end{macro}^^A \univbn +% \end{macro}^^A \univrn +% \end{macro}^^A \univln +% \end{macro}^^A \tudfont +% \end{macro}^^A \textcdfont +% \begin{macro}{\ifdin} +% \changes{v2.02}{2014/08/29}{Anpassungen für \pkg{fontspec}}^^A +% \changes{v2.06}{2018/07/10}{für \OpenSans hinfällig}^^A +% \begin{macro}{\tud@ifdin} +% \changes{v2.06}{2018/08/02}{neu}^^A +% Der Befehl \cs{ifdin} ist für \OpenSans hinfällig. +% \begin{macrocode} +\TUD@deprecated@cs{ifdin}{@secondoftwo} +% \end{macrocode} +% Für die alten Schriften prüft er auf die Verwendung von \DIN. Davon abhängig +% wird entweder das erste oder das zweite Argument ausgeführt. Dies kann für die +% Befehle aller Gliederungsebenen genutzt werden, um zwischen der Ausgabe im +% Dokument sowie Inhaltsverzeichnis und/oder Kolumnentitel zu unterscheiden. +% Um nicht alle Klassen und Pakete anpassen zu müssen, wird \cs{tud@ifdin} zur +% internen Nutzung in jedem Fall definiert, um die Kompatibilität gewährleisten +% zu können. +% \begin{macrocode} +\newrobustcmd*\tud@ifdin{% + \ifx\f@family\tud@cdfont@db% + \expandafter\@firstoftwo% + \else% + \expandafter\@secondoftwo% + \fi% } +\if@tud@cdoldfont@active + \newcommand*\ifdin{}% + \let\ifdin\tud@ifdin% +\fi % \end{macrocode} +% \end{macro}^^A \tud@ifdin +% \end{macro}^^A \ifdin +% \begin{macro}{\varGamma} +% \begin{macro}{\varDelta} +% \begin{macro}{\varTheta} +% \begin{macro}{\varLambda} +% \begin{macro}{\varXi} +% \begin{macro}{\varPi} +% \begin{macro}{\varSigma} +% \begin{macro}{\varUpsilon} +% \begin{macro}{\varPhi} +% \begin{macro}{\varPsi} +% \begin{macro}{\varOmega} +% Die veralteten Befehle für kursive griechische Majuskeln. +% \begin{macrocode} +\def\tud@res@a#1{% + \TUD@deprecated@cs{var#1}{it#1}% +} +\tud@math@loop@greeks@uc\tud@res@a% +% \end{macrocode} +% \end{macro}^^A \varOmega +% \end{macro}^^A \varPsi +% \end{macro}^^A \varPhi +% \end{macro}^^A \varUpsilon +% \end{macro}^^A \varSigma +% \end{macro}^^A \varPi +% \end{macro}^^A \varXi +% \end{macro}^^A \varLambda +% \end{macro}^^A \varTheta +% \end{macro}^^A \varDelta +% \end{macro}^^A \varGamma % % \iffalse -%</class|(package&fonts)> +%</class|package&fonts> %</body> % \fi % @@ -1122,7 +1309,7 @@ \global\@tud@comp@chapterpagetrue% \tud@comp@chapterpage@wrn% } -\newcommand*\tud@comp@chapterpage@set[1][]{% +\newcommand*\tud@comp@chapterpage@set{% \if@tud@comp@chapterpage% \if@tud@chapterpage% \TUDoptions{chapterpage=false}% @@ -1131,7 +1318,7 @@ \fi% \fi% } -\newcommand*\tud@comp@chapterpage@unset[1][]{% +\newcommand*\tud@comp@chapterpage@unset{% \tud@comp@chapterpage@set% \global\@tud@comp@chapterpagefalse% } @@ -1153,37 +1340,21 @@ % \end{macro}^^A \tud@comp@chapterpage@set % \end{macro}^^A \if@tud@comp@chapterpage % \end{macro}^^A \chapterpage -% \begin{macro}{\tud@chapter} -% \begin{macro}{\tud@schapter} -% \begin{macro}{\tud@addchap} -% \begin{macro}{\tud@saddchap} +% \begin{macro}{\tud@chapter@pre} +% \begin{macro}{\tud@chapter@app} % Hier erfolgt die notwendige Anpassungen der internen Gliederungsbefehle. % \begin{macrocode} \AtEndPreamble{% \if@chapter% - \pretocmd{\tud@chapter}{\tud@comp@chapterpage@set}% - {}{\tud@patch@wrn{tud@chapter}}% - \apptocmd{\tud@chapter}{\tud@comp@chapterpage@unset}% - {}{\tud@patch@wrn{tud@chapter}}% - \pretocmd{\tud@schapter}{\tud@comp@chapterpage@set}% - {}{\tud@patch@wrn{tud@schapter}}% - \apptocmd{\tud@schapter}{\tud@comp@chapterpage@unset}% - {}{\tud@patch@wrn{tud@schapter}}% - \pretocmd{\tud@addchap}{\tud@comp@chapterpage@set}% - {}{\tud@patch@wrn{tud@addchap}}% - \apptocmd{\tud@addchap}{\tud@comp@chapterpage@unset}% - {}{\tud@patch@wrn{tud@addchap}}% - \pretocmd{\tud@saddchap}{\tud@comp@chapterpage@set}% - {}{\tud@patch@wrn{tud@saddchap}}% - \apptocmd{\tud@saddchap}{\tud@comp@chapterpage@unset}% - {}{\tud@patch@wrn{tud@saddchap}}% + \pretocmd{\tud@chapter@pre}{\tud@comp@chapterpage@set}% + {}{\tud@patch@wrn{tud@chapter@pre}}% + \apptocmd{\tud@chapter@app}{\tud@comp@chapterpage@unset}% + {}{\tud@patch@wrn{tud@chapter@app}}% \fi% } % \end{macrocode} -% \end{macro}^^A \tud@saddchap -% \end{macro}^^A \tud@addchap -% \end{macro}^^A \tud@schapter -% \end{macro}^^A \tud@chapter +% \end{macro}^^A \tud@chapter@app +% \end{macro}^^A \tud@chapter@pre % % % \iffalse @@ -1207,9 +1378,9 @@ \TUD@set@ifkey{bluebg}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUDoptions{backgroundcolor=true}% + \TUDoptions{backcolor=true}% \else% - \TUDoptions{backgroundcolor=false}% + \TUDoptions{backcolor=false}% \fi% \fi% } @@ -1239,6 +1410,7 @@ % \changes{v2.05}{2016/04/17}{neu}^^A % \begin{macro}{\email} % \changes{v2.05}{2016/04/17}{neu}^^A +% \begin{macro}{\tud@split@author@list} % Hier werden alle alten Feldbefehle auf die Pendants von \TUDScript gelegt und % das Makro \cs{tud@split@author@list} um diese Befehle erweitert. % \begin{macrocode} @@ -1255,6 +1427,7 @@ emailaddress,email% }{}{\tud@patch@wrn{tud@split@author@list}} % \end{macrocode} +% \end{macro}^^A \tud@split@author@list % \end{macro}^^A \email % \end{macro}^^A \fax % \end{macro}^^A \telefon @@ -1301,7 +1474,7 @@ } \newcommand*\drittlogofile[1]{% \PackageWarning{tudscrcomp}{% - Nothing happened, you should use \string\footlogo\MessageBreak + Nothing happened, you should use \string\footlogo\MessageBreak% instead. Please see the documentation of \string\footlogo\MessageBreak% and option `ddc' or `ddcfoot'% }% @@ -1343,10 +1516,8 @@ % zu umgehen. Sei's drum. Für die Umsetzung werden die Basisgliederungsbefehle % geklont und anschließend der gewünschte vertikale Abstand vor der Überschrift % entfernt. -% \ToDo{Klonen der Gliederungsebene in Absprache mit Markus über Makro}[v2.06] +% \ToDo{Klonen Gliederungsebenen über Makro (Markus fragen?!)}[v2.??] % \begin{macrocode} -\newcounter{topsection} -\let\c@topsection\c@section \newcommand*\topsectionnumdepth{\sectionnumdepth} \newcommand*\scr@topsection@sectionindent{\scr@section@sectionindent} \newcommand*\scr@topsection@beforeskip{\scr@section@beforeskip} @@ -1357,11 +1528,10 @@ \newcommand*\l@topsection{\l@section} \DeclareNewSectionCommand[% style=section,% - font={\usekomafont{section}}, + font={\usekomafont{section}},% beforeskip=\z@,% ]{topsection} -\newcounter{topsubsection} -\let\c@topsubsection\c@subsection +\let\c@topsection\c@section \newcommand*\topsubsectionnumdepth{\subsectionnumdepth} \newcommand*\scr@topsubsection@sectionindent{\scr@subsection@sectionindent} \newcommand*\scr@topsubsection@beforeskip{\scr@subsection@beforeskip} @@ -1372,9 +1542,10 @@ \newcommand*\l@topsubsection{\l@subsection} \DeclareNewSectionCommand[% style=section,% - font={\usekomafont{subsection}}, + font={\usekomafont{subsection}},% beforeskip=\z@,% ]{topsubsection} +\let\c@topsubsection\c@subsection % \end{macrocode} % \end{counter}^^A topsubsection % \end{macro}^^A \topsubsection @@ -1412,14 +1583,14 @@ % geachtet, ob das optionale Argument durch den Anwender verwendet wird. % \begin{macrocode} \newcommand*\tud@comp@centersection[3]{% - \tud@cmd@store{raggedsection}% + \tud@cs@store{raggedsection}% \let\raggedsection\centering% \ifx#2\@nil\relax% \csuse{#1}{#3}% \else% \csuse{#1}[#2]{#3}% \fi% - \tud@cmd@restore{raggedsection}% + \tud@cs@restore{raggedsection}% } % \end{macrocode} % \end{macro}^^A \tud@comp@centersection @@ -1454,13 +1625,13 @@ % \changes{v2.05}{2016/04/17}{neu}^^A % \begin{macro}{\footcolumn} % \changes{v2.05}{2016/04/17}{neu}^^A -% Mit diesen beiden Befehlen lässt sich der Inhalt des Fußbereiches angepassen. -% Wird in einem und/oder beiden Argumente von \cs{footcolumn} ein Stern \val{*} +% Mit diesen Befehlen lässt sich der Inhalt des Fußbereiches angepassen. Wird +% in einem und/oder beiden Argumente von \cs{footcontent} ein Stern \val{*} % verwendet, so bleibt der bisherige Inhalt erhalten. % \begin{macrocode} \newcommand*\fusszeile[2][]{\footcontent[#1]{#2}} \newcommand*\footcolumn[2]{% - \ifxnumber{#1}{% + \ifnumber{#1}{% \ifcase#1\relax% \footcontent{#2}% \or% @@ -1636,7 +1807,7 @@ \newcommand*\grautabelle{\@tud@comp@graytabletrue} \newenvironment{farbtabellen}{% \if@tud@comp@graytable% - \rowcolors{1}{HKS92!20}{HKS92!10} + \rowcolors{1}{HKS92!20}{HKS92!10}% \else% \rowcolors{1}{HKS41!20}{HKS41!10}% \fi% @@ -1655,14 +1826,14 @@ % \ToDo{Für \cls{tudscrposter} übernehmen?}[v2.07] % \begin{macrocode} \ifundef{\schnittrand}{}{% - \ifxlen{\schnittrand}{% + \ifisdimension{\schnittrand}{% \edef\@tempa{% paperwidth=\the\dimexpr\paperwidth+\schnittrand*2\relax,% paperheight=\the\dimexpr\paperheight+\schnittrand*2\relax,% layout=\the\paperwidth:\the\paperheight,% layoutoffset=\the\dimexpr\schnittrand\relax,% showcrop% - } + }% \expandafter\geometry\expandafter{\@tempa}% }{% \PackageErrorNoLine{tudscrcomp}{% @@ -1670,8 +1841,8 @@ }{% The definition of `\string\schnittrand' does not expand to\MessageBreak% a valid dimension expression.% - } - } + }% + }% }% % \end{macrocode} % \end{macro}^^A \schnittrand @@ -1711,22 +1882,15 @@ % die Posterklassen an. % % \iffalse -%<*package&fontsfix> -%<*option> +%<*package&fixfonts> +%<*body> % \fi % -% Sämtliche Optionen werden an das Paket \pkg{tudscrfonts} durchgereicht, -% welches automatisch am Ende der Präambel geladen wird, falls dies zuvor durch -% den Anwender geschieht. Für die Klassen von Klaus Bergmann, \TUDScript in der -% Version~v1.0 sowie die alternativen Posterklassen bleiben die vertikalen -% Abstände schriftgrößenunabhängig. Außerdem wird für die fette Schriftstärke -% ein stärkerer Schriftschnitt genutzt. +% Das Paket \pkg{tudscrfonts} wird am Ende der Präambel geladen, falls dies +% zuvor nicht durch den Anwender geschieht. % \begin{macrocode} -\PassOptionsToPackage{relspacing=false,cdfont=ultrabold}{tudscrfonts} -\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{tudscrfonts}} -\ProcessOptions\relax \AtEndPreamble{% - \tud@fontsfix@maybe@err% + \tud@fixfonts@class@check% \RequirePackage{tudscrfonts}[\TUD@Version]% } % \end{macrocode} @@ -1738,14 +1902,14 @@ % eigentlichen Dokumentklasse sichern muss, kann dieses Paket ausschließlich % vor \cs{documentclass} mit \cs{RequirePackage} geladen werden. % -% \begin{macro}{\tud@fontsfix@maybe@err} +% \begin{macro}{\tud@fixfonts@class@check} % \changes{v2.05}{2016/01/02}{neu}^^A % Dieser Befehl wird nach dem Laden einer unterstützten Klasse zu \cs{relax} % gesetzt. Sollte das Paket jedoch erst nach einer Dokumentklasse geladen % werden, so wird ein Fehler ausgegeben. % \begin{macrocode} \ifx\usepackage\RequirePackage - \newcommand*\tud@fontsfix@maybe@err{% + \newcommand*\tud@fixfonts@class@check{% \PackageError{fix-tudscrfonts}{Package too late}{% You must load `fix-tudscrfonts' with\MessageBreak% `\string\RequirePackage' before any document class.% @@ -1756,7 +1920,7 @@ % ebenfalls ein Fehler ausgegeben. % \begin{macrocode} \else - \newcommand*\tud@fontsfix@maybe@err{% + \newcommand*\tud@fixfonts@class@check{% \PackageError{fix-tudscrfonts}{Unsupported class found}{% You have to use `fix-tudscrfonts' only\MessageBreak% with supported classes. These are: `tudbook',\MessageBreak% @@ -1768,19 +1932,14 @@ }% \fi % \end{macrocode} -% \end{macro}^^A \tud@fontsfix@maybe@err -% -% \iffalse -%</option> -%<*body> -% \fi +% \end{macro}^^A \tud@fixfonts@class@check % % \subsection{Patches für die unterstützten Klassen} % % Für alle unterstützten Klassen sind vor und nach dem Laden einige Anpassungen % an den bereitgestellten Schriftbefehlen notwendig. % -% \begin{macro}{\tud@fontsfix@AdaptClass} +% \begin{macro}{\tud@fixfonts@class@adapt} % \changes{v2.05}{2016/01/02}{neu}^^A % \begin{macro}{\dinBold} % \changes{v2.05}{2015/07/13}{neu}^^A @@ -1800,7 +1959,7 @@ % \begin{macro}{\univBoldXV} % \begin{macro}{\univLightHead} % \begin{macro}{\univBoldHead} -% \begin{macro}{\tud@head@fntsz} +% \begin{macro}{\tud@head@fontsize} % Mit diesen beiden Befehlen werden vor dem Laden der alten Klassen einige % Befehle gesichert und die benötigten Optionen gesetzt. Nach dem Laden der % jeweiligen Klasse werden die gesicherten Makrodefinitionen wiederhergestellt @@ -1808,49 +1967,48 @@ % dies in erster Linie die Mathematikschriften sowie die in den Klassen % definierten, fixen Schriften. % \begin{macrocode} -\newcommand*\tud@fontsfix@AdaptClass[2]{% +\newcommand*\tud@fixfonts@class@adapt[2]{% \BeforeClass{#1}{% - \let\tud@fontsfix@maybe@err\relax% - \tud@cmd@store{DeclareFixedFont}% + \let\tud@fixfonts@class@check\relax% + \tud@cs@store{DeclareFixedFont}% \renewcommand*\DeclareFixedFont[6]{}% - \tud@cmd@store{rmdefault}% - \tud@cmd@store{sfdefault}% - \tud@cmd@store{ttdefault}% - \tud@cmd@store{bfdefault}% - \tud@cmd@store{mddefault}% - \tud@cmd@store{itdefault}% - \tud@cmd@store{sldefault}% - \tud@cmd@store{scdefault}% - \tud@cmd@store{updefault}% - \tud@cmd@store{rmfamily}% - \tud@cmd@store{sffamily}% - \tud@cmd@store{ttfamily}% - \tud@cmd@store{familydefault}% - \tud@cmd@store{seriesdefault}% - \tud@cmd@store{shapedefault}% - \tud@cmd@store{normalfont}% + \tud@cs@store{rmdefault}% + \tud@cs@store{sfdefault}% + \tud@cs@store{ttdefault}% + \tud@cs@store{bfdefault}% + \tud@cs@store{mddefault}% + \tud@cs@store{itdefault}% + \tud@cs@store{sldefault}% + \tud@cs@store{scdefault}% + \tud@cs@store{updefault}% + \tud@cs@store{rmfamily}% + \tud@cs@store{sffamily}% + \tud@cs@store{ttfamily}% + \tud@cs@store{familydefault}% + \tud@cs@store{seriesdefault}% + \tud@cs@store{shapedefault}% + \tud@cs@store{normalfont}% \let\normalfont\relax% \PassOptionsToClass{serifmath}{#1}% }% \AfterClass{#1}{% - \RequirePackage{tudscrbase}[\TUD@Version]% - \tud@cmd@restore{DeclareFixedFont}% - \tud@cmd@restore{rmdefault}% - \tud@cmd@restore{sfdefault}% - \tud@cmd@restore{ttdefault}% - \tud@cmd@restore{bfdefault}% - \tud@cmd@restore{mddefault}% - \tud@cmd@restore{itdefault}% - \tud@cmd@restore{sldefault}% - \tud@cmd@restore{scdefault}% - \tud@cmd@restore{updefault}% - \tud@cmd@restore{rmfamily}% - \tud@cmd@restore{sffamily}% - \tud@cmd@restore{ttfamily}% - \tud@cmd@restore{familydefault}% - \tud@cmd@restore{seriesdefault}% - \tud@cmd@restore{shapedefault}% - \tud@cmd@restore{normalfont}% + \tud@cs@restore{DeclareFixedFont}% + \tud@cs@restore{rmdefault}% + \tud@cs@restore{sfdefault}% + \tud@cs@restore{ttdefault}% + \tud@cs@restore{bfdefault}% + \tud@cs@restore{mddefault}% + \tud@cs@restore{itdefault}% + \tud@cs@restore{sldefault}% + \tud@cs@restore{scdefault}% + \tud@cs@restore{updefault}% + \tud@cs@restore{rmfamily}% + \tud@cs@restore{sffamily}% + \tud@cs@restore{ttfamily}% + \tud@cs@restore{familydefault}% + \tud@cs@restore{seriesdefault}% + \tud@cs@restore{shapedefault}% + \tud@cs@restore{normalfont}% #2% \AfterPackage*{tudscrfonts}{% \def\dinBold{\dinbn}% @@ -1870,67 +2028,36 @@ \newcommand*\univBoldXV{}% \newcommand*\univLightHead{}% \newcommand*\univBoldHead{}% - \providecommand*\tud@head@fntsz{9}% - \if@tud@univers% - \if@tud@x@fontspec@enabled% - \DeclareFixedFont{\univLightVII}{\encodingdefault}% - {UniversLight}{m}{n}{7}% - \DeclareFixedFont{\univLightObliqueVII}{\encodingdefault}% - {UniversLightOblique}{m}{n}{7}% - \DeclareFixedFont{\univBoldVII}{\encodingdefault}% - {UniversBold}{m}{n}{7}% - \DeclareFixedFont{\univLightIX}{\encodingdefault}% - {UniversLight}{m}{n}{9}% - \DeclareFixedFont{\univLightObliqueIX}{\encodingdefault}% - {UniversLightOblique}{m}{n}{9}% - \DeclareFixedFont{\univBoldIX}{\encodingdefault}% - {UniversBold}{m}{n}{9}% - \DeclareFixedFont{\univLightXI}{\encodingdefault}% - {UniversLight}{m}{n}{11}% - \DeclareFixedFont{\univLightObliqueXI}{\encodingdefault}% - {UniversLightOblique}{m}{n}{11}% - \DeclareFixedFont{\univBoldXI}{\encodingdefault}% - {UniversBold}{m}{n}{11}% - \DeclareFixedFont{\univLightXV}{\encodingdefault}% - {UniversLight}{m}{n}{15}% - \DeclareFixedFont{\univLightObliqueXV}{\encodingdefault}% - {UniversLightOblique}{m}{n}{15}% - \DeclareFixedFont{\univBoldXV}{\encodingdefault}% - {UniversBold}{m}{n}{15}% - \DeclareFixedFont{\univLightHead}{\encodingdefault}% - {UniversLight}{m}{n}{\tud@head@fntsz}% - \DeclareFixedFont{\univBoldHead}{\encodingdefault}% - {UniversBold}{m}{n}{\tud@head@fntsz}% - \else% - \DeclareFixedFont{\univLightVII}{\encodingdefault}% - {\tud@univers}{l}{n}{7}% - \DeclareFixedFont{\univLightObliqueVII}{\encodingdefault}% - {\tud@univers}{l}{sl}{7}% - \DeclareFixedFont{\univBoldVII}{\encodingdefault}% - {\tud@univers}{b}{n}{7}% - \DeclareFixedFont{\univLightIX}{\encodingdefault}% - {\tud@univers}{l}{n}{9}% - \DeclareFixedFont{\univLightObliqueIX}{\encodingdefault}% - {\tud@univers}{l}{sl}{9}% - \DeclareFixedFont{\univBoldIX}{\encodingdefault}% - {\tud@univers}{b}{n}{9}% - \DeclareFixedFont{\univLightXI}{\encodingdefault}% - {\tud@univers}{l}{n}{11}% - \DeclareFixedFont{\univLightObliqueXI}{\encodingdefault}% - {\tud@univers}{l}{sl}{11}% - \DeclareFixedFont{\univBoldXI}{\encodingdefault}% - {\tud@univers}{b}{n}{11}% - \DeclareFixedFont{\univLightXV}{\encodingdefault}% - {\tud@univers}{l}{n}{15}% - \DeclareFixedFont{\univLightObliqueXV}{\encodingdefault}% - {\tud@univers}{l}{sl}{15}% - \DeclareFixedFont{\univBoldXV}{\encodingdefault}% - {\tud@univers}{b}{n}{15}% - \DeclareFixedFont{\univLightHead}{\encodingdefault}% - {\tud@univers}{l}{n}{\tud@head@fntsz}% - \DeclareFixedFont{\univBoldHead}{\encodingdefault}% - {\tud@univers}{b}{n}{\tud@head@fntsz}% - \fi% + \providecommand*\tud@head@fontsize{9}% + \if@tud@cdfont@fam@exist% + \DeclareFixedFont{\univLightVII}{\encodingdefault}% + {\tud@cdfont@fam@lf}{l}{n}{7}% + \DeclareFixedFont{\univLightObliqueVII}{\encodingdefault}% + {\tud@cdfont@fam@lf}{l}{sl}{7}% + \DeclareFixedFont{\univBoldVII}{\encodingdefault}% + {\tud@cdfont@fam@lf}{b}{n}{7}% + \DeclareFixedFont{\univLightIX}{\encodingdefault}% + {\tud@cdfont@fam@lf}{l}{n}{9}% + \DeclareFixedFont{\univLightObliqueIX}{\encodingdefault}% + {\tud@cdfont@fam@lf}{l}{sl}{9}% + \DeclareFixedFont{\univBoldIX}{\encodingdefault}% + {\tud@cdfont@fam@lf}{b}{n}{9}% + \DeclareFixedFont{\univLightXI}{\encodingdefault}% + {\tud@cdfont@fam@lf}{l}{n}{11}% + \DeclareFixedFont{\univLightObliqueXI}{\encodingdefault}% + {\tud@cdfont@fam@lf}{l}{sl}{11}% + \DeclareFixedFont{\univBoldXI}{\encodingdefault}% + {\tud@cdfont@fam@lf}{b}{n}{11}% + \DeclareFixedFont{\univLightXV}{\encodingdefault}% + {\tud@cdfont@fam@lf}{l}{n}{15}% + \DeclareFixedFont{\univLightObliqueXV}{\encodingdefault}% + {\tud@cdfont@fam@lf}{l}{sl}{15}% + \DeclareFixedFont{\univBoldXV}{\encodingdefault}% + {\tud@cdfont@fam@lf}{b}{n}{15}% + \DeclareFixedFont{\univLightHead}{\encodingdefault}% + {\tud@cdfont@fam@lf}{l}{n}{\tud@head@fontsize}% + \DeclareFixedFont{\univBoldHead}{\encodingdefault}% + {\tud@cdfont@fam@lf}{b}{n}{\tud@head@fontsize}% \else% \DeclareFixedFont{\univLightVII}{\encodingdefault}% {\sfdefault}{\mddefault}{\updefault}{7}% @@ -1957,16 +2084,16 @@ \DeclareFixedFont{\univBoldXV}{\encodingdefault}% {\sfdefault}{\bfdefault}{\updefault}{15}% \DeclareFixedFont{\univLightHead}{\encodingdefault}% - {\sfdefault}{\mddefault}{\updefault}{\tud@head@fntsz}% + {\sfdefault}{\mddefault}{\updefault}{\tud@head@fontsize}% \DeclareFixedFont{\univBoldHead}{\encodingdefault}% - {\sfdefault}{\bfdefault}{\updefault}{\tud@head@fntsz}% + {\sfdefault}{\bfdefault}{\updefault}{\tud@head@fontsize}% \fi% }% }% }% } % \end{macrocode} -% \end{macro}^^A \tud@head@fntsz +% \end{macro}^^A \tud@head@fontsize % \end{macro}^^A \univBoldHead % \end{macro}^^A \univLightHead % \end{macro}^^A \univBoldXV @@ -1983,17 +2110,17 @@ % \end{macro}^^A \univLightVII % \end{macro}^^A \dinfamily % \end{macro}^^A \dinBold -% \end{macro}^^A \tud@fontsfix@AdaptClass +% \end{macro}^^A \tud@fixfonts@class@adapt % % Nach der Definition der notwendigen Befehle erfolgt nun die Umsetzung für % alle unterstützten Klassen. % \begin{macrocode} -\tud@fontsfix@AdaptClass{tudletter}{} -\tud@fontsfix@AdaptClass{tudfax}{} -\tud@fontsfix@AdaptClass{tudform}{} -\tud@fontsfix@AdaptClass{tudhaus}{} -\tud@fontsfix@AdaptClass{tudposter}{} -\tud@fontsfix@AdaptClass{tudbeamer}{} +\tud@fixfonts@class@adapt{tudletter}{} +\tud@fixfonts@class@adapt{tudfax}{} +\tud@fixfonts@class@adapt{tudform}{} +\tud@fixfonts@class@adapt{tudhaus}{} +\tud@fixfonts@class@adapt{tudposter}{} +\tud@fixfonts@class@adapt{tudbeamer}{} % \end{macrocode} % % Wird das Paket \pkg{fix-tudscrfonts} mit den alten TUD-Klassen \cls{tudbook}, @@ -2013,34 +2140,34 @@ % Die Überschriften sollen abhängig von der Option \opt{cdfont} und nicht immer % zwingend in \DIN gesetzt werden. % \begin{macrocode} -\tud@fontsfix@AdaptClass{tudbook}{% +\tud@fixfonts@class@adapt{tudbook}{% \patchcmd{\@makechapterhead}{\dinBold\Huge\bfseries}{% - \tud@sec@fontface[\bfseries]% + \tud@sec@fontface% \if@color\color{HKS41-100}\fi% \Huge% }{}{\tud@patch@wrn{@makechapterhead}}% \patchcmd{\@makechapterhead}{\MakeUppercase}{% - \tud@makeuppercase% + \tud@sec@format% }{}{\tud@patch@wrn{@makechapterhead}}% \patchcmd{\@makeschapterhead}{\dinBold\Huge\bfseries}{% - \tud@sec@fontface[\bfseries]% + \tud@sec@fontface% \if@color\color{HKS41-100}\fi% \Huge% }{}{\tud@patch@wrn{@makeschapterhead}}% \patchcmd{\@makeschapterhead}{\MakeUppercase}{% - \tud@makeuppercase% + \tud@sec@format% }{}{\tud@patch@wrn{@makeschapterhead}}% \patchcmd{\section}{\dinBold\Large\bfseries\MakeUppercase}{% - \tud@sec@fontface[\bfseries]% + \tud@sec@fontface% \if@color\color{HKS41-100}\fi% \Large% - \tud@makeuppercase% + \tud@sec@format% }{}{\tud@patch@wrn{section}}% \patchcmd{\showtitle}{\dinBold\Huge\bfseries\MakeUppercase}{% - \tud@sec@fontface[\bfseries]% + \tud@sec@fontface% \if@colortitle\color{HKS41-30}\fi% \Huge% - \tud@makeuppercase% + \tud@sec@format% }{}{\tud@patch@wrn{showtitle}}% } % \end{macrocode} @@ -2068,15 +2195,13 @@ % \changes{v2.04}{2015/04/24}{\cls{tudmathposter} wird unterstützt}^^A % \begin{macro}{\ps@tudposter} % \changes{v2.04}{2015/04/24}{\cls{tudmathposter} wird unterstützt}^^A -% \begin{macro}{\if@tudfonts@nodin} -% \changes{v2.04}{2015/04/24}{\cls{tudmathposter} wird unterstützt}^^A % Es werden einige Einstellungen für die Überschriften angepasst. % \begin{macrocode} -\tud@fontsfix@AdaptClass{tudmathposter}{% +\tud@fixfonts@class@adapt{tudmathposter}{% \def\raggedtitle{\tud@raggedright}% \renewcommand*\raggedpart{\tud@raggedright}% \renewcommand*\raggedsection{\tud@raggedright}% - \setkomafont{title}{\tud@sec@fontface[\bfseries]\Huge}% + \setkomafont{title}{\tud@sec@fontface\Huge}% \CheckCommand\maketitle{% \if@matheanull \setlength\@tempskipa{31.194586mm-\topsep}% @@ -2103,14 +2228,10 @@ \apptocmd{\maketitle}{\vspace{-6ex}}{}{\tud@patch@wrn{maketitle}}% \renewcommand*\subtitlefont{% \unskip% - \ifstr{\mddefault}{l}{% - \tud@sec@fontface[\fontseries{m}]% - }{% - \tud@sec@fontface[\fontseries{bx}]% - }% + \tud@sec@fontface% \huge% }% - \renewcommand*\preprocesstitle[1]{\raggedtitle\tud@makeuppercase{#1}}% + \renewcommand*\preprocesstitle[1]{\raggedtitle\tud@sec@format{#1}}% \if@mathevorgabe% \undef\sectionfont% \undef\subsectionfont% @@ -2127,18 +2248,6 @@ \pagestyle{tudposter}% } % \end{macrocode} -% Die Klasse \cls{tudmathposter} lädt für die Einstellungen der Schriften das -% Paket \pkg{tudfonts}. Wenn \pkg{tudscrfonts} zum Einsatz kommen soll, ist das -% unerwünscht, weshalb das Laden hiermit unterbunden wird. -% \begin{macrocode} -\PreventPackageFromLoading[% - \RequirePackage{amsmath}% - \RequirePackage{amsfonts}% - \let\DeclareTudMathSizes\@gobblefour% - \newif\if@tudfonts@nodin% -]{tudfonts} -% \end{macrocode} -% \end{macro}^^A \if@tudfonts@nodin % \end{macro}^^A \ps@tudposter % \end{macro}^^A \subsectionfont % \end{macro}^^A \sectionfont @@ -2147,39 +2256,31 @@ % \end{macro}^^A \maketitle % \end{KOMAfont}^^A title % -% \subsection{Patches für die \TUDScript-Klassen~v1.0} -% -% Für die Verwendung des Paketes \pkg{fix-tudscrfonts} mit \TUDScript in der -% Version~v1.0 sind ebenfalls einige Anpassungen notwendig. Es muss Sorge dafür -% getragen werden, dass einige veraltete Befehle aktualisiert werden. Hierfür -% müssen diese \enquote{unschädlich} gemacht werden, noch bevor das Paket -% selbst in Erscheinung tritt. -% \begin{macrocode} -\BeforePackage{tudscrfonts}{% - \undef\univln% - \undef\univrn% - \undef\univbn% - \undef\univxn% - \undef\univls% - \undef\univrs% - \undef\univbs% - \undef\univxs% - \undef\dinbn% - \undef\textuln% - \undef\texturn% - \undef\textubn% - \undef\textuxn% - \undef\textuls% - \undef\texturs% - \undef\textubs% - \undef\textuxs% - \undef\textdbn% +% \begin{macro}{\tud@x@tudfonts@prevent} +% \changes{v2.06}{2018/02/14}{% +% neu, nur einmaliges Ausführen des Fixes für \pkg{tudfonts}% +% }^^A +% \begin{macro}{\if@tudfonts@nodin} +% \changes{v2.04}{2015/04/24}{\cls{tudmathposter} wird unterstützt}^^A +% Die Klasse \cls{tudmathposter} lädt für die Einstellungen der Schriften das +% Paket \pkg{tudfonts}. Wenn \pkg{tudscrfonts} zum Einsatz kommen soll, ist das +% unerwünscht, weshalb das Laden hiermit unterbunden wird. +% \begin{macrocode} +\newcommand*\tud@x@tudfonts@prevent{% + \RequirePackage{amsmath}% + \RequirePackage{amsfonts}% + \newif\if@tudfonts@nodin% + \let\DeclareTudMathSizes\@gobblefour% + \let\tud@x@tudfonts@prevent\relax% } +\PreventPackageFromLoading[\tud@x@tudfonts@prevent]{tudfonts} % \end{macrocode} +% \end{macro}^^A \if@tudfonts@nodin +% \end{macro}^^A \tud@x@tudfonts@prevent % % \iffalse %</body> -%</package&fontsfix> +%</package&fixfonts> % \fi % % \Finale diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-doc.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-doc.dtx index 7f378cf8a3f..321495edbaf 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-doc.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-doc.dtx @@ -1,10 +1,10 @@ -% \CheckSum{2090} +% \CheckSum{2094} % \iffalse meta-comment % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2017 +% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2019 % % ---------------------------------------------------------------------------- % @@ -48,18 +48,24 @@ % % \iffalse %%% From File: tudscr-doc.dtx -%<*driver> -\ifx\ProvidesFile\@undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-doc.dtx}[% - 2017/05/30 v2.05m TUD-Script\space% +%<*dtx> +% \fi +% +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\ProvidesFile{tudscr-doc.dtx}[2019/06/28 v2.06 TUD-Script\space% (source code documentation based on scrartcl/scrdoc)% ] -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} +% +% \iffalse \documentclass[english,ngerman,xindy]{tudscrdoc} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} \usepackage{babel} -\usepackage{tudscrfonts} % only load this package, if the fonts are installed +\usepackage{tudscrfonts} \KOMAoptions{parskip=half-} \usepackage{bookmark} \usepackage[babel]{microtype} @@ -76,7 +82,7 @@ \tableofcontents \DocInput{\filename} \end{document} -%</driver> +%</dtx> % \fi % % \selectlanguage{ngerman} @@ -89,6 +95,7 @@ % Mit dieser Klasse erfolgt die Quelltextdokumentation des \TUDScript-Bundles. % Sie lädt standarmäßig die Klasse \cls{ltxdoc}, ersetzt allerdings im Stile % von \cls{scrdoc} im Hintergrund \cls{article} durch \cls{scrartcl}. +% % \StopEventually{\PrintIndex\PrintChanges\PrintToDos} % % \iffalse @@ -99,7 +106,7 @@ % temporär gesichert. % \begin{macrocode} \newcommand*\scr@maketitle{}% -\PassOptionsToClass{toc=left}{scrartcl}% +\PassOptionsToClass{toc=left,fontsize=10pt}{scrartcl}% \AfterClass{scrartcl}{\let\scr@maketitle\@maketitle}% % \end{macrocode} % Der folgende Quelltext ist 1:1 aus \cls{scrdoc} kopiert. @@ -107,28 +114,28 @@ \newcommand*\sd@saved@LoadClass{} \let\sd@saved@LoadClass=\LoadClass \renewcommand*\LoadClass[2][]{% - \begingroup + \begingroup% \edef\@tempc{#2}\def\@tempb{article}% - \ifx\@tempc\@tempb - \let\LoadClass\sd@saved@LoadClass + \ifx\@tempc\@tempb% + \let\LoadClass\sd@saved@LoadClass% \def\@tempc{scrartcl}% - \fi + \fi% \edef\@tempc{% \noexpand\endgroup\noexpand\sd@saved@LoadClass[{#1}]{\@tempc}}% - \@tempc + \@tempc% } \newcommand*\sd@saved@PassOptionsToClass{} \let\sd@saved@PassOptionsToClass=\PassOptionsToClass \renewcommand*\PassOptionsToClass[2]{% - \begingroup + \begingroup% \edef\@tempc{#2}\def\@tempb{article}% - \ifx\@tempc\@tempb + \ifx\@tempc\@tempb% \def\@tempc{scrartcl}% - \fi + \fi% \edef\@tempc{% \noexpand\endgroup\noexpand\sd@saved@PassOptionsToClass{#1}{% \@tempc}}% - \@tempc + \@tempc% } \LoadClassWithOptions{ltxdoc}[2015/03/26] \setcounter{IndexColumns}{2} @@ -176,8 +183,8 @@ % % \begin{macro}{\DisableCrossrefsForced} % \changes{v2.05i}{2017/03/02}{neu}^^A -% Für das sichere Deaktivieren von Makroeinträgen im Index nach der Verwendung -% von \cs{EnableCrossrefs}. Sollte in einer Gruppe genutzt werden! +% Deaktivieren von Makroeinträgen im Index nach der Verwendung von +% \cs{EnableCrossrefs}. Sollte in einer Gruppe genutzt werden! % \begin{macrocode} \newcommand*\DisableCrossrefsForced{} \let\DisableCrossrefsForced\DisableCrossrefs @@ -273,7 +280,7 @@ % einige Patches notwendig sind. % \begin{macrocode} \RequirePackage{dox}[2010/12/16] -\@ifpackagelater{dox}{2017/01/27}{% +\@ifpackagelater{dox}{2017/12/07}{% \ClassWarning{\TUD@Class@Name}{% Package `dox' was updated so some patches\MessageBreak% are maybe outdated% @@ -525,9 +532,9 @@ \CheckCommand*\@doxcreatespecialmainindex[3]{% \expandafter\def\csname SpecialMain#1Index\endcsname##1{% \@bsphack% - \special@index{##1\actualchar{\string\ttfamily\space##1} (#2) + \special@index{##1\actualchar{\string\ttfamily\space##1} (#2)% \encapchar main}% - \special@index{#3:\levelchar##1\actualchar{\string\ttfamily\space##1} + \special@index{#3:\levelchar##1\actualchar{\string\ttfamily\space##1}% \encapchar main}% \@esphack% }% @@ -587,7 +594,7 @@ \expandafter\def\csname Special#1Index\endcsname##1{% \@bsphack% \index{##1\actualchar{\protect\ttfamily##1} (#2)\encapchar usage}% - \index{#3:\levelchar##1\actualchar{\protect\ttfamily##1} + \index{#3:\levelchar##1\actualchar{\protect\ttfamily##1}% \encapchar usage}% \@esphack% }% @@ -626,24 +633,24 @@ % vermeiden. % \begin{macrocode} \def\@doxcreatemacrolikeprintname#1#2{% - \@ifundefined{Print#1Name}{% + \ifcsundef{Print#1Name}{% \expandafter\def\csname Print#1Name\endcsname##1{% \MacroFont\string##1\index@type{#2}\strut\ % }% }{}% - \@ifundefined{PrintDescribe#1}{% + \ifcsundef{PrintDescribe#1}{% \expandafter\def\csname PrintDescribe#1\endcsname##1{% \MacroFont\string##1\index@type{#2}\strut\ % }% }{}% } \def\@doxcreateprintname#1#2{% - \@ifundefined{Print#1Name}{% + \ifcsundef{Print#1Name}{% \expandafter\def\csname Print#1Name\endcsname##1{% \MacroFont##1\index@type{#2}\strut\ % }% }{}% - \@ifundefined{PrintDescribe#1}{% + \ifcsundef{PrintDescribe#1}{% \expandafter\def\csname PrintDescribe#1\endcsname##1{% \MacroFont##1\index@type{#2}\strut\ % }% @@ -720,7 +727,7 @@ \tud@reserved[macrolike]{Length}{length} \tud@reserved{Counter}{counter} \tud@reserved{Color}{TUDcolor} -\tud@reserved[macrolike]{Locale}{locale} +\tud@reserved[macrolike]{Localization}{localization} \tud@reserved[macrolike]{Field}{field} \tud@reserved{Font}{KOMAfont} \tud@reserved{Parameter}{parameter} @@ -753,8 +760,8 @@ % \changes{v2.05g}{2016/11/02}{neu}^^A % Bei der Ausführung einer dieser beiden Befehle bei der Definition von einem % Makro oder einer Umgebung werden diese für evtl. nachfolgende Parameter als -% Elterneinträge definiert. Hierfür werden sowohl für den Index als auch die -% Änderungsliste die Einträge zur Sortierung in \cs{parameter@parent@indexname} +% Elterneinträge definiert. Hierfür werden die Einträge zur Sortierung sowohl +% für den Index als auch die Änderungsliste in \cs{parameter@parent@indexname} % und für die Formatierung in \cs{parameter@parent@indexformat} gespeichert. % \begin{macrocode} \apptocmd{\@SaveMacroIndexName}{% @@ -846,7 +853,7 @@ } % \end{macrocode} % \end{macro}^^A \SpecialParameterIndex -% \end{environment} +% \end{environment}^^A DescribeParameterParent % % \subsubsection{Erzeugen von Änderungseinträgen} % @@ -1164,10 +1171,10 @@ % die fraglichen Zeichen ersetzt und in eine weitere Hilfsdatei geschrieben. % \begin{macrocode} \ifdefined\tudxdyflag - \newcommand*\tud@write@replace{} - \newwrite\tud@write@replace - \newcommand*\tud@read@replace{} - \newread\tud@read@replace + \newcommand*\tud@write@replace{}% + \newwrite\tud@write@replace% + \newcommand*\tud@read@replace{}% + \newread\tud@read@replace% % \end{macrocode} % Die Makros für die fraglichen Steuerzeichen werden so angepasst, dass die % Wahrscheinlichkeit für eine Verwendung dieser Kombination in einem Makro- @@ -1175,10 +1182,10 @@ % Hilfsdateien für Index und Änderungsliste für \app{texindy} angepasst. Dabei % werden diese automatisch erzeugt, falls dies möglich ist. % \begin{macrocode} - \def\actualchar{<|1|>} - \def\quotechar{<|2|>} - \def\levelchar{<|3|>} - \begingroup + \def\actualchar{<|1|>}% + \def\quotechar{<|2|>}% + \def\levelchar{<|3|>}% + \begingroup% \endlinechar=\m@ne\relax% \def\tud@reserved#1#2{% \IfFileExists{\jobname.#1}{% @@ -1210,7 +1217,7 @@ \immediate\closeout\tud@write@replace% \ifnum\pdf@shellescape=\@ne\relax% \if@tempswa% - \immediate\write18{% + \ShellEscape{% texindy\space% -o \jobname.#2\space% -M \@currname-#2.xdy\space% @@ -1229,17 +1236,17 @@ }% \tud@reserved{idx}{ind}% \tud@reserved{glo}{gls}% - \endgroup + \endgroup% % \end{macrocode} % Sollte \app{texindy} nicht aktiv sein, werden Index und Änderungsliste mit % \app{makeindex} automatisch erzeugt. % \begin{macrocode} \else \ifnum\pdf@shellescape=\@ne\relax% - \immediate\write18{% + \ShellEscape{% makeindex -s gglo.ist -t \jobname.glg -o \jobname.gls \jobname.glo% }% - \immediate\write18{% + \ShellEscape{% makeindex -s gind.ist -t \jobname.ilg -o \jobname.ind \jobname.idx% }% \fi% @@ -1261,6 +1268,7 @@ % % \begin{macro}{\PrintToDos} % \changes{v2.05}{2016/05/19}{neu}^^A +% \begin{macro}{\@docinclude} % Für ToDo-Notizen wird am Ende eine Liste aller offenen Punkte ausgegeben. % \begin{macrocode} \DeclareNewTOC[% @@ -1274,7 +1282,7 @@ \newcommand*\PrintToDos{\ifdefined\tudfinalflag\else\listoftodos\fi} % \end{macrocode} % Damit die Liste der ToDo-Notizen bei der Erzeugung der gesamten Dokumentation -% des Quelltextes einamlig sowie vollständig und nicht nach jeder Quelldatei +% des Quelltextes einmalig sowie vollständig und nicht nach jeder Quelldatei % einzeln ausgegeben wird, muss der Befehl \cs{@docinclude} angepasst werden. % \begin{macrocode} \patchcmd{\@docinclude}{% @@ -1299,6 +1307,7 @@ \let\PrintToDos\@ltxdoc@PrintToDos }{}{\tud@patch@wrn{@docinclude}} % \end{macrocode} +% \end{macro}^^A \@docinclude % \end{macro}^^A \PrintToDos % \begin{macro}{\ToDo} % \changes{v2.02}{2014/07/25}{neu}^^A @@ -1350,16 +1359,76 @@ % \end{macro}^^A \@ToDo % \end{macro}^^A \ToDo % -% \subsection{Satzspiegel} +% \subsection{Schriften und Satzspiegel} +% +% \begin{macro}{\MacroFont} +% \begin{macro}{\AltMacroFont} +% Wird das Paket \pkg{mweights} geladen, so soll der passende Schriftschnitt +% für die ausgewählten TypeWriter-Schriften genutzt werden. Damit dies mit dem +% Paket \pkg{doc} funktioniert, muss der Befehl \cs{MacroFont} angepasst werden. +% \begin{macrocode} +\AfterPackage{mweights}{% + \CheckCommand*\MacroFont{% + \fontencoding\encodingdefault% + \fontfamily\ttdefault% + \fontseries\mddefault% + \fontshape\updefault% + \small% + }% + \renewcommand*\MacroFont{% + \fontencoding\encodingdefault% + \fontfamily\ttdefault% + \fontseries\mdseries@tt% + \fontshape\updefault% + \small% + }% + \CheckCommand*\AltMacroFont{% + \fontencoding\encodingdefault% + \fontfamily\ttdefault% + \fontseries\mddefault% + \fontshape\sldefault% + \small% + }% + \renewcommand*\AltMacroFont{% + \fontencoding\encodingdefault% + \fontfamily\ttdefault% + \fontseries\mdseries@tt% + \fontshape\sldefault% + \small% + }% +% \end{macrocode} +% Am Ende der Präambel wird dafür gesorgt, dass der Befehl \cs{mdseries@tt} in +% jedem Fall definiert ist. +% \begin{macrocode} + \AtEndPreamble{% + \ifundef{\mdseries@tt}{\edef\mdseries@tt{\mddefault}}{}% + }% +} +% \end{macrocode} +% Wird das Paket \pkg{tudscrfonts} genutzt, erscheinen die TypeWriter-Schriften +% zur Quelltextdokumentation sowohl für Latin~Modern als auch Roboto etwas zu +% schlank. +% \begin{macrocode} +\PassOptionsToPackage{ttfont=lmtt}{tudscrfonts} +\AfterPackage{tudscrfonts}{% + \AtEndPreamble{% + \ifnum\tud@ttfont@num>\z@\relax% + \edef\mdseries@tt{\tud@ttfont@bf}% + \fi% + }% +} +% \end{macrocode} +% \end{macro}^^A \AltMacroFont +% \end{macro}^^A \MacroFont % % Um den zur Verfügung stehenden Platz möglichst effektiv zu nutzen, soll der % Satzspiegel dahingehend aufgeteilt werden, dass für die Darstellung jeder % Quelltextzeile genau 80~Zeichen zur Verfügung stehen. Dies ist allerdings -% abhängig von der geladenen Typewriter-Schrift. Deshalb wird die Berechnung -% des Satzspiegels erst zum Ende der Präambel ausgeführt, um auf etwaige Pakete -% zur Schriftauswahl reagieren zu können. +% abhängig von der geladenen TypeWriter-Schrift. Deshalb wird die Berechnung +% des Satzspiegels erst zum Beginn des Dokumentes ausgeführt, um auf etwaige +% Pakete zur Schriftauswahl reagieren zu können. % -% \begin{macro}{\calculatearea} +% \begin{macro}{\tud@setarea} % \changes{v2.05g}{2016/11/10}{neu}^^A % \begin{length}{\topmargin} % \begin{length}{\headheight} @@ -1373,12 +1442,15 @@ % \begin{length}{\oddsidemargin} % Hiermit wird die Berechnung des Satzspiegels ausgeführt. % \begin{macrocode} -\newcommand*\calculatearea{% +\newcommand*\tud@setarea{% \setlength\topmargin{-1in}% \setlength\headheight{0pt}% \setlength\headsep{3em}% \setlength\footskip{1.5\headsep}% \setlength\textheight{\dimexpr\paperheight-2.5\headsep-\footskip\relax}% + \@colht=\textheight% + \@colroom=\textheight% + \vsize=\textheight% \settowidth\MacroIndent{\rmfamily\scriptsize 0000\ }% \begingroup% \MacroFont\selectfont% @@ -1391,6 +1463,9 @@ \noexpand\setlength\noexpand\textwidth{\the\@tempdima}% }% \@tempa% + \columnwidth=\textwidth% + \hsize=\columnwidth% + \linewidth=\hsize% \setlength\columnsep{1em}% \setlength\marginparsep{1em}% \setlength\marginparwidth{% @@ -1398,7 +1473,7 @@ }% \setlength\oddsidemargin{\dimexpr\marginparwidth+\marginparsep-1in\relax}% } -\AtEndPreamble{\calculatearea} +\AtBeginDocument{\tud@setarea} % \end{macrocode} % \end{length}^^A \oddsidemargin % \end{length}^^A \marginparwidth @@ -1410,76 +1485,7 @@ % \end{length}^^A \headsep % \end{length}^^A \headheight % \end{length}^^A \topmargin -% \end{macro}^^A \calculatearea -% \begin{macro}{\saved@calculatearea} -% \changes{v2.05g}{2016/11/10}{neu}^^A -% \begin{macro}{\tud@font@set} -% \begin{macro}{\@pnumwidth} -% \begin{macro}{\@tocrmarg} -% \begin{macro}{\MacroFont} -% \begin{macro}{\AltMacroFont} -% Etwas komplizierter wird es, wenn das paket \pkg{tudscrfonts} geladen wird. -% Die darin ausgewählten Typewriter-Schriften sind zur Quelltextdokumentation -% zu schlank. Deshalb wird das Paket \pkg{mweights} genutzt, um die Stärke -% etwas zu erhöhen. Damit dies mit dem Paket \pkg{doc} funktioniert, muss der -% Befehl \cs{MacroFont} leicht angepasst werden. -% -% Da das Paket \pkg{tudscrfonts} das Festlegen der Schriften selbst auf das -% Ende der Präambel verzögert, muss sichergestellt werden, dass die Berechnung -% des Satzspiegels erst nach der Schriftauswahl erfolgt. Deshalb wird der -% Inhalt von \cs{calculatearea} in \cs{saved@calculatearea} gescihert und -% anschließend unschädlich gemacht. Danach wird die Satzspiegelberechnung an -% das Makro \cs{tud@font@set} angehangen. -% \begin{macrocode} -\AfterPackage{tudscrfonts}{% - \RequirePackage{mweights}[2013/07/21]% - \CheckCommand*\MacroFont{% - \fontencoding\encodingdefault% - \fontfamily\ttdefault% - \fontseries\mddefault% - \fontshape\updefault% - \small% - }% - \renewcommand*\MacroFont{% - \fontencoding\encodingdefault% - \fontfamily\ttdefault% - \fontseries\mdseries@tt% - \fontshape\updefault% - \small% - }% - \CheckCommand*\AltMacroFont{% - \fontencoding\encodingdefault% - \fontfamily\ttdefault% - \fontseries\mddefault% - \fontshape\sldefault% - \small% - }% - \renewcommand*\AltMacroFont{% - \fontencoding\encodingdefault% - \fontfamily\ttdefault% - \fontseries\mdseries@tt% - \fontshape\sldefault% - \small% - }% - \newcommand*\saved@calculatearea{}% - \let\saved@calculatearea\calculatearea% - \let\calculatearea\relax% - \appto\tud@font@set{% - \ifcase\tud@cdfont@num\relax\else% true/heavy - \def\mdseries@tt{m}% - \renewcommand*\@pnumwidth{1.7em}% - \renewcommand*\@tocrmarg{2.7em}% - \fi% - \saved@calculatearea% - }% -} -% \end{macrocode} -% \end{macro}^^A \AltMacroFont -% \end{macro}^^A \MacroFont -% \end{macro}^^A \@tocrmarg -% \end{macro}^^A \@pnumwidth -% \end{macro}^^A \tud@font@set -% \end{macro}^^A \saved@calculatearea +% \end{macro}^^A \tud@setarea % % \subsection{Zusätzliche Markup-Befehle} % @@ -1542,7 +1548,7 @@ % \begin{macro}{\selectlanguage} % \begin{macro}{\glqq} % \begin{macro}{\grqq} -% Etwas kleinkram für \pkg{babel}\dots +% Etwas Kleinkram für \pkg{babel}\dots % \begin{macrocode} \@ifpackageloaded{babel}{}{% \ClassWarning{\TUD@Class@Name}{Package `babel' not loaded}% @@ -1569,16 +1575,16 @@ % \begin{macrocode} \@ifpackageloaded{tudscrfonts}{}{% \RequirePackage{lmodern}[2009/10/30]% - \providecommand*\ifdin[2]{#2}% - \providecommand*\textuln[1]{\textsf{#1}}% - \providecommand*\texturn[1]{\textuln{#1}}% - \providecommand*\textubn[1]{\textbf{\textuln{#1}}}% - \providecommand*\textuxn[1]{\textubn{#1}}% - \providecommand*\textuls[1]{\textsl{\textuln{#1}}}% - \providecommand*\texturs[1]{\textuls{#1}}% - \providecommand*\textubs[1]{\textbf{\textuls{#1}}}% - \providecommand*\textuxs[1]{\textubs{#1}}% - \providecommand*\textdbn[1]{\textubn{#1}}% + \providecommand*\textcdln[1]{\textsf{#1}}% + \providecommand*\textcdrn[1]{\textcdln{#1}}% + \providecommand*\textcdsn[1]{\textcdln{#1}}% + \providecommand*\textcdbn[1]{\textbf{\textcdln{#1}}}% + \providecommand*\textcdxn[1]{\textcdbn{#1}}% + \providecommand*\textcdli[1]{\textsl{\textcdln{#1}}}% + \providecommand*\textcdri[1]{\textcdli{#1}}% + \providecommand*\textcdsi[1]{\textcdli{#1}}% + \providecommand*\textcdbi[1]{\textbf{\textcdli{#1}}}% + \providecommand*\textcdxi[1]{\textcdbi{#1}}% }% } % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-fields.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-fields.dtx index ea3da35692c..74d37b5b2d3 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-fields.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-fields.dtx @@ -1,10 +1,10 @@ -% \CheckSum{838} +% \CheckSum{875} % \iffalse meta-comment % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2017 +% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2019 % % ---------------------------------------------------------------------------- % @@ -48,17 +48,24 @@ % % \iffalse %%% From File: tudscr-fields.dtx -%<*driver> -\ifx\ProvidesFile\@undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-fields.dtx}[% - 2017/03/29 v2.05l TUD-Script (input fields)% +%<*dtx> +% \fi +% +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\ProvidesFile{tudscr-fields.dtx}[2019/06/28 v2.06 TUD-Script\space% + (input fields)% ] -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} +% +% \iffalse \documentclass[english,ngerman,xindy]{tudscrdoc} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} \usepackage{babel} -\usepackage{tudscrfonts} % only load this package, if the fonts are installed +\usepackage{tudscrfonts} \KOMAoptions{parskip=half-} \usepackage{bookmark} \usepackage[babel]{microtype} @@ -75,7 +82,7 @@ \tableofcontents \DocInput{\filename} \end{document} -%</driver> +%</dtx> % \fi % % \selectlanguage{ngerman} @@ -101,6 +108,36 @@ %<*class&!manual> % \fi % +% \begin{macro}{\getfield} +% \changes{v2.06}{2018/08/20}{neu}^^A +% Hiermit wird der Inhalt des im zweiten (obligatorischen) Argument namentlich +% genannten Feldes in die im ersten (optionalen) Argument gegebene Anweisung +% expandiert. +% \begin{macrocode} +\newcommand*\getfield[2][\@firstofone]{% + \begingroup% + \def\tud@res@b{#1}% + \ifcsdef{@@#2}{% + \letcs\tud@res@a{@@#2}% + }{% + \ifcsdef{@#2}{% + \letcs\tud@res@a{@#2}% + }{% + \let\tud@res@a\@empty% + \ClassWarning{\TUD@Class@Name}{% + The internal field `@#2' does not exist% + }% + }% + }% + \edef\tud@res@a{% + \endgroup% + \expandonce\tud@res@b{\expandonce\tud@res@a}% + }% + \tud@res@a% +} +% \end{macrocode} +% \end{macro}^^A \getfield +% % \subsection{Textfelder für die \TUDScript-Klassen} % % Von den Klassen benötigte Formularfelder werden definiert. Für das Setzen von @@ -108,31 +145,32 @@ % bei einem übergebenen Argument führende und angehängte Leerzeichen beseitigt. % \begin{macro}{\faculty} % \begin{field}{\@faculty} -% \begin{field}{\@@faculty} +% \begin{field}{\@facultyfoot} % \changes{v2.05}{2015/07/06}{neu}^^A % \begin{macro}{\department} % \begin{field}{\@department} -% \begin{field}{\@@department} +% \begin{field}{\@departmentfoot} % \changes{v2.05}{2015/07/06}{neu}^^A % \begin{macro}{\institute} % \begin{field}{\@institute} -% \begin{field}{\@@institute} +% \begin{field}{\@institutefoot} % \changes{v2.05}{2015/07/06}{neu}^^A % \begin{macro}{\chair} % \begin{field}{\@chair} -% \begin{field}{\@@chair} +% \begin{field}{\@chairfoot} % \changes{v2.05}{2015/07/06}{neu}^^A % Für die für die TUD-Kopfzeile kann mit \cs{faculty}\marg{Fakultät} die % Fakultät angegeben werden, welche im Makro \cs{@faculty} gespeichert wird. % Das gilt ebenso für die Angabe von Einrichtung, Institut und Lehrstuhls bzw. % Professur. Dies erfolgt mit den Makros \cs{department}\marg{Fachrichtung}, -% \cs{institute}\marg{Institut} sowie \cs{chair}\marg{Lehrstuhl}, welche in den -% Feldern \cs{@department}, \cs{@institute} und \cs{@chair} gespeichert werden. +% \cs{institute}\marg{Institut} sowie \cs{chair}\marg{Lehrstuhl}, welche in +% \cs{@department}, \cs{@institute} und \cs{@chair} gespeichert werden. % % Das optionale Argument wird zur Kompatibilität zur Klasse \cls{tudscrposter} % vorgehalten. Wird das Paket geladen, kann mit dem optionalen Argument die % Angabe der Struktureinheiten im Fußbereich variiert werden. Dafür werden die -% Felder \cs{@@faculty}, \cs{@@department}, \cs{@@institute} sowie \cs{@@chair} +% Felder \cs{@facultyfoot}, \cs{@departmentfoot}, \cs{@institutefoot} sowie +% \cs{@chairfoot} % definiert. % \begin{macrocode} \newcommand*\@faculty{} @@ -146,26 +184,26 @@ \newcommand*\chair[2][]{\tud@head@text@field{chair}{#2}} %</book|report|article> %<*poster> -\newcommand*\@@faculty{} -\newcommand*\@@department{} -\newcommand*\@@institute{} -\newcommand*\@@chair{} +\newcommand*\@facultyfoot{} +\newcommand*\@departmentfoot{} +\newcommand*\@institutefoot{} +\newcommand*\@chairfoot{} \newcommand*\faculty[2][\@empty]{\tud@foot@line@add{faculty}{#2}{#1}} \newcommand*\department[2][\@empty]{\tud@foot@line@add{department}{#2}{#1}} \newcommand*\institute[2][\@empty]{\tud@foot@line@add{institute}{#2}{#1}} \newcommand*\chair[2][\@empty]{\tud@foot@line@add{chair}{#2}{#1}} %</poster> % \end{macrocode} -% \end{field}^^A \@@chair +% \end{field}^^A \@chairfoot % \end{field}^^A \@chair % \end{macro}^^A \chair -% \end{field}^^A \@@institute +% \end{field}^^A \@institutefoot % \end{field}^^A \@institute % \end{macro}^^A \institute -% \end{field}^^A \@@department +% \end{field}^^A \@departmentfoot % \end{field}^^A \@department % \end{macro}^^A \department -% \end{field}^^A \@@faculty +% \end{field}^^A \@facultyfoot % \end{field}^^A \@faculty % \end{macro}^^A \faculty % \begin{macro}{\extraheadline} @@ -195,7 +233,7 @@ % Mit \cs{tud@foot@line@add} wird der Inhalt eines Feldes in \cs{@\meta{Feld}} % gespeichert. Der Befehl erwartet als erstes obligatorisches Argument den % Feldnamen und als zweites den Inhalt. Entspricht das dritte obligatorische -% Argument \cs{@empty}, so wird in \cs{@@\meta{Feld}} ebenfalls das zweite +% Argument \cs{@empty}, so wird in \cs{@\meta{Feld}foot} ebenfalls das zweite % Argument abgelegt, andernfalls das dritte. % % Damit wird es für Poster möglich, die Befehle \cs{faculty}, \cs{department}, @@ -210,14 +248,14 @@ \newcommand*\tud@foot@line@add[3]{% \tud@head@text@field{#1}{#2}% \ifx\@empty#3\relax% - \global\csletcs{@@#1}{@#1}% + \global\csletcs{@#1foot}{@#1}% \else% - \csgdef{@@#1}{\trim@spaces{#3}}% + \csgdef{@#1foot}{\trim@spaces{#3}}% \fi% } \newcommand*\tud@foot@line@write[1]{% - \protected@edef\@tempa{\csuse{@@#1}}% - \ifx\@tempa\@empty\else\newline\mbox{\csuse{@@#1}}\fi% + \protected@edef\@tempa{\csuse{@#1foot}}% + \ifx\@tempa\@empty\else\newline\mbox{\csuse{@#1foot}}\fi% } %</poster> % \end{macrocode} @@ -311,6 +349,37 @@ % \end{field}^^A \@@author % \end{field}^^A \@author % \end{macro}^^A \author +% \begin{macro}{\emailaddress} +% \changes{v2.02}{2014/05/16}{neu, Umbenennung des Makros \cs{email}}^^A +% \begin{field}{\@emailaddress} +% \changes{v2.02}{2014/05/16}{neu, Umbenennung des Makros \cs{@email}}^^A +% \begin{macro}{\tud@emailaddress@simple} +% \changes{v2.05}{2016/07/09}{neu}^^A +% \begin{macro}{\tud@emailaddress@hyper} +% \changes{v2.05}{2016/07/09}{neu}^^A +% \begin{macrocode} +\newcommand*\@emailaddress{} +\newrobustcmd*\emailaddress{% + \kernel@ifstar{\tud@emailaddress@simple}{\tud@emailaddress@hyper}% +} +\newrobustcmd*\tud@emailaddress@simple[1]{\gdef\@emailaddress{#1}} +\newrobustcmd*\tud@emailaddress@hyper[2][]{\gdef\@emailaddress{#2}} +\AfterPackage*{hyperref}{% + \renewrobustcmd*\tud@emailaddress@hyper[2][hidelinks]{% + \gdef\@emailaddress{% + \begingroup% + \urlstyle{same}% + \hypersetup{#1}% + \href{mailto:#2}{\nolinkurl{#2}}% + \endgroup% + }% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@emailaddress@hyper +% \end{macro}^^A \tud@emailaddress@simple +% \end{field}^^A \@emailaddress +% \end{macro}^^A \emailaddress % \begin{macro}{\course} % \begin{field}{\@course} % Studiengang für den Titel sowie den Kopf der Aufgabenstellung, wird im Makro @@ -333,17 +402,42 @@ % \end{macrocode} % \end{field}^^A \@discipline % \end{macro}^^A \discipline -% \begin{macro}{\publisher} -% Kleine Korrektur für \KOMAScript, der Befehl sollte im Singular stehen. -% \begin{macrocode} -\providecommand*\publisher[1]{\publishers{#1}} -% \end{macrocode} -% \end{macro}^^A \publisher % % \iffalse %<*book|report|article> % \fi % +% \begin{macro}{\matriculationnumber} +% \begin{field}{\@matriculationnumber} +% Die Matrikelnummer für Titelseite und Aufgabenstellung, wird in +% \cs{@matriculationid} gespeichert. +% \begin{macrocode} +\newcommand*\@matriculationnumber{} +\newrobustcmd*\matriculationnumber[1]{% + \gdef\@matriculationnumber{#1}\ignorespaces% +} +% \end{macrocode} +% \end{field}^^A \@matriculationnumber +% \end{macro}^^A \matriculationnumber +% \begin{macro}{\matriculationyear} +% \begin{field}{\@matriculationyear} +% Das Immatrikulationsjahr für den Titel wird in \cs{@matriculationyear} +% gespeichert. +% \begin{macrocode} +\newcommand*\@matriculationyear{} +\newrobustcmd*\matriculationyear[1]{\gdef\@matriculationyear{#1}\ignorespaces} +% \end{macrocode} +% \end{field}^^A \@matriculationyear +% \end{macro}^^A \matriculationyear +% \begin{macro}{\placeofbirth} +% \begin{field}{\@placeofbirth} +% Der Geburtsort für den Titel wird in \cs{@placeofbirth} gespeichert. +% \begin{macrocode} +\newcommand*\@placeofbirth{} +\newrobustcmd*\placeofbirth[1]{\gdef\@placeofbirth{#1}\ignorespaces} +% \end{macrocode} +% \end{field}^^A \@placeofbirth +% \end{macro}^^A \placeofbirth % \begin{macro}{\thesis} % \begin{field}{\@thesis} % \changes{v2.02}{2014/11/06}{\cs{protected@xdef} genutzt}^^A @@ -384,8 +478,11 @@ \let\footnote\@gobble% \tud@lowerstring{\@tempa}{#2}% \ifstr{#1}{thesis}{\protected@xdef\@@thesis{#2}}{}% - \global\let\@tempa\@tempa% - \endgroup% + \protected@edef\@tempa{% + \endgroup% + \def\noexpand\@tempa{\@tempa}% + }% + \@tempa% \ifstr{\@tempa}{diss}{\tud@thesis@@do{#1}{\dissertationname}}{% \ifstr{\@tempa}{doctoral}{\tud@thesis@@do{#1}{\dissertationname}}{% \ifstr{\@tempa}{phd}{\tud@thesis@@do{#1}{\dissertationname}}{% @@ -411,9 +508,9 @@ Field `thesis' is overwritten by `subject'% }% \fi% - \TUD@std@ifkey@lock{subjectthesis}{@tud@subjectthesis}{true}% + \TUD@key@preset{subjectthesis}{true}% }{% - \TUD@std@ifkey@lock{subjectthesis}{@tud@subjectthesis}{false}% + \TUD@key@preset{subjectthesis}{false}% }% \ifx\tud@thanks\relax% \gdef\@thesis{#2}% @@ -435,22 +532,23 @@ % \changes{v2.02}{2014/05/16}{neu, von \cs{degree} umbenannt}^^A % \begin{field}{\@graduation} % \changes{v2.02}{2014/05/16}{neu, von \cs{@degree} umbenannt}^^A -% \begin{field}{\@@graduation} +% \begin{field}{\@graduationabbreviation} % \changes{v2.02}{2014/05/16}{neu, \cs{@degreeabbr} umbenannt}^^A % Der angestrebte Abschluss bzw. der zu erwerbende akademische Grad, welcher % auf der Titelseite ausgegeben werden soll, wird im Makro \cs{@graduation} % gespeichert. Zusätzlich kann als optionales Argument die Kurzform des -% akademischen Grades angegeben werden, wird in \cs{@@graduation} +% akademischen Grades angegeben werden, wird in \cs{@graduationabbr} % gespeichert. % \begin{macrocode} \newcommand*\@graduation{} -\newcommand*\@@graduation{} +\newcommand*\@graduationabbreviation{} \newcommand*\graduation[2][]{% - \ifxblank{#1}{\gdef\@@graduation{}}{\gdef\@@graduation{(#1)}}% + \gdef\@graduationabbreviation{}% + \ifxblank{#1}{}{\gdef\@graduationabbreviation{(#1)}}% \gdef\@graduation{#2}% } % \end{macrocode} -% \end{field}^^A \@@graduation +% \end{field}^^A \@graduationabbreviation % \end{field}^^A \@graduation % \end{macro}^^A \graduation % @@ -460,7 +558,7 @@ % % \begin{macro}{\professor} % \begin{field}{\@professor} -% \begin{field}{\@@professor} +% \begin{field}{\@professorfoot} % \changes{v2.05}{2015/07/06}{neu}^^A % Angabe des verantwortlichen Hochschullehrers für Titel und Aufgabenstellung, % wird im Makro \cs{@professor} gespeichert. @@ -470,11 +568,11 @@ \newcommand*\professor[1]{\gdef\@professor{#1}} %</book|report|article> %<*poster> -\newcommand*\@@professor{} -\newcommand*\professor[1]{\gdef\@@professor{#1}} +\newcommand*\@professorfoot{} +\newcommand*\professor[1]{\gdef\@professorfoot{#1}} %</poster> % \end{macrocode} -% \end{field}^^A \@@professor +% \end{field}^^A \@professorfoot % \end{field}^^A \@professor % \end{macro}^^A \professor % \begin{macro}{\supervisor} @@ -542,37 +640,6 @@ % \end{macrocode} % \end{field}^^A \@advisor % \end{macro}^^A \advisor -% \begin{macro}{\matriculationnumber} -% \begin{field}{\@matriculationnumber} -% Angabe der Matrikelnummer für Titelseite und Aufgabenstellung, wird in dem -% Makro \cs{@matriculationid} gespeichert. -% \begin{macrocode} -\newcommand*\@matriculationnumber{} -\newrobustcmd*\matriculationnumber[1]{% - \gdef\@matriculationnumber{#1}\ignorespaces% -} -% \end{macrocode} -% \end{field}^^A \@matriculationnumber -% \end{macro}^^A \matriculationnumber -% \begin{macro}{\matriculationyear} -% \begin{field}{\@matriculationyear} -% Das Immatrikulationsjahr für den Titel wird in \cs{@matriculationyear} -% gespeichert. -% \begin{macrocode} -\newcommand*\@matriculationyear{} -\newrobustcmd*\matriculationyear[1]{\gdef\@matriculationyear{#1}\ignorespaces} -% \end{macrocode} -% \end{field}^^A \@matriculationyear -% \end{macro}^^A \matriculationyear -% \begin{macro}{\placeofbirth} -% \begin{field}{\@placeofbirth} -% Der Geburtsort für den Titel wird in \cs{@placeofbirth} gespeichert. -% \begin{macrocode} -\newcommand*\@placeofbirth{} -\newrobustcmd*\placeofbirth[1]{\gdef\@placeofbirth{#1}\ignorespaces} -% \end{macrocode} -% \end{field}^^A \@placeofbirth -% \end{macro}^^A \placeofbirth % \begin{length}{\tud@len@signatureskip} % \changes{v2.04}{2015/05/06}{neu}^^A % Für alle Formatvorlagen, welche eine Unterschriftenzeile bereitstellen, wird @@ -616,6 +683,16 @@ % % \iffalse %</book|report|article> +% \fi +% +% \begin{macro}{\publisher} +% Kleine Korrektur für \KOMAScript, der Befehl sollte im Singular stehen. +% \begin{macrocode} +\providecommand*\publisher[1]{\publishers{#1}} +% \end{macrocode} +% \end{macro}^^A \publisher +% +% \iffalse %<*poster> % \fi % @@ -660,24 +737,31 @@ % % \begin{macro}{\printdate} % Im Folgenden werden mehrere Datumsfelder definiert. Damit diese optional -% durch das \pkg{isodate}-Paket formatiert werden können, wird der zu -% diesem Paket gehörende Befehl \cs{printdate} in die Definition der -% eigentlichen Datumsfelder integriert. Sollte das Paket nicht geladen werden, -% so muss dieser Befehl trotzdem definiert sein. -% \ToDo{Unterstützung für \pkg{datetime2}}[v2.06] +% durch eines der Pakete \pkg{isodate} oder \pkg{datetime2} formatiert werden +% können, wird der zu \pkg{isodate} gehörende Befehl \cs{printdate} in die +% Definition der eigentlichen Datumsfelder integriert. Sollte das Paket nicht +% geladen sein, so verwendet der Befehl die Schnittstelle von \pkg{datetime2}, +% welches nur ein spezielles Datenformat als Eingabe akzeptiert. Wird keines +% der beiden Pakete verwendet, wird das Argument direkt durchgereicht. % \begin{macrocode} -\TUD@UnwindPackage{isodate}{\providecommand*\printdate[1]{#1}} +\TUD@UnwindPackage{isodate}{% + \@ifpackageloaded{datetime2}{% + \providecommand*\printdate[1]{\DTMDate{#1}}% + }{% + \providecommand*\printdate[1]{#1}% + }% +} % \end{macrocode} % \end{macro}^^A \printdate -% \begin{macro}{\tud@x@isodate@printdate} -% Damit die Datumsfelder definiert werden können und das \pkg{isodate}-Paket +% \begin{macro}{\tud@printdate} +% Damit die Datumsfelder definiert werden können und eines der Datumspakete % unterstützen, muss beim Festlegen der Datumsfelder einiges beachtet werden. % So müssen beispielsweise leere Argumente und Sonderfälle separat betrachtet % werden. Damit dies einheitlich für alle Felder geschehen kann, wird dieser % Befehl genutzt. Dabei wird als erstes Argument der Befehlsname für das % Datumsfeld übergeben, als zweites Argument der gewünschte Inhalt. % \begin{macrocode} -\newcommand*\tud@x@isodate@printdate[2]{% +\newcommand*\tud@printdate[2]{% \ifx\today#2\relax% \gdef#1{#2}% \else% @@ -687,12 +771,12 @@ \fi% } % \end{macrocode} -% \end{macro}^^A \tud@x@isodate@printdate +% \end{macro}^^A \tud@printdate % \begin{macro}{\tud@date@check} % \changes{v2.04}{2015/05/06}{neu}^^A -% Das Makro wird vor der Nutzung des Datumfeldes genutzt um zu prüfen, ob ein -% selbiges explizit angegeben wurde. Falls dies nicht der Fall ist, wird eine -% Warnung ausgegeben. +% Das Makro prüft vor der Nutzung des Datumfeldes \cs{@date}, ob selbiges +% explizit angegeben wurde. Falls dies nicht der Fall ist, wird eine Warnung +% ausgegeben. % \begin{macrocode} \newcommand*\tud@date@check{% \ifdefvoid{\@duedate}{% @@ -730,16 +814,17 @@ % \changes{v2.05}{2016/05/27}{neu}^^A % \begin{macro}{\tud@date@set} % \changes{v2.05}{2016/05/27}{neu}^^A +% \changes{v2.06}{2018/08/08}{optionales Argument nutzt \cs{tud@toks@}}^^A % \begin{field}{\@date} -% \begin{field}{\tud@date@pre} +% \begin{field}{\@beforedate} % \changes{v2.05}{2016/05/27}{neu}^^A -% \begin{field}{\tud@date@app} +% \begin{field}{\@afterdate} % \changes{v2.05}{2016/05/27}{neu}^^A % Das Abgabedatum der Arbeit für den Titel, wird im originalen Makro \cs{@date} % gespeichert. Zusätzlich kann über die Parameter im optionalen Argument eine % Ergänzung davorgesetzt angehängt werden~-- beispielsweise als Erklärung für % eine verspätete Abgabe aufgrund einer Verlängerung der Bearbeitungszeit~-- -% welche in den Feldern \cs{tud@date@pre} und \cs{tud@date@app} gespeichert +% welche in den Feldern \cs{@beforedate} und \cs{@afterdate} gespeichert % wird. Hierfür wird der originale Befehl für das Datum \cs{date} erweitert, % wobei die Sternversion \cs{date*} den angegebenen Ort als Präfix verwendet. % \begin{macrocode} @@ -750,25 +835,26 @@ }{\tud@date@set}% } \newcommand*\tud@date@set[2][]{% - \TUD@parameter@set{date}{#1}% - \tud@x@isodate@printdate{\@date}{#2}% + \tud@toks@{#1}% + \TUD@parameter@set{date}{\the\tud@toks@}% + \tud@printdate{\@date}{#2}% \global\let\tud@date@check\relax% } -\newcommand*\tud@date@pre{} -\newcommand*\tud@date@app{} +\newcommand*\@beforedate{} +\newcommand*\@afterdate{} \TUD@parameter@family{date}{% - \TUD@parameter@def{before}{\def\tud@date@pre{#1}}% + \TUD@parameter@def{before}{\def\@beforedate{#1}}% \TUD@parameter@let{pre}{before}% \TUD@parameter@let{prefix}{before}% - \TUD@parameter@def{after}{\def\tud@date@app{#1}}% + \TUD@parameter@def{after}{\def\@afterdate{#1}}% \TUD@parameter@let{app}{after}% \TUD@parameter@let{suffix}{after}% - \TUD@parameter@def{place}{\def\@place{#1}\def\tud@date@pre{#1,}}% + \TUD@parameter@def{place}{\def\@place{#1}\def\@beforedate{#1,}}% \TUD@parameter@handler@value{after}% } % \end{macrocode} -% \end{field}^^A \tud@date@app -% \end{field}^^A \tud@date@pre +% \end{field}^^A \@afterdate +% \end{field}^^A \@beforedate % \end{field}^^A \@date % \end{macro}^^A \tud@date@set % \end{parameter}^^A place @@ -786,12 +872,12 @@ % \begin{macrocode} \newcommand*\tud@date@print{% \ifx\@date\@empty\else% - \ifx\tud@date@pre\@empty\else% - \expandafter\trim@spaces@noexp\expandafter{\tud@date@pre}\nobreakspace% + \ifx\@beforedate\@empty\else% + \expandafter\trim@spaces@noexp\expandafter{\@beforedate}\nobreakspace% \fi% \@date% - \ifx\tud@date@app\@empty\else% - \nobreakspace\expandafter\trim@spaces@noexp\expandafter{\tud@date@app}% + \ifx\@afterdate\@empty\else% + \nobreakspace\expandafter\trim@spaces@noexp\expandafter{\@afterdate}% \fi% \fi% } @@ -808,7 +894,7 @@ % gespeichert. % \begin{macrocode} \newcommand*\@defensedate{} -\newcommand*\defensedate[1]{\tud@x@isodate@printdate{\@defensedate}{#1}} +\newcommand*\defensedate[1]{\tud@printdate{\@defensedate}{#1}} % \end{macrocode} % \end{field}^^A \@defensedate % \end{macro}^^A \defensedate @@ -819,7 +905,7 @@ % \begin{macrocode} \newcommand*\@dateofbirth{} \newrobustcmd*\dateofbirth[1]{% - \tud@x@isodate@printdate{\@dateofbirth}{#1}\ignorespaces% + \tud@printdate{\@dateofbirth}{#1}\ignorespaces% } % \end{macrocode} % \end{field}^^A \@dateofbirth @@ -868,7 +954,7 @@ % \cs{@issuedate} gespeichert. % \begin{macrocode} \newcommand*\@issuedate{} -\newcommand*\issuedate[1]{\tud@x@isodate@printdate{\@issuedate}{#1}} +\newcommand*\issuedate[1]{\tud@printdate{\@issuedate}{#1}} % \end{macrocode} % \end{field}^^A \@issuedate % \end{macro}^^A \issuedate @@ -878,7 +964,7 @@ % \cs{@duedate} gespeichert. % \begin{macrocode} \newcommand*\@duedate{} -\newcommand*\duedate[1]{\tud@x@isodate@printdate{\@duedate}{#1}} +\newcommand*\duedate[1]{\tud@printdate{\@duedate}{#1}} % \end{macrocode} % \end{field}^^A \@duedate % \end{macro}^^A \duedate @@ -910,14 +996,6 @@ % \changes{v2.05}{2016/04/05}{neu}^^A % \begin{field}{\@telefax} % \changes{v2.05}{2016/04/05}{neu}^^A -% \begin{macro}{\emailaddress} -% \changes{v2.02}{2014/05/16}{neu, Umbenennung des Makros \cs{email}}^^A -% \begin{field}{\@emailaddress} -% \changes{v2.02}{2014/05/16}{neu, Umbenennung des Makros \cs{@email}}^^A -% \begin{macro}{\tud@emailaddress@simple} -% \changes{v2.05}{2016/07/09}{neu}^^A -% \begin{macro}{\tud@emailaddress@hyper} -% \changes{v2.05}{2016/07/09}{neu}^^A % Für einen Aushang bzw. ein Poster kann eine oder mehrere Kontaktpersonen % angegeben werden. Zusätzlich lassen sich für jede einzelne Person ein Raum, % eine Telefonnummer und die E"~Mail-Adresse hinzugefügen. @@ -933,28 +1011,7 @@ \newrobustcmd*\telephone[1]{\gdef\@telephone{#1}} \newcommand*\@telefax{} \newrobustcmd*\telefax[1]{\gdef\@telefax{#1}} -\newcommand*\@emailaddress{} -\newrobustcmd*\emailaddress{% - \kernel@ifstar{\tud@emailaddress@simple}{\tud@emailaddress@hyper}% -} -\newrobustcmd*\tud@emailaddress@simple[1]{\gdef\@emailaddress{#1}} -\newrobustcmd*\tud@emailaddress@hyper[2][]{\gdef\@emailaddress{#2}} -\AfterPackage*{hyperref}{% - \renewrobustcmd*\tud@emailaddress@hyper[2][hidelinks]{% - \gdef\@emailaddress{% - \begingroup% - \urlstyle{same}% - \hypersetup{#1}% - \href{mailto:#2}{\nolinkurl{#2}}% - \endgroup% - }% - }% -} % \end{macrocode} -% \end{macro}^^A \tud@emailaddress@hyper -% \end{macro}^^A \tud@emailaddress@simple -% \end{field}^^A \@emailaddress -% \end{macro}^^A \emailaddress % \end{field}^^A \@telefax % \end{macro}^^A \telefax % \end{field}^^A \@telephone @@ -1017,8 +1074,8 @@ }% \begingroup% \let\and\relax% - \def\newline{}% - \def\\{}% + \let\newline\@empty% + \let\\\@empty% % \end{macrocode} % Das Feld wird mit \cs{and} terminiert, um der Definition von % \cs{tud@multiple@@split} in jedem Fall zu entsprechen. @@ -1063,7 +1120,7 @@ % zu erzeugen. % \begin{macrocode} \newcommand*\tud@multiple@fields@store[2]{% - \def\@tempa##1{\ifcsdef{@##1}{\tud@cmd@store{@##1}}{}}% + \def\@tempa##1{\ifcsdef{@##1}{\tud@cs@store{@##1}}{}}% \letcs\@tempb{tud@split#1@list}% \let\and\relax% \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}% @@ -1080,7 +1137,7 @@ \newcommand*\tud@multiple@fields@restore[1]{% \def\@tempa##1{% \ifcsdef{@##1}{% - \tud@cmd@restore{@##1}% + \tud@cs@restore{@##1}% \global\csletcs{@##1}{@##1}% }{}% }% @@ -1094,7 +1151,7 @@ % \begin{macro}{\tud@multiple@fields@preset} % \changes{v2.04}{2015/05/12}{neu}^^A % Mit diesem Makro wird es möglich, die Inhalte bestimmter Felder aus einer -% definerten Liste \cs{tud@split\meta{Feld}@list} auf Standardwerte zu setzen. +% definierten Liste \cs{tud@split\meta{Feld}@list} auf Standardwerte zu setzen. % \begin{macrocode} \newcommand*\tud@multiple@fields@preset[3]{% \def\@tempa##1{% @@ -1154,7 +1211,7 @@ \newcommand*\tud@split@author@do[2]{} %<*book|report|article> \newcommand*\tud@split@author@list{% - authormore,course,discipline,% + authormore,course,discipline,emailaddress,% matriculationyear,enrolmentyear,% matriculationnumber,studentid,matriculationid,% placeofbirth,birthplace,dateofbirth,birthday,% @@ -1165,13 +1222,13 @@ % \begin{macrocode} %<*poster> \newcommand*\tud@split@author@list{% - authormore,course,discipline,office,telephone,telefax,emailaddress% + authormore,course,discipline,emailaddress,office,telephone,telefax% } %</poster> %</class> %<*class&poster|package&supervisor> \newcommand*\tud@split@contactperson@do[2]{} -\newcommand*\tud@split@contactperson@list{office,telephone,telefax,emailaddress} +\newcommand*\tud@split@contactperson@list{emailaddress,office,telephone,telefax} %</class&poster|package&supervisor> % \end{macrocode} % Damit ist der Teil für das Paket \pkg{tudscrsupervisor} abgeschlossen, wo diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx index 058676bae8c..6f3aec074ce 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx @@ -1,10 +1,10 @@ -% \CheckSum{1396} +% \CheckSum{3070} % \iffalse meta-comment % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2017 +% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2019 % % ---------------------------------------------------------------------------- % @@ -48,25 +48,35 @@ % % \iffalse %%% From File: tudscr-fonts.dtx -%<*driver> -\ifx\ProvidesFile\@undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-fonts.dtx}[% - 2017/05/30 v2.05m TUD-Script\space% -%</driver> +%<*dtx> +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +% \fi +% +\ProvidesFile{tudscr-fonts.dtx}[2019/06/28 v2.06 TUD-Script\space% +% +% \iffalse +%</dtx> %<package&identify>\ProvidesPackage{tudscrfonts}[% -%<*driver|package&identify> +%<*package&identify> %!TUD@Version -%<package> package +%</package&identify> +%<package&identify> package +%<*dtx|package&identify> +% \fi (corporate design fonts)% ] -%</driver|package&identify> -%<*driver> -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} +% \iffalse +%</dtx|package&identify> +%<*dtx> \documentclass[english,ngerman,xindy]{tudscrdoc} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} \usepackage{babel} -\usepackage{tudscrfonts} % only load this package, if the fonts are installed +\usepackage{tudscrfonts} \KOMAoptions{parskip=half-} \usepackage{bookmark} \usepackage[babel]{microtype} @@ -83,7 +93,7 @@ \tableofcontents \DocInput{\filename} \end{document} -%</driver> +%</dtx> % \fi % % \selectlanguage{ngerman} @@ -97,15 +107,12 @@ % \changes{v2.04c}{2015/11/29}{Bugfix für \pkg{fontspec} bei fehlenden % Schriften}^^A % -% \section{Die Hausschriften der \TnUD} +% \section{Die Hausschrift der \TnUD} % -% Für das \TUDCD werden die Schriften \Univers und \DIN benötigt. Zur -% fehlerfreien Verwendung dieser Klassen sollten diese bitte installiert -% werden. Hier werden die \LaTeX-Befehle zur Verwendung der Schriften im -% Dokument definiert. Sollen nur kurze Passagen in einer anderen Schrift als -% der restliche Text gesetzt werden, so sollten anstatt der einfachen Schalter -% wie beispielsweise \cs{univ\dots} besser die Befehle -% \cs{text\dots}\marg{Auszeichnungstext} verwendet werden. +% Für das \TUDCD wird die Schrift \OpenSans benötigt. Die Type1-Variante wird +% mit diesen Klassen mitgeliefert, die OTF-Variante muss entweder durch das +% Paket \pkg{opensans} oder über das System bereitgestellt werden. Hier werden +% 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 @@ -161,45 +168,79 @@ }{}% }% \if@tempswa% - \@ifpackageloaded{fix-tudscrfonts}{}{% - \PackageWarning{tudscrfonts}{% - As you loaded class `\@tempb', you should\MessageBreak% - load `fix-tudscrfonts' before the class\MessageBreak% - with `\string\RequirePackage'% - }% + \@ifpackageloaded{fix-tudscrfonts}{}{% + \PackageWarning{tudscrfonts}{% + As you loaded class `\@tempb', you should\MessageBreak% + load `fix-tudscrfonts' before the class\MessageBreak% + with `\string\RequirePackage'% }% + }% \fi% % \end{macrocode} % % \iffalse %</package&identify> -%<*option> +%<*body> % \fi % +% \begin{macro}{\tud@cdfont@wrn} +% \changes{v2.06}{2018/06/17}{neu}^^A +% \begin{macro}{\tud@cdmath@wrn} +% \changes{v2.06}{2019/06/17}{neu}^^A +% Diese beiden Makros dienen als zentrale Hooks, die während der Initialiserung +% der Schrfiten des \CDs befüllt werden, falls beispielsweise Warnungen wegen +% fehlender Schriftdateien oder inkompatibler Pakete ausgegeben werden müssen. +% Diese werden gegebebfalls nur einmalig bei der Aktivierung der Schriften des +% \CDs ausgegeben. +% \begin{macrocode} +\newcommand*\tud@cdfont@wrn{\global\let\tud@cdfont@wrn\relax} +\newcommand*\tud@cdmath@wrn{\global\let\tud@cdmath@wrn\relax} +% \end{macrocode} +% \end{macro}^^A \tud@cdmath@wrn +% \end{macro}^^A \tud@cdfont@wrn +% % \subsection{Auswahl des Fontformates} % % Das \TUDScript-Bundle unterstützt sowohl die Schriftauswahl im klassischen % New Font Selection Scheme (NFSS) als auch das Einbinden der Schriften im -% OpenType"=Format aus dem System über das Paket \pkg{fontspec} für Lua\LaTeX -% bzw. Xe\LaTeX, wobei die letztere Variante nicht ideal ist. Zum einen +% OpenType-Format aus dem System über das Paket \pkg{fontspec} für Lua\LaTeX{} +% bzw. Xe\LaTeX{}, wobei die letztere Variante nicht ideal ist. Zum einen % funktioniert das Kerning nicht sonderlich gut und zum anderen sind keine -% Schriften für den mathematischen Satz vorhanden. Da die skriptbasierte -% Installation der PostScript"=Schriften gut funktioniert, ist diese Variante -% zu bevorzugen. Trotzdem werden beide Varianten, die Schriftfamilie des \CDs -% für den Fließtext und die Überschriften zu verwenden, angeboten. +% Schriften für den mathematischen Satz vorhanden. % % \begin{macro}{\if@tud@x@fontspec@enabled} % \changes{v2.02}{2014/08/29}{neu}^^A % Wird das Paket \pkg{fontspec} durch den Nutzer geladen, wird der passende % Schlüssel gesetzt und die Schrifteinstellungen erfolgen mit den dazugehörigen % Befehlen. Dies wurde in früheren Versionen mit der Option \opt{fontspec} -% realisiert, die auch weiterhin bereitgehalten wird. Deshalb muss der Schalter -% bereits vor der Abarbeitung der Optionen definiert werden. +% realisiert, die auch weiterhin bereitgehalten wird. Nach dem Laden des Paketes +% 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. % \begin{macrocode} \newif\if@tud@x@fontspec@enabled +\PassOptionsToPackage{no-math}{fontspec} \AfterPackage*{fontspec}{% \@ifpackagelater{fontspec}{2017/01/24}{% \@tud@x@fontspec@enabledtrue% + \@tud@res@swafalse% + \@ifpackagewith{fontspec}{no-math}{}{\@tud@res@swatrue}% + \@ifpackagewith{fontspec}{math}{\@tud@res@swatrue}{}% + \if@tud@res@swa% + \appto\tud@cdmath@wrn{% +%<*class> + \ClassWarningNoLine{\TUD@Class@Name}% +%</class> +%<*package> + \PackageWarningNoLine{tudscrfonts}% +%</package> + {% + It's recommended to load package `fontspec'\MessageBreak% + with option `no-math', if you want to use the\MessageBreak% + corporate design fonts in math mode% + }% + }% + \fi% }{% \@tud@x@fontspec@enabledfalse% %<*class> @@ -209,86 +250,180 @@ \PackageWarningNoLine{tudscrfonts}% %</package> {% - Version `2017/01/24' of package `fontspec' is needed,\MessageBreak - but only version\MessageBreak - `\csname ver@fontspec.sty\endcsname'\MessageBreak + Version `2017/01/24' of package `fontspec' is needed,\MessageBreak% + but only version\MessageBreak% + `\csname ver@fontspec.sty\endcsname'\MessageBreak% is available, so a fallback layout is used% }% }% } % \end{macrocode} +% 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. +% \begin{macrocode} +\AfterPackage*{unicode-math}{% + \appto\tud@cdmath@wrn{% +%<*class> + \ClassWarningNoLine{\TUD@Class@Name}% +%</class> +%<*package> + \PackageWarningNoLine{tudscrfonts}% +%</package> + {% + The usage of package `unicode-math' will\MessageBreak% + most likely cause erroneous outputs in math mode\MessageBreak% + with corporate design fonts% + }% + }% +} +% \end{macrocode} % \end{macro}^^A \if@tud@x@fontspec@enabled -% -% \iffalse -%</option> -%<*body> -% \fi +% \begin{macro}{\if@tud@x@mweights@enabled} +% \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. +% \begin{macrocode} +\TUD@RecommendPackage{mweights}[2017/03/30]% +\newif\if@tud@x@mweights@enabled +\AfterPackage*{mweights}{\@tud@x@mweights@enabledtrue} +% \end{macrocode} +% \end{macro}^^A \if@tud@x@mweights@enabled % % \subsection{Prüfen der Schriftverfügbarkeit} % % Nachfolgend werden Makros definiert, mit denen geprüft werden kann, ob die -% notwendigen Schriften im passenden Fontformat auch installiert sind. +% notwendigen Schriften im passenden Fontformat auch installiert sind. Seit +% 2018 wird \OpenSans als die Hausschrift verwendet. Um weiterhin noch alte +% Dokumente mit den Schriften \Univers und \DIN nutzen zu können, werden die +% entsprechenden Befehle ebenfalls vorgehalten. % -% \begin{macro}{\tud@univers} -% \begin{macro}{\if@tud@univers} -% \begin{macro}{\if@tud@universmath} -% \changes{v2.05}{2015/12/14}{neu}^^A -% \begin{macro}{\tud@dinbold} -% \begin{macro}{\if@tud@dinbold} -% \changes{v2.02}{2014/08/29}{neu}^^A -% \begin{macro}{\if@tud@dinboldmath} -% \changes{v2.05}{2015/12/14}{neu}^^A -% Zu Beginn werden Schalter und Hilfsmakros definiert. -% \begin{macrocode} -\newcommand*\tud@univers{lun} -\newif\if@tud@univers -\newif\if@tud@universmath -\newcommand*\tud@dinbold{0m6} -\newif\if@tud@dinbold -\newif\if@tud@dinboldmath -% \end{macrocode} -% \end{macro}^^A if@tud@dinboldmath -% \end{macro}^^A if@tud@dinbold -% \end{macro}^^A if@tud@universmath -% \end{macro}^^A if@tud@univers -% \end{macro}^^A \tud@dinbold -% \end{macro}^^A \tud@univers -% \begin{macro}{\tud@font@check} +% \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} +% \changes{v2.06}{2018/07/12}{neu}^^A +% \begin{macro}{\tud@cdfont@fam@osf} +% \changes{v2.06}{2018/07/12}{neu}^^A +% \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} +\if@tud@cdoldfont@active + \renewcommand*\tud@cdfont@fam{lun} + \renewcommand*\tud@cdfont@fam@lf{lun} + \renewcommand*\tud@cdfont@fam@osf{lun} + \newcommand*\tud@cdfont@db{0m6} +\fi +% \end{macrocode} +% \end{macro}^^A \tud@cdfont@db +% \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} +% \changes{v2.06}{2018/07/12}{neu}^^A +% \begin{macro}{\tud@ttfont@lm} +% \changes{v2.06}{2018/07/12}{neu}^^A +% \dots als auch für die TypeWriter-Schriften definiert. +% \begin{macrocode} +\newcommand*\tud@ttfont@fam{tudtt} +\newcommand*\tud@ttfont@rb{tudtt} +\newcommand*\tud@ttfont@lm{lmtt} +% \end{macrocode} +% \end{macro}^^A \tud@ttfont@lm +% \end{macro}^^A \tud@ttfont@rb +% \end{macro}^^A \tud@ttfont@fam +% \begin{macro}{\if@tud@ttfont@rb@exist} +% \changes{v2.06}{2018/07/12}{neu}^^A +% 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 +\IfFileExists{roboto-mono.sty}{% + \@tud@ttfont@rb@existtrue% +}{% + \TUD@key@preset{ttfont}{lmodern}% +} +% \end{macrocode} +% \end{macro}^^A \if@tud@ttfont@rb@exist +% \begin{macro}{\tud@cdfont@check} % \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@font@missing@wrn} -% \changes{v2.05l}{2017/03/29}{neu}^^A -% \begin{macro}{\tud@font@math@missing@wrn} +% \begin{macro}{\tud@cdfont@@check} +% \changes{v2.06}{2018/07/12}{Auswahl der Schriftfamilie angepasst}^^A +% \begin{macro}{\tud@cdfont@@@check} +% \changes{v2.06}{2019/06/18}{neu}^^A +% \begin{macro}{\tud@cdfont@missing} % \changes{v2.05l}{2017/03/29}{neu}^^A -% \begin{macro}{\tud@x@fontspec@noerror} -% \changes{v2.05}{2015/12/14}{neu}^^A -% \changes{v2.05l}{2017/03/28}{unnötig seit \pkg{fontspec} `2017/01/24'}^^A -% Mit \cs{tud@font@check} wird überprüft, ob die benötigten Schriften \Univers -% und \DIN im PostScript- bzw. OTF-Format installiert sind und die passenden -% Schalter gesetzt. Beim Nichtvorhandensein der Schriften wird eine Warnung -% ausgegeben und eine Rückfallebene definiert. Dies geschieht für OTF-Schriften -% mit dem Befehl \cs{IfFontExistsTF}. Für die Mathematikschriften ist es -% unerheblich, ob das Paket \pkg{fontspec} genutzt wird, da hier immer die -% PostScript-Schriften zum Einsatz kommen. -% \begin{macrocode} -\newcommand*\tud@font@check{% - \edef\@tempa##1##2{\lowercase{\noexpand\IfFileExists{##1##2.fd}}}% - \def\@tempb##1{% - \if@tud@cdmath% - \tud@font@math@missing@wrn{##1}% - \fi% - }% +% 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 +% beide Formate vom Paket \pkg{opensans} geliefert, die veralteten Schriften +% \Univers und \DIN müssen aus lizenrechtlichen Gründen installiert werden. Bei +% Nichtvorhandensein der Schriften wird eine Warnung ausgegeben sowie eine +% Rückfallebene definiert. +% \begin{macrocode} +\newcommand*\tud@cdfont@check{% + \if@tud@cdoldfont@active% + \tud@cdfont@@check{Univers}{% + Light,,Bold,Black,% + 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}% + \else% % \end{macrocode} -% Existieren die Schriften, werden die Schalter auf \val{true} gesetzt, sonst -% wird eine Warnung ausgegeben, falls die Schriften eigentlich verwendet werden -% sollen. +% Die Version von \pkg{opensans} wird geprüft. Das Paket \pkg{iwona} wird +% genutzt, um fehlende Glyphen und Symbole für die Mathematikschriften des \CDs +% zu ergänzen. % \begin{macrocode} - \@tempa{OT1}{\tud@univers}{\@tud@universmathtrue}{\@tempb{Univers}}% - \@tempa{OT1}{\tud@dinbold}{\@tud@dinboldmathtrue}{\@tempb{DIN-Bold}}% - \if@tud@cdmath% - \ifboolexpr{bool {@tud@universmath} and bool {@tud@dinboldmath}}{}{% - \bool@set@lock{@tud@cdmath}{false}% - }% + \@ifpackageloaded{opensans}{% +%<*class> + \ClassWarningNoLine{\TUD@Class@Name}% +%</class> +%<*package> + \PackageWarningNoLine{tudscrfonts}% +%</package> + {% + You should not load package `opensans'\MessageBreak% + manually but just use option `cdfont=true'% + }% + }{}% + \if@tud@cdfont@active% + \TUD@CheckPackage{opensans}{2019/06/20}% + \TUD@CheckPackage{iwona}{2005/10/03}% + \fi% + \tud@cdfont@@check{OpenSans}{% + Light,Regular,SemiBold,Bold,ExtraBold,% + LightItalic,Italic,SemiBoldItalic,BoldItalic,ExtraBoldItalic% + }{\tud@cdfont@fam@lf,\tud@cdfont@fam@osf}{@tud@cdfont@fam@exist}% \fi% +} +% \end{macrocode} +% Dieses Makro prüft auf das Vorhandensein der Schriften für den Fließtext. +% Im optionalen Argument wird das Trennzeichen zwischen dem Hauptnamen für die +% OTF-Schriften aus dem ersten obligatorischen Argument und der Liste der +% Bezeichnungen für die einzelnen Schriftschnitte im zweiten obligatorischen +% Argument angegeben. Die darauffolgenden Argumente enthalten die zu prüfenden +% Type1-Schriftfamilien und die Bezeichnung des zu setzenden Schalters. +% \begin{macrocode} +\newcommand*\tud@cdfont@@check[5][-]{% + \@tud@res@swatrue% + \def\tud@res@a##1{% + \@tud@res@swafalse% + \tud@cdfont@missing{##1}{\tud@cdfont@wrn}% + }% % \end{macrocode} % Für jede der OTF-Schriften wird eine Warnung ausgegeben, falls diese nicht % installiert ist. Um sicher zu gehen, dass das Layout komplett genutzt werden @@ -296,107 +431,188 @@ % um die Rückfallebene zu aktivieren. % \begin{macrocode} \if@tud@x@fontspec@enabled% - \def\@tempc##1##2{% - \IfFontExistsTF{##1}{}{% - ##2% - \ifnum\tud@cdfont@num>\z@\relax% true/heavy - \tud@font@missing@wrn{##1}% + \def\tud@res@b##1{\IfFontExistsTF{##1}{}{\tud@res@a{##1}}}% + \@for\tud@res@c:={#3}\do{% + \expandafter\IfArgIsEmpty\expandafter{\tud@res@c}% + {\tud@res@b{#2}}% + {\tud@res@b{#2#1\tud@res@c}}% + }% + \else% +% \end{macrocode} +% Ist \pkg{fontspec} nicht aktiv, wird auf die Type1-Schriften für den +% Fließtext für die aktuelle Kodierung im gleichen Maße geprüft. +% \begin{macrocode} + \def\tud@res@b##1##2{% + \begingroup% +% \end{macrocode} +% Der Schalter \cs{if@tud@res@swa} wird \val{false} gesetzt, falls die Schrift +% gefunden wurde. Der zu prüfenden Schriftname wird dabei in unterschiedlichen +% Varianten getestet, da \cs{IfFileExists} auf unixoiden Betriebssystemen +% case-sensitiv ist. +% \begin{macrocode} + \@tud@res@swatrue% + \tud@lowerstring\tud@res@b{##1##2.fd}% + \IfFileExists{\tud@res@b}{\@tud@res@swafalse}{}% + \if@tud@res@swa% + \tud@lowerstring\tud@res@b{##1}% + \edef\tud@res@b{\tud@res@b##2.fd}% + \IfFileExists{\tud@res@b}{\@tud@res@swafalse}{}% \fi% - }% + \if@tud@res@swa% + \edef\tud@res@b{##1##2.fd}% + \IfFileExists{\tud@res@b}{\@tud@res@swafalse}{}% + \fi% +% \end{macrocode} +% Existiert die Schrift nicht, wird die entsprechende Warnung ausgegeben. +% \begin{macrocode} + \edef\tud@res@a{% + \endgroup% + \if@tud@res@swa% + \noexpand\tud@res@a{\tud@res@b}% + \fi% + }% + \tud@res@a% }% - \@tud@universtrue% - \@tempc{Univers Light}{\@tud@universfalse}% - \@tempc{Univers}{\@tud@universfalse}% - \@tempc{Univers Bold}{\@tud@universfalse}% - \@tempc{Univers Black}{\@tud@universfalse}% - \@tempc{Univers LightOblique}{\@tud@universfalse}% - \@tempc{Univers Oblique}{\@tud@universfalse}% - \@tempc{Univers BoldOblique}{\@tud@universfalse}% - \@tempc{Univers BlackOblique}{\@tud@universfalse}% - \@tud@dinboldtrue% - \@tempc{DIN-Bold}{\@tud@dinboldfalse}% + \@for\tud@res@c:={#4}\do{\tud@res@b{\encodingdefault}{\tud@res@c}}% + \fi% +% \end{macrocode} +% Zuletzt wird der angegebene Schalter gesetzt. +% \begin{macrocode} + \if@tud@res@swa% + \booltrue{#5}% \else% + \boolfalse{#5}% + \fi% +} +% \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. +% \begin{macrocode} +\newcommand*\tud@cdfont@@@check[2]{% + \@tud@res@swatrue% + \def\tud@res@a##1##2{% + \@tud@res@swafalse% + \tud@cdfont@missing[##1]{##2}{\tud@cdmath@wrn}% + }% + \def\tud@res@b##1##2{% + \begingroup% + \tud@lowerstring\tud@res@b{##1##2.fd}% + \edef\tud@res@a{% + \endgroup% + \noexpand\IfFileExists{\tud@res@b}{}{% + \noexpand\tud@res@a{##1}{\tud@res@b}% + }% + }% + \tud@res@a% + }% + \@for\tud@res@c:={#1}\do{\tud@res@b{\tud@res@c}{#2}}% % \end{macrocode} -% Ist \pkg{fontspec} nicht aktiv, wird auf die Schriften für den Fließtext im -% gleichen Maße geprüft. +% Wurde mindestens eine notwendige nicht gefunden, wird \opt{cdmath=false} +% gesetzt. War diese zuvor aktiv, wird eine Warnung dazu ausgegeben. % \begin{macrocode} - \def\@tempc##1{% - \ifnum\tud@cdfont@num>\z@\relax% true/heavy - \tud@font@missing@wrn{##1}% + \if@tud@res@swa\else% + \AtBeginDocument{% + \if@tud@cdmath@active% +%<*class> + \ClassWarning{\TUD@Class@Name}% +%</class> +%<*package> + \PackageWarning{tudscrfonts}% +%</package> + {% + 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 + }% \fi% + \TUDoptions{cdmath=false}% }% - \expandafter\@tempa\expandafter{\encodingdefault}% - {\tud@univers}{\@tud@universtrue}{\@tempc{Univers}}% - \expandafter\@tempa\expandafter{\encodingdefault}% - {\tud@dinbold}{\@tud@dinboldtrue}{\@tempc{DIN-Bold}}% \fi% - \ifboolexpr{bool {@tud@univers} and bool {@tud@dinbold}}{}{% - \renewcommand*\tud@cdfont@num{0}% - \bool@std@lock{@tud@cdmath}{false}% - }% - \undef\tud@font@check% } -\newcommand*\tud@font@missing@wrn[1]{% +% \end{macrocode} +% Das Makro für die Erstellung einer Warnung bei fehlenden Schriften. Diese +% wird an den Hook im letzten Argument angehängt. +% \begin{macrocode} +\newcommand*\tud@cdfont@missing[3][\encodingdefault]{% \begingroup% - \def\@tempa{% - `#1' font not found for `\encodingdefault' encoding.\MessageBreak% + \def\tud@res@a{% + `#2' font\MessageBreak% + not found for `#1' encoding.\MessageBreak% }% \if@tud@x@fontspec@enabled% - \appto\@tempa{% - It seems, you haven't installed the required\MessageBreak% - OTF-font on your system% - }% - \else% - \ifstr{TU}{\encodingdefault}{% - \appto\@tempa{% - You should load package `fontspec'\MessageBreak% - or % + \ifstr{\encodingdefault}{#1}{% + \appto\tud@res@a{% + It seems, you haven't installed the required\MessageBreak% + OTF-font on your system. You should provide\MessageBreak% + the fonts manually to your OS\MessageBreak% + \if@tud@cdoldfont@active\else% + or install package `opensans'\MessageBreak% + \fi% }% - }{% - \appto\@tempa{Please }% + }{}% + \else% + \if@tud@cdoldfont@active% + \def\tud@res@b{T1,OT1,OMS,OML}% + \else% + \def\tud@res@b{T1,OT1,T2A,T2B,T2C,X2,LGR}% + \fi% + \@tud@res@swafalse% + \@for\tud@res@c:=\tud@res@b\do{% + \ifstr{\tud@res@c}{#1}{\@tud@res@swatrue}{}% }% - \@tempswafalse% - \ifstr{OT1}{\encodingdefault}{\@tempswatrue}{}% - \ifstr{T1}{\encodingdefault}{\@tempswatrue}{}% - \if@tempswa% - \appto\@tempa{% - use one of the installation scripts listed\MessageBreak% - in the TUD-Script manual% +% \end{macrocode} +% Wird eine unterstützte Kodierung verwendet, müssen die Schriften installiert +% werden. +% \begin{macrocode} + \if@tud@res@swa% + \appto\tud@res@a{% + You should % + \if@tud@cdoldfont@active% + try to install the necessary fonts\MessageBreak% + with a installation script listed in the manual% + \else% + install package `opensans'% + \fi% + .\MessageBreak% }% \else% - \appto\@tempa{% - choose a possible encoding with\MessageBreak% - package `fontenc' (`OT1' or `T1')% - }% + \ifstr{\encodingdefault}{#1}{% + \ifstr{TU}{#1}{% + \appto\tud@res@a{% + You should either load package `fontspec'\MessageBreak% + or % + }% + }{% + \appto\tud@res@a{Please }% + }% + \appto\tud@res@a{% + choose a possible encoding with package\MessageBreak% + `fontenc' (\tud@res@b).\MessageBreak% + }% + }{}% \fi% \fi% - \appto\@tempa{.\MessageBreak A fallback layout is used}% + \appto\tud@res@a{A fallback layout is used}% + \edef\tud@res@c{% %<*class> - \ClassWarning{\TUD@Class@Name}{\@tempa}% + \etex@unexpanded{\ClassWarning{\TUD@Class@Name}}% %</class> %<*package> - \PackageWarning{tudscrfonts}{\@tempa}% + \etex@unexpanded{\PackageWarning{tudscrfonts}}% %</package> + {\tud@res@a} + }% + \xappto#3{\expandonce\tud@res@c}% \endgroup% } -\newcommand*\tud@font@math@missing@wrn[1]{% -%<*class> - \ClassWarning{\TUD@Class@Name}% -%</class> -%<*package> - \PackageWarning{tudscrfonts}% -%</package> - {% - `#1' fonts for math typesetting not found.\MessageBreak% - Please use one of the installation scripts listed\MessageBreak% - in the TUD-Script manual% - }% -} % \end{macrocode} -% \end{macro}^^A \tud@x@fontspec@noerror -% \end{macro}^^A \tud@font@missing@wrn -% \end{macro}^^A \tud@font@math@missing@wrn -% \end{macro}^^A \tud@font@check +% \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} @@ -431,22 +647,21 @@ % % \begin{macro}{\tud@raggedright} % \begin{macro}{\tud@RaggedRight} -% Die Überschriften in \DIN sollen laut \CD linksbündig und nie mit aktiver -% Silbentrennung gesetzt werden. Normalerweise ist das dies beim linksbündigen -% Satz bei \LaTeX{} der Fall. Allerdings ist es mit dem Paket \pkg{ragged2e} -% möglich, das Verhalten für den Flattersatz zu ändern und die Silbentrennung -% zu aktivieren. Mit der Option \opt{newcommands} werden dabei die originalen -% Befehle überschrieben, vorher jedoch in \cs{LaTeX\dots} gesichert. Diese -% Makros dienen dazu, die Überschriften in jedem Fall~-- auch bei der Verwendung -% von \pkg{ragged2e} mit der Option \opt{newcommands}~-- ohne Trennungen zu -% setzen. +% 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}{% - \ifdef{\LaTeXraggedright}{% + \ifundef{\LaTeXraggedright}{}{% \renewcommand*\tud@raggedright{\LaTeXraggedright}% - }{}% + }% \renewcommand*\tud@RaggedRight{\RaggedRight}% } % \end{macrocode} @@ -456,7 +671,7 @@ % \subsubsection{Anpassungen für das Paket \pkg{siunitx}} % % \begin{macro}{\lseries} -% \begin{macro}{\@tud@x@siunitx@enabledtrue} +% \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 @@ -470,7 +685,7 @@ \providecommand*\lseries{\fontseries{l}\selectfont}% } % \end{macrocode} -% \end{macro}^^A \if@tud@x@siunitx@enabledes +% \end{macro}^^A \if@tud@x@siunitx@enabled % \end{macro}^^A \lseries % % \subsubsection{Anpassungen für die Klasse \cls{beamer}} @@ -514,30 +729,43 @@ % \fi % % \subsection{Schriftauswahl und -optionen} -% \subsubsection{Schriften für den Fließtext} % % Hier werden die Optionen und Befehle zur Schriftauswahl definiert. % +% \subsubsection{Schriften für den Fließtext} % \begin{option}{cdfont} % \changes{v2.02}{2014/07/08}{Schlüsselwerte für \opt{cdhead}}^^A % \changes{v2.02}{2014/08/29}{Schlüsselwerte für \opt{fontspec}}^^A % \changes{v2.05}{2016/04/04}{Schlüsselwerte für \val{ultrabold}}^^A % \changes{v2.05l}{2017/03/29}{Standardeinstellungen für \opt{cdmath}}^^A -% \begin{macro}{\tud@cdfont@num} -% \begin{macro}{\if@tud@cdfont@din} +% \begin{macro}{\if@tud@cdfont@active} +% \changes{v2.06}{2018/06/26}{neu}^^A +% \begin{macro}{\if@tud@cdfont@heavy} +% \changes{v2.06}{2018/06/26}{neu}^^A % \begin{macro}{\if@tud@cdfont@ultrabold} % \changes{v2.05}{2016/04/04}{neu}^^A +% \begin{macro}{\if@tud@cdfont@lining} +% \changes{v2.06}{2018/07/10}{neu}^^A +% \begin{macro}{\tud@cdfont@activate} +% \changes{v2.06}{2018/07/02}{neu}^^A +% \begin{macro}{\tud@cdfont@deactivate} +% \changes{v2.06}{2018/07/24}{neu}^^A % Mit dieser Option wird die zentrale Benutzerschnittstelle für alle möglichen % Schrifteinstellungen innerhalb Dokumentes geschaffen. Durch diese Option % können sowohl die verwendete Schrift für den Fließtext, als auch die Stärke % der Schrift geändert werden. Zusätzlich lässt sich die Verwendung von -% \DIN für die Überschriften deaktivieren. Außerdem kann eingestellt werden, ob +% Minuskelziffern im Fließtext aktivieren. Außerdem kann eingestellt werden, ob % für den Mathematiksatz serifenlose Schriften zum Einsatz kommen sollen. +% \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@din +\newif\if@tud@cdfont@active +\newif\if@tud@cdfont@heavy \newif\if@tud@cdfont@ultrabold -\@tud@cdfont@dintrue -\newcommand*\tud@cdfont@num{1} +\newif\if@tud@cdfont@lining +\@tud@cdfont@liningtrue \TUD@key{cdfont}[true]{% \TUD@set@numkey{cdfont}{@tempa}{% \TUD@bool@numkey,% @@ -546,45 +774,52 @@ {normalbold}{3},{boldnormal}{3},% {ultrabold}{4},{boldultra}{4},{heavybold}{4},{boldheavy}{4},% {extendedbold}{4},{boldextended}{4},% - {nodin}{5},{nodinbold}{5},{noDIN}{5},{noDINBold}{5},% - {din}{6},{dinbold}{6},{DIN}{6},{DINBold}{6},% + {lf}{5},{lfigures}{5},{liningfigures}{5},{lining}{5},% + {ln}{5},{lnumbers}{5},{liningnumbers}{5},% + {nf}{5},{nfigures}{5},{normalfigures}{5},% + {nn}{5},{nnumbers}{5},{normalnumbers}{5},% + {osf}{6},{osfigures}{6},{oldfigures}{6},{oldstylefigures}{6},{oldstyle}{6},% + {osn}{6},{osnumbers}{6},{oldnumbers}{6},{oldstylenumbers}{6},% + {nomath}{7},{nocdmath}{7},% + {serifmath}{7},{serif}{7},{nosansmath}{7},{nosans}{7},% + {math}{8},{cdmath}{8},{sansmath}{8},{sans}{8},% + {upgreek}{9},{uprightgreek}{9},{uprightgreeks}{9},% + {slgreek}{10},{slantedgreek}{10},{slantedgreeks}{10},% + {itgreek}{10},{italicgreek}{10},{italicgreeks}{10},% + {texgreek}{11},{latexgreek}{11},{texgreeks}{11},{latexgreeks}{11},% + {standardgreek}{11},{standardgreeks}{11},% + {fontspec}{12},{luatex}{12},{lualatex}{12}{xetex}{12},{xelatex}{12},% + {nofontspec}{13},{nfss}{13},{pdftex}{13},{pdflatex}{13}% %<*class> - {nohead}{7},{nocdhead}{7},{noheadfont}{7},{noheadcdfont}{7},% - {nocdheadfont}{7},{nobar}{7},{nobarfont}{7},% - {head}{8},{headfont}{8},{cdhead}{8},{headcdfont}{8},{cdheadfont}{8},% - {bar}{8},{barfont}{8},% - {lighthead}{8},{lightheadfont}{8},{lightfonthead}{8},% - {lightcdhead}{8},{lightheadcdfont}{8},{lightcdheadfont}{8},% - {lightbar}{8},{lightbarfont}{8},{lightfontbar}{8},% - {headlight}{8},{headfontlight}{8},{headlightfont}{8},% - {cdheadlight}{8},{headcdfontlight}{8},{cdheadfontlight}{8},% - {barlight}{8},{barfontlight}{8},{barlightfont}{8},% - {litehead}{8},{liteheadfont}{8},{litefonthead}{8},% - {litecdhead}{8},{liteheadcdfont}{8},{litecdheadfont}{8},% - {litebar}{8},{litebarfont}{8},{litefontbar}{8},% - {headlite}{8},{headfontlite}{8},{headlitefont}{8},% - {cdheadlite}{8},{headcdfontlite}{8},{cdheadfontlite}{8},% - {barlite}{8},{barfontlite}{8},{barlitefont}{8},% - {noheavyhead}{8},{noheavyheadfont}{8},{noheavyfonthead}{8},% - {noheavycdhead}{8},{noheavyheadcdfont}{8},{noheavycdheadfont}{8},% - {noheavybar}{8},{noheavybarfont}{8},{noheavyfontbar}{8},% - {headnoheavy}{8},{headfontnoheavy}{8},{headnoheavyfont}{8},% - {cdheadnoheavy}{8},{headcdfontnoheavy}{8},{cdheadfontnoheavy}{8},% - {barnoheavy}{8},{barfontnoheavy}{8},{barnoheavyfont}{8},% - {heavyhead}{9},{heavyheadfont}{9},{heavyfonthead}{9},% - {heavycdhead}{9},{heavyheadcdfont}{9},{heavycdheadfont}{9},% - {heavybar}{9},{heavybarfont}{9},{heavyfontbar}{9},% - {headheavy}{9},{headfontheavy}{9},{headheavyfont}{9},% - {cdheadheavy}{9},{headcdfontheavy}{9},{cdheadfontheavy}{9},% - {barheavy}{9},{barfontheavy}{9},{barheavyfont}{9},% + ,{nohead}{14},{nocdhead}{14},{noheadfont}{14},{noheadcdfont}{14},% + {nocdheadfont}{14},{nobar}{14},{nobarfont}{14},% + {head}{15},{headfont}{15},{cdhead}{15},{headcdfont}{15},{cdheadfont}{15},% + {bar}{15},{barfont}{15},% + {lighthead}{15},{lightheadfont}{15},{lightfonthead}{15},% + {lightcdhead}{15},{lightheadcdfont}{15},{lightcdheadfont}{15},% + {lightbar}{15},{lightbarfont}{15},{lightfontbar}{15},% + {headlight}{15},{headfontlight}{15},{headlightfont}{15},% + {cdheadlight}{15},{headcdfontlight}{15},{cdheadfontlight}{15},% + {barlight}{15},{barfontlight}{15},{barlightfont}{15},% + {litehead}{15},{liteheadfont}{15},{litefonthead}{15},% + {litecdhead}{15},{liteheadcdfont}{15},{litecdheadfont}{15},% + {litebar}{15},{litebarfont}{15},{litefontbar}{15},% + {headlite}{15},{headfontlite}{15},{headlitefont}{15},% + {cdheadlite}{15},{headcdfontlite}{15},{cdheadfontlite}{15},% + {barlite}{15},{barfontlite}{15},{barlitefont}{15},% + {noheavyhead}{15},{noheavyheadfont}{15},{noheavyfonthead}{15},% + {noheavycdhead}{15},{noheavyheadcdfont}{15},{noheavycdheadfont}{15},% + {noheavybar}{15},{noheavybarfont}{15},{noheavyfontbar}{15},% + {headnoheavy}{15},{headfontnoheavy}{15},{headnoheavyfont}{15},% + {cdheadnoheavy}{15},{headcdfontnoheavy}{15},{cdheadfontnoheavy}{15},% + {barnoheavy}{15},{barfontnoheavy}{15},{barnoheavyfont}{15},% + {heavyhead}{16},{heavyheadfont}{16},{heavyfonthead}{16},% + {heavycdhead}{16},{heavyheadcdfont}{16},{heavycdheadfont}{16},% + {heavybar}{16},{heavybarfont}{16},{heavyfontbar}{16},% + {headheavy}{16},{headfontheavy}{16},{headheavyfont}{16},% + {cdheadheavy}{16},{headcdfontheavy}{16},{cdheadfontheavy}{16},% + {barheavy}{16},{barfontheavy}{16},{barheavyfont}{16}% %</class> - {nomath}{10},{nocdmath}{10},% - {serifmath}{10},{serif}{10},{nosansmath}{10},{nosans}{10},% - {math}{11},{cdmath}{11},{sansmath}{11},{sans}{11},% - {upgreek}{12},{upright}{12},{uprightgreek}{12},{uprightGreek}{12},% - {slgreek}{13},{slanted}{13},{slantedgreek}{13},{slantedGreek}{13},% - {fontspec}{14},{luatex}{14},{lualatex}{14}{xetex}{14},{xelatex}{14},% - {nofontspec}{15},{nfss}{15},{pdftex}{15},{pdflatex}{15}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% % \end{macrocode} @@ -592,66 +827,32 @@ % den Fließtext. % \begin{macrocode} \ifcase\@tempa\relax% false - \renewcommand*\tud@cdfont@num{0}% - \bool@std@lock{@tud@cdmath}{false}% - \TUD@SpecialOptionAtDocument{tud@font@set}% + \tud@cdfont@deactivate% \or% true - \renewcommand*\tud@cdfont@num{1}% - \bool@std@lock{@tud@cdmath}{true}% - \TUD@SpecialOptionAtDocument{tud@font@set}% + \@tud@cdfont@heavyfalse% + \tud@cdfont@activate% \or% heavy - \renewcommand*\tud@cdfont@num{2}% - \bool@std@lock{@tud@cdmath}{true}% - \TUD@SpecialOptionAtDocument{tud@font@set}% + \@tud@cdfont@heavytrue% + \tud@cdfont@activate% % \end{macrocode} % Für die Definition der fetten Schriftstärke kommt je nach Einstellung ein % anderer Schriftschnitt zum Einsatz. % \begin{macrocode} \or% normalbold \@tud@cdfont@ultraboldfalse% - \ifcase\tud@cdfont@num\relax% false to true - \renewcommand*\tud@cdfont@num{1}% - \fi% - \bool@std@lock{@tud@cdmath}{true}% - \TUD@SpecialOptionAtDocument{tud@font@set}% + \tud@cdfont@activate% \or% ultrabold \@tud@cdfont@ultraboldtrue% - \ifcase\tud@cdfont@num\relax% false to true - \renewcommand*\tud@cdfont@num{1}% - \fi% - \bool@std@lock{@tud@cdmath}{true}% - \TUD@SpecialOptionAtDocument{tud@font@set}% + \tud@cdfont@activate% % \end{macrocode} -% Hier wird die Verwendung von \DIN für die Überschirften festgelegt. +% Hier wird die Art der Ziffern für den Fleißtext festgelegt. % \begin{macrocode} - \or% nodin - \@tud@cdfont@dinfalse% - \or% din - \@tud@cdfont@dintrue% -% \end{macrocode} -% Die Schrift für den Querbalken. -% \begin{macrocode} - \or% nohead -%<*class> - \TUDoptions{cdhead=false}% -%</class> -%<*package> - \PackageWarning{tudscrfonts}{Option `cdfont=nohead' is not available}% -%</package> - \or% head -%<*class> - \TUDoptions{cdhead=true}% -%</class> -%<*package> - \PackageWarning{tudscrfonts}{Option `cdfont=head' is not available}% -%</package> - \or% heavyhead -%<*class> - \TUDoptions{cdhead=heavy}% -%</class> -%<*package> - \PackageWarning{tudscrfonts}{Option `cdfont=heavyhead' is not available}% -%</package> + \or% liningfigures + \@tud@cdfont@liningtrue% + \tud@cdfont@activate% + \or% oldstylefigures + \@tud@cdfont@liningfalse% + \tud@cdfont@activate% % \end{macrocode} % Die Mathematikschriften. % \begin{macrocode} @@ -662,10 +863,12 @@ % \end{macrocode} % Die Neigung der großen griechischen Buchstaben. % \begin{macrocode} - \or% upgreek + \or% uprightgreek \TUDoptions{slantedgreek=false}% - \or% slgreek + \or% slantedgreek \TUDoptions{slantedgreek=true}% + \or% standardgreek + \TUDoptions{slantedgreek=standard}% % \end{macrocode} % Die Verwendung von \pkg{fontspec}. % \begin{macrocode} @@ -673,37 +876,246 @@ \TUDoptions{fontspec=true}% \or% nofontspec \TUDoptions{fontspec=false}% +% \end{macrocode} +% Die Schrift für den Querbalken. +% \begin{macrocode} +%<*class> + \or% nohead + \TUDoptions{cdhead=false}% + \or% head + \TUDoptions{cdhead=true}% + \or% heavyhead + \TUDoptions{cdhead=heavy}% +%</class> \fi% % \end{macrocode} % Wird kein gültiger Wert für die Option angegeben, so wird davon ausgegangen, % dass es sich bei diesem um die gewünschte Schriftgröße handelt. % \begin{macrocode} \else% - \ifdimen{#1}{% - \ifdim#1>\z@\relax% - \TUD@KOMAoptions{fontsize=#1}% - \csname @tud@fontsize@settrue\endcsname% - \ifcase\tud@cdfont@num\relax% false to true - \renewcommand*\tud@cdfont@num{1}% - \bool@std@lock{@tud@cdmath}{true}% - \TUD@SpecialOptionAtDocument{tud@font@set}% - \fi% + \tud@lowerstring\tud@res@a{#1}% + \ifdimen{\tud@res@a}{% + \ifdim\tud@res@a>\z@\relax% + \TUDoptions{fontsize=#1}% + \tud@cdfont@activate% \FamilyKeyStateProcessed% \fi% }{}% \fi% } +\newcommand*\tud@cdfont@activate{% + \@tud@cdfont@activetrue% +% \end{macrocode} +% Die Schrift im Querbalken wird bei den Klassen angepasst. +% \begin{macrocode} +%<*class> + \if@tud@cdfont@heavy% + \tud@locked@num@preset{tud@head@font@num}{2}% + \else% + \tud@locked@num@preset{tud@head@font@num}{1}% + \fi% +%</class> + \TUD@SpecialOptionAtDocument{tud@font@set}% + \tud@locked@bool@preset{@tud@cdmath@active}{true}% + \TUD@SpecialOptionAtDocument{tud@math@set}% +} +\newcommand*\tud@cdfont@deactivate{% + \@tud@cdfont@activefalse% +%<*class> + \tud@locked@num@preset{tud@head@font@num}{0}% +%</class> + \TUD@SpecialOptionAtDocument{tud@font@set}% + \tud@locked@bool@preset{@tud@cdmath@active}{false}% + \TUD@SpecialOptionAtDocument{tud@math@set}% +} % \end{macrocode} +% \end{macro}^^A \tud@cdfont@deactivate +% \end{macro}^^A \tud@cdfont@activate +% \end{macro}^^A \if@tud@cdfont@lining % \end{macro}^^A \if@tud@cdfont@ultrabold -% \end{macro}^^A \if@tud@cdfont@din -% \end{macro}^^A \tud@cdfont@num +% \end{macro}^^A \if@tud@cdfont@heavy +% \end{macro}^^A \if@tud@cdfont@active % \end{option}^^A cdfont +% \begin{option}{cdoldfont} +% \changes{v2.06}{2018/07/12}{neu}^^A +% \begin{macro}{\if@tud@cdoldfont@active} +% \changes{v2.06}{2018/07/12}{neu}^^A +% \begin{macro}{\if@tud@cdoldfont@nodin} +% \changes{v2.06}{2018/07/12}{neu}^^A +% Seit 2018 wird \OpenSans als Hausschrift im \TUDCD genutzt. Für die Nutzung +% der vormals verwendeten Schriften \Univers und \DIN für ältere Dokumente wird +% die Option \pkg{cdoldfont} bereitgestellt. Damit werden die Befehle zur +% 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@key{cdoldfont}[true]{% + \TUD@set@numkey{cdoldfont}{@tempa}{% + \TUD@bool@numkey,% + {din}{1},{dinbold}{1},% + {nodin}{2},{nodinbold}{2},% + {onlydin}{3},{onlydinbold}{3}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% false + \@tud@cdoldfont@activefalse% + \@tud@cdoldfont@nodintrue% +% \end{macrocode} +% Achtung, nicht verwirren lassen! Mit \opt{cdoldfonts=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 +% gleiche Verhalten wie mit \opt{cdfont=false} erzeugt werden. +% \begin{macrocode} + \if@tud@cdoldfont@active% + \tud@cdfont@deactivate% + \fi% + \or% true/din + \@tud@cdoldfont@activetrue% + \@tud@cdoldfont@nodinfalse% + \tud@cdfont@activate% + \or% nodin + \@tud@cdoldfont@activetrue% + \@tud@cdoldfont@nodintrue% + \tud@cdfont@activate% + \or% onlydin + \@tud@cdoldfont@activetrue% + \@tud@cdoldfont@nodinfalse% + \tud@cdfont@deactivate% + \fi% + \else% + \@tud@cdoldfont@activetrue% + \TUDoptions{cdfont=#1}% + \fi% +} +%<*class> +\AtEndOfClass% +%</class> +%<*package> +\AtEndOfPackage% +%</package> +{% + \if@tud@cdoldfont@active% +% \end{macrocode} +% Der aktive Zustand der Option \opt{cdoldfont} wird \enquote{eingefroren}. +% \begin{macrocode} + \let\@tud@cdoldfont@activefalse\@tud@cdoldfont@activetrue% +% \end{macrocode} +% Wenn die Option \opt{cdoldfont} beim Laden der Klasse aktiviert wurde, kann +% sie auch im Dokument genutzt werden. Um möglichst einfach alte Dokumente mit +% den alten Schriften setzen zu können, wird die Option \opt{cdfont} in diesem +% Fall um die alten Werte erweitert. +% \begin{macrocode} + \TUD@key[.comp]{cdfont}{% + \TUD@set@numkey{cdfont}{@tempa}{% + {din}{1},{dinbold}{1},% + {nodin}{2},{nodinbold}{2},% + {onlydin}{3},{onlydinbold}{3}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \TUDoptions{cdoldfont=#1}% + \fi% + }% +% \end{macrocode} +% Andernfalls wird \opt{cdoldfont} schlichtweg deaktiviert. +% \begin{macrocode} + \else% + \TUD@key{cdoldfont}[]{% +%<*class> + \ClassError{\TUD@Class@Name}% +%</class> +%<*package> + \PackageError{tudscrfonts}% +%</package> + {Option `cdoldfont' not active}{% + Option `cdoldfont' must be activated while loading the\MessageBreak% +%<*class> + class `\TUD@Class@Name'\space% +%</class> +%<*package> + package `tudscrfonts'\space% +%</package> + but you have tried to set it up later.% + }% + \FamilyKeyStateProcessed% + }% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \if@tud@cdoldfont@nodin +% \end{macro}^^A \if@tud@cdoldfont@active +% \end{option}^^A cdoldfont +% \begin{option}{fontsize} +% \changes{v2.04}{2015/04/24}{Option aus \KOMAScript{} erweitert}^^A +% \begin{macro}{\if@tud@x@scr@fontsize@set} +% \changes{v2.05}{2015/07/24}{neu}^^A +% Die genutzte Grundschriftgröße kann mit der \KOMAScript-Option \opt{fontsize} +% eingestellt werden. Um ein aktives Setzen der Schriftgröße zu erkennen, wird +% 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 +\TUD@key{fontsize}{% + \TUD@set@dimenkey{fontsize}{\@tempa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% +% \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 +% Option also lokal dem Paket selbst übergeben wurde~--, wird eine Warnung mit +% 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% + }% + }% + \expandafter\AtEndOfPackage\expandafter{\tud@res@a}% + \fi +%</package> + \@tud@x@scr@fontsize@settrue% + \TUD@KOMAoptions{fontsize=#1}% + \fi% +} +%<*class> +\AtEndOfClass% +%</class> +%<*package> +\AtEndOfPackage% +%</package> +{% + \RelaxFamilyKey{TUD}{fontsize}% + \DefineFamilyMember{KOMA}% + \DefineFamilyKey{KOMA}{fontsize}{% + \@tud@x@scr@fontsize@settrue% +%<*class> + \ClassWarning{\TUD@Class@Name}% +%</class> +%<*package> + \PackageWarning{tudscrfonts}% +%</package> + {% + The key `fontsize=#1' should only be\MessageBreak% + used as class option% + }% + \TUD@SpecialOptionAtDocument{tud@font@set}% + \FamilyKeyStateProcessed% + }% +} +% \end{macrocode} +% \end{macro}^^A \if@tud@x@scr@fontsize@set +% \end{option}^^A fontsize % \begin{option}{relspacing} % \changes{v2.05}{2015/12/17}{neu}^^A % \begin{macro}{\if@tud@relspacing} -% \changes{v2.05}{2015/12/17}{neu}^^A -% \begin{option}{fontsize} -% \changes{v2.04}{2015/04/24}{Option aus \KOMAScript{} erweitert}^^A +% \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 @@ -726,13 +1138,7 @@ \TUD@SpecialOptionAtDocument{tud@font@skip@set}% \fi% } -\DefineFamilyMember{KOMA} -\DefineFamilyKey{KOMA}{fontsize}{% - \TUD@SpecialOptionAtDocument{tud@font@skip@set}% - \FamilyKeyStateProcessed% -} % \end{macrocode} -% \end{option}^^A fontsize % \end{macro}^^A \if@tud@relspacing % \end{option}^^A relspacing % @@ -741,26 +1147,88 @@ %<*body> % \fi % -% Mit dem Paket \pkg{trimspaces} werden für die alternative Schriftauswahl mit -% \cs{cdfont} bzw. \cs{textcdfont} eventuell vorhandene Leerzeichen aus dem -% Argument entfernt. Auch beim Einlesen von Feldern wird dies genutzt. +% \begin{macro}{\tud@x@fontspec@init} +% \changes{v2.06}{2018/06/28}{neu}^^A +% Dieses Makro wird bei der Initialisierun der Schriftfamilien aufgerufen, +% falls \pkg{fontspec} aktiv ist. Das erste Argument enthält den NFSS-Namen +% der Schriftfamilie, das zweite Argument spezifiziert die Schriften für die +% jeweiligen Schriftschnitte. +% \begin{macrocode} +\newcommand*\tud@x@fontspec@init[2]{% +% \end{macrocode} +% Durch die Verwendung des optionalen Argumentes von \cs{defaultfontfeatures} +% werden die gewünschten Features einem Schriftfamiliennamen zugewiesen. Diese +% können anschließend einfach bspw. mit \cs{setsansfont}\marg{Name} genutzt +% werden. Damit alle Änderungen lokal bleiben, werden die Argumente in einer +% Gruppe expandiert. +% \begin{macrocode} + \begingroup% + \edef\tud@res@a{% + \noexpand\defaultfontfeatures[#1]{% + NFSSFamily=#1,% + Ligatures=TeX,% + BoldFont={},% + ItalicFont={},% + BoldItalicFont={},% + SmallCapsFont={},% + #2% + }% + }% +% \end{macrocode} +% Damit die Schrift mit ihrem NFSS-Namen auf jeden Fall definiert ist, auch +% wenn die Schriften des \CDs nicht aktiviert wurden, wird \cs{newfontfamily} +% aufgerufen. +% \begin{macrocode} + \edef\tud@res@b{% + \noexpand\newfontfamily% + \expandafter\noexpand\csname tud@x@fontspec@fam@#1\endcsname{#1}% + }% +% \end{macrocode} +% Die expandierten Argumente werden nach der Gruppe ausgeführt. % \begin{macrocode} -\RequirePackage{trimspaces}[2009/09/17] + \edef\tud@res@c{% + \endgroup\expandonce\tud@res@a\expandonce\tud@res@b% + }% + \tud@res@c% +} % \end{macrocode} +% \end{macro}^^A \tud@x@fontspec@init +% \begin{macro}{\tud@x@fontspec@set} +% \changes{v2.06}{2018/08/31}{neu}^^A +% Das Paket \pkg{fontspec} ermöglicht es leider nicht, mit \cs{newfontfamily} +% bereits definierte Schriftfamilien für die Zuweisung mit \cs{setmainfont} +% etc. zu nutzen. Deshalb wird folgendes Hilfsmakro definiert, welches diese +% Aufgabe übernimmt. +% \begin{macrocode} +\newcommand*\tud@x@fontspec@set[2]{% + \begingroup% + \edef\tud@res@a{% + \expandafter\noexpand\csname tud@x@fontspec@fam@#2\endcsname% + }% + \edef\tud@res@a{% + \endgroup% + \noexpand\DeclareRobustCommand% + \expandafter\noexpand\csname #1family\endcsname{% + \expandafter\noexpand\csname tud@x@fontspec@fam@#2\endcsname% + }% + \def\expandafter\noexpand\csname #1default\endcsname{\tud@cdfont@fam}% + }% + \tud@res@a% +} +% \end{macrocode} +% \end{macro}^^A \tud@x@fontspec@set % \begin{macro}{\tud@font@set} % \changes{v2.04}{2015/03/01}{Unterstützung für das Paket \pkg{mweights}}^^A -% \begin{macro}{\if@tud@x@mweights@enabled} -% \changes{v2.04}{2015/04/24}{Erkennung des Paketes \pkg{mweights}}^^A % \begin{macro}{\bfseries@rm} % \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A -% \begin{macro}{\bfseries@sf} -% \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A -% \begin{macro}{\bfseries@tt} -% \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A % \begin{macro}{\mdseries@rm} % \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A +% \begin{macro}{\bfseries@sf} +% \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A % \begin{macro}{\mdseries@sf} % \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A +% \begin{macro}{\bfseries@tt} +% \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A % \begin{macro}{\mdseries@tt} % \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A % \begin{macro}{\rmdef@ult} @@ -773,163 +1241,99 @@ % \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A % \begin{macro}{\mddef@ult} % \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A -% Mit diesem Befehl werden entweder die normalen oder aber die Schriften des -% \CDs aktiviert. Dabei wird die Option \opt{fontspec} beachtet. +% Mit \cs{tud@font@set} werden entweder die normalen oder aber die Schriften +% des \CDs aktiviert. Dabei werden die Pakete \pkg{fontspec} und \pkg{mweights} +% beachtet. % \begin{macrocode} -\newif\if@tud@x@mweights@enabled -\AfterPackage*{mweights}{\@tud@x@mweights@enabledtrue} \newcommand*\tud@font@set{% % \end{macrocode} -% Wurde die Option \opt{cdfont} nicht in der Präambel genutzt, wird im Fall, -% dass die Schriften des \CDs nicht installiert sind, eine Warnung erzeugt. -% \begin{macrocode} - \if@atdocument% - \ifnum\tud@cdfont@num>\z@\relax% true/heavy - \if@tud@univers\else% - \tud@font@missing@wrn{Univers}% - \fi% - \if@tud@dinbold\else% - \tud@font@missing@wrn{DIN-Bold}% - \fi% -% \end{macrocode} -% Sind die Schriften des \CDs nicht vorhanden, wird die Option zurückgesetzt. +% Ist die Verwendung der Schriften des \CDs gewünscht, werden die Schnitte der +% Standardschriften vorher vorher gesichert, um diese später vollständig +% wiederherstellen zu können. % \begin{macrocode} - \ifboolexpr{bool {@tud@univers} and bool {@tud@dinbold}}{}{% - \renewcommand*\tud@cdfont@num{0}% - \bool@std@lock{@tud@cdmath}{false}% - }% + \if@tud@cdfont@active% + \tud@cs@store{rmdefault}% + \tud@cs@store{sfdefault}% + \tud@cs@store{ttdefault}% + \tud@cs@store{bfdefault}% + \tud@cs@store{mddefault}% + \tud@cs@store{updefault}% + \tud@cs@store{sldefault}% + \tud@cs@store{itdefault}% + \tud@cs@store{familydefault}% + \tud@cs@store{seriesdefault}% + \tud@cs@store{shapedefault}% + \if@tud@x@mweights@enabled% + \tud@cs@store{bfseries@rm}% + \tud@cs@store{mdseries@rm}% + \tud@cs@store{bfseries@sf}% + \tud@cs@store{mdseries@sf}% + \tud@cs@store{bfseries@tt}% + \tud@cs@store{mdseries@tt}% \fi% - \fi% % \end{macrocode} -% Werden die Schriften des \CDs deaktiviert, wird auf die zu Dokumentbeginn -% gesicherten Schriften\footnote{mit und ohne Serifen} zurückgeschaltet. +% Das Paket \pkg{fontspec} definiert u.\,U. die Familienauswahlbefehle um, so +% dass diese ebenfalls gesichert werden. % \begin{macrocode} - \ifcase\tud@cdfont@num\relax% false - \tud@cmd@restore{rmdefault}% - \tud@cmd@restore{sfdefault}% - \tud@cmd@restore{ttdefault}% - \tud@cmd@restore{bfdefault}% - \tud@cmd@restore{mddefault}% - \tud@cmd@restore{itdefault}% - \tud@cmd@restore{familydefault}% - \tud@cmd@restore{seriesdefault}% - \tud@cmd@restore{shapedefault}% - \if@tud@x@mweights@enabled% - \tud@cmd@restore{bfseries@rm}% - \tud@cmd@restore{bfseries@sf}% - \tud@cmd@restore{bfseries@tt}% - \tud@cmd@restore{mdseries@rm}% - \tud@cmd@restore{mdseries@sf}% - \tud@cmd@restore{mdseries@tt}% + \if@tud@x@fontspec@enabled% + \tud@cs@store{rmfamily}% + \tud@cs@store{sffamily}% + \tud@cs@store{ttfamily}% \fi% % \end{macrocode} -% Innerhalb der Klassen wird auch die Schrift im Querbalken zurückgsetzt, wenn -% kein Layout im \CD genutzt wird. +% Zunächst werden die Standardwerte für die Schriftfamilien gesetzt. % \begin{macrocode} -%<*class> - \ifcase\tud@cd@num\relax% false - \cs@std@lock{tud@head@font@num}{0}% - \else% !false - \cs@std@lock{tud@head@font@num}{1}% - \fi% -%</class> + \renewcommand*\rmdefault{\sfdefault}% + \renewcommand*\updefault{n}% + \renewcommand*\itdefault{it}% + \renewcommand*\sldefault{sl}% + \renewcommand*\familydefault{\sfdefault}% + \renewcommand*\seriesdefault{\mddefault}% + \renewcommand*\shapedefault{\updefault}% % \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. +% Danach erfolgt die Definition der Schriften des \CDs. % \begin{macrocode} - \else% true/heavy - \tud@cmd@store{rmdefault}% - \tud@cmd@store{sfdefault}% - \tud@cmd@store{ttdefault}% - \tud@cmd@store{bfdefault}% - \tud@cmd@store{mddefault}% - \tud@cmd@store{itdefault}% - \tud@cmd@store{familydefault}% - \tud@cmd@store{seriesdefault}% - \tud@cmd@store{shapedefault}% + \tud@cdfont@set% + \tud@ttfont@set% \if@tud@x@mweights@enabled% - \tud@cmd@store{bfseries@rm}% - \tud@cmd@store{bfseries@sf}% - \tud@cmd@store{bfseries@tt}% - \tud@cmd@store{mdseries@rm}% - \tud@cmd@store{mdseries@sf}% - \tud@cmd@store{mdseries@tt}% + \edef\bfseries@rm{\tud@cdfont@bf}% + \edef\mdseries@rm{\tud@cdfont@md}% + \edef\bfseries@sf{\tud@cdfont@bf}% + \edef\mdseries@sf{\tud@cdfont@md}% + \edef\bfseries@tt{\tud@ttfont@bf}% + \edef\mdseries@tt{\tud@ttfont@md}% \fi% + \let\bfdefault\tud@cdfont@bf% + \let\mddefault\tud@cdfont@md% % \end{macrocode} -% Die Schrift im Querbalken wird bei den Klassen angepasst. -% \begin{macrocode} -%<*class> - \cs@std@lock{tud@head@font@num}{\tud@cdfont@num}% -%</class> -% \end{macrocode} -% Danach erfolgt die Definition der Schriften des \CDs entweder mit dem Paket -% \pkg{fontspec} oder\dots -% \begin{macrocode} - \if@tud@univers% - \if@tud@x@fontspec@enabled% - \setsansfont{Univers}[\tud@x@fontspec@set@univ]% - \setmonofont{LMMono10-Regular}[% - BoldFont={},% - ItalicFont={},% - BoldItalicFont={},% - SmallCapsFont={},% - FontFace={l}{\updefault}{LMMonoLt10-Regular},% - FontFace={m}{\updefault}{LMMono10-Regular},% - FontFace={b}{\updefault}{LMMonoLt10-Bold},% - FontFace={bx}{\updefault}{LMMonoLt10-Bold},% - FontFace={eb}{\updefault}{LMMonoLt10-Bold},% - FontFace={l}{\sldefault}{LMMonoLt10-Oblique},% - FontFace={m}{\sldefault}{LMMonoSlant10-Regular},% - FontFace={b}{\sldefault}{LMMonoLt10-BoldOblique},% - FontFace={bx}{\sldefault}{LMMonoLt10-BoldOblique},% - FontFace={eb}{\sldefault}{LMMonoLt10-BoldOblique},% - NFSSFamily=\tud@univers t% - ]% -% \end{macrocode} -% \dots nach dem NFSS. +% Werden die Schriften des \CDs deaktiviert, wird auf die zu Dokumentbeginn +% gesicherten Schriften\footnote{mit und ohne Serifen} zurückgeschaltet. % \begin{macrocode} - \else% - \renewcommand*\sfdefault{\tud@univers}% - \renewcommand*\ttdefault{\tud@univers t}% - \fi% - \ifnum\tud@cdfont@num=\@ne\relax% true - \if@tud@cdfont@ultrabold% ultrabold - \renewcommand*\bfdefault{b}% - \else% normalbold - \renewcommand*\bfdefault{m}% - \fi% - \renewcommand*\mddefault{l}% - \if@tud@x@mweights@enabled% - \def\bfseries@rm{m}% - \def\bfseries@sf{m}% - \def\bfseries@tt{m}% - \def\mdseries@rm{l}% - \def\mdseries@sf{l}% - \def\mdseries@tt{l}% - \fi% - \else% heavy - \if@tud@cdfont@ultrabold% ultrabold - \renewcommand*\bfdefault{eb}% - \else% normalbold - \renewcommand*\bfdefault{b}% - \fi% - \renewcommand*\mddefault{m}% - \if@tud@x@mweights@enabled% - \def\bfseries@rm{b}% - \def\bfseries@sf{b}% - \def\bfseries@tt{b}% - \def\mdseries@rm{m}% - \def\mdseries@sf{m}% - \def\mdseries@tt{m}% - \fi% - \fi% - \renewcommand*\rmdefault{\sfdefault}% - \renewcommand*\itdefault{\sldefault}% + \else% + \tud@cs@restore{rmdefault}% + \tud@cs@restore{sfdefault}% + \tud@cs@restore{ttdefault}% + \tud@cs@restore{bfdefault}% + \tud@cs@restore{mddefault}% + \tud@cs@restore{updefault}% + \tud@cs@restore{sldefault}% + \tud@cs@restore{itdefault}% + \tud@cs@restore{familydefault}% + \tud@cs@restore{seriesdefault}% + \tud@cs@restore{shapedefault}% + \if@tud@x@mweights@enabled% + \tud@cs@restore{bfseries@rm}% + \tud@cs@restore{mdseries@rm}% + \tud@cs@restore{bfseries@sf}% + \tud@cs@restore{mdseries@sf}% + \tud@cs@restore{bfseries@tt}% + \tud@cs@restore{mdseries@tt}% + \fi% + \if@tud@x@fontspec@enabled% + \tud@cs@restore{rmfamily}% + \tud@cs@restore{sffamily}% + \tud@cs@restore{ttfamily}% \fi% - \renewcommand*\familydefault{\sfdefault}% - \renewcommand*\seriesdefault{\mddefault}% - \renewcommand*\shapedefault{\updefault}% \fi% \if@tud@x@mweights@enabled% \edef\rmdef@ult{\rmdefault}% @@ -941,14 +1345,13 @@ \fi% % \end{macrocode} % Zum Ende werden einige Abstände abhängig von der gewählten Schriftgröße -% definiert. Danach erfolgt die Behandlung der Mathematikschriften und die -% gewählte Standardschrift aktiviert. Zum Schluss wird das Layout erneuert. +% definiert. Danach wird gewählte Standardschrift aktiviert und für die Klassen +% das Layout erneuert. % \begin{macrocode} - \ifundef{\tud@font@math@init}{\tud@font@math@set}{}% \tud@font@skip@set% \normalfont\selectfont% %<*class> - \tud@layout@process% + \tud@cd@process% \global\@tud@head@font@settrue% %</class> } @@ -959,13 +1362,104 @@ % \end{macro}^^A \sfdef@ult % \end{macro}^^A \rmdef@ult % \end{macro}^^A \mdseries@tt -% \end{macro}^^A \mdseries@sf -% \end{macro}^^A \mdseries@rm % \end{macro}^^A \bfseries@tt +% \end{macro}^^A \mdseries@sf % \end{macro}^^A \bfseries@sf +% \end{macro}^^A \mdseries@rm % \end{macro}^^A \bfseries@rm -% \end{macro}^^A \if@tud@x@mweights@enabled % \end{macro}^^A \tud@font@set +% \begin{macro}{\tud@cdfont@set} +% \changes{v2.06}{2018/06/28}{neu}^^A +% \begin{macro}{\tud@cdfont@@set} +% \changes{v2.06}{2018/06/28}{neu}^^A +% \begin{macro}{\tud@cdfont@md} +% \changes{v2.06}{2018/06/28}{neu}^^A +% \begin{macro}{\tud@cdfont@bf} +% \changes{v2.06}{2018/06/28}{neu}^^A +% \begin{macro}{\tud@cdfont@ebf} +% \changes{v2.06}{2018/06/28}{neu}^^A +% Hiermit erfolgt die eigentliche Auswahl der Schriftfamilien für das \CD. +% \begin{macrocode} +\newcommand*\tud@cdfont@set{% + \if@tud@cdfont@fam@exist% + \if@tud@cdfont@lining% + \let\tud@cdfont@fam\tud@cdfont@fam@lf% + \else% + \let\tud@cdfont@fam\tud@cdfont@fam@osf% + \fi% +% \end{macrocode} +% Das Aktivieren der Schriften erfolgt entweder mit dem Paket \pkg{fontspec} +% oder\dots +% \begin{macrocode} + \if@tud@x@fontspec@enabled% + \tud@x@fontspec@set{sf}{\tud@cdfont@fam}% +% \end{macrocode} +% \dots nach dem NFSS. +% \begin{macrocode} + \else% + \renewcommand*\sfdefault{\tud@cdfont@fam}% + \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} +\newcommand*\tud@cdfont@ebf{bx} +\newcommand*\tud@cdfont@@set{% + \if@tud@cdfont@heavy% + \renewcommand*\tud@cdfont@md{m}% + \if@tud@cdfont@ultrabold% + \renewcommand*\tud@cdfont@bf{b}% + \renewcommand*\tud@cdfont@ebf{eb}% + \else% + \renewcommand*\tud@cdfont@bf{sb}% + \renewcommand*\tud@cdfont@ebf{b}% + \fi% + \else% + \renewcommand*\tud@cdfont@md{l}% + \if@tud@cdfont@ultrabold% + \renewcommand*\tud@cdfont@bf{sb}% + \renewcommand*\tud@cdfont@ebf{b}% + \else% + \renewcommand*\tud@cdfont@bf{m}% + \renewcommand*\tud@cdfont@ebf{sb}% + \fi% + \fi% +} +\if@tud@cdoldfont@active + \renewcommand*\tud@cdfont@@set{% + \if@tud@cdfont@heavy% + \renewcommand*\tud@cdfont@md{m}% + \if@tud@cdfont@ultrabold% + \renewcommand*\tud@cdfont@bf{eb}% + \renewcommand*\tud@cdfont@ebf{eb}% + \else% + \renewcommand*\tud@cdfont@bf{b}% + \renewcommand*\tud@cdfont@ebf{eb}% + \fi% + \else% + \renewcommand*\tud@cdfont@md{l}% + \if@tud@cdfont@ultrabold% + \renewcommand*\tud@cdfont@bf{b}% + \renewcommand*\tud@cdfont@ebf{eb}% + \else% + \renewcommand*\tud@cdfont@bf{m}% + \renewcommand*\tud@cdfont@ebf{b}% + \fi% + \fi% + }% +\fi +% \end{macrocode} +% \end{macro}^^A \tud@cdfont@ebf +% \end{macro}^^A \tud@cdfont@bf +% \end{macro}^^A \tud@cdfont@md +% \end{macro}^^A \tud@cdfont@@set +% \end{macro}^^A \tud@cdfont@set % \begin{macro}{\tud@font@skip@set} % \changes{v2.04}{2015/02/17}{neu}^^A % \begin{macro}{\tud@font@skip@@set} @@ -1029,20 +1523,193 @@ % \end{macro}^^A \smallskipamount % \end{macro}^^A \tud@font@skip@@set % \end{macro}^^A \tud@font@skip@set -% \begin{macro}{\tud@font@init} +% \begin{macro}{\tud@cdfont@init} % \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@x@fontspec@fam@univ} -% \changes{v2.05l}{2017/03/28}{neu}^^A -% \begin{macro}{\tud@x@fontspec@set@univ} -% \changes{v2.05l}{2017/03/28}{neu}^^A -% \begin{macro}{\tud@x@fontspec@fam@din} -% \changes{v2.05l}{2017/03/28}{neu}^^A -% \begin{macro}{\tud@x@fontspec@set@din} -% \changes{v2.05l}{2017/03/28}{neu}^^A -% \begin{macro}{\tud@font@fallback} -% \changes{v2.05}{2015/12/14}{neu}^^A -% \begin{macro}{\tud@font@fallback@wrn} -% \changes{v2.05}{2015/12/14}{neu}^^A +% \begin{macro}{\cdfontln} +% \changes{v2.06}{2018/06/29}{neu}^^A +% \begin{macro}{\cdfontrn} +% \changes{v2.06}{2018/06/29}{neu}^^A +% \begin{macro}{\cdfontsn} +% \changes{v2.06}{2018/06/29}{neu}^^A +% \begin{macro}{\cdfontbn} +% \changes{v2.06}{2018/06/29}{neu}^^A +% \begin{macro}{\cdfontxn} +% \changes{v2.06}{2018/06/29}{neu}^^A +% \begin{macro}{\cdfontli} +% \changes{v2.06}{2018/06/29}{neu}^^A +% \begin{macro}{\cdfontri} +% \changes{v2.06}{2018/06/29}{neu}^^A +% \begin{macro}{\cdfontsi} +% \changes{v2.06}{2018/06/29}{neu}^^A +% \begin{macro}{\cdfontbi} +% \changes{v2.06}{2018/06/29}{neu}^^A +% \begin{macro}{\cdfontxi} +% \changes{v2.06}{2018/06/29}{neu}^^A +% \begin{macro}{\textcdln} +% \changes{v2.06}{2018/06/29}{neu}^^A +% \begin{macro}{\textcdrn} +% \changes{v2.06}{2018/06/29}{neu}^^A +% \begin{macro}{\textcdsn} +% \changes{v2.06}{2018/06/29}{neu}^^A +% \begin{macro}{\textcdbn} +% \changes{v2.06}{2018/06/29}{neu}^^A +% \begin{macro}{\textcdxn} +% \changes{v2.06}{2018/06/29}{neu}^^A +% \begin{macro}{\textcdli} +% \changes{v2.06}{2018/06/29}{neu}^^A +% \begin{macro}{\textcdri} +% \changes{v2.06}{2018/06/29}{neu}^^A +% \begin{macro}{\textcdsi} +% \changes{v2.06}{2018/06/29}{neu}^^A +% \begin{macro}{\textcdbi} +% \changes{v2.06}{2018/06/29}{neu}^^A +% \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. +% \begin{macrocode} +\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. +% \begin{macrocode} + \if@tud@cdfont@fam@exist% + \if@tud@x@fontspec@enabled% + \def\tud@res@a{% + UprightFont={OpenSans-Regular},% + FontFace={l}{n}{OpenSans-Light},% + FontFace={m}{n}{OpenSans-Regular},% + FontFace={sb}{n}{OpenSans-SemiBold},% + FontFace={b}{n}{OpenSans-Bold},% + FontFace={bx}{n}{OpenSans-Bold},% + FontFace={eb}{n}{OpenSans-ExtraBold},% + FontFace={l}{it}{OpenSans-LightItalic},% + FontFace={m}{it}{OpenSans-Italic},% + FontFace={sb}{it}{OpenSans-SemiBoldItalic},% + FontFace={b}{it}{OpenSans-BoldItalic},% + FontFace={bx}{it}{OpenSans-BoldItalic},% + FontFace={eb}{it}{OpenSans-ExtraBoldItalic}% + }% + \tud@x@fontspec@init{\tud@cdfont@fam@osf}{Numbers=OldStyle,\tud@res@a}% + \tud@x@fontspec@init{\tud@cdfont@fam@lf}{\tud@res@a}% +% \end{macrocode} +% Da einige Befehle mit \cs{DeclareTextSymbolDefault} für den Textmodus +% definiert werden und dabei lediglich die Kodierung auf \val{OMS} oder +% \val{OML} jedoch nicht den Namen der Schriftfamilie anpassen, werden hierfür +% Aliasbefehle definiert, welche sich der Schriften des Paketes \pkg{iwona} +% bedienen. +% \begin{macrocode} + \else% + \IfFileExists{omliwona.fd}{% + \input{omliwona.fd}% + \@for\tud@res@a:={l,m,sb,b,eb}\do{% + \csletcs{OML/\tud@cdfont@fam@lf/\tud@res@a/it}% + {OML/iwona/\tud@res@a/it}% + \csletcs{OML/\tud@cdfont@fam@osf/\tud@res@a/it}% + {OML/iwona/\tud@res@a/it}% + }% + }{}% + \IfFileExists{omsiwona.fd}{% + \input{omsiwona.fd}% + \@for\tud@res@a:={l,m,sb,b,eb}\do{% + \csletcs{OMS/\tud@cdfont@fam@lf/\tud@res@a/n}% + {OMS/iwona/\tud@res@a/n}% + \csletcs{OMS/\tud@cdfont@fam@osf/\tud@res@a/n}% + {OMS/iwona/\tud@res@a/n}% + }% + }{}% + \AtBeginDocument{% + \ifcsundef{textrightarrow}{}{% + \tud@cs@store{textrightarrow}% + \renewrobustcmd*{\textrightarrow}{% + {\fontfamily{iwona}\selectfont\tud@cs@use{textrightarrow}}% + }% + }% + }% + \fi% +% \end{macrocode} +% Es werden mehrere Schalter zur expliziten Auswahl für die Schriftschnitte +% \textcdln{Open~Sans~Light}, \textcdrn{Open~Sans~Regular}, +% \textcdsn{Open~Sans~SemiBold}, \textcdbn{Open~Sans~Bold} und +% \textcdxn{Open~Sans~ExtraBold} sowie \textcdli{Open~Sans~Light~Italic}, +% \textcdri{Open~Sans~Regular~Italic}, \textcdsi{Open~Sans~SemiBold} +% \textcdbi{Open~Sans~Bold~Italic} und \textcdxi{Open~Sans~ExtraBold~Italic} +% 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}} +% \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} + \fi% +% \end{macrocode} +% Außerdem werden für die Schriften noch die entsprechenden Textauswahlbefehle +% bereitgestellt. +% \begin{macrocode} + \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} +% \end{macro}^^A \textcdxi +% \end{macro}^^A \textcdbi +% \end{macro}^^A \textcdsi +% \end{macro}^^A \textcdri +% \end{macro}^^A \textcdli +% \end{macro}^^A \textcdxn +% \end{macro}^^A \textcdbn +% \end{macro}^^A \textcdsn +% \end{macro}^^A \textcdrn +% \end{macro}^^A \textcdln +% \end{macro}^^A \cdfontxi +% \end{macro}^^A \cdfontbi +% \end{macro}^^A \cdfontsi +% \end{macro}^^A \cdfontri +% \end{macro}^^A \cdfontli +% \end{macro}^^A \cdfontxn +% \end{macro}^^A \cdfontbn +% \end{macro}^^A \cdfontsn +% \end{macro}^^A \cdfontrn +% \end{macro}^^A \cdfontln +% \end{macro}^^A \tud@cdfont@init % \begin{macro}{\univln} % \begin{macro}{\univrn} % \begin{macro}{\univbn} @@ -1052,7 +1719,8 @@ % \begin{macro}{\univbs} % \begin{macro}{\univxs} % \begin{macro}{\dinbn} -% \begin{macro}{\tud@dinbn} +% \begin{macro}{\tud@db} +% \begin{macro}{\tud@db@wrn} % \begin{macro}{\textuln} % \begin{macro}{\texturn} % \begin{macro}{\textubn} @@ -1062,179 +1730,159 @@ % \begin{macro}{\textubs} % \begin{macro}{\textuxs} % \begin{macro}{\textdbn} -% Das Makro \cs{tud@font@init} wird für die Defintion aller Befehle zur Auswahl -% der Schriften des \CDs verwendet. +% Die Definition der Befehle der veralteten Schriften des \CDs. % \begin{macrocode} -\newcommand*\tud@font@init{% +\if@tud@cdoldfont@active + \renewcommand*\tud@cdfont@init{% + \if@tud@cdfont@fam@exist% + \if@tud@x@fontspec@enabled% + \def\tud@res@a{% + UprightFont={Univers},% + FontFace={l}{n}{Univers-Light},% + FontFace={m}{n}{Univers},% + FontFace={b}{n}{Univers-Bold},% + FontFace={bx}{n}{Univers-Bold},% + FontFace={eb}{n}{Univers-Black},% + FontFace={l}{it}{Univers-LightOblique},% + FontFace={m}{it}{Univers-Oblique},% + FontFace={b}{it}{Univers-BoldOblique},% + FontFace={bx}{it}{Univers-BoldOblique},% + FontFace={eb}{it}{Univers-BlackOblique}% + }% + \tud@x@fontspec@init{\tud@cdfont@fam@lf}{\tud@res@a}% + \fi% % \end{macrocode} -% Wurden alle notwendigen OTF"~Schriften gefunden, werden die zwei Makros -% definiert, in welchen die notwendigen Einstellungen gespeichert werden. -% Anschließend werden zwei Schriftfamilien erzeugt, damit später auf diese -% zugegriffen werden kann bzw. die Schriften geladen werden. +% Die Schalter zur expliziten Auswahl für die \Univers-Schriftschnitte. % \begin{macrocode} - \if@tud@x@fontspec@enabled% - \if@tud@univers% - \newcommand*\tud@x@fontspec@set@univ{% - Ligatures=TeX,% - BoldFont={},% - ItalicFont={},% - BoldItalicFont={},% - SmallCapsFont={},% - FontFace={l}{\updefault}{Univers Light},% - FontFace={m}{\updefault}{Univers},% - FontFace={b}{\updefault}{Univers Bold},% - FontFace={bx}{\updefault}{Univers Bold},% - FontFace={eb}{\updefault}{Univers Black},% - FontFace={l}{\sldefault}{Univers LightOblique},% - FontFace={m}{\sldefault}{Univers Oblique},% - FontFace={b}{\sldefault}{Univers BoldOblique},% - FontFace={bx}{\sldefault}{Univers BoldOblique},% - FontFace={eb}{\sldefault}{Univers BlackOblique}% - }% - \newfontfamily\tud@x@fontspec@fam@univ{Univers}[% - \tud@x@fontspec@set@univ,NFSSFamily=\tud@univers% - ]% - \fi% - \if@tud@dinbold% - \newcommand*\tud@x@fontspec@set@din{% - Ligatures=TeX,% - BoldFont={},% - ItalicFont={},% - BoldItalicFont={},% - SmallCapsFont={},% - FontFace={l}{\updefault}{DIN-Bold},% - FontFace={m}{\updefault}{DIN-Bold},% - FontFace={b}{\updefault}{DIN-Bold},% - FontFace={bx}{\updefault}{DIN-Bold},% - FontFace={eb}{\updefault}{DIN-Bold},% - FontFace={l}{\sldefault}{Font=DIN-Bold,FakeSlant=0.15},% - FontFace={m}{\sldefault}{Font=DIN-Bold,FakeSlant=0.15},% - FontFace={b}{\sldefault}{Font=DIN-Bold,FakeSlant=0.15},% - FontFace={bx}{\sldefault}{Font=DIN-Bold,FakeSlant=0.15},% - FontFace={eb}{\sldefault}{Font=DIN-Bold,FakeSlant=0.15}% - }% - \newfontfamily\tud@x@fontspec@fam@din{DIN-Bold}[% - \tud@x@fontspec@set@din,NFSSFamily=\tud@dinbold% - ]% - \fi% - \fi% -% \end{macrocode} -% Es werden mehrere Schalter zur expliziten Auswahl für die Schriftschnitte -% \textuln{Univers~45~Light}, \texturn{Univers~55~Regular}, -% \textubn{Univers~65~Bold}, \textuxn{Univers~75~Black}, -% \textuls{Univers~45~Light~Oblique}, \texturs{Univers~55~Regular~Oblique}, -% \textubs{Univers~65~Bold~Oblique} sowie \textuxs{Univers~75~Black~Oblique} -% und \DIN definiert. Diese können so im Dokument unabhängig von der Option -% \opt{cdfont} genutzt werden. Bei der Schriftauswahl der \DIN wird neben -% dieser noch die entsprechende Mathematikschrift aktiviert. -% \begin{macrocode} - \if@tud@univers% - \newrobustcmd*\univln{\usefont{\encodingdefault}{\tud@univers}{l}{n}}% - \newrobustcmd*\univrn{\usefont{\encodingdefault}{\tud@univers}{m}{n}}% - \newrobustcmd*\univbn{\usefont{\encodingdefault}{\tud@univers}{b}{n}}% - \newrobustcmd*\univxn{\usefont{\encodingdefault}{\tud@univers}{eb}{n}}% - \newrobustcmd*\univls{\usefont{\encodingdefault}{\tud@univers}{l}{sl}}% - \newrobustcmd*\univrs{\usefont{\encodingdefault}{\tud@univers}{m}{sl}}% - \newrobustcmd*\univbs{\usefont{\encodingdefault}{\tud@univers}{b}{sl}}% - \newrobustcmd*\univxs{\usefont{\encodingdefault}{\tud@univers}{eb}{sl}}% + \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}} % \end{macrocode} % Sind die notwendigen Schriften nicht installiert, werden die Schalter für die % Rückfallebene so definiert, dass diese eine Warnung ausgeben. % \begin{macrocode} - \else% - \newrobustcmd*\univln{\tud@font@fallback{Univers Light}{md}{up}}% - \newrobustcmd*\univrn{\tud@font@fallback{Univers}{md}{up}}% - \newrobustcmd*\univbn{\tud@font@fallback{Univers Bold}{bf}{up}}% - \newrobustcmd*\univxn{\tud@font@fallback{Univers Black}{bf}{up}}% - \newrobustcmd*\univls{\tud@font@fallback{Univers LightOblique}{md}{sl}}% - \newrobustcmd*\univrs{\tud@font@fallback{Univers Oblique}{md}{sl}}% - \newrobustcmd*\univbs{\tud@font@fallback{Univers BoldOblique}{bf}{sl}}% - \newrobustcmd*\univxs{\tud@font@fallback{Univers BlackOblique}{bf}{sl}}% - \fi% + \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} + \fi% % \end{macrocode} -% Nach der \Univers-Schriftfamilie wird für \DIN äquivalent verfahren. +% Außerdem werden für die Schriften noch die entsprechenden Textauswahlbefehle +% bereitgestellt. % \begin{macrocode} - \if@tud@dinbold% - \newrobustcmd*\tud@dinbn{\usefont{\encodingdefault}{\tud@dinbold}{b}{n}}% - \if@tud@dinboldmath% - \appto\tud@dinbn{\mathversion{dinbold}}% - \fi% - \newrobustcmd*\dinbn{\tud@dinbn}% + \newcommand*\textuln{}% + \newcommand*\texturn{}% + \newcommand*\textubn{}% + \newcommand*\textuxn{}% + \newcommand*\textuls{}% + \newcommand*\texturs{}% + \newcommand*\textubs{}% + \newcommand*\textuxs{}% + \DeclareTextFontCommand\textuln{\univln}% + \DeclareTextFontCommand\texturn{\univrn}% + \DeclareTextFontCommand\textubn{\univbn}% + \DeclareTextFontCommand\textuxn{\univxn}% + \DeclareTextFontCommand\textuls{\univls}% + \DeclareTextFontCommand\texturs{\univrs}% + \DeclareTextFontCommand\textubs{\univbs}% + \DeclareTextFontCommand\textuxs{\univxs}% % \end{macrocode} -% Da der Schalter \cs{dinbn} innerhalb der Überschriften verwendet wird, sollte -% dieser zumindest auch auf den Überschriftenstil schalten, falls \DIN elbst -% nicht installiert ist. +% Diese werden auch für die Definition der neuen Schriftauswahlbefehle genutzt. % \begin{macrocode} - \else% - \newrobustcmd*\tud@dinbn{\sectfont}% - \newrobustcmd*\dinbn{\tud@font@fallback@wrn{DIN-Bold}\tud@dinbn}% - \fi% + \newrobustcmd*\cdfontln{\univln}% + \newrobustcmd*\cdfontrn{\univrn}% + \newrobustcmd*\cdfontsn{\univrn}% + \newrobustcmd*\cdfontbn{\univbn}% + \newrobustcmd*\cdfontxn{\univxn}% + \newrobustcmd*\cdfontli{\univls}% + \newrobustcmd*\cdfontri{\univrs}% + \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} -% Außerdem werden für die Schriften noch die entsprechenden Textauswahlbefehle -% bereitgestellt. +% Anschließend wird für \DIN äquivalent verfahren. % \begin{macrocode} - \newcommand*\textuln{}% - \newcommand*\texturn{}% - \newcommand*\textubn{}% - \newcommand*\textuxn{}% - \newcommand*\textuls{}% - \newcommand*\texturs{}% - \newcommand*\textubs{}% - \newcommand*\textuxs{}% - \newcommand*\textdbn{}% - \DeclareTextFontCommand\textuln{\univln}% - \DeclareTextFontCommand\texturn{\univrn}% - \DeclareTextFontCommand\textubn{\univbn}% - \DeclareTextFontCommand\textuxn{\univxn}% - \DeclareTextFontCommand\textuls{\univls}% - \DeclareTextFontCommand\texturs{\univrs}% - \DeclareTextFontCommand\textubs{\univbs}% - \DeclareTextFontCommand\textuxs{\univxs}% - \DeclareTextFontCommand\textdbn{\dinbn}% -% \end{macrocode} -% Zuletzt werden Makros bereitgestellt, welche normalerweise durch das Paket -% \pkg{babel} vorgehalten werden. -% \begin{macrocode} -%^^A \def\tud@reserved##1##2{% -%^^A \ifundef{##2}{}{% -%^^A \ProvideTextCommand{##1}{\encodingdefault}{\TextOrMath{##2}{\mbox{##2}}}% -%^^A }% -%^^A }% -%^^A \tud@reserved{\SS}{SS}% -%^^A \tud@reserved{\glq}{\quotesinglbase}% -%^^A \tud@reserved{\grq}{\textquoteleft}% -%^^A \tud@reserved{\glqq}{\quotedblbase}% -%^^A \tud@reserved{\grqq}{\textquotedblleft}% -%^^A \tud@reserved{\flq}{\guilsinglleft}% -%^^A \tud@reserved{\frq}{\guilsinglright}% -%^^A \tud@reserved{\flqq}{\guillemotleft}% -%^^A \tud@reserved{\frqq}{\guillemotright}% -% \end{macrocode} -% Nach der optionsabhängigen Definition der Schriftauswahlbefehle wird der -% Initialisierungsbefehle undefiniert gesetzt. -% \begin{macrocode} - \undef\tud@font@init% -} + \if@tud@cdfont@db@exist% + \if@tud@x@fontspec@enabled% + \def\tud@res@a{% + UprightFont={DIN-Bold},% + FontFace={l}{n}{DIN-Bold},% + FontFace={m}{n}{DIN-Bold},% + FontFace={b}{n}{DIN-Bold},% + FontFace={bx}{n}{DIN-Bold},% + FontFace={eb}{n}{DIN-Bold},% + FontFace={l}{it}{Font=DIN-Bold,FakeSlant=0.15},% + FontFace={m}{it}{Font=DIN-Bold,FakeSlant=0.15},% + FontFace={b}{it}{Font=DIN-Bold,FakeSlant=0.15},% + FontFace={bx}{it}{Font=DIN-Bold,FakeSlant=0.15},% + FontFace={eb}{it}{Font=DIN-Bold,FakeSlant=0.15}% + }% + \tud@x@fontspec@init{\tud@cdfont@db}{\tud@res@a}% + \fi% % \end{macrocode} -% Hier wird die Rückfallebene für die Schriftschalter sowie die dazugehörige -% Warnung definiert. +% Bei der Schriftauswahl wird die entsprechende Mathematikschrift aktiviert. % \begin{macrocode} -\newcommand*\tud@font@fallback[3]{% - \tud@font@fallback@wrn{#1}% - \sffamily\csuse{#2series}\csuse{#3shape}% -} -\newcommand*\tud@font@fallback@wrn[1]{% + \newrobustcmd*\tud@db{% + \usefont{\encodingdefault}{\tud@cdfont@db}{b}{n}% + \if@tud@cdmath@active\mathversion{tuddin}\fi% + }% + \newrobustcmd*\dinbn{\tud@db}% +% \end{macrocode} +% Da der Schalter \cs{dinbn} innerhalb der Überschriften verwendet wird, sollte +% dieser zumindest auch auf den Überschriftenstil schalten, falls die benötigte +% Schrift selbst nicht installiert ist. +% \begin{macrocode} + \else% + \newrobustcmd*\tud@db{\tud@db@wrn\sectfont}% + \newcommand*\tud@db@wrn{% %<*class> - \ClassWarning{\TUD@Class@Name}% + \ClassWarning{\TUD@Class@Name}% %</class> %<*package> - \PackageWarning{tudscrfonts}% + \PackageWarning{tudscrfonts}% %</package> - {% - The requested font `#1' is not available, so\MessageBreak% - a fallback layout is used% + {% + Font `DIN-Bold' is not available and therefore\MessageBreak + can not be used for headings% + }% + \global\let\tud@db@wrn\relax% + }% + \newrobustcmd*\dinbn{\tud@cdfont@fallback@wrn{DIN-Bold}\sectfont}% + \fi% + \newcommand*\textdbn{}% + \DeclareTextFontCommand\textdbn{\dinbn}% }% -} +\fi % \end{macrocode} % \end{macro}^^A \textdbn % \end{macro}^^A \textuxs @@ -1245,7 +1893,8 @@ % \end{macro}^^A \textubn % \end{macro}^^A \texturn % \end{macro}^^A \textuln -% \end{macro}^^A \tud@dinbn +% \end{macro}^^A \tud@db@wrn +% \end{macro}^^A \tud@db % \end{macro}^^A \dinbn % \end{macro}^^A \univxs % \end{macro}^^A \univbs @@ -1255,61 +1904,104 @@ % \end{macro}^^A \univbn % \end{macro}^^A \univrn % \end{macro}^^A \univln -% \end{macro}^^A \tud@font@fallback@wrn -% \end{macro}^^A \tud@font@fallback -% \end{macro}^^A \tud@x@fontspec@set@din -% \end{macro}^^A \tud@x@fontspec@fam@din -% \end{macro}^^A \tud@x@fontspec@set@univ -% \end{macro}^^A \tud@x@fontspec@fam@univ -% \end{macro}^^A \tud@font@init +% \begin{macro}{\tud@cdfont@fallback} +% \changes{v2.05}{2015/12/14}{neu}^^A +% \begin{macro}{\tud@cdfont@fallback@wrn} +% \changes{v2.05}{2015/12/14}{neu}^^A +% Hier wird die Rückfallebene für die Schriftschalter sowie die dazugehörige +% Warnung definiert. +% \begin{macrocode} +\newcommand*\tud@cdfont@fallback[4]{% + \newrobustcmd*#1{% + \tud@cdfont@fallback@wrn{#2}% + \sffamily\csuse{#3series}\csuse{#4shape}% + }% +} +\newcommand*\tud@cdfont@fallback@wrn[1]{% +%<*class> + \ClassWarning{\TUD@Class@Name}% +%</class> +%<*package> + \PackageWarning{tudscrfonts}% +%</package> + {% + The requested font `#1'\MessageBreak% + is not available, a fallback layout is used% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@cdfont@fallback@wrn +% \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}{\textcdfont} +% \begin{macro}{\textcd} % \changes{v2.04}{2015/03/04}{neu}^^A % \begin{macro}{\tud@cdfont@get} % \changes{v2.04}{2015/03/04}{neu}^^A +% \changes{v2.06}{2018/06/29}{für \OpenSans überarbeitet}^^A % \begin{macro}{\tud@cdfont@trim} % \changes{v2.04}{2015/03/04}{neu}^^A +% \changes{v2.06}{2018/06/29}{für \OpenSans überarbeitet}^^A % \begin{macro}{\tud@cdfont@@trim} % \changes{v2.04}{2015/03/04}{neu}^^A % Die Klassen \cls{tudposter} und \cls{tudmathposter} definieren den Befehl % \cs{tudfont}, mit welchem die Schriften des \CDs der \TnUD auch mit Klarnamen % ausgewählt werden können. Zur Kompatibilität wird der Befehl \cs{cdfont} % definiert, welcher die gleiche Funktionalität bereitstellt. Zusätzlich wird -% der Befehl \cs{textcdfont} bereitgestellt, der die Auswahl der Schrift als +% der Befehl \cs{textcd} bereitgestellt, der die Auswahl der Schrift als % Textbefehl ermöglicht. % \begin{macrocode} \newcommand*\cdfont[1]{% \tud@cdfont@get{#1}% \ifx\@tempc\relax\else% - \ifstr{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}% + \csuse{cdfont\@tempc}% \fi% } -\providecommand*\tudfont[1]{\cdfont{#1}} -\newcommand*\textcdfont[2]{% +\newcommand*\textcd[2]{% \tud@cdfont@get{#1}% - \ifx\@tempc\relax\else% - \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}% + \ifx\@tempc\relax% + \textsf{#2}% + \else% + \csuse{textcd\@tempc}{#2}% \fi% } +\if@tud@cdoldfont@active + \renewcommand*\cdfont[1]{% + \tud@cdfont@get{#1}% + \ifx\@tempc\relax\else% + \ifstr{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}% + \fi% + }% + \renewcommand*\textcd[2]{% + \tud@cdfont@get{#1}% + \ifx\@tempc\relax% + \textsf{#2}% + \else% + \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}% + \fi% + }% +\fi \newcommand*\tud@cdfont@get[1]{% \tud@cdfont@trim\@tempa{#1}% - \ifstr{\@tempa}{45}{\def\@tempc{ln}}{% - \ifstr{\@tempa}{55}{\def\@tempc{rn}}{% - \ifstr{\@tempa}{65}{\def\@tempc{bn}}{% - \ifstr{\@tempa}{75}{\def\@tempc{xn}}{% - \ifstr{\@tempa}{45oblique}{\def\@tempc{ls}}{% - \ifstr{\@tempa}{55oblique}{\def\@tempc{rs}}{% - \ifstr{\@tempa}{65oblique}{\def\@tempc{bs}}{% - \ifstr{\@tempa}{75oblique}{\def\@tempc{xs}}{% - \ifstr{\@tempa}{oblique45}{\def\@tempc{ls}}{% - \ifstr{\@tempa}{oblique55}{\def\@tempc{rs}}{% - \ifstr{\@tempa}{oblique65}{\def\@tempc{bs}}{% - \ifstr{\@tempa}{oblique75}{\def\@tempc{xs}}{% - \ifstr{\@tempa}{din}{\def\@tempc{dinbn}}{% - \ifstr{\@tempa}{din65}{\def\@tempc{dinbn}}{% + \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}}{% \let\@tempc\relax% %<*class> \ClassWarning{\TUD@Class@Name}% @@ -1318,8 +2010,36 @@ \PackageWarning{tudscrfonts}% %</package> {The font `#1' is unknown}% - }}}}}}}}}}}}}}% + }}}}}}}}}}}}}}}}}% } +\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}}{% + \let\@tempc\relax% +%<*class> + \ClassWarning{\TUD@Class@Name}% +%</class> +%<*package> + \PackageWarning{tudscrfonts}% +%</package> + {The font `#1' is unknown}% + }}}}}}}}}}}}}}% + }% +\fi \newcommand*\tud@cdfont@trim[2]{% \protected@edef\@tempa{\trim@spaces{#2}}% \tud@lowerstring{\@tempa}{\@tempa}% @@ -1327,22 +2047,45 @@ \tud@cdfont@@trim{-}{}% \tud@cdfont@@trim{_}{}% \tud@cdfont@@trim{~}{}% - \tud@cdfont@@trim{ce}{}% - \tud@cdfont@@trim{ff}{}% - \tud@cdfont@@trim{univers}{}% - \tud@cdfont@@trim{60}{65}% - \tud@cdfont@@trim{light}{45}% - \tud@cdfont@@trim{regular}{55}% - \tud@cdfont@@trim{bold}{65}% - \tud@cdfont@@trim{black}{75}% - \tud@cdfont@@trim{4545}{45}% - \tud@cdfont@@trim{5555}{55}% - \tud@cdfont@@trim{6565}{65}% - \tud@cdfont@@trim{7575}{75}% - \tud@cdfont@@trim{italic}{oblique}% - \tud@cdfont@@trim{slanted}{oblique}% + \tud@cdfont@@trim{opensans}{}% + \tud@cdfont@@trim{light}{l}% + \tud@cdfont@@trim{regular}{r}% + \tud@cdfont@@trim{book}{r}% + \tud@cdfont@@trim{semibold}{s}% + \tud@cdfont@@trim{demi}{s}% + \tud@cdfont@@trim{extrabold}{x}% + \tud@cdfont@@trim{black}{x}% + \tud@cdfont@@trim{bold}{b}% + \tud@cdfont@@trim{italic}{i}% + \tud@cdfont@@trim{oblique}{i}% + \tud@cdfont@@trim{slanted}{i}% \let#1\@tempa% } +\if@tud@cdoldfont@active + \renewcommand*\tud@cdfont@trim[2]{% + \protected@edef\@tempa{\trim@spaces{#2}}% + \tud@lowerstring{\@tempa}{\@tempa}% + \tud@cdfont@@trim{ }{}% + \tud@cdfont@@trim{-}{}% + \tud@cdfont@@trim{_}{}% + \tud@cdfont@@trim{~}{}% + \tud@cdfont@@trim{ce}{}% + \tud@cdfont@@trim{ff}{}% + \tud@cdfont@@trim{univers}{}% + \tud@cdfont@@trim{60}{65}% + \tud@cdfont@@trim{light}{45}% + \tud@cdfont@@trim{regular}{55}% + \tud@cdfont@@trim{bold}{65}% + \tud@cdfont@@trim{black}{75}% + \tud@cdfont@@trim{4545}{45}% + \tud@cdfont@@trim{5555}{55}% + \tud@cdfont@@trim{6565}{65}% + \tud@cdfont@@trim{7575}{75}% + \tud@cdfont@@trim{italic}{oblique}% + \tud@cdfont@@trim{slanted}{oblique}% + \let#1\@tempa% + }% +\fi \newcommand*\tud@cdfont@@trim[2]{% \def\@tempb##1#1##2\relax{\def\@tempa{##1#2##2}}% \@expandtwoargs\in@{#1}{\@tempa}% @@ -1355,7 +2098,7 @@ % \end{macro}^^A \tud@cdfont@@trim % \end{macro}^^A \tud@cdfont@trim % \end{macro}^^A \tud@cdfont@get -% \end{macro}^^A \textcdfont +% \end{macro}^^A \textcd % \end{macro}^^A \tudfont % \end{macro}^^A \cdfont % @@ -1364,371 +2107,482 @@ %<*option> % \fi % +% \subsubsection{TypeWriter-Schriften} +% +% \begin{option}{ttfont} +% \changes{v2.06}{2018/07/12}{neu}^^A +% \begin{macro}{\tud@ttfont@num} +% \changes{v2.06}{2018/07/12}{neu}^^A +% Mit dieser Option regelt, ob die TypeWriter-Schriften durch den Anwender +% manuell eingestellt werden oder aber die entsprechenden Schriften aus den +% Paketen \pkg{lmodern} oder \pkg{roboto-mono} zum Einsatz kommt. +% \begin{macrocode} +\newcommand*\tud@ttfont@num{0} +\TUD@key{ttfont}[true]{% + \TUD@set@numkey{ttfont}{@tempa}{% + \TUD@bool@numkey,% + {roboto}{1},{roboto-mono}{1},{robo}{1},% + {lm}{2},{lmtt}{2},{lmodern}{2}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% false + \renewcommand*\tud@ttfont@num{0}% + \or% roboto + \renewcommand*\tud@ttfont@num{1}% + \or% lmodern + \renewcommand*\tud@ttfont@num{2}% + \fi% + \TUD@SpecialOptionAtDocument{tud@font@set}% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@ttfont@num +% \end{option}^^A ttfont +% +% \iffalse +%</option> +%<*body> +% \fi +% +% \begin{macro}{\tud@ttfont@set} +% \changes{v2.06}{2018/07/12}{neu}^^A +% \begin{macro}{\tud@ttfont@@set} +% \changes{v2.06}{2018/07/12}{neu}^^A +% \begin{macro}{\tud@ttfont@md} +% \changes{v2.06}{2018/07/12}{neu}^^A +% \begin{macro}{\tud@ttfont@bf} +% \changes{v2.06}{2018/07/12}{neu}^^A +% \begin{macro}{\tud@ttfont@ebf} +% \changes{v2.06}{2018/07/12}{neu}^^A +% Die Auswahl der TypeWriter-Schrift. +% \begin{macrocode} +\newcommand*\tud@ttfont@set{% + \if@tud@ttfont@rb@exist\else\ifnum\tud@ttfont@num=\@ne\relax% +%<*class> + \ClassWarning{\TUD@Class@Name}% +%</class> +%<*package> + \PackageWarning{tudscrfonts}% +%</package> + {% + The package `roboto-mono' is missing so the\MessageBreak% + typewriter font of package `lmodern' is used% + }% + \TUDoptions{ttfont=lmodern}% + \fi\fi% + \ifcase\tud@ttfont@num\relax% false + \let\tud@ttfont@fam\ttdefault% + \or% roboto + \let\tud@ttfont@fam\tud@ttfont@rb% + \or% lmodern + \let\tud@ttfont@fam\tud@ttfont@lm% + \fi% + \ifcase\tud@ttfont@num\relax\else% !false + \if@tud@x@fontspec@enabled% +% \end{macrocode} +% 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% + \tud@x@fontspec@set{tt}{\tud@ttfont@fam}% + \fi% + \else% + \renewcommand*\ttdefault{\tud@ttfont@fam}% + \fi% + \fi% + \tud@ttfont@@set% +} +\newcommand*\tud@ttfont@md{} +\newcommand*\tud@ttfont@bf{} +\newcommand*\tud@ttfont@ebf{} +\newcommand*\tud@ttfont@@set{% + \ifcase\tud@ttfont@num\relax% + \ifundef{\mdseries@tt}{% + \edef\tud@ttfont@md{\tud@cs@use{mddefault}}% + }{% + \edef\tud@ttfont@md{\mdseries@tt}% + }% + \ifundef{\bfseries@tt}{% + \edef\tud@ttfont@bf{\tud@cs@use{bfdefault}}% + }{% + \edef\tud@ttfont@bf{\bfseries@tt}% + }% + \edef\tud@ttfont@ebf{\tud@ttfont@bf}% + \or% roboto + \renewcommand*\tud@ttfont@md{\tud@cdfont@md}% + \renewcommand*\tud@ttfont@bf{\tud@cdfont@bf}% + \renewcommand*\tud@ttfont@ebf{\tud@cdfont@ebf}% + \else% lmodern + \if@tud@cdfont@heavy% + \renewcommand*\tud@ttfont@md{m}% + \renewcommand*\tud@ttfont@bf{b}% + \renewcommand*\tud@ttfont@ebf{b}% + \else% + \renewcommand*\tud@ttfont@md{l}% + \if@tud@cdfont@ultrabold% + \renewcommand*\tud@ttfont@bf{b}% + \renewcommand*\tud@ttfont@ebf{b}% + \else% + \renewcommand*\tud@ttfont@bf{m}% + \renewcommand*\tud@ttfont@ebf{b}% + \fi% + \fi% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@ttfont@ebf +% \end{macro}^^A \tud@ttfont@bf +% \end{macro}^^A \tud@ttfont@md +% \end{macro}^^A \tud@ttfont@@set +% \end{macro}^^A \tud@ttfont@set +% \begin{macro}{\tud@ttfont@init} +% \changes{v2.06}{2018/07/12}{neu}^^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. +% \begin{macrocode} +\newcommand*\tud@ttfont@init{% +% \end{macrocode} +% Für die \texttt{RobotoMono} wird der Skalierungsfaktor fest definiert. +% \begin{macrocode} + \newcommand*\tud@ttfont@rb@scale{0.9}% + \if@tud@x@fontspec@enabled% + \if@tud@ttfont@rb@exist% + \tud@x@fontspec@init{\tud@ttfont@rb}{% + Scale={\tud@ttfont@rb@scale},% + UprightFont={RobotoMono-Regular},% + FontFace={l}{n}{RobotoMono-Light},% + FontFace={m}{n}{RobotoMono-Regular},% + FontFace={sb}{n}{RobotoMono-Medium},% + FontFace={b}{n}{RobotoMono-Bold},% + FontFace={bx}{n}{RobotoMono-Bold},% + FontFace={eb}{n}{RobotoMono-Bold},% + FontFace={l}{it}{RobotoMono-LightItalic},% + FontFace={m}{it}{RobotoMono-Italic},% + FontFace={sb}{it}{RobotoMono-MediumItalic},% + FontFace={b}{it}{RobotoMono-BoldItalic},% + FontFace={bx}{it}{RobotoMono-BoldItalic},% + FontFace={eb}{it}{RobotoMono-BoldItalic}% + }% + \fi% +% \end{macrocode} +% Gewöhnlich ist die Schrift \texttt{lmtt} via \pkg{fontspec} voreingestellt. +% Allerdings wird diese von einigen Paketen mit \cs{setmonofont} überschrieben. +% Für diesen Fall wird die Schriftfamilie \texttt{lmtt} mit den Mitteln von +% \pkg{fontspec} definiert. +% \begin{macrocode} + \ifx\ttdefault\tud@ttfont@lm\else% + \tud@x@fontspec@init{\tud@ttfont@lm}{% + UprightFont={LMMono10-Regular},% + FontFace={l}{n}{LMMonoLt10-Regular},% + FontFace={m}{n}{LMMono10-Regular},% + FontFace={b}{n}{LMMonoLt10-Bold},% + FontFace={bx}{n}{LMMonoLt10-Bold},% + FontFace={l}{it}{LMMonoLt10-Oblique},% + FontFace={m}{it}{LMMonoSlant10-Regular},% + FontFace={b}{it}{LMMonoLt10-BoldOblique},% + FontFace={bx}{it}{LMMonoLt10-BoldOblique}% + }% + \fi% + \else% +% \end{macrocode} +% Existiert das Paket \pkg{roboto-mono}, wird die Schriftfamilie \val{tudtt} +% definiert und die passenden Type1-Schriften für diese definiert. +% \begin{macrocode} + \if@tud@ttfont@rb@exist% +% \end{macrocode} +% Der Skalierungsfaktor für das NFSS gesetzt. +% \begin{macrocode} + \edef\tud@ttfont@rb@scale{s*[\tud@ttfont@rb@scale]}% + \begingroup% + \def\tud@res@c##1##2{% + \tud@lowerstring\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 +% den Teil des Dateinamens der \texttt{RobotoMono} für aufrechte Metriken und +% im dritten Argument den für kursive. +% \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% + }{}% + \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{it}{% + <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-\tud@res@a% + }{}% + \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{sl}{% + <->ssub*\tud@ttfont@rb/####1/it% + }{}% +% \end{macrocode} +% Kapitälchen sind nicht für alle Kodierungen definiert, weshalb diese nur +% optional definiert werden. +% \begin{macrocode} + \ifbool{##2}{% + \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{sc}{% + <->\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% + }{}% + \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{scsl}{% + <->ssub*\tud@ttfont@rb/####1/scit% + }{}% + }{}% + }% + \tud@res@b{l}{Light}{LightItalic}% + \tud@res@b{m}{Regular}{Italic}% + \tud@res@b{sb}{Medium}{MediumItalic}% + \tud@res@b{b}{Bold}{BoldItalic}% + \tud@res@b{bx}{Bold}{BoldItalic}% + }% + \tud@res@c{OT1}{true}% + \tud@res@c{T1}{true}% + \ifcsundef{T@LY1}{}{\tud@res@c{LY1}{true}}% + \ifcsundef{T@TS1}{}{\tud@res@c{TS1}{false}}% + \endgroup% + \fi% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@ttfont@rb@scale +% \end{macro}^^A \tud@ttfont@init +% +% \iffalse +%</body> +%<*option> +% \fi +% % \subsubsection{Schriften für den Mathematiksatz} % -% Da die Schriften des \CDs keinen Mathematiksatz beeinhalten, musste~-- -% insbesondere für griechische Symbole~-- eine passende Alternative gefunden -% werden. Die Auswahl an Mathematikschriften für \LaTeX{} ist relativ gering. -% Dennoch schien das \pkg{cmbright}-Paket dafür geeignet, weshalb dieses direkt -% bei der Installation der Schriften eingebunden wurde. +% 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. +% +% 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. % % \begin{option}{cdmath} -% \begin{macro}{\if@tud@cdmath} -% \begin{macro}{\if@tud@cdmath@locked} +% \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{% +% 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] % \begin{macrocode} -\bool@lock{@tud@cdmath} -\bool@std@lock{@tud@cdmath}{true}% +\tud@locked@newbool{@tud@cdmath@active} +\tud@locked@bool@preset{@tud@cdmath@active}{true}% \TUD@key{cdmath}[true]{% \TUD@set@numkey{cdmath}{@tempa}{% \TUD@bool@numkey,% {serifmath}{0},{serif}{0},{nosansmath}{0},{nosans}{0},% {sansmath}{1},{sans}{1},% - {upgreek}{2},{upright}{2},{uprightgreek}{2},{uprightGreek}{2},% - {slgreek}{3},{slanted}{3},{slantedgreek}{3},{slantedGreek}{3}% + {upgreek}{2},{uprightgreek}{2},{uprightgreeks}{2},% + {slgreek}{3},{slantedgreek}{3},{slantedgreeks}{3},% + {itgreek}{3},{italicgreek}{3},{italicgreeks}{3},% + {texgreek}{4},{latexgreek}{4},{texgreeks}{4},{latexgreeks}{4},% + {standardgreek}{4},{standardgreeks}{4}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \bool@set@lock{@tud@cdmath}{false}% - \TUD@SpecialOptionAtDocument{tud@font@math@set}% + \tud@locked@bool@set{@tud@cdmath@active}{false}% + \TUD@SpecialOptionAtDocument{tud@math@set}% \or% true - \bool@set@lock{@tud@cdmath}{true}% - \TUD@SpecialOptionAtDocument{tud@font@math@set}% - \or% upgreek + \tud@locked@bool@set{@tud@cdmath@active}{true}% + \TUD@SpecialOptionAtDocument{tud@math@set}% + \or% uprightgreek \TUDoptions{slantedgreek=false}% - \or% slgreek + \or% slantedgreek \TUDoptions{slantedgreek=true}% + \or% standardgreek + \TUDoptions{slantedgreek=standard}% \fi% \fi% } % \end{macrocode} -% \end{macro}^^A \if@tud@cdmath@locked -% \end{macro}^^A \if@tud@cdmath +% \end{macro}^^A \if@tud@cdmath@active@locked +% \end{macro}^^A \if@tud@cdmath@active % \end{option}^^A cdmath % \begin{option}{slantedgreek} % \begin{option}{slantedGreek} +% \begin{option}{slantedGreeks} % \changes{v2.04}{2015/02/27}{neu}^^A % \begin{macro}{\if@tud@slantedgreek} -% \begin{macro}{\if@tud@slantedgreek@locked} % Mit dieser Option kann die Neigung der griechischen Majuskeln geändert werden. % \begin{macrocode} -\bool@lock{@tud@slantedgreek} +\newcommand*\tud@slantedgreek@num{0} \TUD@key{slantedgreek}[true]{% - \TUD@set@ifkey{slantedgreek}{@tud@slantedgreek}{#1}% + \TUD@set@numkey{slantedgreek}{@tempa}{% + \TUD@bool@numkey,% + {up}{0},{upright}{0},% + {sl}{1},{slanted}{1},{it}{1},{italic}{1},% + {standard}{2},{std}{2},{tex}{2},{latex}{2},{stdgrk}{2},{stdgrks}{2},% + {standardgreek}{2},{standardgreeks}{2},% + {texgreek}{2},{latexgreek}{2},{texgreeks}{2},{latexgreeks}{2}% + }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \bool@set@lock{@tud@slantedgreek}{#1}% - \TUD@SpecialOptionAtDocument{tud@font@math@set}% + \ifcase\@tempa\relax% upright + \renewcommand*\tud@slantedgreek@num{0}% + \or% slanted + \renewcommand*\tud@slantedgreek@num{1}% + \or% standard + \renewcommand*\tud@slantedgreek@num{2}% + \fi% + \TUD@SpecialOptionAtDocument{tud@math@set}% \fi% } \TUD@key{slantedGreek}[true]{\TUDoptions{slantedgreek=#1}} +\TUD@key{slantedGreeks}[true]{\TUDoptions{slantedgreek=#1}} % \end{macrocode} -% \end{macro}^^A \if@tud@slantedgreek@locked % \end{macro}^^A \if@tud@slantedgreek +% \end{option}^^A slantedGreeks % \end{option}^^A slantedGreek % \end{option}^^A slantedgreek +% \begin{option}{lgrgreek} +% \changes{v2.06}{2019/06/13}{neu}^^A +% \begin{option}{lgrgreeks} +% \changes{v2.06}{2019/06/13}{neu}^^A +% \begin{option}{LGRgreek} +% \changes{v2.06}{2019/06/13}{neu}^^A +% \begin{option}{LGRgreeks} +% \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 +% LGR-Kodierung der aktuellen Schriftfamilie für den Mathematiksatz aktivieren. +% \begin{macrocode} +\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}} +\TUD@key{LGRgreek}[true]{\TUDoptions{lgrgreeks=#1}} +% \end{macrocode} +% \end{macro}^^A \if@tud@lgrgreeks +% \end{option}^^A LGRgreeks +% \end{option}^^A LGRgreek +% \end{option}^^A lgrgreeks +% \end{option}^^A lgrgreek % % \iffalse %</option> %<*body> % \fi % -% \begin{macro}{\tud@font@greek@loop} +% \begin{macro}{\tud@if@issymbolfont} +% \changes{v2.06}{2019/06/17}{neu}^^A +% \begin{macro}{\tud@if@ismathalphabet} +% \changes{v2.06}{2019/06/17}{neu}^^A +% Diese Abfragen prüfen, ob der gegebene Bezeichner bzw. das gegebene Makro +% für eine Deklaration mit \cs{DeclareSymbolFont} bzw. \cs{DeclareMathAlphabet} +% verwendet wurde. +% \begin{macrocode} +\newcommand*\tud@if@issymbolfont[1]{% + \begingroup% + \edef\tud@res@a{% + \noexpand\in@\expandafter\noexpand% + \csname sym#1\endcsname% + {\expandonce\group@list}% + }% + \tud@res@a% + \ifin@% + \aftergroup\@firstoftwo% + \else% + \aftergroup\@secondoftwo% + \fi% + \endgroup% +} +\@onlypreamble\tud@if@issymbolfont +\newcommand*\tud@if@ismathalphabet[1]{% + \begingroup% + \edef\tud@res@a{% + \noexpand\in@\expandafter\noexpand% + \csname\expandafter\@gobble\string#1\space\endcsname% + {\expandonce\alpha@list}% + }% + \tud@res@a% + \ifin@% + \aftergroup\@firstoftwo% + \else% + \aftergroup\@secondoftwo% + \fi% + \endgroup% +} +\@onlypreamble\tud@if@ismathalphabet +% \end{macrocode} +% \end{macro}^^A \tud@if@ismathalphabet +% \end{macro}^^A \tud@if@issymbolfont +% \begin{macro}{\tud@math@loop@greeks@all} % \changes{v2.04}{2015/03/10}{neu}^^A -% Um ggf. Anpassungen an den griechischen Majuskeln vornehmenzu können, wird -% das Makro \cs{tud@font@greek@loop} definert, mit dem eine Namensliste der -% Buchstaben durchlaufen wird. +% \begin{macro}{\tud@math@loop@greeks@uc} +% \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 +% durchlaufen wird. Dabei wird in Majuskeln und Minuskeln unterschieden. % \begin{macrocode} -\newcommand*\tud@font@greek@loop[1]{% +\newcommand*\tud@math@loop@greeks@all[1]{% + \tud@math@loop@greeks@uc{#1}% + \tud@math@loop@greeks@lc{#1}% +} +\newcommand*\tud@math@loop@greeks@uc[1]{% \@for\@tempa:={% Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega% - }\do{#1{\@tempa}}% + }\do{\expandafter#1\expandafter{\@tempa}}% +} +\newcommand*\tud@math@loop@greeks@lc[1]{% + \@for\@tempa:={% + alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota,kappa,lambda,% + mu,nu,xi,pi,rho,sigma,tau,upsilon,phi,chi,psi,omega,% + varepsilon,vartheta,varpi,varrho,varsigma,varphi% + }\do{\expandafter#1\expandafter{\@tempa}}% } % \end{macrocode} -% \end{macro}^^A \tud@font@greek@loop -% \begin{macro}{\tud@font@greek@declare} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@Gamma} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@Delta} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@Theta} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@Lambda} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@Xi} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@Pi} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@Sigma} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@Upsilon} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@Phi} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@Psi} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@upOmega} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@upGamma} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@upDelta} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@upTheta} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@upLambda} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@upXi} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@upPi} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@upSigma} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@upUpsilon} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@upPhi} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@upPsi} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@upOmega} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@varGamma} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@varDelta} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@varTheta} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@varLambda} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@varXi} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@varPi} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@varSigma} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@varUpsilon} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@varPhi} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@varPsi} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@varOmega} -% \changes{v2.04}{2015/03/10}{neu}^^A -% In Anlehnung an verschiedene Pakete für Mathematikschriften werden Symbole -% für aufrechte und kursive Majuskeln der griechischen Lettern definiert. Damit -% auch bei diesen Buchstaben ein Umschalten für die unterschiedlichen Schriften -% möglich ist, wird eine interne Version definiert und im Bedarfsfall der -% dazugehörige \LaTeX-Befehl mit dieser überschrieben. -% \begin{macrocode} -\newcommand*\tud@font@greek@declare[1]{% - \edef\@tempb{% - \noexpand\DeclareMathSymbol{\csname tud@up#1\endcsname}% - {\noexpand\mathalpha}{operators}{\the\@tempcnta}% - }\@tempb% - \edef\@tempb{% - \noexpand\DeclareMathSymbol{\csname tud@var#1\endcsname}% - {\noexpand\mathalpha}{letters}{\the\@tempcnta}% - }\@tempb% - \csletcs{tud@#1}{tud@up#1}% - \advance \@tempcnta by 1% -} -\@tempcnta=\z@\relax -\tud@font@greek@loop\tud@font@greek@declare -% \end{macrocode} -% \end{macro}^^A \tud@varOmega -% \end{macro}^^A \tud@varPsi -% \end{macro}^^A \tud@varPhi -% \end{macro}^^A \tud@varUpsilon -% \end{macro}^^A \tud@varSigma -% \end{macro}^^A \tud@varPi -% \end{macro}^^A \tud@varXi -% \end{macro}^^A \tud@varLambda -% \end{macro}^^A \tud@varTheta -% \end{macro}^^A \tud@varDelta -% \end{macro}^^A \tud@varGamma -% \end{macro}^^A \tud@upOmega -% \end{macro}^^A \tud@upPsi -% \end{macro}^^A \tud@upPhi -% \end{macro}^^A \tud@upUpsilon -% \end{macro}^^A \tud@upSigma -% \end{macro}^^A \tud@upPi -% \end{macro}^^A \tud@upXi -% \end{macro}^^A \tud@upLambda -% \end{macro}^^A \tud@upTheta -% \end{macro}^^A \tud@upDelta -% \end{macro}^^A \tud@upGamma -% \end{macro}^^A \tud@Omega -% \end{macro}^^A \tud@Psi -% \end{macro}^^A \tud@Phi -% \end{macro}^^A \tud@Upsilon -% \end{macro}^^A \tud@Sigma -% \end{macro}^^A \tud@Pi -% \end{macro}^^A \tud@Xi -% \end{macro}^^A \tud@Lambda -% \end{macro}^^A \tud@Theta -% \end{macro}^^A \tud@Delta -% \end{macro}^^A \tud@Gamma -% \end{macro}^^A \tud@font@greek@declare -% \begin{macro}{\tud@font@math@init} -% \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\mv@univers} -% \begin{macro}{\mv@universbold} -% \begin{macro}{\mv@dinbold} -% \changes{v2.02}{2014/06/27}{Symbole \val{symbols} werden aus Schriftart -% \DIN verwendet}^^A -% Für die Mathematikschriften im Fließtext werden für die lateinischen Lettern -% die \Univers"=Schriften des \CDs verwendet. Darin enthalten sind die auch die -% griechischen Buchstaben aus dem Paket \pkg{cmbright}. Zusätzlich werden aus -% dem \pkg{iwona}-Paket die mathematische Symbole verwendet. Es werden zwei -% Mathematikversion mit normalen sowie mit fetten Glyphen bereitgestellt. -% \begin{macrocode} -\newcommand*\mv@univers{} -\newcommand*\mv@universbold{} -\newcommand*\mv@dinbold{} -\newcommand*\tud@font@math@init{% - \if@tud@x@fontspec@enabled\if@tud@cdmath% - \ifboolexpr{bool {@tud@universmath} or bool {@tud@dinboldmath}}{% - \@ifpackagewith{fontspec}{no-math}{}{% -%<*class> - \ClassWarningNoLine{\TUD@Class@Name}% -%</class> -%<*package> - \PackageWarningNoLine{tudscrfonts}% -%</package> - {% - It's recommended to load package `fontspec'\MessageBreak% - with option `no-math', if you want to use the\MessageBreak% - corporate design fonts in math mode% - }% - }% - }{}% - \fi\fi% - \if@tud@universmath% - \DeclareMathVersion{univers}% - \DeclareMathVersion{universbold}% - \SetSymbolFont{operators}{univers}{OT1}{\tud@univers}{l}{n}% - \SetSymbolFont{operators}{universbold}{OT1}{\tud@univers}{b}{n}% - \SetSymbolFont{letters}{univers}{OML}{\tud@univers}{l}{sl}% - \SetSymbolFont{letters}{universbold}{OML}{\tud@univers}{b}{sl}% - \SetSymbolFont{symbols}{univers}{OMS}{\tud@univers}{l}{n}% - \SetSymbolFont{symbols}{universbold}{OMS}{\tud@univers}{b}{n}% - \SetSymbolFont{largesymbols}{univers}{OMX}{iwona}{m}{n}% - \SetSymbolFont{largesymbols}{universbold}{OMX}{iwona}{b}{n}% - \SetMathAlphabet{\mathrm}{univers}{OT1}{\tud@univers}{l}{n}% - \SetMathAlphabet{\mathrm}{universbold}{OT1}{\tud@univers}{b}{n}% - \SetMathAlphabet{\mathnormal}{univers}{OML}{\tud@univers}{l}{sl}% - \SetMathAlphabet{\mathnormal}{universbold}{OML}{\tud@univers}{b}{sl}% - \SetMathAlphabet{\mathbf}{univers}{OT1}{\tud@univers}{b}{n}% - \SetMathAlphabet{\mathbf}{universbold}{OT1}{\tud@univers}{eb}{n}% - \SetMathAlphabet{\mathsf}{univers}{OT1}{\tud@univers}{l}{n}% - \SetMathAlphabet{\mathsf}{universbold}{OT1}{\tud@univers}{b}{n}% - \SetMathAlphabet{\mathit}{univers}{OT1}{\tud@univers}{l}{sl}% - \SetMathAlphabet{\mathit}{universbold}{OT1}{\tud@univers}{b}{sl}% - \SetMathAlphabet{\mathtt}{univers}{OT1}{\tud@univers t}{l}{n}% - \SetMathAlphabet{\mathtt}{universbold}{OT1}{\tud@univers t}{b}{n}% - \SetMathAlphabet{\mathcal}{univers}{OMS}{lmsy}{m}{n}% - \SetMathAlphabet{\mathcal}{universbold}{OMS}{lmsy}{b}{n}% -% \end{macrocode} -% Das Paket \pkg{cmbright} bringt zusätzlich noch Schriftschnitte für das Paket -% \pkg{amsfonts} mit. Diese werden gegebenenfalls geladen. -% \begin{macrocode} - \@ifpackageloaded{amsfonts}{% - \DeclareFontFamily{U}{\tud@univers a}{}% - \DeclareFontShape{U}{\tud@univers a}{m}{n}{<->cmbras10}{}% - \SetSymbolFont{AMSa}{univers}{U}{\tud@univers a}{m}{n}% - \SetSymbolFont{AMSa}{universbold}{U}{\tud@univers a}{m}{n}% - \DeclareFontFamily{U}{\tud@univers b}{}% - \DeclareFontShape{U}{\tud@univers b}{m}{n}{<->cmbrbs10}{}% - \SetSymbolFont{AMSb}{univers}{U}{\tud@univers b}{m}{n}% - \SetSymbolFont{AMSb}{universbold}{U}{\tud@univers b}{m}{n}% - \SetMathAlphabet{\mathfrak}{univers}{U}{euf}{m}{n}% - \SetMathAlphabet{\mathfrak}{universbold}{U}{euf}{b}{n}% - }{}% - \fi% -% \end{macrocode} -% Auch für die Schrift \DIN werden mathematische Glyphen bereitgestellt. Diese -% wurden aus dem \pkg{iwona}-Paket entnommen. Auch die verwendeten Symbole -% stammen aus diesem Paket. -% \begin{macrocode} - \if@tud@dinboldmath% - \DeclareMathVersion{dinbold}% - \SetSymbolFont{operators}{dinbold}{OT1}{\tud@dinbold}{b}{n}% - \SetSymbolFont{letters}{dinbold}{OML}{\tud@dinbold}{b}{sl}% - \SetSymbolFont{symbols}{dinbold}{OMS}{\tud@dinbold}{b}{n}% - \SetSymbolFont{largesymbols}{dinbold}{OMX}{iwona}{ebc}{n}% - \SetMathAlphabet{\mathrm}{dinbold}{OT1}{\tud@dinbold}{b}{n}% - \SetMathAlphabet{\mathnormal}{dinbold}{OML}{\tud@dinbold}{b}{sl}% - \SetMathAlphabet{\mathbf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% - \SetMathAlphabet{\mathsf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% - \SetMathAlphabet{\mathit}{dinbold}{OT1}{\tud@dinbold}{b}{sl}% - \SetMathAlphabet{\mathtt}{dinbold}{OT1}{\tud@univers t}{b}{n}% - \SetMathAlphabet{\mathcal}{dinbold}{OMS}{lmsy}{b}{n}% - \fi% -% \end{macrocode} -% Wird das Paket \pkg{unicode-math} verwendet, werden keine Einstellungen für -% die Mathematikschriften vorgenommen\dots +% \end{macro}^^A \tud@math@loop@greeks@lc +% \end{macro}^^A \tud@math@loop@greeks@uc +% \end{macro}^^A \tud@math@loop@greeks@all +% \begin{macro}{\tud@math@declare@lgrgreeks} +% \changes{v2.06}{2019/06/18}{neu}^^A +% 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 +% Schriftfamilie, zweites und drittes Argument die Schriftstärke für normale +% und fette Glyphen, die letzten beiden die Schriftgestalt für aufrechte und +% kursive Variante. % \begin{macrocode} - \@ifpackageloaded{unicode-math}{% - \let\tud@font@math@set\relax% - \bool@set@lock{@tud@cdmath}{false}% +\newcommand*\tud@math@declare@lgrgreeks[5]{% + \ifundef{\T@LGR}{\DeclareFontEncoding{LGR}{}{}}{}% + \tud@if@issymbolfont{tudupgrk}{% + \SetSymbolFont{tudupgrk}{normal}{LGR}{#1}{#2}{#4}% }{% -% \end{macrocode} -% Für die griechischen Buchstaben wird mit \cs{tud@font@greek@check@slanted} -% geprüft, ob durch ein Paket diese auf die kursive Variante gesetzt wurden. -% Ist dies der Fall, wird der Standardwert für die Option \opt{slantedgreek} -% auf \val{true} gesetzt. Anschließend erfolgt die \emph{Intialisierung} der -% griechischen Großbuchstaben mit dem Befehl \cs{tud@font@greek@init}. -% \begin{macrocode} - \tud@font@greek@check@slanted% - \tud@font@greek@loop\tud@font@greek@init% -% \end{macrocode} -% Zum Schluss werden abhängig von der gewählten Einstellung für die Schriftart -% der Option \opt{cdfont} die benötigten Mathematikversionen geladen. -% \begin{macrocode} - \tud@font@math@set% + \DeclareSymbolFont{tudupgrk}{LGR}{#1}{#2}{#4}% }% -% \end{macrocode} -% Daran anschließend werden die \DIN-Schriften in einer Box verwendet, um das -% Laden der Schriftdefinitionen am Dokumentbeginn zu forcieren. -% \begin{macrocode} - \sbox\z@{\tud@dinbn$ $}% -} -% \end{macrocode} -% \end{macro}^^A \mv@dinbold -% \end{macro}^^A \mv@universbold -% \end{macro}^^A \mv@univers -% \end{macro}^^A \tud@font@math@init -% \begin{macro}{\tud@font@greek@check@slanted} -% \changes{v2.05d}{2016/09/22}{neu}^^A -% Dieser Befehl prüft die aktuelle Definition von \cs{Gamma} und vergleicht -% diese mit den kursiven Varianten des Buchstabens. Sind diese identisch, wird -% davon ausgegangen, dass ein Paket mit der Option \opt{slantedGreek} oder -% ähnlich geladen wurde. In diesem Fall wird der voreingestellte Wert für die -% entsprechende \TUDScript-Option gesetzt. -% \begin{macrocode} -\newcommand*\tud@font@greek@check@slanted{% - \let\@tempb\relax% - \let\@tempc\relax% - \DeclareMathSymbol{\@tempb}{\mathalpha}{letters}{0}% - \DeclareMathSymbol{\@tempc}{\mathord}{letters}{0}% - \@tempswafalse% - \ifnum\Gamma=\@tempb\relax\@tempswatrue\fi% - \ifnum\Gamma=\@tempc\relax\@tempswatrue\fi% - \if@tempswa% - \bool@std@lock{@tud@slantedgreek}{true}% - \fi% - \let\tud@font@greek@check@slanted\relax% + \SetSymbolFont{tudupgrk}{bold}{LGR}{#1}{#3}{#4}% + \tud@if@issymbolfont{tuditgrk}{% + \SetSymbolFont{tudupgrk}{normal}{LGR}{#1}{#2}{#5}% + }{% + \DeclareSymbolFont{tuditgrk}{LGR}{#1}{#2}{#5}% + }% + \SetSymbolFont{tuditgrk}{bold}{LGR}{#1}{#3}{#5}% } % \end{macrocode} -% Da die Definition der griechischen Buchstaben durch das Paket \pkg{flexisym} -% stark verändert wird, wird die Prüfung in jedem Fall vor besagtem Paket -% ausgeführt. -% \begin{macrocode} -\BeforePackage{flexisym}{\tud@font@greek@check@slanted} -% \end{macrocode} -% \end{macro}^^A \tud@font@greek@check@slanted -% \begin{macro}{\tud@font@greek@init} -% \changes{v2.04}{2015/03/10}{neu}^^A +% \end{macro}^^A \tud@math@declare@lgrgreeks +% \begin{macro}{\tud@math@map@greeks} +% \changes{v2.06}{2018/07/02}{neu}^^A +% \begin{macro}{\tud@math@map@@greeks} +% \changes{v2.06}{2018/07/02}{neu}^^A +% \begin{macro}{\tud@math@map@@@greeks} +% \changes{v2.06}{2018/07/02}{neu}^^A +% \begin{macro}{\tud@math@supplement@greeks} +% \changes{v2.06}{2019/06/19}{neu}^^A % \begin{macro}{\upDelta} % \begin{macro}{\upGamma} % \begin{macro}{\upLambda} @@ -1740,49 +2594,422 @@ % \begin{macro}{\upTheta} % \begin{macro}{\upUpsilon} % \begin{macro}{\upXi} -% \begin{macro}{\varDelta} -% \begin{macro}{\varGamma} -% \begin{macro}{\varLambda} -% \begin{macro}{\varOmega} -% \begin{macro}{\varPhi} -% \begin{macro}{\varPi} -% \begin{macro}{\varPsi} -% \begin{macro}{\varSigma} -% \begin{macro}{\varTheta} -% \begin{macro}{\varUpsilon} -% \begin{macro}{\varXi} -% Dieses Makro sorgt dafür, dass neben den normalen Makros für die griechischen -% Majuskeln die zusätzlichen Befehle für das explizite Auswählen aufrechter und -% kursiver Buchstaben. -% \begin{macrocode} -\newcommand*\tud@font@greek@init[1]{% +% \begin{macro}{\upalpha} +% \begin{macro}{\upbeta} +% \begin{macro}{\upgamma} +% \begin{macro}{\updelta} +% \begin{macro}{\upepsilon} +% \begin{macro}{\upzeta} +% \begin{macro}{\upeta} +% \begin{macro}{\uptheta} +% \begin{macro}{\upiota} +% \begin{macro}{\upkappa} +% \begin{macro}{\uplambda} +% \begin{macro}{\upmu} +% \begin{macro}{\upnu} +% \begin{macro}{\upxi} +% \begin{macro}{\uppi} +% \begin{macro}{\uprho} +% \begin{macro}{\upsigma} +% \begin{macro}{\uptau} +% \begin{macro}{\upupsilon} +% \begin{macro}{\upphi} +% \begin{macro}{\upchi} +% \begin{macro}{\uppsi} +% \begin{macro}{\upomega} +% \begin{macro}{\upvarepsilon} +% \begin{macro}{\upvartheta} +% \begin{macro}{\upvarpi} +% \begin{macro}{\upvarrho} +% \begin{macro}{\upvarsigma} +% \begin{macro}{\upvarphi} +% \begin{macro}{\itDelta} +% \begin{macro}{\itGamma} +% \begin{macro}{\itLambda} +% \begin{macro}{\itOmega} +% \begin{macro}{\itPhi} +% \begin{macro}{\itPi} +% \begin{macro}{\itPsi} +% \begin{macro}{\itSigma} +% \begin{macro}{\itTheta} +% \begin{macro}{\itUpsilon} +% \begin{macro}{\itXi} +% \begin{macro}{\italpha} +% \begin{macro}{\itbeta} +% \begin{macro}{\itgamma} +% \begin{macro}{\itdelta} +% \begin{macro}{\itepsilon} +% \begin{macro}{\itzeta} +% \begin{macro}{\iteta} +% \begin{macro}{\ittheta} +% \begin{macro}{\itiota} +% \begin{macro}{\itkappa} +% \begin{macro}{\itlambda} +% \begin{macro}{\itmu} +% \begin{macro}{\itnu} +% \begin{macro}{\itxi} +% \begin{macro}{\itpi} +% \begin{macro}{\itrho} +% \begin{macro}{\itsigma} +% \begin{macro}{\ittau} +% \begin{macro}{\itupsilon} +% \begin{macro}{\itphi} +% \begin{macro}{\itchi} +% \begin{macro}{\itpsi} +% \begin{macro}{\itomega} +% \begin{macro}{\itvarepsilon} +% \begin{macro}{\itvartheta} +% \begin{macro}{\itvarpi} +% \begin{macro}{\itvarrho} +% \begin{macro}{\itvarsigma} +% \begin{macro}{\itvarphi} +% \begin{macro}{\otherDelta} +% \begin{macro}{\otherGamma} +% \begin{macro}{\otherLambda} +% \begin{macro}{\otherOmega} +% \begin{macro}{\otherPhi} +% \begin{macro}{\otherPi} +% \begin{macro}{\otherPsi} +% \begin{macro}{\otherSigma} +% \begin{macro}{\otherTheta} +% \begin{macro}{\otherUpsilon} +% \begin{macro}{\otherXi} +% \begin{macro}{\otheralpha} +% \begin{macro}{\otherbeta} +% \begin{macro}{\othergamma} +% \begin{macro}{\otherdelta} +% \begin{macro}{\otherepsilon} +% \begin{macro}{\otherzeta} +% \begin{macro}{\othereta} +% \begin{macro}{\othertheta} +% \begin{macro}{\otheriota} +% \begin{macro}{\otherkappa} +% \begin{macro}{\otherlambda} +% \begin{macro}{\othermu} +% \begin{macro}{\othernu} +% \begin{macro}{\otherxi} +% \begin{macro}{\otherpi} +% \begin{macro}{\otherrho} +% \begin{macro}{\othersigma} +% \begin{macro}{\othertau} +% \begin{macro}{\otherupsilon} +% \begin{macro}{\otherphi} +% \begin{macro}{\otherchi} +% \begin{macro}{\otherpsi} +% \begin{macro}{\otheromega} +% \begin{macro}{\othervarepsilon} +% \begin{macro}{\othervartheta} +% \begin{macro}{\othervarpi} +% \begin{macro}{\othervarrho} +% \begin{macro}{\othervarsigma} +% \begin{macro}{\othervarphi} +% Es gibt eine Vielzahl von Paketen, die das Setzen von aufrechten griechischen +% Glyphen 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 verwendete +% Nomenklatur abzubilden, damit diese unabhängig von der Einstellung für +% \opt{cdmath} genutzt werden kann und somit neben den normalen Makros für die +% zusätzlichen Befehle (\cs{up\meta{Bezeichner}}, \cs{it\meta{Bezeichner}}) +% für das explizite Auswählen aufrechter und kursiver Buchstaben bereitstehen. +% \begin{macrocode} +\newcommand*\tud@math@map@greeks{% + \tud@math@loop@greeks@all\tud@math@map@@greeks% + \tud@math@loop@greeks@uc\tud@math@map@@@greeks% + \tud@math@supplement@greeks% +} +\newcommand*\tud@math@map@@greeks[1]{% + \ifcsundef{it#1}{% + \@for\tud@res@a:={#1sl,sl#1,#1it}\do{% + \ifcsundef{\tud@res@a}{}{\csedef{it#1}{\csname\tud@res@a\endcsname}}% + }% + }{}% \ifcsundef{up#1}{% - \if@tempswa% - \csletcs{up#1}{tud@up#1}% - \else% - \csletcs{up#1}{#1}% - \fi% + \ifcsundef{#1up}{}{\csedef{up#1}{\csname#1up\endcsname}}% }{}% - \ifcsundef{var#1}{% - \if@tempswa% - \csletcs{var#1}{#1}% - \else% - \csletcs{var#1}{tud@var#1}% - \fi% + \ifcsundef{other#1}{% + \ifcsundef{#1other}{}{\csedef{other#1}{\csname#1other\endcsname}}% + }{}% +} +% \end{macrocode} +% Einige Pakete stellen für griechische Majuskeln die Befehle \cs{var\dots} +% bereit, um diese im kursiven Schnitt zu setzen. Weiterhin existiert für +% aufrechte Majuskeln auch noch die Form \cs{Up\meta{Bezeichner}}. 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}{}{\csedef{it#1}{\csname var#1\endcsname}}% + }{}% + \ifcsundef{up#1}{% + \tud@lowerstring\tud@res@a{#1}% + \edef\tud@res@a{Up\tud@res@a}% + \ifcsundef{\tud@res@a}{}{\csedef{up#1}{\csname\tud@res@a\endcsname}}% }{}% } % \end{macrocode} -% \end{macro}^^A \varXi -% \end{macro}^^A \varUpsilon -% \end{macro}^^A \varTheta -% \end{macro}^^A \varSigma -% \end{macro}^^A \varPsi -% \end{macro}^^A \varPi -% \end{macro}^^A \varPhi -% \end{macro}^^A \varOmega -% \end{macro}^^A \varLambda -% \end{macro}^^A \varGamma -% \end{macro}^^A \varDelta +% Mit diesem Makro werden in letztendlich~-- nachdem \cs{tud@math@map@greeks} +% bereits ausgeführt wurde~-- die standardmäßig definierten Symbolschriften +% \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. +% \begin{macrocode} +\newcommand*\tud@math@supplement@greeks{% +% \end{macrocode} +% Um keine globalen Änderungen vorzunehmen, wird die normale Mathematikversion +% in einer Gruppe durchsucht. Alle mit \cs{DeclareMathSymbol} vorzunehmenden +% Deklarationen werden in \cs{tud@res@c} gesichert und nach der Gruppe +% aufgerufen. +% \begin{macrocode} + \begingroup% + \newcommand*\tud@math@operators@enc{}% + \newcommand*\tud@math@operators@fam{}% + \newcommand*\tud@math@letters@enc{}% + \newcommand*\tud@math@letters@fam{}% + \def\getanddefine@fonts##1##2{% + \ifx\symoperators##1% + \expandafter\tud@res@a\string##2\@nil% + \else\ifx\symletters##1% + \expandafter\tud@res@b\string##2\@nil% + \fi\fi% + }% + \def\tud@res@a##1##2/##3/##4\@nil{% + \def\tud@math@operators@enc{##2}% + \def\tud@math@operators@fam{##3}% + }% + \def\tud@res@b##1##2/##3/##4\@nil{% + \def\tud@math@letters@enc{##2}% + \def\tud@math@letters@fam{##3}% + }% + \tud@cs@use{mv@normal}% + \let\tud@res@c\@empty% + \ifstr{\tud@math@letters@enc}{\detokenize{OML}}{% + \def\tud@res@a##1{% + \ifcsundef{it##1}{% + \eappto\tud@res@c{% + \noexpand\DeclareMathSymbol{\csname it##1\endcsname}% + {\noexpand\mathalpha}{letters}{\the\tud@res@cnt}% + }% + }{}% + \advance\tud@res@cnt\@ne\relax% + }% + \tud@res@cnt=\z@\relax% + \tud@math@loop@greeks@all\tud@res@a% + }{}% + \ifstr{\tud@math@operators@enc}{\detokenize{OT1}}{% + \def\tud@res@a##1{% + \ifcsundef{up##1}{% + \eappto\tud@res@c{% + \noexpand\DeclareMathSymbol{\csname up##1\endcsname}% + {\noexpand\mathalpha}{operators}{\the\tud@res@cnt}% + }% + }{}% + \advance\tud@res@cnt\@ne\relax% + }% + \tud@res@cnt=\z@\relax% + \tud@math@loop@greeks@uc\tud@res@a% + }{}% +% \end{macrocode} +% Mit der Option \opt{lgrgreeks} besteht zusätzlich die Möglichkeit, fehlende +% Glyphen 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% + \if@tud@lgrgreeks% + \IfFileExists{lgr\tud@cs@use{familydefault}.fd}{% + \def\tud@res@a{\tud@cs@use{familydefault}}% + }{% + \IfFileExists{lgr\tud@math@letters@fam.fd}{% + \let\tud@res@a\tud@math@letters@fam% + }{% + \IfFileExists{lgr\tud@math@operators@fam.fd}{% + \let\tud@res@a\tud@math@operators@fam% + }{}% + }% + }% + \fi% +% \end{macrocode} +% Die Gruppe wird beendet, die in \cs{tud@res@c} gesicherten Deklarationen +% werden ausgeführt, und der Inhalt von \cs{tud@res@a} wird erhalten. +% \begin{macrocode} + \edef\tud@res@a{% + \endgroup% + \expandonce\tud@res@c% + \edef\noexpand\tud@res@a{\tud@res@a}% + }% + \tud@res@a% + \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 +% ergänzt. +% \begin{macrocode} + \tud@math@declare@lgrgreeks{\tud@res@a}% + {\tud@cs@use{mddefault}}{\tud@cs@use{bfdefault}}% + {\tud@cs@use{updefault}}{\tud@cs@use{itdefault}}% + \let\tud@res@c\@empty% + \def\tud@res@b##1##2{% + \ifcsundef{it##1}{% + \eappto\tud@res@c{% + \noexpand\DeclareMathSymbol{\csname it##1\endcsname}% + {\noexpand\mathalpha}{tuditgrk}{##2}% + }% + }{}% + \ifcsundef{up##1}{% + \eappto\tud@res@c{% + \noexpand\DeclareMathSymbol{\csname up##1\endcsname}% + {\noexpand\mathalpha}{tudupgrk}{##2}% + }% + }{}% + }% + \tud@res@b{Gamma}{71}% + \tud@res@b{Delta}{68}% + \tud@res@b{Theta}{74}% + \tud@res@b{Lambda}{76}% + \tud@res@b{Xi}{88}% + \tud@res@b{Pi}{80}% + \tud@res@b{Sigma}{83}% + \tud@res@b{Upsilon}{85}% + \tud@res@b{Phi}{70}% + \tud@res@b{Psi}{89}% + \tud@res@b{Omega}{87}% + \tud@res@b{alpha}{97}% + \tud@res@b{beta}{98}% + \tud@res@b{gamma}{103}% + \tud@res@b{delta}{100}% + \tud@res@b{epsilon}{101}% + \tud@res@b{zeta}{122}% + \tud@res@b{eta}{104}% + \tud@res@b{theta}{106}% + \tud@res@b{iota}{105}% + \tud@res@b{kappa}{107}% + \tud@res@b{lambda}{108}% + \tud@res@b{mu}{109}% + \tud@res@b{nu}{110}% + \tud@res@b{xi}{120}% + \tud@res@b{pi}{112}% + \tud@res@b{rho}{114}% + \tud@res@b{sigma}{115}% + \tud@res@b{tau}{116}% + \tud@res@b{upsilon}{117}% + \tud@res@b{phi}{102}% + \tud@res@b{chi}{113}% + \tud@res@b{psi}{121}% + \tud@res@b{omega}{119}% + \tud@res@c% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \othervarphi +% \end{macro}^^A \othervarsigma +% \end{macro}^^A \othervarrho +% \end{macro}^^A \othervarpi +% \end{macro}^^A \othervartheta +% \end{macro}^^A \othervarepsilon +% \end{macro}^^A \otheromega +% \end{macro}^^A \otherpsi +% \end{macro}^^A \otherchi +% \end{macro}^^A \otherphi +% \end{macro}^^A \otherupsilon +% \end{macro}^^A \othertau +% \end{macro}^^A \othersigma +% \end{macro}^^A \otherrho +% \end{macro}^^A \otherpi +% \end{macro}^^A \otherxi +% \end{macro}^^A \othernu +% \end{macro}^^A \othermu +% \end{macro}^^A \otherlambda +% \end{macro}^^A \otherkappa +% \end{macro}^^A \otheriota +% \end{macro}^^A \othertheta +% \end{macro}^^A \othereta +% \end{macro}^^A \otherzeta +% \end{macro}^^A \otherepsilon +% \end{macro}^^A \otherdelta +% \end{macro}^^A \othergamma +% \end{macro}^^A \otherbeta +% \end{macro}^^A \otheralpha +% \end{macro}^^A \otherXi +% \end{macro}^^A \otherUpsilon +% \end{macro}^^A \otherTheta +% \end{macro}^^A \otherSigma +% \end{macro}^^A \otherPsi +% \end{macro}^^A \otherPi +% \end{macro}^^A \otherPhi +% \end{macro}^^A \otherOmega +% \end{macro}^^A \otherLambda +% \end{macro}^^A \otherGamma +% \end{macro}^^A \otherDelta +% \end{macro}^^A \itvarphi +% \end{macro}^^A \itvarsigma +% \end{macro}^^A \itvarrho +% \end{macro}^^A \itvarpi +% \end{macro}^^A \itvartheta +% \end{macro}^^A \itvarepsilon +% \end{macro}^^A \itomega +% \end{macro}^^A \itpsi +% \end{macro}^^A \itchi +% \end{macro}^^A \itphi +% \end{macro}^^A \itupsilon +% \end{macro}^^A \ittau +% \end{macro}^^A \itsigma +% \end{macro}^^A \itrho +% \end{macro}^^A \itpi +% \end{macro}^^A \itxi +% \end{macro}^^A \itnu +% \end{macro}^^A \itmu +% \end{macro}^^A \itlambda +% \end{macro}^^A \itkappa +% \end{macro}^^A \itiota +% \end{macro}^^A \ittheta +% \end{macro}^^A \iteta +% \end{macro}^^A \itzeta +% \end{macro}^^A \itepsilon +% \end{macro}^^A \itdelta +% \end{macro}^^A \itgamma +% \end{macro}^^A \itbeta +% \end{macro}^^A \italpha +% \end{macro}^^A \itXi +% \end{macro}^^A \itUpsilon +% \end{macro}^^A \itTheta +% \end{macro}^^A \itSigma +% \end{macro}^^A \itPsi +% \end{macro}^^A \itPi +% \end{macro}^^A \itPhi +% \end{macro}^^A \itOmega +% \end{macro}^^A \itLambda +% \end{macro}^^A \itGamma +% \end{macro}^^A \itDelta +% \end{macro}^^A \upvarphi +% \end{macro}^^A \upvarsigma +% \end{macro}^^A \upvarrho +% \end{macro}^^A \upvarpi +% \end{macro}^^A \upvartheta +% \end{macro}^^A \upvarepsilon +% \end{macro}^^A \upomega +% \end{macro}^^A \uppsi +% \end{macro}^^A \upchi +% \end{macro}^^A \upphi +% \end{macro}^^A \upupsilon +% \end{macro}^^A \uptau +% \end{macro}^^A \upsigma +% \end{macro}^^A \uprho +% \end{macro}^^A \uppi +% \end{macro}^^A \upxi +% \end{macro}^^A \upnu +% \end{macro}^^A \upmu +% \end{macro}^^A \uplambda +% \end{macro}^^A \upkappa +% \end{macro}^^A \upiota +% \end{macro}^^A \uptheta +% \end{macro}^^A \upeta +% \end{macro}^^A \upzeta +% \end{macro}^^A \upepsilon +% \end{macro}^^A \updelta +% \end{macro}^^A \upgamma +% \end{macro}^^A \upbeta +% \end{macro}^^A \upalpha % \end{macro}^^A \upXi % \end{macro}^^A \upUpsilon % \end{macro}^^A \upTheta @@ -1794,95 +3021,915 @@ % \end{macro}^^A \upLambda % \end{macro}^^A \upGamma % \end{macro}^^A \upDelta -% \end{macro}^^A \tud@font@greek@init -% \begin{macro}{\tud@font@math@set} -% Mit diesem Befehl werden die Einstellungen für den Mathematiksatz übernommen. -% Die Option \opt{cdmath} wird ausgewertet, um zwischen dem Standard"~ und -% neuem Mathematiksatz hin"~ und herschalten zu können. Dabei wird zum einen -% das Mapping der griechischen Glyphen geändert, zum anderen werden die -% originalen Mathematikversionen überschrieben respektive wiederhergestellt. +% \end{macro}^^A \tud@math@supplement@greeks +% \end{macro}^^A \tud@math@map@@@greeks +% \end{macro}^^A \tud@math@map@@greeks +% \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, +% 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. % \begin{macrocode} -\newcommand*\tud@font@math@set{% +\newcommand*\tud@math@checkslanted@greeks{% + \begingroup% % \end{macrocode} -% Wurde per Option die Verwendung der Mathematikschriften im \CD aktiviert, -% wird für den Fall, dass die Schriften des \CDs nicht installiert sind, eine -% Warnung erzeugt. +% Wird keine Änderung durch Pakete erkannt, werden ab \TUDScript-Version~v2.06 +% die Glyphen kursiv gesetzt. Dies betrifft insbesondere die Majuskeln, welche +% bei \LaTeX{} normalerweise aufrecht gesetzt werden. % \begin{macrocode} - \if@atdocument% - \if@tud@cdmath% - \if@tud@universmath\else% - \tud@font@math@missing@wrn{Univers}% + \def\tud@res@c{% + \tud@if@v@lower{2.06}{% + \TUD@key@preset{slantedgreek}{standard}% + }{% + \TUD@key@preset{slantedgreek}{true}% + }% + }% + \@tud@res@swafalse% + \ifcsdef{upalpha}{% + \ifx\upalpha\alpha% + \@tud@res@swatrue% \fi% - \if@tud@dinboldmath\else% - \tud@font@math@missing@wrn{DIN-Bold}% + }{}% +% \end{macrocode} +% Existiert \cs{upalpha} und ist mit \cs{alpha} identisch, werden \emph{alle} +% griechischen Glyphen aufrecht gesetzt. +% \begin{macrocode} + \if@tud@res@swa% + \def\tud@res@c{\TUD@key@preset{slantedgreek}{false}}% + \else% +% \end{macrocode} +% Existiert \cs{itGamma} und ist mit \cs{Gamma} oder\dots +% \begin{macrocode} + \ifcsdef{itGamma}{% + \ifx\itGamma\Gamma% + \@tud@res@swatrue% + \fi% + }{% +% \end{macrocode} +% \dots\cs{Gamma} entspricht einer möglichen Standarddefnition,\dots +% \begin{macrocode} + \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% + }% +% \end{macrocode} +%\dots werden \emph{alle} griechischen Glyphen kursiv gesetzt. +% \begin{macrocode} + \if@tud@res@swa% + \def\tud@res@c{\TUD@key@preset{slantedgreek}{true}}% \fi% + \fi% + \edef\tud@res@c{\endgroup\expandonce\tud@res@c}% + \tud@res@c% +} % \end{macrocode} -% Sind die Mathematikschriften im \CD nicht vorhanden, wird die entsprechende -% Option zurückgesetzt. +% \end{macro}^^A \tud@math@checkslanted@greeks +% \begin{macro}{\tud@cdmath@init} +% \changes{v2.06}{2018/07/02}{neu}^^A +% \begin{macro}{\tud@cdmath@@init} +% \changes{v2.06}{2018/07/02}{neu}^^A +% \begin{macro}{\mv@tudnormal} +% \begin{macro}{\mv@tudbold} +% \begin{macro}{\mv@tuddin} +% \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} - \ifboolexpr{bool {@tud@universmath} and bool {@tud@dinboldmath}}{}{% - \bool@set@lock{@tud@cdmath}{false}% +\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 nachträglich \cs{MTversion@@} +% aufruft, was normalerweise mit \cs{MTversion*} geschieht. +% \begin{macrocode} +\AfterPackage*{mathastext}{% + \CheckCommand*\MTversion{\@ifstar\MTversion@s\MTversion@}% + \CheckCommand*\MTversion@s[1]{\mathversion{#1}\MTversion@@{#1}}% + \newrobustcmd*\tud@mathversion[1]{% + \tud@cs@use{mathversion}{#1}% + \if@tud@cdmath@active% + \ifstr{#1}{normal}{% + \MTversion@@{tudnormal}% + }{% + \ifstr{#1}{bold}{% + \MTversion@@{tudbold}% + }{}% }% \fi% - \fi% - \if@tud@universmath% - \if@tud@cdmath% - \tud@cmd@store{mv@normal}% - \tud@cmd@store{mv@bold}% - \let\mv@normal\mv@univers% - \let\mv@bold\mv@universbold% - \tud@font@greek@loop\tud@font@greek@set% + }% + \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 +% den Mathematikmodus (\val{OML}, \val{OMS}, \val{OMX}), weshalb hierfür das +% Paket \pkg{mathastext} genutzt wird, um trotzdem einen mathematischen Satz zu +% ermöglichen. +% \begin{macrocode} + \if@tud@cdfont@fam@exist% + \if@tud@cdoldfont@active\else% +% \end{macrocode} +% Um die Mathematikschriften suaber zu definieren, ist das Laden von bestimmten +% Paketen durch den Anwender ungünstig. Deshalb wird für diesen Fall eine +% Warnung ausgegeben. +% \begin{macrocode} + \if@tud@cdmath@active% + \def\tud@res@a##1{% +%<*class> + \ClassWarningNoLine{\TUD@Class@Name}% +%</class> +%<*package> + \PackageWarningNoLine{tudscrfonts}% +%</package> + {% + You should not load package `##1'\MessageBreak% + manually when option `cdmath=true' is active as\MessageBreak% + TUD-Script uses package `mathastext' internally\MessageBreak% + with a specific set of required options for the\MessageBreak% + math font setup% + }% + }% + \@ifpackageloaded{sansmath}{% + \tud@res@a{sansmath}% + }{}% + \@ifpackageloaded{mathastext}{% + \tud@res@a{mathastext}% + }{}% + \fi% + \PassOptionsToPackage{% + subdued,defaultmathsizes,nosmalldelims,% + defaultrm,defaultbf,defaultit,defaultsf,defaulttt,% + noequal,nohbar% + }{mathastext}% + \RequirePackage{mathastext}[2018/08/22]% + \tud@math@declare@lgrgreeks{cmr}{m}{bx}{n}{it}% + \fi% + \providecommand*\MTDeclareVersion[6][]{\DeclareMathVersion{##2}}% + \providecommand*\MTversion@@[1]{}% + \tud@cdmath@@init{\tud@cdfont@fam@lf}{\tud@ttfont@fam}% +% \end{macrocode} +% Die Symbole für aufrechte und kursive griechische Glyphen 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.??] +% \begin{macrocode} + \if@tud@cdoldfont@active% + \tud@res@cnt=\z@\relax% + \tud@math@loop@greeks@uc\tud@cdmath@declare@greek@uc% + \tud@math@loop@greeks@lc\tud@cdmath@declare@greek@lc% \else% - \tud@cmd@restore{mv@normal}% - \tud@cmd@restore{mv@bold}% - \tud@font@greek@loop\tud@font@greek@reset% + \tud@cdmath@declare@greek@lgr% + \fi% +% \end{macrocode} +% Abschließend werden einzelne Zeichen für die Mathematikversionen definiert. +% \begin{macrocode} + \tud@cdmath@declare@char{*}{\mathbin}{symbols}{"03}% +% \end{macrocode} +% Nach der Definition der griechischen Glyphen werden diese~-- inklusive aller +% Auswahlvariationen~-- deklariert. +% \begin{macrocode} + \tud@cdmath@also@greeks% +% \end{macrocode} +% Sollten die notwendigen Schriftfamilien nicht gefunden worden sein, werden +% keine separaten Mathematikversionen definiert. +% \begin{macrocode} + \else% + \let\mv@tudnormal\mv@normal% + \let\mv@tudbold\mv@bold% + \if@tud@cdoldfont@active% + \let\mv@tuddin\mv@bold% \fi% \fi% - \if@tud@slantedgreek% - \tud@font@greek@loop\tud@font@greek@slanted% +} +\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% +% \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. +% \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}% + \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}% + }{}% \else% - \tud@font@greek@loop\tud@font@greek@upright% +% \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. Sämtliche +% fehlenden Kodierungen werden notdürftig mit dem Paket \pkg{iwona} definiert. +% Zur Definition von griechischen Glyphen wird die LGR-Kodierung der \OpenSans +% genutzt. +% \begin{macrocode} + \MTDeclareVersion[it]{tudnormal}{T1}{#1}{\tud@cdfont@md}{n}% + \MTDeclareVersion[it]{tudbold}{T1}{#1}{\tud@cdfont@bf}{n}% + \SetSymbolFont{operators}{tudnormal}{OT1}{iwona}{\tud@cdfont@md}{n}% + \SetSymbolFont{operators}{tudbold}{OT1}{iwona}{\tud@cdfont@bf}{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 +% 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}% + \tud@if@ismathalphabet{\mathbold}{% + \SetMathAlphabet{\mathbold}{tudnormal}{T1}{#1}{\tud@cdfont@bf}{it}% + \SetMathAlphabet{\mathbold}{tudbold}{T1}{#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}% + }{}% \fi% - \mathversion{normal}% + \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}% + \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}% + \fi% + \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% + }{}% + \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% + }{}% + }{}% +% \end{macrocode} +% Das Paket \pkg{cmbright} stelt 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} + \AtBeginDocument{% + \@tud@res@swafalse% + \tud@if@issymbolfont{AMSa}{\@tud@res@swatrue}{}% + \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}% +% \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. +% \begin{macrocode} + \else% + \@ifpackageloaded{mdsymbol}{}{% + \appto\tud@cdmath@wrn{% +%<*class> + \ClassInfoNoLine{\TUD@Class@Name}% +%</class> +%<*package> + \PackageInfoNoLine{tudscrfonts}% +%</package> + {% + You may load package `mdsymbol' in order to\MessageBreak% + get symbols matching the used math font% + }% + }% + }% + \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. +% \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% + }{}% +% \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% + \if@tud@cdmath@active% + \sbox\z@{\mathversion{tudnormal}$ $\mathversion{tuddin}$ $}% + \fi% + \fi% + }% +} +% \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@cdmath@@init +% \end{macro}^^A \tud@cdmath@init +% \begin{macro}{\tud@cdmath@declare@symb} +% \changes{v2.06}{2019/06/19}{neu}^^A +% \begin{macro}{\tud@cdmath@declare@alias} +% \changes{v2.06}{2019/06/19}{neu}^^A +% \begin{macro}{\tud@cdmath@symb@list} +% \changes{v2.06}{2019/06/19}{neu}^^A +% \begin{macro}{\tud@cdmath@declare@char} +% \changes{v2.06}{2019/06/19}{neu}^^A +% \begin{macro}{\tud@cdmath@char@list} +% \changes{v2.06}{2019/06/19}{neu}^^A +% \begin{macro}{\tud@DeclareMathSymbol} +% \changes{v2.06}{2019/06/19}{neu}^^A +% Mit \cs{tud@cdmath@declare@symb} und \cs{tud@cdmath@declare@char} können +% Glyhen respektive einzelne Zeichen definiert werden, welche über das Makro +% \cs{tud@cdmath@symbols@set} nur zum Einsatz kommen, wenn \opt{cdmath=true} +% aktiviert wurde. Damit können in den unterschiedlichen Mathematikversionen +% Symbole wie beispielsweise \cs{alpha} unterschiedlich kodiert werden, was +% über die einfache Verwendung von \cs{DeclareMathSymbol} nicht möglich ist. +% \begin{macrocode} +\newcommand*\tud@cdmath@symb@list{} +\newcommand*\tud@cdmath@declare@symb[4]{% + \listeadd\tud@cdmath@symb@list{#1}% + \tud@DeclareMathSymbol{#1}{#2}{#3}{#4}% +} +% \end{macrocode} +% Hiermit kann ein Alias-Befehl für ein Symbol definiert werden. +% \begin{macrocode} +\newcommand*\tud@cdmath@declare@alias[2]{% + \listeadd\tud@cdmath@symb@list{#1}% + \ifcsdef{tud@cdmath@symbol@#2}{% + \csedef{tud@cdmath@symbol@#1}{\csname tud@cdmath@symbol@#2\endcsname}% + }{}% +} +\newcommand*\tud@cdmath@char@list{} +\newcommand*\tud@cdmath@declare@char[4]{% + \listeadd\tud@cdmath@char@list{#1}% + \tud@DeclareMathSymbol{#1}{#2}{#3}{#4}% +} +% \end{macrocode} +% Die an \cs{tud@cdmath@declare@symb} und \cs{tud@cdmath@declare@char} +% übergebene Bezeichner für Auswahlbefehle erhalten \cs{tud@cdmath@symbol@} als +% Präfix, wodurch sich die Definitionen für die einzelnen Mathematikversionen +% beliebig tauschen lassen. +% \begin{macrocode} +\newcommand*\tud@DeclareMathSymbol[4]{% + \begingroup% + \edef\tud@res@a{% + \endgroup% + \noexpand\DeclareMathSymbol% + {\csname tud@cdmath@symbol@#1\endcsname}% + {\etex@unexpanded{#2}}{#3}{#4}% + }% + \tud@res@a% } % \end{macrocode} -% \end{macro}^^A \tud@font@math@set -% \begin{macro}{\tud@font@greek@set} +% \end{macro}^^A \tud@DeclareMathSymbol +% \end{macro}^^A \tud@cdmath@char@list +% \end{macro}^^A \tud@cdmath@declare@char +% \end{macro}^^A \tud@cdmath@symb@list +% \end{macro}^^A \tud@cdmath@declare@alias +% \end{macro}^^A \tud@cdmath@declare@symb +% \begin{macro}{\tud@cdmath@symbols@set} % \changes{v2.04}{2015/03/10}{neu}^^A -% \begin{macro}{\tud@font@greek@reset} +% \begin{macro}{\tud@cdmath@symbols@toks} +% \changes{v2.06}{2019/06/19}{neu}^^A +% \begin{macro}{\tud@cdmath@symbols@set@cmd} +% \changes{v2.06}{2019/06/19}{neu}^^A +% \begin{macro}{\tud@cdmath@symbols@set@chr} +% \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 -% griechischen Buchstaben für die CD-Schriften und den normalen gewechselt +% 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 +\newcommand*\tud@cdmath@symbols@set{% +% \end{macrocode} +% Die Sicherung der alten Definitionen erfolgt nur einmalig. Die Liste der +% Symbole respektive Zeichen wird durchlaufen und die erfolgten Definitionen +% werden umgesetzt. +% \begin{macrocode} + \expandafter\IfArgIsEmpty\expandafter{\the\tud@cdmath@symbols@toks}{% + \forlistloop\tud@cdmath@symbols@set@cmd\tud@cdmath@symb@list% + \forlistloop\tud@cdmath@symbols@set@chr\tud@cdmath@char@list% +% \end{macrocode} +% Wird das Tokenregister abgerufen, soll es anschließend auch wieder geleert % werden. % \begin{macrocode} -\newcommand*\tud@font@greek@set[1]{% - \tud@cmd@store{#1}% - \tud@cmd@store{up#1}% - \tud@cmd@store{var#1}% - \csletcs{#1}{tud@#1}% - \csletcs{up#1}{tud@up#1}% - \csletcs{var#1}{tud@var#1}% + \addto@hook\tud@cdmath@symbols@toks{\tud@cdmath@symbols@toks{}}% + }{}% +} +% \end{macrocode} +% Beim Setzen der Mathematikversion im \CD wird zur Wiederherstellung der +% Standardmathematikversion das Vorgehen im Token \cs{tud@cdmath@symbols@toks} +% definiert. +% \begin{macrocode} +\newcommand*\tud@cdmath@symbols@set@cmd[1]{% +% \end{macrocode} +% Existiert ein Befehl in der Standardmathematikversion, dann wird dieser +% gesichert und später wiederhergestellt. Andernfalls wird er wieder undefinert +% gesetzt. +% \begin{macrocode} + \ifcsdef{#1}{% + \tud@cs@store{#1}% + \addto@hook\tud@cdmath@symbols@toks{\tud@cs@restore{#1}}% + }{% + \addto@hook\tud@cdmath@symbols@toks{\csundef{#1}}% + }% +% \end{macrocode} +% Nur wenn ein gewünschtes Symbol auch existiert, wird es gesetzt. Damit können +% Symbole für \opt{cdmath=true} auch gezielt undefiniert gesetzt werden. +% \begin{macrocode} + \ifcsdef{tud@cdmath@symbol@#1}{% + \tud@cs@letltx{#1}{tud@cdmath@symbol@#1}% + }{% + \csundef{#1}% + }% } -\newcommand*\tud@font@greek@reset[1]{% - \tud@cmd@restore{#1}% - \tud@cmd@restore{up#1}% - \tud@cmd@restore{var#1}% +% \end{macrocode} +% Für einzelne Zeichen ist das Vorgehen vom Prinzip her gleich. Allerdings wird +% hier der zu sichernde \cs{mathcode} direkt in \cs{tud@cdmath@symbols@toks} +% geschrieben. +% \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}% +% \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 +% \cs{meaning} herausgelöst. +% \begin{macrocode} + \begingroup% + \edef\tud@res@a{\expandafter\meaning\csname tud@cdmath@symbol@#1\endcsname}% + \def\tud@res@b##1"##2\@nil{"##2}% + \edef\tud@res@c{\expandafter\tud@res@b\tud@res@a\@nil}% + \edef\tud@res@a{% + \endgroup% + \global\mathcode`#1=\tud@res@c% + }% + \tud@res@a% } % \end{macrocode} -% \end{macro}^^A \tud@font@greek@reset -% \end{macro}^^A \tud@font@greek@set -% \begin{macro}{\tud@font@greek@upright} -% \begin{macro}{\tud@font@greek@slanted} +% Für das Zurücksetzen muss lediglich das Tokenregister aufgerufen werden. +% \begin{macrocode} +\newcommand*\tud@cdmath@symbols@reset{\the\tud@cdmath@symbols@toks} +% \end{macrocode} +% \end{macro}^^A \tud@cdmath@symbols@reset +% \end{macro}^^A \tud@cdmath@symbols@set@chr +% \end{macro}^^A \tud@cdmath@symbols@set@cmd +% \end{macro}^^A \tud@cdmath@symbols@toks +% \end{macro}^^A \tud@cdmath@symbols@set +% \begin{macro}{\tud@cdmath@declare@greek@uc} % \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@cdmath@symbol@upGamma} +% \begin{macro}{\tud@cdmath@symbol@upDelta} +% \begin{macro}{\tud@cdmath@symbol@upTheta} +% \begin{macro}{\tud@cdmath@symbol@upLambda} +% \begin{macro}{\tud@cdmath@symbol@upXi} +% \begin{macro}{\tud@cdmath@symbol@upPi} +% \begin{macro}{\tud@cdmath@symbol@upSigma} +% \begin{macro}{\tud@cdmath@symbol@upUpsilon} +% \begin{macro}{\tud@cdmath@symbol@upPhi} +% \begin{macro}{\tud@cdmath@symbol@upPsi} +% \begin{macro}{\tud@cdmath@symbol@upOmega} +% \begin{macro}{\tud@cdmath@symbol@itGamma} +% \begin{macro}{\tud@cdmath@symbol@itDelta} +% \begin{macro}{\tud@cdmath@symbol@itTheta} +% \begin{macro}{\tud@cdmath@symbol@itLambda} +% \begin{macro}{\tud@cdmath@symbol@itXi} +% \begin{macro}{\tud@cdmath@symbol@itPi} +% \begin{macro}{\tud@cdmath@symbol@itSigma} +% \begin{macro}{\tud@cdmath@symbol@itUpsilon} +% \begin{macro}{\tud@cdmath@symbol@itPhi} +% \begin{macro}{\tud@cdmath@symbol@itPsi} +% \begin{macro}{\tud@cdmath@symbol@itOmega} +% 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 beiden +% Befehle \cs{tud@cdmath@symbols@set} und \cs{tud@cdmath@symbols@reset} +% verantwortlich. +% \ToDo{Codierungen \val{LS1/LS2}; siehe \pkg{stix,libertinust1math}}[v2.??] +% \begin{macrocode} +\newcommand*\tud@cdmath@declare@greek@uc[1]{% + \tud@cdmath@declare@symb{it#1}{\mathalpha}{letters}{\the\tud@res@cnt}% + \tud@cdmath@declare@symb{up#1}{\mathalpha}{operators}{\the\tud@res@cnt}% + \advance\tud@res@cnt\@ne\relax% +} +% \end{macrocode} +% \end{macro}^^A \tud@cdmath@symbol@itOmega +% \end{macro}^^A \tud@cdmath@symbol@itPsi +% \end{macro}^^A \tud@cdmath@symbol@itPhi +% \end{macro}^^A \tud@cdmath@symbol@itUpsilon +% \end{macro}^^A \tud@cdmath@symbol@itSigma +% \end{macro}^^A \tud@cdmath@symbol@itPi +% \end{macro}^^A \tud@cdmath@symbol@itXi +% \end{macro}^^A \tud@cdmath@symbol@itLambda +% \end{macro}^^A \tud@cdmath@symbol@itTheta +% \end{macro}^^A \tud@cdmath@symbol@itDelta +% \end{macro}^^A \tud@cdmath@symbol@itGamma +% \end{macro}^^A \tud@cdmath@symbol@upOmega +% \end{macro}^^A \tud@cdmath@symbol@upPsi +% \end{macro}^^A \tud@cdmath@symbol@upPhi +% \end{macro}^^A \tud@cdmath@symbol@upUpsilon +% \end{macro}^^A \tud@cdmath@symbol@upSigma +% \end{macro}^^A \tud@cdmath@symbol@upPi +% \end{macro}^^A \tud@cdmath@symbol@upXi +% \end{macro}^^A \tud@cdmath@symbol@upLambda +% \end{macro}^^A \tud@cdmath@symbol@upTheta +% \end{macro}^^A \tud@cdmath@symbol@upDelta +% \end{macro}^^A \tud@cdmath@symbol@upGamma +% \end{macro}^^A \tud@cdmath@declare@greek@uc +% \begin{macro}{\tud@cdmath@declare@greek@lc} +% \changes{v2.06}{2018/07/17}{neu}^^A +% \begin{macro}{\tud@cdmath@symbol@upalpha} +% \begin{macro}{\tud@cdmath@symbol@upbeta} +% \begin{macro}{\tud@cdmath@symbol@upgamma} +% \begin{macro}{\tud@cdmath@symbol@updelta} +% \begin{macro}{\tud@cdmath@symbol@upepsilon} +% \begin{macro}{\tud@cdmath@symbol@upzeta} +% \begin{macro}{\tud@cdmath@symbol@upeta} +% \begin{macro}{\tud@cdmath@symbol@uptheta} +% \begin{macro}{\tud@cdmath@symbol@upiota} +% \begin{macro}{\tud@cdmath@symbol@upkappa} +% \begin{macro}{\tud@cdmath@symbol@uplambda} +% \begin{macro}{\tud@cdmath@symbol@upmu} +% \begin{macro}{\tud@cdmath@symbol@upnu} +% \begin{macro}{\tud@cdmath@symbol@upxi} +% \begin{macro}{\tud@cdmath@symbol@uppi} +% \begin{macro}{\tud@cdmath@symbol@uprho} +% \begin{macro}{\tud@cdmath@symbol@upsigma} +% \begin{macro}{\tud@cdmath@symbol@uptau} +% \begin{macro}{\tud@cdmath@symbol@upupsilon} +% \begin{macro}{\tud@cdmath@symbol@upphi} +% \begin{macro}{\tud@cdmath@symbol@upchi} +% \begin{macro}{\tud@cdmath@symbol@uppsi} +% \begin{macro}{\tud@cdmath@symbol@upomega} +% \begin{macro}{\tud@cdmath@symbol@upvarepsilon} +% \begin{macro}{\tud@cdmath@symbol@upvartheta} +% \begin{macro}{\tud@cdmath@symbol@upvarpi} +% \begin{macro}{\tud@cdmath@symbol@upvarrho} +% \begin{macro}{\tud@cdmath@symbol@upvarsigma} +% \begin{macro}{\tud@cdmath@symbol@upvarphi} +% \begin{macro}{\tud@cdmath@symbol@italpha} +% \begin{macro}{\tud@cdmath@symbol@itbeta} +% \begin{macro}{\tud@cdmath@symbol@itgamma} +% \begin{macro}{\tud@cdmath@symbol@itdelta} +% \begin{macro}{\tud@cdmath@symbol@itepsilon} +% \begin{macro}{\tud@cdmath@symbol@itzeta} +% \begin{macro}{\tud@cdmath@symbol@iteta} +% \begin{macro}{\tud@cdmath@symbol@ittheta} +% \begin{macro}{\tud@cdmath@symbol@itiota} +% \begin{macro}{\tud@cdmath@symbol@itkappa} +% \begin{macro}{\tud@cdmath@symbol@itlambda} +% \begin{macro}{\tud@cdmath@symbol@itmu} +% \begin{macro}{\tud@cdmath@symbol@itnu} +% \begin{macro}{\tud@cdmath@symbol@itxi} +% \begin{macro}{\tud@cdmath@symbol@itpi} +% \begin{macro}{\tud@cdmath@symbol@itrho} +% \begin{macro}{\tud@cdmath@symbol@itsigma} +% \begin{macro}{\tud@cdmath@symbol@ittau} +% \begin{macro}{\tud@cdmath@symbol@itupsilon} +% \begin{macro}{\tud@cdmath@symbol@itphi} +% \begin{macro}{\tud@cdmath@symbol@itchi} +% \begin{macro}{\tud@cdmath@symbol@itpsi} +% \begin{macro}{\tud@cdmath@symbol@itomega} +% \begin{macro}{\tud@cdmath@symbol@itvarepsilon} +% \begin{macro}{\tud@cdmath@symbol@itvartheta} +% \begin{macro}{\tud@cdmath@symbol@itvarpi} +% \begin{macro}{\tud@cdmath@symbol@itvarrho} +% \begin{macro}{\tud@cdmath@symbol@itvarsigma} +% \begin{macro}{\tud@cdmath@symbol@itvarphi} +% Aufrechte griechische Minuskeln sind in den mathematischen Kodierungen von +% \LaTeXe{} 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 ein einfacher Eintrag \cs{up\meta{Bezeichner}} in die Liste +% {tud@cdmath@symb@list} gesetzt wird, was in Verbindung mit einem fehlenden +% Symbol \cs{tud@cdmath@symbol@\meta{Bezeichner}} zu einem undefinierten +% cs{up\meta{Bezeichner}} bei \opt{cdmath=true} führt. +% \ToDo{falls irgendwann erweiterte OML-Kodierung existiert, dann nutzen}[v2.??] +% \begin{macrocode} +%^^A \tud@cdmath@declare@symb{it##1}{\mathalpha}{letters}% +%^^A {\the\numexpr\tud@res@cnt+128\relax}% + \listeadd\tud@cdmath@symb@list{up#1}% + \advance\tud@res@cnt\@ne\relax% +} +% \end{macrocode} +% \end{macro}^^A \tud@cdmath@symbol@itvarphi +% \end{macro}^^A \tud@cdmath@symbol@itvarsigma +% \end{macro}^^A \tud@cdmath@symbol@itvarrho +% \end{macro}^^A \tud@cdmath@symbol@itvarpi +% \end{macro}^^A \tud@cdmath@symbol@itvartheta +% \end{macro}^^A \tud@cdmath@symbol@itvarepsilon +% \end{macro}^^A \tud@cdmath@symbol@itomega +% \end{macro}^^A \tud@cdmath@symbol@itpsi +% \end{macro}^^A \tud@cdmath@symbol@itchi +% \end{macro}^^A \tud@cdmath@symbol@itphi +% \end{macro}^^A \tud@cdmath@symbol@itupsilon +% \end{macro}^^A \tud@cdmath@symbol@ittau +% \end{macro}^^A \tud@cdmath@symbol@itsigma +% \end{macro}^^A \tud@cdmath@symbol@itrho +% \end{macro}^^A \tud@cdmath@symbol@itpi +% \end{macro}^^A \tud@cdmath@symbol@itxi +% \end{macro}^^A \tud@cdmath@symbol@itnu +% \end{macro}^^A \tud@cdmath@symbol@itmu +% \end{macro}^^A \tud@cdmath@symbol@itlambda +% \end{macro}^^A \tud@cdmath@symbol@itkappa +% \end{macro}^^A \tud@cdmath@symbol@itiota +% \end{macro}^^A \tud@cdmath@symbol@ittheta +% \end{macro}^^A \tud@cdmath@symbol@iteta +% \end{macro}^^A \tud@cdmath@symbol@itzeta +% \end{macro}^^A \tud@cdmath@symbol@itepsilon +% \end{macro}^^A \tud@cdmath@symbol@itdelta +% \end{macro}^^A \tud@cdmath@symbol@itgamma +% \end{macro}^^A \tud@cdmath@symbol@itbeta +% \end{macro}^^A \tud@cdmath@symbol@italpha +% \end{macro}^^A \tud@cdmath@symbol@upvarphi +% \end{macro}^^A \tud@cdmath@symbol@upvarsigma +% \end{macro}^^A \tud@cdmath@symbol@upvarrho +% \end{macro}^^A \tud@cdmath@symbol@upvarpi +% \end{macro}^^A \tud@cdmath@symbol@upvartheta +% \end{macro}^^A \tud@cdmath@symbol@upvarepsilon +% \end{macro}^^A \tud@cdmath@symbol@upomega +% \end{macro}^^A \tud@cdmath@symbol@uppsi +% \end{macro}^^A \tud@cdmath@symbol@upchi +% \end{macro}^^A \tud@cdmath@symbol@upphi +% \end{macro}^^A \tud@cdmath@symbol@upupsilon +% \end{macro}^^A \tud@cdmath@symbol@uptau +% \end{macro}^^A \tud@cdmath@symbol@upsigma +% \end{macro}^^A \tud@cdmath@symbol@uprho +% \end{macro}^^A \tud@cdmath@symbol@uppi +% \end{macro}^^A \tud@cdmath@symbol@upxi +% \end{macro}^^A \tud@cdmath@symbol@upnu +% \end{macro}^^A \tud@cdmath@symbol@upmu +% \end{macro}^^A \tud@cdmath@symbol@uplambda +% \end{macro}^^A \tud@cdmath@symbol@upkappa +% \end{macro}^^A \tud@cdmath@symbol@upiota +% \end{macro}^^A \tud@cdmath@symbol@uptheta +% \end{macro}^^A \tud@cdmath@symbol@upeta +% \end{macro}^^A \tud@cdmath@symbol@upzeta +% \end{macro}^^A \tud@cdmath@symbol@upepsilon +% \end{macro}^^A \tud@cdmath@symbol@updelta +% \end{macro}^^A \tud@cdmath@symbol@upgamma +% \end{macro}^^A \tud@cdmath@symbol@upbeta +% \end{macro}^^A \tud@cdmath@symbol@upalpha +% \end{macro}^^A \tud@cdmath@declare@greek@lc +% \begin{macro}{\tud@cdmath@declare@greek@lgr} +% \changes{v2.06}{2019/06/19}{neu}^^A +% \begin{macro}{\tud@cdmath@declare@greek@@lgr} +% \changes{v2.06}{2019/06/19}{neu}^^A +% Die \OpenSans hält die griechischen Glyphen 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. +% \begin{macrocode} +\newcommand*\tud@cdmath@declare@greek@lgr{% + \tud@cdmath@declare@greek@@lgr{Gamma}{71}% + \tud@cdmath@declare@greek@@lgr{Delta}{68}% + \tud@cdmath@declare@greek@@lgr{Theta}{74}% + \tud@cdmath@declare@greek@@lgr{Lambda}{76}% + \tud@cdmath@declare@greek@@lgr{Xi}{88}% + \tud@cdmath@declare@greek@@lgr{Pi}{80}% + \tud@cdmath@declare@greek@@lgr{Sigma}{83}% + \tud@cdmath@declare@greek@@lgr{Upsilon}{85}% + \tud@cdmath@declare@greek@@lgr{Phi}{70}% + \tud@cdmath@declare@greek@@lgr{Psi}{89}% + \tud@cdmath@declare@greek@@lgr{Omega}{87}% + \tud@cdmath@declare@greek@@lgr{alpha}{97}% + \tud@cdmath@declare@greek@@lgr{beta}{98}% + \tud@cdmath@declare@greek@@lgr{gamma}{103}% + \tud@cdmath@declare@greek@@lgr{delta}{100}% + \tud@cdmath@declare@greek@@lgr{epsilon}{101}% + \tud@cdmath@declare@greek@@lgr{zeta}{122}% + \tud@cdmath@declare@greek@@lgr{eta}{104}% + \tud@cdmath@declare@greek@@lgr{theta}{106}% + \tud@cdmath@declare@greek@@lgr{iota}{105}% + \tud@cdmath@declare@greek@@lgr{kappa}{107}% + \tud@cdmath@declare@greek@@lgr{lambda}{108}% + \tud@cdmath@declare@greek@@lgr{mu}{109}% + \tud@cdmath@declare@greek@@lgr{nu}{110}% + \tud@cdmath@declare@greek@@lgr{xi}{120}% + \tud@cdmath@declare@greek@@lgr{pi}{112}% + \tud@cdmath@declare@greek@@lgr{rho}{114}% + \tud@cdmath@declare@greek@@lgr{sigma}{115}% + \tud@cdmath@declare@greek@@lgr{tau}{116}% + \tud@cdmath@declare@greek@@lgr{upsilon}{117}% + \tud@cdmath@declare@greek@@lgr{phi}{102}% + \tud@cdmath@declare@greek@@lgr{chi}{113}% + \tud@cdmath@declare@greek@@lgr{psi}{121}% + \tud@cdmath@declare@greek@@lgr{omega}{119}% + \tud@cdmath@declare@greek@@lgr{varepsilon}{101}% + \tud@cdmath@declare@greek@@lgr{vartheta}{106}% + \tud@cdmath@declare@greek@@lgr{varpi}{119}% + \tud@cdmath@declare@greek@@lgr{varrho}{114}% + \tud@cdmath@declare@greek@@lgr{varsigma}{99}% + \tud@cdmath@declare@greek@@lgr{varphi}{102}% +} +\newcommand*\tud@cdmath@declare@greek@@lgr[2]{% + \tud@cdmath@declare@symb{up#1}{\mathalpha}{tudupgrk}{#2}% + \tud@cdmath@declare@symb{it#1}{\mathalpha}{tuditgrk}{#2}% +} +% \end{macrocode} +% \end{macro}^^A \tud@cdmath@declare@greek@@lgr +% \end{macro}^^A \tud@cdmath@declare@greek@lgr +% \begin{macro}{\tud@cdmath@also@greeks} +% \changes{v2.06}{2019/06/19}{neu}^^A +% \begin{macro}{\tud@cdmath@also@@greeks} +% \changes{v2.06}{2019/06/19}{neu}^^A +% \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 +% Definitionen für die Mathematikschriften im \CD gespiegelt. +% \begin{macrocode} +\newcommand*\tud@cdmath@also@greeks{% + \tud@math@loop@greeks@all\tud@cdmath@also@@greeks% + \tud@math@loop@greeks@uc\tud@cdmath@also@@@greeks% +} +\newcommand*\tud@cdmath@also@@greeks[1]{% + \tud@cdmath@declare@alias{#1}{it#1}% + \tud@cdmath@declare@alias{other#1}{up#1}% + \ifcsundef{#1up}{}{% + \tud@cdmath@declare@alias{#1up}{up#1}% + }% + \@for\tud@res@a:={#1sl,sl#1,#1it}\do{% + \ifcsundef{\tud@res@a}{}{% + \expandafter\tud@cdmath@declare@alias\expandafter{\tud@res@a}{it#1}% + }% + }% + \ifcsundef{#1other}{}{% + \tud@cdmath@declare@alias{#1other}{other#1}% + }% +} +\newcommand*\tud@cdmath@also@@@greeks[1]{% + \tud@lowerstring\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}% + }% + \ifcsundef{var#1}{}{% + \expandafter\tud@cdmath@declare@alias\expandafter{var#1}{it#1}% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@cdmath@also@@@greeks +% \end{macro}^^A \tud@cdmath@also@@greeks +% \end{macro}^^A \tud@cdmath@also@greeks +% \begin{macro}{\tud@math@set} +% Mit diesem Befehl werden die Einstellungen für den Mathematiksatz übernommen. +% Die Option \opt{cdmath} wird ausgewertet, um zwischen dem Standard"~ und +% neuem Mathematiksatz hin"~ und herschalten zu können. Dabei wird zum einen +% das Mapping der griechischen Glyphen geändert, zum anderen werden die +% originalen Mathematikversionen überschrieben respektive wiederhergestellt. +% \begin{macrocode} +\newcommand*\tud@math@set{% +% \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% + \tud@cs@store{mv@normal}% + \tud@cs@store{mv@bold}% + \let\mv@normal\mv@tudnormal% + \let\mv@bold\mv@tudbold% + \tud@cdmath@symbols@set% +% \end{macrocode} +% Anschließend erfolgt~-- abhängig von der Option \opt{slantedgreek}~-- die +% Einstellung der Neigung der griechischen Glyphen. +% \begin{macrocode} + \ifcase\tud@slantedgreek@num\relax% upright + \tud@math@loop@greeks@all\tud@math@upright@greeks% + \or% slanted + \tud@math@loop@greeks@all\tud@math@slanted@greeks% + \or% standard + \tud@math@loop@greeks@uc\tud@math@upright@greeks% + \tud@math@loop@greeks@lc\tud@math@slanted@greeks% + \fi% + \else% + \tud@cs@restore{mv@normal}% + \tud@cs@restore{mv@bold}% + \tud@cdmath@symbols@reset% + \fi% + \mathversion{normal}% +} +% \end{macrocode} +% \end{macro}^^A \tud@math@set +% \begin{macro}{\tud@math@upright@greeks} +% \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. % \begin{macrocode} -\newcommand*\tud@font@greek@upright[1]{\csletcs{#1}{up#1}} -\newcommand*\tud@font@greek@slanted[1]{\csletcs{#1}{var#1}} +\newcommand*\tud@math@upright@greeks[1]{% + \ifcsundef{up#1}{}{% + \csletcs{#1}{up#1}% + \csletcs{other#1}{it#1}% + }% +} +\newcommand*\tud@math@slanted@greeks[1]{% + \ifcsundef{up#1}{}{% + \csletcs{#1}{it#1}% + \csletcs{other#1}{up#1}% + }% +} % \end{macrocode} -% \end{macro}^^A \tud@font@greek@slanted -% \end{macro}^^A \tud@font@greek@upright -% Samtliche Schrifteinstellungen erfolgen erst am Ende der Präambel, um etwaige +% \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}. @@ -1896,37 +3943,65 @@ % \begin{macrocode} \if@tud@x@mweights@enabled% \ifundef{\bfseries@rm}{\edef\bfseries@rm{\bfdefault}}{}% - \ifundef{\bfseries@sf}{\edef\bfseries@sf{\bfdefault}}{}% - \ifundef{\bfseries@tt}{\edef\bfseries@tt{\bfdefault}}{}% \ifundef{\mdseries@rm}{\edef\mdseries@rm{\mddefault}}{}% + \ifundef{\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% - \tud@font@check% +% \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. +% 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. +% die dazugehörigen Befehle definiert. Auch die mathematischen Schriften werden +% initialisiert. % \begin{macrocode} - \tud@font@init% + \tud@cdfont@init% + \tud@ttfont@init% + \tud@cdmath@init% % \end{macrocode} -% Wurde das Paket \pkg{siunitx} geladen, so werden die Schrifteinstellungen mit -% \opt{cdfont}|=|\val{false} deaktiviert und zu Beginn des Dokumentes auf die -% aktuelle Einstellung gesetzt. +% 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% - \ifcase\tud@cdfont@num\relax% false + \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}}% - \or% true - \def\tud@reserved{\TUDoptions{cdfont=true}}% - \or% heavy - \def\tud@reserved{\TUDoptions{cdfont=heavy}}% \fi% - \expandafter\AtBeginDocument\expandafter{\tud@reserved}% + \expandafter\AfterEndPreamble\expandafter{\tud@reserved}% \TUDoptions{cdfont=false}% \fi% % \end{macrocode} @@ -1938,80 +4013,168 @@ % aktivieren. % \begin{macrocode} \tud@font@set% + \AtBeginDocument{% % \end{macrocode} -% Die Einstellungen für den Mathematiksatz erfolgen erst zu Dokumentbeginn, um -% insbesondere auf Einstellungen von \pkg{fontspec} reagieren zu können. Da es -% so gut wie keine freien OpenType"=Schriften für den mathmatischen Formelsatz -% gibt, werden \emph{immer} die PostScript"=Schriften verwendet, falls diese -% installiert sind. Wurde jedoch das Paket \pkg{bm} angefordert, so müssen die -% Mathematikschriften spätestens zum Ende der Präambel initialisiert werden. +% Bereitstellung der Auswahlbefehle für griechische Glyphen in der Nomenklatur +% von \TUDScript (\cs{up\meta{Bezeichner}}, \cs{it\meta{Bezeichner}}). % \begin{macrocode} - \if@tud@x@bm@requested% - \tud@font@math@init% - \UnPreventPackageFromLoading{bm}% - \RequirePackage{bm}[2017/01/16]% - \fi% - \AtBeginDocument{\tud@font@math@init\let\tud@font@math@init\relax}% + \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} + \tud@math@set% + }% } % \end{macrocode} % -% \subsubsection{Schrifteinstellungen für Überschriften} +% \iffalse +%<*class> +% \fi +% +% \subsubsection{Schriften für die speziellen Seitenstile} % -% \begin{macro}{\ifdin} -% \changes{v2.02}{2014/08/29}{Anpassungen für \pkg{fontspec}}^^A -% Der Befehl \cs{ifdin} prüft auf die Verwendung von \DIN. Davon abhängig wird -% entweder das erste oder das zweite Argument ausgeführt. Dies kann für die -% Befehle aller Gliederungsebenen genutzt werden, um zwischen der Ausgabe im -% Dokument sowie Inhaltsverzeichnis und/oder Kolumnentitel zu unterscheiden. +% \begin{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}% +% \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 +% Die Schrift der Kopfzeile wird entweder in den Schriften des \CDs oder aber +% in den serifenlosen Standardschriften gesetzt, wobei für beide Varianten +% sowohl eine fettgedruckte als auch eine normale Version benötigt wird. Die +% Schrifthöhe ist durch das \CD unabhängig von der gewählten Schriftgröße im +% Dokument vorgegeben und wird in Abhängigkeit von der Papiergröße gewählt und +% in \cs{tud@head@fontsize} gespeichert. Das Makro \cs{tud@head@font@@bold} +% wird verwendet, um die Einstellung der fetten Schriften ohne die fixierte +% Schriftgröße nutzen zu können. % \begin{macrocode} -\newrobustcmd*\ifdin{% - \ifx\f@family\tud@dinbold% - \expandafter\@firstoftwo% - \else% - \expandafter\@secondoftwo% - \fi% -} +\newcommand*\tud@head@font@light{} +\newcommand*\tud@head@font@bold{} +%<poster>\newcommand*\tud@head@font@@bold{} +\newcommand*\tud@head@font@set{% % \end{macrocode} -% \end{macro}^^A \ifdin -% \begin{macro}{\tud@sec@fontface} -% \changes{v2.05}{2016/04/04}{Optionales Argument für \pkg{tudscrcomp}}^^A -% Mit \cs{tud@sec@fontface} wird die Schriftart für Überschriften im -% Layout des \CDs definiert. Normalerweise wird hierfür \DIN verwendet, was -% allerdings per Option auch deaktiviert werden kann. +% Die Option \opt{cdhead} wird ausgewertet. Sollte diese inkompatibel gesetzt +% sein, wird eine Warnung ausgegeben. % \begin{macrocode} -\newcommand*\tud@sec@fontface[1][]{% - \if@tud@cdfont@din% - \tud@dinbn\tud@raggedright% - \else% - \sectfont#1% - \fi% -} + \if@tud@cdfont@active\ifcase\tud@head@font@num\relax% false + \if@tud@head@font@set% + \ClassWarning{\TUD@Class@Name}{% + It isn't possible to use `cdhead=false'\MessageBreak% + together with `cdfont=true'% + }% + \fi% + \if@tud@cdfont@heavy% + \TUDoptions{cdhead=heavy}% + \else% + \TUDoptions{cdhead=true}% + \fi% + \fi\fi% % \end{macrocode} -% \end{macro}^^A \tud@sec@fontface -% Für Überschriften in Majuskeln\footnote{Großbuchstaben} wird der Befehl -% \cs{MakeTextUppercase}, was den internen \LaTeX-Befehl \cs{MakeUppercase} -% verbessert, aus dem Paket \pkg{textcase} genutzt. +% Die Schriften für die Kopfzeile werden hier definiert. Abhängig von +% \cs{if@tud@cdfont@active} werden entweder die Schriften des \CDs oder die +% serifenlose Standardschrift für die Kopfzeile verwendet. Die Rückfallebene: % \begin{macrocode} -\RequirePackage{textcase}[2004/10/07] + \if@tud@head@font@set% + \if@tud@x@mweights@enabled% + \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% + {\sfdefault}{\mdseries@sf}{\updefault}{\tud@head@fontsize}% + \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% + {\sfdefault}{\bfseries@sf}{\updefault}{\tud@head@fontsize}% +%<*poster> + \protected\gdef\tud@head@font@@bold{% + \usefont{\encodingdefault}{\sfdefault}{\bfseries@sf}{\updefault}% + }% +%</poster> + \else% + \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% + {\sfdefault}{\mddefault}{\updefault}{\tud@head@fontsize}% + \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% + {\sfdefault}{\bfdefault}{\updefault}{\tud@head@fontsize}% +%<*poster> + \protected\gdef\tud@head@font@@bold{% + \usefont{\encodingdefault}{\sfdefault}{\bfdefault}{\updefault}% + }% +%</poster> + \fi% + \ifcase\tud@head@font@num\relax\else% true/heavy + \tud@head@cdfont@set% + \fi% + \global\@tud@head@font@setfalse% + \global\@tud@head@text@settrue% + \fi% +} % \end{macrocode} -% \begin{macro}{\tud@makeuppercase} -% Der Befehl führt \cs{MakeTextUppercase}\marg{Text} nur dann aus, wenn die -% richtige Schriftfamilie~-- sprich \DIN~-- verwendet wird. +% Hiermit werden die eigentlichen Schriften des \CDs gesetzt. % \begin{macrocode} -\newcommand*\tud@makeuppercase[1]{% - \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}% +\newcommand*\tud@head@cdfont@set{% + \if@tud@cdfont@fam@exist% + \ifcase\tud@head@font@num\relax\or% true + \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% + {\tud@cdfont@fam@lf}{l}{n}{\tud@head@fontsize}% + \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% + {\tud@cdfont@fam@lf}{sb}{n}{\tud@head@fontsize}% +%<*poster> + \protected\gdef\tud@head@font@@bold{% + \usefont{\encodingdefault}{\tud@cdfont@fam@lf}{sb}{n}% + }% +%</poster> + \or% heavy + \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% + {\tud@cdfont@fam@lf}{m}{n}{\tud@head@fontsize}% + \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% + {\tud@cdfont@fam@lf}{b}{n}{\tud@head@fontsize}% +%<*poster> + \protected\gdef\tud@head@font@@bold{% + \usefont{\encodingdefault}{\tud@cdfont@fam@lf}{b}{n}% + }% +%</poster> + \fi% + \fi% +} % \end{macrocode} -% Aufgrund eines Fehlers im \LaTeX-Kernels liegt die Grundlinie für die beiden -% Gliederungsebenen \cs{section} und \cs{subsection} zu hoch. Mit dem Einfügen -% des vertikalen Freiraums für die Umlaute wird diese automatisch nach unten -% verschoben. Allerdings ist das ein ziemlich übler Hack. +% Und noch die Variante für die alten Schriften. % \begin{macrocode} - \protect\vphantom{\"A\"O\"U}% -} +\if@tud@cdoldfont@active + \renewcommand*\tud@head@cdfont@set{% + \if@tud@cdfont@fam@exist% + \ifcase\tud@head@font@num\relax\or% true + \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% + {\tud@cdfont@fam@lf}{l}{n}{\tud@head@fontsize}% + \or% heavy + \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% + {\tud@cdfont@fam@lf}{m}{n}{\tud@head@fontsize}% + \fi% + \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% + {\tud@cdfont@fam@lf}{b}{n}{\tud@head@fontsize}% +%<*poster> + \protected\gdef\tud@head@font@@bold{% + \usefont{\encodingdefault}{\tud@cdfont@fam@lf}{b}{n}% + }% +%</poster> + \fi% + }% +\fi % \end{macrocode} -% \end{macro}^^A \tud@makeuppercase +% \end{macro}^^A \tud@head@font@@bold +% \end{macro}^^A \tud@head@font@bold +% \end{macro}^^A \tud@head@font@light +% \end{macro}^^A \tud@head@cdfont@set +% \end{macro}^^A \tud@head@font@set % % \iffalse +%</class> %</body> % \fi % diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-frontmatter.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-frontmatter.dtx index 78d17bc1536..57017e11361 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-frontmatter.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-frontmatter.dtx @@ -1,10 +1,10 @@ -% \CheckSum{809} +% \CheckSum{815} % \iffalse meta-comment % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2017 +% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2019 % % ---------------------------------------------------------------------------- % @@ -48,17 +48,24 @@ % % \iffalse %%% From File: tudscr-frontmatter.dtx -%<*driver> -\ifx\ProvidesFile\@undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-frontmatter.dtx}[% - 2017/05/30 v2.05m TUD-Script (frontmatter)% +%<*dtx> +% \fi +% +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\ProvidesFile{tudscr-frontmatter.dtx}[2019/06/28 v2.06 TUD-Script\space% + (frontmatter)% ] -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} +% +% \iffalse \documentclass[english,ngerman,xindy]{tudscrdoc} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} \usepackage{babel} -\usepackage{tudscrfonts} % only load this package, if the fonts are installed +\usepackage{tudscrfonts} \KOMAoptions{parskip=half-} \usepackage{bookmark} \usepackage[babel]{microtype} @@ -75,7 +82,7 @@ \tableofcontents \DocInput{\filename} \end{document} -%</driver> +%</dtx> % \fi % % \selectlanguage{ngerman} @@ -170,6 +177,9 @@ % % \begin{macro}{\tud@fm@toc} % \changes{v2.04}{2015/03/20}{neu}^^A +% \changes{v2.06}{2018/02/22}{% +% Bugfix: \cs{csuse\{phantomsection\}} für Anker% +% }^^A % \begin{macro}{\tud@fm@@toc} % \changes{v2.04}{2015/03/20}{neu}^^A % \begin{macro}{\tud@fm@@@toc} @@ -193,6 +203,7 @@ }% \let\clearpage\relax% \sbox\z@{\vbox{#2}}% + \csuse{phantomsection}% \protected@edef\@tempa{% \noexpand\endgroup% \noexpand\ifnumodd{\csname tud@#1@toc@num\endcsname}{% @@ -216,12 +227,12 @@ \ClassWarning{\TUD@Class@Name}{% It isn't possible to use `#1=single'\MessageBreak% %<*book|report> - or `#1=chapter' + or `#1=chapter'\space% %</book|report> with `#1=tocmultiple'% }% \edef\@tempa{% - \noexpand\cs@set@lock{tud@#1@toc@num}{% + \noexpand\tud@locked@num@set{tud@#1@toc@num}{% \the\numexpr\csuse{tud@#1@toc@num}-2\relax% }% }% @@ -543,8 +554,8 @@ % % Des Weiteren werden mehrere Schlüssel für die Anordnung und Positionierung % von Zusammenfassung bzw. Erklärungen bereitgestellt. Diese dienen dem Setzen -% der Optionen \opt{abstract/declaration} mit den Werten \val{single/multi}, -% \val{toc/notoc}, \val{fill/nofill} sowie \val{leveldown}. +% der Optionen \opt{abstract} bzw. \opt{declaration} mit den Werten +% \val{single/multi}, \val{toc/notoc}, \val{fill/nofill} sowie \val{leveldown}. % \begin{macrocode} \newcommand*\tud@fm@switch{% {section}{2},{sect}{2},{sec}{2},{addsec}{2},% @@ -608,11 +619,11 @@ % \begin{macrocode} %<*report|article|poster> \newcommand*\tud@abstract@level@num{0} -%<report|article>\cs@lock{tud@abstract@toc@num}{0} +%<report|article>\tud@locked@newnum{tud@abstract@toc@num}{0} %</report|article|poster> %<*book> \newcommand*\tud@abstract@level@num{3} -\cs@lock{tud@abstract@toc@num}{1} +\tud@locked@newnum{tud@abstract@toc@num}{1} %</book> % \end{macrocode} % \end{macro}^^A \tud@abstract@toc@num@locked @@ -679,21 +690,21 @@ \ifcase\@tempa\relax% false %<*report|article|poster> \renewcommand*\tud@abstract@level@num{0}% -%<report|article> \cs@std@lock{tud@abstract@toc@num}{0}% +%<report|article> \tud@locked@num@preset{tud@abstract@toc@num}{0}% %</report|article|poster> \or% true %<*report|article|poster> \renewcommand*\tud@abstract@level@num{1}% -%<report|article> \cs@std@lock{tud@abstract@toc@num}{0}% +%<report|article> \tud@locked@num@preset{tud@abstract@toc@num}{0}% %</report|article|poster> \or% section \renewcommand*\tud@abstract@level@num{2}% %<*book|report|article> - \cs@std@lock{tud@abstract@toc@num}{1}% + \tud@locked@num@preset{tud@abstract@toc@num}{1}% \or% chapter %<*book|report> \renewcommand*\tud@abstract@level@num{3}% - \cs@std@lock{tud@abstract@toc@num}{1}% + \tud@locked@num@preset{tud@abstract@toc@num}{1}% %</book|report> %</book|report|article> % \end{macrocode} @@ -720,26 +731,26 @@ % Möglichkeiten im Makro \cs{tud@abstract@toc@num} zusammengefasst. % \begin{macrocode} \or% nottotoc - \cs@set@lock{tud@abstract@toc@num}{0}% + \tud@locked@num@set{tud@abstract@toc@num}{0}% \or% totoc \ifnum\tud@abstract@toc@num<\thr@@\relax% - \cs@set@lock{tud@abstract@toc@num}{1}% + \tud@locked@num@set{tud@abstract@toc@num}{1}% \else% - \cs@set@lock{tud@abstract@toc@num}{3}% + \tud@locked@num@set{tud@abstract@toc@num}{3}% \fi% \or% totocleveldown \ifnum\tud@abstract@toc@num<\thr@@\relax% - \cs@set@lock{tud@abstract@toc@num}{2}% + \tud@locked@num@set{tud@abstract@toc@num}{2}% \else% - \cs@set@lock{tud@abstract@toc@num}{4}% + \tud@locked@num@set{tud@abstract@toc@num}{4}% \fi% \or% totocmutliple \ifnum\tud@abstract@toc@num=\z@\relax% - \cs@set@lock{tud@abstract@toc@num}{1}% + \tud@locked@num@set{tud@abstract@toc@num}{1}% \fi% \ifnum\tud@abstract@toc@num<\thr@@\relax% \edef\@tempa{% - \noexpand\cs@set@lock{tud@abstract@toc@num}{% + \noexpand\tud@locked@num@set{tud@abstract@toc@num}{% \the\numexpr\tud@abstract@toc@num+2\relax% }% }\@tempa% @@ -789,8 +800,8 @@ % innerhalb von \cs{tud@abstractbody} verwendet. % \begin{macrocode} %<*report|article|poster> -\csundef{abstract} -\csundef{endabstract} +\undef\abstract +\undef\endabstract %</report|article|poster> \NewEnviron{abstract}[1][]{% % \end{macrocode} @@ -800,8 +811,10 @@ % der Verwendung einer Titelseite der Seitenstil definiert werden. Dafür wird % das dafür verantwortliche Makro \cs{tud@envir@ps} auf \cs{relax} gesetzt. % \begin{macrocode} -%<*book|report|article> +%<*book|report> \ifnum\tud@abstract@level@num>\tw@\relax\@titlepagetrue\fi% chapter +%</book|report> +%<*book|report|article> \let\tud@envir@ps\relax% %</book|report|article> % \end{macrocode} @@ -872,7 +885,7 @@ % \begin{macrocode} \TUD@parameter@family{abstract}{% \TUD@parameter@def{language}{\selectlanguage{#1}}% - \TUD@parameter@def{columns}{\cs@std@lock{tud@x@multicol@num}{#1}}% + \TUD@parameter@def{columns}{\renewcommand*\tud@x@multicol@num{#1}}% %<*book|report|article> \TUD@parameter@def{pagestyle}{\tud@fm@pagestyle{abstract}{#1}}% % \end{macrocode} @@ -946,11 +959,11 @@ % \begin{macrocode} %<*report|article> \newcommand*\tud@declaration@level@num{1} -\cs@lock{tud@declaration@toc@num}{0} +\tud@locked@newnum{tud@declaration@toc@num}{0} %</report|article> %<*book> \newcommand*\tud@declaration@level@num{3} -\cs@lock{tud@declaration@toc@num}{1} +\tud@locked@newnum{tud@declaration@toc@num}{1} %</book> \newif\if@tud@declaration@multi \@tud@declaration@multitrue @@ -978,17 +991,17 @@ \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false \renewcommand*\tud@declaration@level@num{0}% - \cs@std@lock{tud@declaration@toc@num}{0}% + \tud@locked@num@preset{tud@declaration@toc@num}{0}% \or% true \renewcommand*\tud@declaration@level@num{1}% - \cs@std@lock{tud@declaration@toc@num}{0}% + \tud@locked@num@preset{tud@declaration@toc@num}{0}% \or% section \renewcommand*\tud@declaration@level@num{2}% - \cs@std@lock{tud@declaration@toc@num}{1}% + \tud@locked@num@preset{tud@declaration@toc@num}{1}% \or% chapter %<*book|report> \renewcommand*\tud@declaration@level@num{3}% - \cs@std@lock{tud@declaration@toc@num}{1}% + \tud@locked@num@preset{tud@declaration@toc@num}{1}% %</book|report> \or% single \@tud@declaration@multifalse% @@ -1003,26 +1016,26 @@ \or% nomarkboth \@tud@declaration@markbothfalse% \or% nottotoc - \cs@set@lock{tud@declaration@toc@num}{0}% + \tud@locked@num@set{tud@declaration@toc@num}{0}% \or% totoc \ifnum\tud@declaration@toc@num<\thr@@\relax% - \cs@set@lock{tud@declaration@toc@num}{1}% + \tud@locked@num@set{tud@declaration@toc@num}{1}% \else% - \cs@set@lock{tud@declaration@toc@num}{3}% + \tud@locked@num@set{tud@declaration@toc@num}{3}% \fi% \or% totocleveldown \ifnum\tud@declaration@toc@num<\thr@@\relax% - \cs@set@lock{tud@declaration@toc@num}{2}% + \tud@locked@num@set{tud@declaration@toc@num}{2}% \else% - \cs@set@lock{tud@declaration@toc@num}{4}% + \tud@locked@num@set{tud@declaration@toc@num}{4}% \fi% \or% totocmutliple \ifnum\tud@declaration@toc@num=\z@\relax% - \cs@set@lock{tud@declaration@toc@num}{1}% + \tud@locked@num@set{tud@declaration@toc@num}{1}% \fi% \ifnum\tud@declaration@toc@num<\thr@@\relax% \edef\@tempa{% - \noexpand\cs@set@lock{tud@declaration@toc@num}{% + \noexpand\tud@locked@num@set{tud@declaration@toc@num}{% \the\numexpr\tud@declaration@toc@num+2\relax% }% }\@tempa% @@ -1066,7 +1079,9 @@ \newif\if@tud@declarations \NewEnviron{declarations}[1][]{% \@tud@declarationstrue% +%<*book|report> \ifnum\tud@declaration@level@num>\tw@\relax\@titlepagetrue\fi% chapter +%</book|report> \let\tud@envir@ps\relax% \TUD@parameter@set{declaration}{#1}% \tud@x@multicol@check% @@ -1123,7 +1138,7 @@ % \begin{macrocode} \TUD@parameter@family{declaration}{% \TUD@parameter@def{language}{\selectlanguage{#1}}% - \TUD@parameter@def{columns}{\cs@std@lock{tud@x@multicol@num}{#1}}% + \TUD@parameter@def{columns}{\renewcommand*\tud@x@multicol@num{#1}}% \TUD@parameter@def{pagestyle}{\tud@fm@pagestyle{declaration}{#1}}% \TUD@parameter@def{markboth}[true]{% \ifstrbool{#1}{% diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-layout.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-layout.dtx index 827badd59ce..7a9a57a02d0 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-layout.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-layout.dtx @@ -1,10 +1,10 @@ -% \CheckSum{1439} +% \CheckSum{1215} % \iffalse meta-comment % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2017 +% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2019 % % ---------------------------------------------------------------------------- % @@ -48,17 +48,24 @@ % % \iffalse %%% From File: tudscr-layout.dtx -%<*driver> -\ifx\ProvidesFile\@undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-layout.dtx}[% - 2017/03/29 v2.05l TUD-Script (layout)% +%<*dtx> +% \fi +% +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\ProvidesFile{tudscr-layout.dtx}[2019/06/28 v2.06 TUD-Script\space% + (layout)% ] -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} +% +% \iffalse \documentclass[english,ngerman,xindy]{tudscrdoc} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} \usepackage{babel} -\usepackage{tudscrfonts} % only load this package, if the fonts are installed +\usepackage{tudscrfonts} \KOMAoptions{parskip=half-} \usepackage{bookmark} \usepackage[babel]{microtype} @@ -75,7 +82,7 @@ \tableofcontents \DocInput{\filename} \end{document} -%</driver> +%</dtx> % \fi % % \selectlanguage{ngerman} @@ -108,7 +115,7 @@ % starkem Farbeinsatz genutzt werden soll. Die folgenden Optionen sind hierfür % zuständig. % -% \begin{macro}{\tud@layout@switch} +% \begin{macro}{\tud@cd@switch} % Dies sind die Standardoptionen für alle einzelnen Einstellungen des Layouts. % Es gibt die Varianten monochrom~(1), leichter~(2) und voller Farbeinsatz~(5) % sowie die Möglichkeit, das \CD vollständig zu deaktivieren~(0). Außerdem kann @@ -116,8 +123,8 @@ % festgelegt werden (farbiger Querbalken~(3), farbiger Kopf~(4) und voller % Farbeinsatz mit hervorgehobenem Querbalken~(6)). % \begin{macrocode} -\newcommand*\tud@layout@switch{} -\edef\tud@layout@switch{% +\newcommand*\tud@cd@switch{} +\edef\tud@cd@switch{% \TUD@bool@numkey,% {nocolor}{1},{nocolour}{1},{monochrome}{1},{monochromatic}{1},% {lite}{2},{colorlite}{2},{litecolor}{2},{colourlite}{2},{litecolour}{2},% @@ -130,31 +137,17 @@ {full}{6},{colorfull}{6},{fullcolor}{6},{colourfull}{6},{fullcolour}{6}% } % \end{macrocode} -% \end{macro}^^A \tud@layout@switch +% \end{macro}^^A \tud@cd@switch % \begin{option}{cd} % \changes{v2.04}{2015/05/18}{Wert \val{barcolor} neu}^^A % \begin{macro}{\tud@cd@num} -% \begin{macro}{\tud@layout@cover@num} -% \changes{v2.02}{2014/08/08}{neu}^^A -% \begin{macro}{\if@tud@layout@cover@num@locked} -% \changes{v2.02}{2014/08/08}{neu}^^A -% \begin{macro}{\tud@layout@title@num} -% \begin{macro}{\if@tud@layout@title@num@locked} -% \begin{macro}{\tud@layout@part@num} -% \begin{macro}{\if@tud@layout@part@num@locked} -% \begin{macro}{\tud@layout@chapter@num} -% \begin{macro}{\if@tud@layout@chapter@num@locked} -% \begin{macro}{\tud@layout@section@num} -% \changes{v2.05}{2015/07/07}{neu}^^A -% \begin{macro}{\if@tud@layout@section@num@locked} -% \changes{v2.05}{2015/07/07}{neu}^^A % Diese Option dient für die Hauptklassen zur globalen Einstellung für Cover- % Titel-, Teil- und Kapitelseiten. Mit dem Schalter werden für alle Komponenten % die gleichen Einstellungen gesetzt. Die Standardfarbe des Kopfes der Seiten % im \pgs{tudheadings}-Stil ist schwarz und wird für die farbigen Layouts auf % dunkelblau gesetzt. Abhängig von der gewählten Option~-- der nummerische Wert -% ist über \cs{tud@layout@switch} festgelegt~-- werden die sog. Layoutschlüssel -% (\cs{tud@layout@\meta{Typ}@num}) auf einen Wert gesetzt (0\dots 3), welcher +% ist über \cs{tud@cd@switch} festgelegt~-- werden die sog. Layoutschlüssel +% (\cs{tud@cd@\meta{Typ}@num}) auf einen Wert gesetzt (0\dots 6), welcher % später ausgewertet werden kann. Der Schalter für Kapitel wird lediglich für % die Klassen \cls{tudscrbook} und \cls{tudscrreprt} definiert und genutzt. % Damit werden alle Komponenten mit einer zentralen Option festgelegt, können @@ -166,137 +159,44 @@ % gewählten Wert, wird der Seitenstil, die Ausprägung der Fußzeile sowie die % farbliche Gestalt von Kopf- und Fußzeile festgelegt. Da dabei unter anderem % auch gegebenenfalls der Seitenstil auf einen vom Typ \pgs{tudheadings} -% festgelegt wird, erfolgt die Ausführung der Option abenfalls frühestens zu -% Beginn des Dokumentes. -% \begin{macrocode} -%<*book|report|article> -\cs@lock{tud@layout@cover@num}{0} -%</book|report|article> -\cs@lock{tud@layout@title@num}{0} -\cs@lock{tud@layout@part@num}{0} -%<*book|report> -\cs@lock{tud@layout@chapter@num}{0} -%</book|report> -\cs@lock{tud@layout@section@num}{0} -% \end{macrocode} -% Es folgt die eigentliche Option. +% festgelegt wird, erfolgt die Ausführung der Option frühestens zu Beginn des +% Dokumentes. % \begin{macrocode} \newcommand*\tud@cd@num{0} \TUD@key{cd}[true]{% - \TUD@set@numkey{cd}{tud@cd@num}{\tud@layout@switch}{#1}% + \TUD@set@numkey{cd}{tud@cd@num}{\tud@cd@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% % \end{macrocode} -% Layout nicht im \CD. -% \begin{macrocode} - \ifcase\tud@cd@num\relax% false -%<*book|report|article> - \cs@std@lock{tud@layout@cover@num}{0}% -%</book|report|article> - \cs@std@lock{tud@layout@title@num}{0}% - \cs@std@lock{tud@layout@part@num}{0}% -%<*book|report> - \cs@std@lock{tud@layout@chapter@num}{0}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% -%</book|report> - \cs@std@lock{tud@layout@section@num}{0}% -% \end{macrocode} -% Layout im \CD mit schwarzer Schrift und schwarzem Kopf. -% \begin{macrocode} - \or% true -%<*book|report|article> - \cs@std@lock{tud@layout@cover@num}{1}% -%</book|report|article> - \cs@std@lock{tud@layout@title@num}{1}% - \cs@std@lock{tud@layout@part@num}{1}% -%<*book|report> - \cs@std@lock{tud@layout@chapter@num}{1}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% -%</book|report> - \cs@std@lock{tud@layout@section@num}{1}% -% \end{macrocode} -% Layout im \CD mit blauer Schrift und blauem Kopf. -% \begin{macrocode} - \or% litecolor -% \end{macrocode} % Die Umschlagseite wird standardmäßig immer monochrom gesetzt. % \begin{macrocode} %<*book|report|article> - \cs@std@lock{tud@layout@cover@num}{1}% -%</book|report|article> - \cs@std@lock{tud@layout@title@num}{2}% - \cs@std@lock{tud@layout@part@num}{2}% -%<*book|report> - \cs@std@lock{tud@layout@chapter@num}{2}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% -%</book|report> - \cs@std@lock{tud@layout@section@num}{2}% -% \end{macrocode} -% Layout im \CD mit blauer Schrift und farbigem Querbalken. -% \begin{macrocode} - \or% barcolor -%<*book|report|article> - \cs@std@lock{tud@layout@cover@num}{1}% -%</book|report|article> - \cs@std@lock{tud@layout@title@num}{3}% - \cs@std@lock{tud@layout@part@num}{3}% -%<*book|report> - \cs@std@lock{tud@layout@chapter@num}{3}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% -%</book|report> - \cs@std@lock{tud@layout@section@num}{2}% -% \end{macrocode} -% Layout im \CD mit blauer Schrift und zweifarbigem Kopf. -% \begin{macrocode} - \or% bicolor -%<*book|report|article> - \cs@std@lock{tud@layout@cover@num}{1}% -%</book|report|article> - \cs@std@lock{tud@layout@title@num}{4}% - \cs@std@lock{tud@layout@part@num}{4}% -%<*book|report> - \cs@std@lock{tud@layout@chapter@num}{4}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% -%</book|report> - \cs@std@lock{tud@layout@section@num}{2}% -% \end{macrocode} -% Farbiges Layout mit farbigem Hintergrund im \CD mit weißer Schrift und -% Outline im Kopf. -% \begin{macrocode} - \or% color -%<*book|report|article> - \cs@std@lock{tud@layout@cover@num}{1}% + \ifcase\tud@cd@num\relax% false + \TUD@key@preset{cdcover}{false}% + \else% !false + \TUD@key@preset{cdcover}{true}% + \fi% %</book|report|article> - \cs@std@lock{tud@layout@title@num}{5}% - \cs@std@lock{tud@layout@part@num}{5}% -%<*book|report> - \cs@std@lock{tud@layout@chapter@num}{5}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{true}% -%</book|report> - \cs@std@lock{tud@layout@section@num}{2}% % \end{macrocode} -% Farbiges Layout mit farbigem Hintergrund im \CD mit weißer Schrift und -% farbigem Querbalken im Kopf. +% Alle übrigen Varianten des Layouts im \CD~-- schwarze Schrift und schwarzer +% Kopf, blaue Schrift und blauer Kopf, blaue Schrift und farbiger Querbalken, +% blaue Schrift und zweifarbiger Kopf sowie farbiger Hintergrund mit weißer +% Schrift und entweder Outline oder farbigem Querbalken im Kopf~-- werden als +% Voreinstellung an die anderen Schlüssel durgereicht. % \begin{macrocode} - \or% full -%<*book|report|article> - \cs@std@lock{tud@layout@cover@num}{1}% -%</book|report|article> - \cs@std@lock{tud@layout@title@num}{6}% - \cs@std@lock{tud@layout@part@num}{6}% + \TUD@key@preset{cdtitle}{#1}% + \TUD@key@preset{cdpart}{#1}% %<*book|report> - \cs@std@lock{tud@layout@chapter@num}{6}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{true}% + \TUD@key@preset{cdchapter}{#1}% %</book|report> - \cs@std@lock{tud@layout@section@num}{2}% - \fi% + \TUD@key@preset{cdsection}{#1}% % \end{macrocode} -% Die Ausführung des Befehls \cs{tud@layout@process} sorgt dafür, dass alle +% Die Ausführung des Befehls \cs{tud@cd@process} sorgt dafür, dass alle % Optionen auch verarbeitet und wirksam werden. Dieser wird standardmäßig nach % der Abarbeitung aller Optionen innerhalb der Präambel einmalig ausgeführt. % Deshalb wird er hier nur innerhalb des Dokumentes genutzt. Dies gilt auch für % die folgenden Optionen. % \begin{macrocode} - \TUD@SpecialOptionAtDocument{tud@layout@process}% + \TUD@SpecialOptionAtDocument{tud@cd@process}% % \end{macrocode} % Innerhalb der Präambel wird der Satzspiegel abhängig vom gewünschten Layout % festgelegt. Dies kann vom Benutzer mit dem Setzen der Option \opt{cdgeometry} @@ -304,171 +204,111 @@ % \begin{macrocode} \if@atdocument\else% \ifcase\tud@cd@num\relax% false - \cs@std@lock{tud@cdgeometry@num}{0}% + \tud@locked@num@preset{tud@cdgeometry@num}{0}% \else% !false - \cs@std@lock{tud@cdgeometry@num}{2}% + \tud@locked@num@preset{tud@cdgeometry@num}{2}% \fi% \fi% \fi% } % \end{macrocode} -% \end{macro}^^A \if@tud@layout@section@num@locked -% \end{macro}^^A \tud@layout@section@num -% \end{macro}^^A \if@tud@layout@chapter@num@locked -% \end{macro}^^A \tud@layout@chapter@num -% \end{macro}^^A \if@tud@layout@part@num@locked -% \end{macro}^^A \tud@layout@part@num -% \end{macro}^^A \if@tud@layout@title@num@locked -% \end{macro}^^A \tud@layout@title@num -% \end{macro}^^A \if@tud@layout@cover@num@locked -% \end{macro}^^A \tud@layout@cover@num % \end{macro}^^A \tud@cd@num % \end{option}^^A cd % \begin{option}{cdcover} % \changes{v2.02}{2014/08/08}{neue Option für \cs{makecover}}^^A % \changes{v2.04}{2015/05/18}{Wert \val{barcolor} neu}^^A +% \begin{macro}{\tud@cd@cover@num} +% \changes{v2.02}{2014/08/08}{neu}^^A % Das durch die Option \opt{cd} insgesamt festgelegte Layout kann für die % einzelnen Elemente Umschlagseite (\opt{cdcover}),\dots % \begin{macrocode} %<*book|report|article> +\newcommand*\tud@cd@cover@num{0} \TUD@key{cdcover}[true]{% - \TUD@set@numkey{cdcover}{@tempa}{\tud@layout@switch}{#1}% + \TUD@set@numkey{cdcover}{tud@cd@cover@num}{\tud@cd@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% false - \cs@set@lock{tud@layout@cover@num}{0}% - \or% true - \cs@set@lock{tud@layout@cover@num}{1}% - \or% litecolor - \cs@set@lock{tud@layout@cover@num}{2}% - \or% barcolor - \cs@set@lock{tud@layout@cover@num}{3}% - \or% bicolor - \cs@set@lock{tud@layout@cover@num}{4}% - \or% color - \cs@set@lock{tud@layout@cover@num}{5}% - \or% full - \cs@set@lock{tud@layout@cover@num}{6}% - \fi% - \TUD@SpecialOptionAtDocument{tud@layout@process}% + \TUD@SpecialOptionAtDocument{tud@cd@process}% \fi% } %</book|report|article> % \end{macrocode} +% \end{macro}^^A \tud@cd@cover@num % \end{option}^^A cdcover % \begin{option}{cdtitle} % \changes{v2.04}{2015/05/18}{Wert \val{barcolor} neu}^^A +% \begin{macro}{\tud@cd@title@num} % \dots Titel (\opt{cdtitle}),\dots % \begin{macrocode} +\newcommand*\tud@cd@title@num{0} \TUD@key{cdtitle}[true]{% - \TUD@set@numkey{cdtitle}{@tempa}{\tud@layout@switch}{#1}% + \TUD@set@numkey{cdtitle}{tud@cd@title@num}{\tud@cd@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% false - \cs@set@lock{tud@layout@title@num}{0}% - \or% true - \cs@set@lock{tud@layout@title@num}{1}% - \or% litecolor - \cs@set@lock{tud@layout@title@num}{2}% - \or% barcolor - \cs@set@lock{tud@layout@title@num}{3}% - \or% bicolor - \cs@set@lock{tud@layout@title@num}{4}% - \or% color - \cs@set@lock{tud@layout@title@num}{5}% - \or% full - \cs@set@lock{tud@layout@title@num}{6}% - \fi% - \TUD@SpecialOptionAtDocument{tud@layout@process}% + \TUD@SpecialOptionAtDocument{tud@cd@process}% \fi% } % \end{macrocode} +% \end{macro}^^A \tud@cd@title@num % \end{option}^^A cdtitle % \begin{option}{cdpart} % \changes{v2.04}{2015/05/18}{Wert \val{barcolor} neu}^^A +% \begin{macro}{\tud@cd@part@num} % \dots Teile- (\opt{cdpart}) und\dots % \begin{macrocode} +\newcommand*\tud@cd@part@num{0} \TUD@key{cdpart}[true]{% - \TUD@set@numkey{cdpart}{@tempa}{\tud@layout@switch}{#1}% + \TUD@set@numkey{cdpart}{tud@cd@part@num}{\tud@cd@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% false - \cs@set@lock{tud@layout@part@num}{0}% - \or% true - \cs@set@lock{tud@layout@part@num}{1}% - \or% litecolor - \cs@set@lock{tud@layout@part@num}{2}% - \or% barcolor - \cs@set@lock{tud@layout@part@num}{3}% - \or% bicolor - \cs@set@lock{tud@layout@part@num}{4}% - \or% color - \cs@set@lock{tud@layout@part@num}{5}% - \or% full - \cs@set@lock{tud@layout@part@num}{6}% - \fi% - \TUD@SpecialOptionAtDocument{tud@layout@process}% + \TUD@SpecialOptionAtDocument{tud@cd@process}% \fi% } % \end{macrocode} +% \end{macro}^^A \tud@cd@part@num % \end{option}^^A cdpart % \begin{option}{cdchapter} % \changes{v2.04}{2015/05/18}{Wert \val{barcolor} neu}^^A +% \begin{macro}{\tud@cd@chapter@num} % \dots bei den entsprechenden Klassen (\cls{tudscrbook} und \cls{tudscrreprt}) % auch für die Kapitelseiten (\opt{cdchapter}) separat für die einzelnen % Elemente geändert bzw. überschrieben werden. % \begin{macrocode} %<*book|report> +\newcommand*\tud@cd@chapter@num{0} \TUD@key{cdchapter}[true]{% - \TUD@set@numkey{cdchapter}{@tempa}{\tud@layout@switch}{#1}% + \TUD@set@numkey{cdchapter}{tud@cd@chapter@num}{\tud@cd@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% false - \cs@set@lock{tud@layout@chapter@num}{0}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% - \or% true - \cs@set@lock{tud@layout@chapter@num}{1}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% - \or% litecolor - \cs@set@lock{tud@layout@chapter@num}{2}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% - \or% barcolor - \cs@set@lock{tud@layout@chapter@num}{3}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% - \or% bicolor - \cs@set@lock{tud@layout@chapter@num}{4}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% - \or% color - \cs@set@lock{tud@layout@chapter@num}{5}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{true}% - \or% full - \cs@set@lock{tud@layout@chapter@num}{6}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{true}% + \ifnum\tud@cd@chapter@num>4\relax% color/full + \TUD@key@preset{chapterpage}{true}% + \else% + \TUD@key@preset{chapterpage}{false}% \fi% - \TUD@SpecialOptionAtDocument{tud@layout@process}% + \TUD@SpecialOptionAtDocument{tud@cd@process}% \fi% } %</book|report> % \end{macrocode} +% \end{macro}^^A \tud@cd@chapter@num % \end{option}^^A cdchapter % \begin{option}{cdsection} % \changes{v2.05}{2015/07/07}{neu}^^A +% \begin{macro}{\tud@cd@section@num} +% \changes{v2.05}{2015/07/07}{neu}^^A % Zuletzt noch alle nachgelagerten Gliederungsebenen. % \begin{macrocode} +\newcommand*\tud@cd@section@num{0} \TUD@key{cdsection}[true]{% - \TUD@set@numkey{cdsection}{@tempa}{\tud@layout@switch}{#1}% + \TUD@set@numkey{cdsection}{tud@cd@section@num}{\tud@cd@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% false - \cs@set@lock{tud@layout@section@num}{0}% - \or% true - \cs@set@lock{tud@layout@section@num}{1}% - \else% *color - \cs@set@lock{tud@layout@section@num}{2}% - \fi% - \TUD@SpecialOptionAtDocument{tud@layout@process}% + \TUD@SpecialOptionAtDocument{tud@cd@process}% \fi% } % \end{macrocode} +% \end{macro}^^A \tud@cd@section@num % \end{option}^^A cdsection % % \iffalse +%</class&option> %<*book|report> +%<*class&option> % \fi % % Die nun folgenden Optionen und Befehle werden nur für die beiden Klassen @@ -481,25 +321,20 @@ \newif\if@tud@parttitle \TUD@key{parttitle}[true]{% \TUD@set@ifkey{parttitle}{@tud@parttitle}{#1}% - \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \TUD@SpecialOptionAtDocument{tud@layout@process}% - \fi% } % \end{macrocode} % \end{macro}^^A \if@tud@parttitle % \end{option}^^A parttitle % \begin{option}{chapterpage} % \begin{macro}{\if@tud@chapterpage} -% \begin{macro}{\if@tud@chapterpage@locked} % Mit dieser Option können Kapitelüberschriften alleine auf einer Seite stehen. % Es werden separate Kapitelseiten erzeugt. % \begin{macrocode} \newif\if@tud@chapterpage -\TUD@key@lock{chapterpage}[true]{% - \TUD@set@ifkey@lock{chapterpage}{@tud@chapterpage}{#1}% +\TUD@key{chapterpage}[true]{% + \TUD@set@ifkey{chapterpage}{@tud@chapterpage}{#1}% } % \end{macrocode} -% \end{macro}^^A \if@tud@chapterpage@locked % \end{macro}^^A \if@tud@chapterpage % \end{option}^^A chapterpage % \begin{option}{cleardoublespecialpage} @@ -507,8 +342,9 @@ % \KOMAScript-Klassen möglich}^^A % \changes{v2.03}{2015/01/09}{Prüfung des Seitenstils mit \cs{AfterPreamble} % auf Beginn des Dokumentes verzögert}^^A +% \changes{v2.06}{2018/08/21}{Farbeinstellungen integriert}^^A % \begin{macro}{\tud@cleardoublepage} -% \begin{macro}{\tud@cleardoublespecialpage} +% \begin{macro}{\if@tud@clearcolor} % Für Klassen mit separaten Teileseiten und Kapiteln wird eine zusätzliche % Option definiert, welche nur bei zweiseitigem Satz (\opt{twoside}) und % zusätzlich immer auf nur der rechten Seite öffnenden Teilen bzw. Kapiteln @@ -518,60 +354,84 @@ % separaten Kapitelseiten\footnote{bei aktivierter \opt{chapterpage}-Option} % entweder zwingend als leere Seite oder~-- abhängig von der \KOMAScript-Option % \opt{cleardoublepage}~-- als Vakatseite ausgegeben werden. Außerdem ist die -% Festlegung eines bestimmten Seitenstiles möglich. +% Festlegung eines bestimmten Seitenstiles möglich. Weiterhin kann eingestellt +% werden, ob bei der Verwendung einer Hintergrundfarbe auf Titel- Teil- oder +% Kapitelseiten im Stile des \CDs verwendet (\opt{cd\dots}|=|\val{color}) die +% entsprechende Rückseite in der gleichen Farbe wie die Vorderseite erschienen +% soll. Dafür muss die Option \opt{cleardoublespecialpage} aktiviert sein. % % Der Befehl \cs{tud@cleardoublepage} enthält die Definition der zu erzeugenden % Doppelseite. % \begin{macrocode} +\newif\if@tud@clearcolor \newcommand*\tud@cleardoublepage{\cleardoubleoddpage} % \end{macrocode} % Mit der Option \opt{cleardoublespecialpage} kann dieser festgelegt werden. % \begin{macrocode} \TUD@key{cleardoublespecialpage}[true]{% - \TUD@set@ifkey{cleardoublespecialpage}{@tempswa}{#1}% + \TUD@set@numkey{cleardoublespecialpage}{@tempa}{% + \TUD@bool@numkey,% + {nocolor}{2},{nocolour}{2},{monochrome}{2},{monochromatic}{2},% + {bicolor}{3},{bicolour}{3},{twocolor}{3},{twocolour}{3},% + {bichrome}{3},{bichromatic}{3},{dichrome}{3},{dichromatic}{3},% + {color}{3},{colour}{3},% + {full}{3},{colorfull}{3},{fullcolor}{3},{colourfull}{3},{fullcolour}{3},% + {current}{4}% + }{#1}% % \end{macrocode} % Dabei wird die Rückseite entweder wie alle Vakatseiten oder leer gesetzt. % \begin{macrocode} \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@tempswa% - \renewcommand*\tud@cleardoublepage{\cleardoubleoddpage}% - \else% + \ifcase\@tempa\relax% false \renewcommand*\tud@cleardoublepage{\null\thispagestyle{empty}\newpage}% - \fi% - \else% + \or% true + \renewcommand*\tud@cleardoublepage{\cleardoubleoddpage}% % \end{macrocode} -% Zusätzlich wird die Seite ggf. auch farbig ausgegeben (s. \opt{color}). +% Zusätzlich kann die Vakatseite gegebenenfalls auch farbig ausgegeben werden, +% was abhängig von \opt{cd=true/color/pale/bicolor/fullcolor} erfolgt. % \begin{macrocode} - \ifstr{#1}{color}{\TUDoptions{clearcolor=true}}{% - \ifstr{#1}{colour}{\TUDoptions{clearcolor=true}}{% + \or% nocolor + \@tud@clearcolorfalse% + \or% color + \@tud@clearcolortrue% % \end{macrocode} % Außerdem kann ein Seitenstil gezielt ausgewählt werden. % \begin{macrocode} - \ifstr{#1}{current}{% + \or% current \renewcommand*\tud@cleardoublepage{\cleardoubleoddstandardpage}% - \FamilyKeyStateProcessed% - }{% + \fi% % \end{macrocode} % Beim Laden der Klasse selbst sind die speziellen Seitenstile der \KOMAScript- % bzw. \TUDScript-Klassen noch nicht definiert. Diese sollen als Werte jedoch % trotzdem erlaubt sein. Deshalb wird für diesen Fall das Überprüfen mit % \cs{AfterPreamble} auf den Beginn des Dokumentes verzögert. % \begin{macrocode} - \AfterPreamble{% - \ifcsundef{ps@#1}{% - \ClassError{\TUD@Class@Name}{`#1' is no valid pagestyle}{% - You tried to use `#1' as a pagestyle for option\MessageBreak% - `cleardoublespecialpage', but it was never defined.% - }% - }{% - \renewcommand*\tud@cleardoublepage{\cleardoubleoddpageusingstyle{#1}}% + \else% + \AfterPreamble{% + \ifcsundef{ps@#1}{% + \ClassError{\TUD@Class@Name}{`#1' is no valid pagestyle}{% + You tried to use `#1' as a pagestyle for option\MessageBreak% + `cleardoublespecialpage', but it was never defined.% }% + }{% + \renewcommand*\tud@cleardoublepage{\cleardoubleoddpageusingstyle{#1}}% }% - \FamilyKeyStateProcessed% - }}}% + }% + \FamilyKeyStateProcessed% \fi% } % \end{macrocode} +% \end{macro}^^A \if@tud@clearcolor +% \end{macro}^^A \tud@cleardoublepage +% \end{option}^^A cleardoublespecialpage +% +% \iffalse +%</class&option> +%<*class&body> +% \fi +% +% \begin{macro}{\tud@cleardoublespecialpage} +% \begin{macro}{\tud@clearcolor@wrn} % Der Befehl \cs{tud@cleardoublespecialpage} dient zur eigentlichen Umsetzung. % Das obligatorische Argument enthält alles, was innerhalb der Gruppe an % lokalen Einstellungen vorgenommen werden soll. Das optionale Argument wird @@ -579,6 +439,8 @@ % \begin{macrocode} \newcommand*\tud@cleardoublespecialpage[2][]{% \begingroup% + \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% + \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% #2% \ifboolexpr{bool {@twoside} and bool {@openright}}{% \if@tud@clearcolor% @@ -605,51 +467,49 @@ \@afterindentfalse\@afterheading% } % \end{macrocode} -% \end{macro}^^A \tud@cleardoublespecialpage -% \end{macro}^^A \tud@cleardoublepage -% \end{option}^^A cleardoublespecialpage -% \begin{option}{clearcolor} -% \begin{option}{clearcolour} -% \begin{macro}{\if@tud@clearcolor} -% Bei starkem Farbeinsatz im Stil des \CDs auf Titel- Teil- oder Kapitelseiten -% (\opt{cd\dots}|=|\val{color}) wird die entsprechende Rückseite in der -% gleichen Farbe wie die dazugehörige Vorderseite gestaltet. Für Teile- bzw. -% Kapitelseiten muss dafür die passende Option (\opt{cleardoublespecialpage}) -% aktiviert sein. -% +% Die Warnung für den Fall, dass die Option \opt{clearcolor} ohne +% \opt{open}|=|\val{right} und \opt{twoside} verwendet wird. % \begin{macrocode} -\newif\if@tud@clearcolor -\TUD@ifkey{clearcolor}{@tud@clearcolor} -\TUD@ifkey{clearcolour}{@tud@clearcolor} +\newcommand*\tud@clearcolor@wrn{% + \ClassWarning{\TUD@Class@Name}{% + Option `clearcolor' is only available together with\MessageBreak% + options `twoside' and `open=right'% + }% + \global\let\tud@clearcolor@wrn\relax% +} % \end{macrocode} -% \end{macro}^^A \if@tud@clearcolor -% \end{option}^^A clearcolour -% \end{option}^^A clearcolor -% Damit endet der exklusive Abschnitt für \cls{tudscrbook}- und -% \cls{tudscrreprt}-Klasse. +% \end{macro}^^A \tud@clearcolor@wrn +% \end{macro}^^A \tud@cleardoublespecialpage % % \iffalse +%</class&body> %</book|report> +%<*class&option> % \fi % +% Damit endet der Abschnitt für \cls{tudscrbook}- und \cls{tudscrreprt}-Klasse. +% % \begin{macro}{\tud@pagecolor} % Der Befehl \cs{tud@pagecolor} dient für die Hauptklassen als Hilfsmakro, um % je nach gewählter Ausprägung des Layouts die farblichen Seitenhintergründe zu % aktivieren. Für die Klasse \cls{tudscrposter} wird der Befehl zusätzlich für % das benutzerdefinierte Festlegen einer standardmäßigen Hintergrundfarbe mit -% der Option \opt{backgroundcolor} genutzt. +% der Option \opt{backcolor} genutzt. % \begin{macrocode} \newcommand*\tud@pagecolor{}% % \end{macrocode} % \end{macro}^^A \tud@pagecolor -% \begin{option}{backgroundcolor} +% \begin{option}{backcolor} % \changes{v2.05}{2016/04/15}{neu}^^A +% \begin{option}{backgroundcolor} +% \begin{option}{bgcolor} +% \begin{macro}{\normalcolor} % Mit dieser Option kann die standardmäßige Hintergrundfarbe für Poster gesetzt % werden. % \begin{macrocode} %<*poster> -\TUD@key{backgroundcolor}[true]{% - \TUD@set@numkey{backgroundcolor}{@tempa}{% +\TUD@key{backcolor}[true]{% + \TUD@set@numkey{backcolor}{@tempa}{% \TUD@bool@numkey,% {nocolor}{0},{nocolour}{0},{none}{0},% {color}{1},{colour}{1},{cdcolor}{1},{cdcolour}{1}% @@ -674,6 +534,8 @@ \normalcolor% \fi% } +\TUD@key{backgroundcolor}[true]{\TUDoptions{backcolor=#1}} +\TUD@key{bgcolor}[true]{\TUDoptions{backcolor=#1}} % \end{macrocode} % Für das Aktivieren der Farbe \val{HKS41} wird \cs{normalcolor} erweitert, um % hier in jedem Fall als Schriftfarbe \emph{weiß} zu verwenden. @@ -690,15 +552,92 @@ } %</poster> % \end{macrocode} +% \end{macro}^^A \normalcolor +% \end{option}^^A bgcolor % \end{option}^^A backgroundcolor +% \end{option}^^A backcolor +% \begin{option}{pageheadingsvskip} +% \changes{v2.05}{2016/06/20}{neu}^^A +% \begin{macro}{\tud@dim@pageheadingsvskip} +% \changes{v2.05}{2016/06/20}{neu}^^A +% \begin{option}{headingsvskip} +% \changes{v2.05}{2016/06/20}{neu}^^A +% \begin{macro}{\tud@dim@headingsvskip} +% \changes{v2.05}{2016/06/20}{neu}^^A +% Mit diesen Optionen kann der Anwender die Überschriften von Titel, Teilen und +% Kapiteln vertikal von ihrer Standardposition verschieben, welche vom \CD +% eigentlich vorgegeben ist. Die Option \opt{pageheadingsvskip} verschiebt +% dabei Überschriften, welche allein auf einer Seite stehen, also Überschriften +% von Teilen oder auf Kapitelseiten. Auch die vertikale Position des Titels +% kann damit beeinflusst werden. Mit der Option \opt{headingsvskip} werden die +% Überschriften von Kapiteln, bei denen direkt danach der Fließtext folgt, oder +% die des Titelkopfes (\opt{titlepage}|=|\val{false}) verschoben. +% \begin{macrocode} +%<*book|report|article> +\newcommand*\tud@dim@pageheadingsvskip{0pt} +\TUD@key{pageheadingsvskip}{% + \TUD@set@dimenkey{pageheadingsvskip}{\tud@dim@pageheadingsvskip}{#1}% +} +\newcommand*\tud@dim@headingsvskip{0pt} +\TUD@key{headingsvskip}{% + \TUD@set@dimenkey{headingsvskip}{\tud@dim@headingsvskip}{#1}% +} +%</book|report|article> +% \end{macrocode} +% \end{macro}^^A \tud@dim@headingsvskip +% \end{option}^^A headingsvskip +% \end{macro}^^A \tud@dim@pageheadingsvskip +% \end{option}^^A pageheadingsvskip % -% \subsection{Schrifteinstellung und Positionierung der Überschriften} +% \iffalse +%</class&option> +%<*class|package&fixfonts> +%<*option> +% \fi +% +% \subsection{Schrifteinstellung und -größe der Überschriften} % % \begin{option}{headings} +% \changes{v2.06}{2018/08/20}{neu}^^A +% \begin{macro}{\if@tud@heavyheadings} +% \changes{v2.06}{2018/08/20}{neu}^^A +% Die Option wird dahingehend erweitert, dass die Überschriften auch im +% extra-fetten Schnitt gesetzt werden können. +% \begin{macrocode} +\newif\if@tud@heavyheadings +\TUD@key{headings}{% + \TUD@set@numkey{headings}{@tempa}{% + {light}{0},{lightfont}{0},{lite}{0},{litefont}{0},{noheavyfont}{0},% + {normal}{0},{standard}{0},{std}{0},{normalbold}{0},{boldnormal}{0},% + {heavy}{1},{heavyfont}{1},{bold}{1},{boldfont}{1},% + {ultrabold}{1},{boldultra}{1},{heavybold}{1},{boldheavy}{1},% + {extendedbold}{1},{boldextended}{1}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% light + \@tud@heavyheadingsfalse% + \or% heavy + \@tud@heavyheadingstrue% + \fi% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \if@tud@heavyheadings +% \end{option}^^A headings +% +% \iffalse +%</option> +%</class|package&fixfonts> +%<*class&option> +% \fi +% +% \begin{option}{headings} +% \begin{option}{open} +% \begin{option}{chapterprefix} % Die \KOMAScript-Option \opt{headings} setzt für alle Überschriften die % Formatierung zurück. Um die Einstellungen für das \CD aktiv zu halten, werden % nach der Ausführung der Option durch \cs{tud@x@scr@headings@reset} die mit -% \cs{tud@font@koma@set} definierten Makros \cs{tud@font@koma@\meta{Element}} +% \cs{tud@komafont@set} definierten Makros \cs{tud@komafont@\meta{Element}} % erneut an die entsprechenden Schriftelemente angehängt. Bei der Verwendung % der \KOMAScript-Option \opt{headings}|=|\val{standardclasses} werden außerdem % noch die Optionen \opt{open} und \opt{chapterprefix} ausgeführt, weshalb auch @@ -709,15 +648,19 @@ \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}% \FamilyKeyStateProcessed% } +%<*book|report> \DefineFamilyKey{KOMA}{open}{% - \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}% + \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}% \FamilyKeyStateProcessed% } \DefineFamilyKey{KOMA}{chapterprefix}{% \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}% \FamilyKeyStateProcessed% } +%</book|report> % \end{macrocode} +% \end{option}^^A chapterprefix +% \end{option}^^A open % \end{option}^^A headings % % \iffalse @@ -745,13 +688,13 @@ % \begin{macrocode} \newcommand*\tud@x@scr@headings@current{} \newcommand*\tud@sec@fontsize{} -%<book|report|article>\newcommand*\tud@thesis@fontsize{} +\newcommand*\tud@thesis@fontsize{} \newcommand*\tud@x@scr@headings@set[1][]{% \def\@tempa##1##2##3{% \ifstr{##1}{\tud@x@scr@headings@current}{}{% \renewcommand*\tud@x@scr@headings@current{##1}% \renewcommand*\tud@sec@fontsize{##2}% -%<book|report|article> \renewcommand*\tud@thesis@fontsize{##3}% + \renewcommand*\tud@thesis@fontsize{##3}% #1% }% }% @@ -766,8 +709,22 @@ \ifstr{standardclasses}{\@tempc}{\@tempa{standardclasses}{\Huge}{\LARGE}}{% \ifstr{big}{\@tempc}{\@tempa{big}{\Huge}{\LARGE}}{% \ifstr{normal}{\@tempc}{\@tempa{normal}{\huge}{\Large}}{% - \ifstr{small}{\@tempc}{\@tempa{small}{\LARGE}{\Large}}{}}}}% + \ifstr{small}{\@tempc}{\@tempa{small}{\LARGE}{\large}}{}}}}% }% +% \end{macrocode} +% Der Abstand nach Teil- und Kapitelüberschriften wird ebenso in Abhängigkeit +% der gewählten Einstellung für \opt{headings} definiert. +% \begin{macrocode} + \begingroup + \tud@sec@fontsize% + \@tempskipa=\glueexpr% + .8\baselineskip \@plus .05\baselineskip \@minus .1\baselineskip% + \relax\relax% + \edef\tud@res@a{% + \endgroup% + \def\noexpand\tud@cd@afterskip{\the\@tempskipa}% + }% + \tud@res@a% } % \end{macrocode} % Damit die Einstellungen für die Größe wirksam werden, wird das Makro einmalig @@ -785,22 +742,22 @@ % Größe und Formatierung der Überschriften neu gesetzt. % \begin{macrocode} \newcommand*\tud@x@scr@headings@reset{% - \tud@layout@process% + \tud@cd@process% \tud@x@scr@headings@set[% - \ifcase\tud@layout@part@num\relax\else% !false - \tud@font@koma@reset{part}% - \tud@font@koma@reset{partnumber}% + \ifcase\tud@cd@part@num\relax\else% !false + \tud@komafont@reset{part}% + \tud@komafont@reset{partnumber}% \fi% %<*book|report> - \ifcase\tud@layout@chapter@num\relax\else% !false - \tud@font@koma@reset{chapter}% - \tud@font@koma@reset{chapterprefix}% + \ifcase\tud@cd@chapter@num\relax\else% !false + \tud@komafont@reset{chapter}% + \tud@komafont@reset{chapterprefix}% \fi% %</book|report> - \ifcase\tud@layout@section@num\relax\else% !false - \tud@font@koma@reset{section}% - \tud@font@koma@reset{subsection}% - \tud@font@koma@reset{subsubsection}% + \ifcase\tud@cd@section@num\relax\else% !false + \tud@komafont@reset{section}% + \tud@komafont@reset{subsection}% + \tud@komafont@reset{subsubsection}% \fi% ]% } @@ -809,67 +766,141 @@ % % \iffalse %</class&body> -%<*class&option> +%<*body> +%<*class|package&fixfonts> % \fi % -% \begin{option}{pageheadingsvskip} -% \changes{v2.05}{2016/06/20}{neu}^^A -% \begin{macro}{\tud@dim@pageheadingsvskip} -% \changes{v2.05}{2016/06/20}{neu}^^A -% \begin{option}{headingsvskip} -% \changes{v2.05}{2016/06/20}{neu}^^A -% \begin{macro}{\tud@dim@headingsvskip} -% \changes{v2.05}{2016/06/20}{neu}^^A -% Mit diesen Optionen kann der Anwender die Überschriften von Titel, Teilen und -% Kapiteln vertikal von ihrer Standardposition verschieben, welche vom \CD -% eigentlich vorgegeben ist. Die Option \opt{pageheadingsvskip} verschiebt -% dabei Überschriften, welche allein auf einer Seite stehen, also Überschriften -% von Teilen oder auf Kapitelseiten. Auch die vertikale Position des Titels -% kann damit beeinflusst werden. Mit der Option \opt{headingsvskip} werden die -% Überschriften von Kapiteln, bei denen direkt danach der Fließtext folgt, oder -% die des Titelkopfes (\opt{titlepage}|=|\val{false}) verschoben. +% \subsection{Umsetzung des Layouts} +% +% \begin{macro}{\tud@sec@fontface} +% \changes{v2.05}{2016/04/04}{Optionales Argument für \pkg{tudscrcomp}}^^A +% \changes{v2.06}{2018/08/20}{extra-fette Überschriften möglich}^^A +% \begin{macro}{\tud@sec@@fontface} +% \begin{macro}{\tud@sec@format} +% \begin{macro}{\tud@sec@uppercase} +% \begin{macro}{\tud@sec@strut} +% \changes{v2.06}{2018/07/24}{neu}^^A +% Mit \cs{tud@sec@fontface} wird die Schriftart für Überschriften im +% Layout des \CDs definiert. +% \begin{macrocode} +%<package&fixfonts>\AfterPackage*{tudscrfonts}{% +\newcommand*\tud@sec@fontface[1][]{\tud@sec@@fontface{#1}}% +\newcommand*\tud@sec@@fontface[1]{% + \sectfont#1% + \if@tud@cdfont@active\if@tud@heavyheadings% + \if@tud@x@mweights@enabled% + \edef\bfseries@rm{\tud@cdfont@ebf}% + \edef\bfseries@sf{\tud@cdfont@ebf}% + \edef\bfseries@tt{\tud@ttfont@ebf}% + \fi% + \let\bfdefault\tud@cdfont@ebf% + \fontseries{\tud@cdfont@ebf}% + \fi\fi% + \selectfont% +} +% \end{macrocode} +% Sind die alten Schriftfamilien aktiv, wird mit \cs{tud@sec@fontface} \DIN als +% Schriftart für Überschriften im Layout des \CDs definiert. Allerdings kann +% dies per Option auch deaktiviert werden. % \begin{macrocode} -%<*book|report|article> -\newcommand*\tud@dim@pageheadingsvskip{0pt} -\TUD@key{pageheadingsvskip}{% - \TUD@set@dimenkey{pageheadingsvskip}{\tud@dim@pageheadingsvskip}{#1}% +\if@tud@cdoldfont@active + \renewcommand*\tud@sec@fontface[1][]{% + \if@tud@cdoldfont@nodin% + \tud@sec@@fontface{#1}% + \else% + \tud@db\tud@raggedright% + \fi% + }% +\fi +% \end{macrocode} +% Der Befehl \cs{tud@sec@format} dient zur Formatierung von Überschriften. +% Dabei wird dieser mit der von \KOMAScript{} bereitgestellten Schnittstelle für +% Teile\footnote{\cs{partlineswithprefixformat}}, +% Kapitel\footnote{\cs{chapterlineswithprefixformat}, \cs{chapterlinesformat}} +% und +% Abschnitte\footnote{\cs{sectionlinesformat}, \cs{sectioncatchphraseformat}} +% verwendet. Dadurch wird eine Anpassung der Gliederungsbefehle~-- wie es +% einschließlich Version~v2.05 für die erzwungene Großschreibung umgesetzt +% wurde~-- vermieden. Für die \OpenSans führt das Makro \cs{tud@sec@format} +% lediglich \cs{tud@sec@strut} aus. +% \begin{macrocode} +\newcommand*\tud@sec@format[2][]{% + \IfArgIsEmpty{#1}{% + \tud@sec@strut% + }{% + \begingroup% + \usefontofkomafont{#1}% + \tud@sec@strut% + \endgroup% + }% + #2% } -\newcommand*\tud@dim@headingsvskip{0pt} -\TUD@key{headingsvskip}{% - \TUD@set@dimenkey{headingsvskip}{\tud@dim@headingsvskip}{#1}% +% \end{macrocode} +% Für die alten Schriften hat der Befehl eine erweiterte Funktionalität, wenn +% die Schriftfamilie \DIN aktiv ist, welche für Überschriften einzusetzen ist. +% Das \CD verlangt dabei, dass zwingend Majuskeln\footnote{Großbuchstaben} zu +% verwenden sind. Hierfür wird der Befehl \cs{MakeTextUppercase} aus dem Paket +% \pkg{textcase} genutzt, welcher den internen \LaTeX-Befehl \cs{MakeUppercase} +% verbessert. Das optionale Argument kann genutzt werden, falls nicht die +% aktuelle Schrift sondern ein durch \KOMAScript{} definiertes Schriftelement +% ausgewertet werden soll. +% \begin{macrocode} +\if@tud@cdoldfont@active + \newcommand*\tud@sec@uppercase{\MakeUppercase}% + \AfterPackage*{textcase}{% + \renewcommand*\tud@sec@uppercase{\MakeTextUppercase}% + }% + \renewcommand*\tud@sec@format[2][]{% + \@tud@res@swafalse% + \IfArgIsEmpty{#1}{% + \tud@sec@strut% + \tud@ifdin{\@tud@res@swatrue}{}% + }{% + \begingroup% + \usefontofkomafont{#1}% + \tud@sec@strut% + \tud@ifdin{\aftergroup\@tud@res@swatrue}{}% + \endgroup% + }% + \if@tud@res@swa% + \tud@sec@uppercase{#2}% + \else% + #2% + \fi% + }% +\fi +% \end{macrocode} +% Für Abschnitte etc. liegt auf einer neuen Seite dier erste Grundlinie höher, +% als für Großbuchstaben in der größeren Schrift für \cs{section} etc. benötigt +% wird. Deshalb wird die Grundlinie \enquote{notfallmäßig} so weit nach unten +% verschoben, wie für den höchsten Buchstabe benötigt wird. Mit dem Befehl +% \cs{tud@sec@strut} wird für alle Überschriften dafür gesorgt, dass immer der +% gleiche Freiraum bereitgehalten wird, unabhängig vom Inhalt der spezifischen +% Überschrift. Hierfür wird \cs{strutbox} aus dem \LaTeXe"~Kernel~-- nachdem +% \cs{strut} zuvor bereits einmal ausgeführt wird, um die Standardgröße der Box +% zu verwenden~-- temporär umdefiniert. +% \begin{macrocode} +\newrobustcmd*\tud@sec@strut{% +%<*class> + \begingroup% + \strut\setbox\strutbox\hbox{\vphantom{\textsuperscript{\"A\"O\"U}}}\strut% + \endgroup% +%</class> } -%</book|report|article> +%<package&fixfonts>} % \end{macrocode} -% \end{macro}^^A \tud@dim@headingsvskip -% \end{option}^^A headingsvskip -% \end{macro}^^A \tud@dim@pageheadingsvskip -% \end{option}^^A pageheadingsvskip +% \end{macro}^^A \tud@sec@strut +% \end{macro}^^A \tud@sec@uppercase +% \end{macro}^^A \tud@sec@format +% \end{macro}^^A \tud@sec@@fontface +% \end{macro}^^A \tud@sec@fontface % % \iffalse -%</class&option> +%</class|package&fixfonts> +%</body> %<*class&body> % \fi % -% \begin{macro}{\tud@headmidvskip@normal} -% \changes{v2.03}{2015/01/21}{neu}^^A -% \begin{macro}{\tud@headmidvskip@reverse} -% \changes{v2.03}{2015/01/21}{neu}^^A -% Mit \cs{tud@headmidvskip@normal} wird der Abstand zwischen der Nummerierung -% eines Titels und der eigentlichen Bezeichnung gesetzt. Gleiches gilt für -% eine separate Kapitelnummernzeile (\opt{chapterprefix}) und dem eigentlichen -% Kapiteltitel. Vorher kann ggf. mit dem Makro \cs{tud@headmidvskip@reverse} um -% den eingefügten Abstand nach oben verschoben werden. -% \begin{macrocode} -%<*book|report> -\newcommand*\tud@headmidvskip@normal{\par\nobreak\vspace{.5\baselineskip}} -\newcommand*\tud@headmidvskip@reverse{% - \setbox\z@\vbox{\tud@headmidvskip@normal}% - \vspace*{\dimexpr-\dp\strutbox-\ht\strutbox-\ht\z@\relax}% -} -%</book|report> -% \end{macrocode} -% \end{macro}^^A \tud@headmidvskip@reverse -% \end{macro}^^A \tud@headmidvskip@normal % \begin{macro}{\tud@title@fontcolor} % \begin{macro}{\tud@part@fontcolor} % \begin{macro}{\tud@chapter@fontcolor} @@ -891,28 +922,11 @@ % \begin{macro}{\raggedtitle} % \changes{v2.05}{2016/04/05}{neu}^^A % Dieses Makro wird für die Ausrichtung des Titels bereitgehalten. -% \ToDo{Doku}[v2.06] % \begin{macrocode} \providecommand*\raggedtitle{\tud@raggedright} % \end{macrocode} % \end{macro}^^A \raggedtitle -% \begin{KOMAfont}{parttitle} -% \changes{v2.02}{2014/08/24}{neu}^^A -% Es wird das Schriftelement für die Option \opt{parttitle} erstellt. -% \begin{macrocode} -%<*book|report> -\newkomafont{parttitle}{% - \tud@sec@fontface% - \tud@color{\tud@part@fontcolor}% - \usesizeofkomafont{section}% -} -%</book|report> -% \end{macrocode} -% \end{KOMAfont}^^A parttitle -% -% \subsection{Umsetzung des Layouts} -% -% \begin{macro}{\tud@layout@process} +% \begin{macro}{\tud@cd@process} % \changes{v2.02}{2014/08/29}{Anpassungen für \pkg{fontspec}}^^A % \changes{v2.05}{2016/04/04}{Schrift für \val{subtitle} abhängig von % \cs{mddefault}}^^A @@ -921,102 +935,81 @@ % Seitenstil auch umgesetzt werden. Dabei wird insbesondere darauf Wert gelegt, % dass die Optionen auch im Dokument geändert und wiederhergestellt werden % können. +% \ToDo{\cs{...pagecolor} und {\cs{...fontcolor} (part/chapter/title)}}[v2.07] +% \ToDo{Schriftfarbauswahl in \cs{tud@cd@process}}[v2.07] % \begin{macrocode} -\newcommand*\tud@layout@process{% -% \end{macrocode} -% Die Einstellungen für die Umschlagseite. Je nachdem, ob das \CD verwendet -% wird, wird der Satzspiegel standardmäßig umgestellt oder eben nicht. -% \begin{macrocode} -%<*book|report|article> - \ifcase\tud@layout@cover@num\relax% false - \bool@std@lock{@tud@cdgeometry@cover}{false}% - \else% !false - \bool@std@lock{@tud@cdgeometry@cover}{true}% - \fi% -%</book|report|article> +\newcommand*\tud@cd@process{% % \end{macrocode} % Die Einstellungen für den Titel. Vor dessen Umstellung werden die relevanten -% Originalbefehle mit \cs{tud@cmd@store}\marg{Befehl} gesichert, damit diese -% später gegebenenfalls mit \cs{tud@cmd@restore}\marg{Befehl} wiederhergestellt -% werden können. +% Originalbefehle mit \cs{tud@cs@store}\marg{Befehl} gesichert, damit diese +% mit \cs{tud@cs@restore}\marg{Befehl} wiederhergestellt werden können. % \begin{macrocode} - \ifcase\tud@layout@title@num\relax% false + \ifcase\tud@cd@title@num\relax% false %<*book|report|article> - \tud@cmd@restore{titlepagestyle}% + \tud@cs@restore{titlepagestyle}% %</book|report|article> %<*poster> \renewcommand*\titlepagestyle{empty}% %</poster> - \tud@font@koma@unset{titlehead}% - \tud@font@koma@unset{title}% - \tud@font@koma@unset{subtitle}% - \tud@font@koma@unset{subject}% + \tud@komafont@unset{titlehead}% + \tud@komafont@unset{title}% + \tud@komafont@unset{subtitle}% + \tud@komafont@unset{subject}% %<*book|report|article> - \tud@font@koma@unset{author}% - \tud@font@koma@unset{date}% - \tud@font@koma@unset{publishers}% + \tud@komafont@unset{author}% + \tud@komafont@unset{date}% + \tud@komafont@unset{publishers}% %</book|report|article> \else% !false %<*book|report|article> - \tud@cmd@store{titlepagestyle}% + \tud@cs@store{titlepagestyle}% \renewcommand*\titlepagestyle{plain.tudheadings}% %</book|report|article> %<*poster> \renewcommand*\titlepagestyle{empty.tudheadings}% %</poster> - \tud@font@koma@set{titlehead}{\usekomafont{titlepage}}% - \tud@font@koma@set{title}{% - \raggedtitle% + \tud@komafont@set{titlehead}{\usekomafont{titlepage}}% + \tud@komafont@set{title}{% \usekomafont{disposition}% + \raggedtitle% \tud@sec@fontface% \tud@sec@fontsize% \tud@color{\tud@title@fontcolor}% }% - \tud@font@koma@set{subtitle}{% - \raggedtitle% - \ifstr{\mddefault}{l}{% - \tud@sec@fontface[\fontseries{m}]% - }{% - \tud@sec@fontface[\fontseries{bx}]% - }% - \usesizeofkomafont{section}% - \tud@color{\tud@title@fontcolor}% + \tud@komafont@set{subtitle}{% + \tud@thesis@fontsize% + \fontseries{\tud@cdfont@bf}\selectfont% }% - \tud@font@koma@set{subject}{% + \tud@komafont@set{subject}{% \sffamily% - \bfseries% + \usesizeofkomafont{section}% \tud@color{\tud@title@fontcolor}% }% %<*book|report|article> - \tud@font@koma@set{author}{\usekomafont{subject}}% - \tud@font@koma@set{date}{\usekomafont{titlepage}}% - \tud@font@koma@set{publishers}{\usekomafont{author}}% + \tud@komafont@set{author}{\usekomafont{subject}}% + \tud@komafont@set{publishers}{\usekomafont{author}}% + \tud@komafont@set{date}{\usekomafont{titlepage}}% %</book|report|article> \fi% % \end{macrocode} % Das gleiche für die Teileseiten. % \begin{macrocode} - \ifcase\tud@layout@part@num\relax% false - \tud@cmd@restore{partheadstartvskip}% + \ifcase\tud@cd@part@num\relax% false + \tud@cs@restore{scr@part@beforeskip}% %<*book|report> - \tud@cmd@restore{partheadendvskip}% - \tud@cmd@restore{partheademptypage}% - \tud@cmd@restore{partpagestyle}% + \tud@cs@restore{scr@part@innerskip}% %</book|report> - \ifcsdef{scr@v@3.18}{% - \tud@cmd@restore{scr@@startpart}% + \tud@cs@restore{scr@part@afterskip}% + \tud@cs@restore{partheadstartvskip}% %<*book|report> - \tud@cmd@restore{scr@@startspart}% + \tud@cs@restore{partheadendvskip}% + \tud@cs@restore{partheademptypage}% + \tud@cs@restore{partpagestyle}% %</book|report> - }{% - \tud@cmd@restore{@part}% -%<*book|report> - \tud@cmd@restore{@spart}% -%</book|report> - }% - \tud@sectioning@reset[addpart]{part}% - \tud@font@koma@unset{partnumber}% - \tud@cmd@restore{raggedpart}% + \tud@cs@restore{partlineswithprefixformat}% + \tud@komafont@unset{part}% + \tud@komafont@unset{partnumber}% + \tud@cs@restore{raggedpart}% % \end{macrocode} % Es werden die Standardbefehle gesichert und für das \CD angepasst. Einigen % Makros werden mittels \cs{let} Definitionen von anderen Makros zugewiesen, @@ -1028,147 +1021,146 @@ % weiter unten im Quelltext zu finden. % \begin{macrocode} \else% !false - \tud@cmd@store{partheadstartvskip}% - \let\partheadstartvskip\tud@partheadstartvskip% + \tud@cs@store{scr@part@beforeskip}% %<*book|report> - \tud@cmd@store{partheadendvskip}% - \let\partheadendvskip\tud@partheadendvskip% - \tud@cmd@store{partheademptypage}% - \let\partheademptypage\relax% - \tud@cmd@store{partpagestyle}% - \renewcommand*\partpagestyle{plain.tudheadings}% + \renewcommand*\scr@part@beforeskip{\tud@cd@beforeskip}% %</book|report> - \ifcsdef{scr@v@3.18}{% - \tud@cmd@store{scr@@startpart}% - \let\scr@@startpart\tud@@startpart% +%<*article|poster> + \renewcommand*\scr@part@beforeskip{\tud@cd@afterskip+\baselineskip}% +%</article|poster> %<*book|report> - \tud@cmd@store{scr@@startspart}% - \let\scr@@startspart\tud@@startspart% + \tud@cs@store{scr@part@innerskip}% + \renewcommand*\scr@part@innerskip{\tud@cd@innerskip}% %</book|report> - }{% - \tud@cmd@store{@part}% - \let\@part\tud@@part% + \tud@cs@store{scr@part@afterskip}% + \renewcommand*\scr@part@afterskip{\tud@cd@afterskip}% + \tud@cs@store{partheadstartvskip}% + \let\partheadstartvskip\tud@partheadstartvskip% %<*book|report> - \tud@cmd@store{@spart}% - \let\@spart\tud@@spart% + \tud@cs@store{partheadendvskip}% + \let\partheadendvskip\relax% + \tud@cs@store{partheademptypage}% + \let\partheademptypage\tud@partheademptypage% + \tud@cs@store{partpagestyle}% + \renewcommand*\partpagestyle{plain.tudheadings}% %</book|report> - }% + \tud@cs@store{partlineswithprefixformat}% + \let\partlineswithprefixformat\tud@partlineswithprefixformat% % \end{macrocode} % Es wird die Schriftfarbe, "~größe und "~art angepasst, je nachdem ob der % Titel des Dokumentes auf den Teileseiten auftauchen soll oder eben nicht. -% Für die Artikel-Klasse gibt es die \opt{parttitle}-Option nicht. % \begin{macrocode} -%<*book|report> - \if@tud@parttitle% - \tud@sectioning@set{part}{\usekomafont{parttitle}}% - \tud@font@koma@set{partnumber}{\usekomafont{parttitle}}% - \else% -%</book|report> - \tud@sectioning@set{part}{% - \tud@sec@fontface% - \tud@color{\tud@part@fontcolor}% - }% - \tud@font@koma@set{partnumber}{% - \tud@sec@fontface% - \tud@color{\tud@part@fontcolor}% - }% -%<*book|report> - \fi% -%</book|report> - \tud@cmd@store{raggedpart}% + \tud@komafont@set{part}{% + \tud@sec@fontface% + \tud@color{\tud@part@fontcolor}% + }% + \tud@komafont@set{partnumber}{% + \tud@sec@fontface% + \tud@color{\tud@part@fontcolor}% + }% + \tud@cs@store{raggedpart}% \renewcommand*\raggedpart{\tud@raggedright}% \fi% % \end{macrocode} -% Die Einstellungen für die Kapitel bzw. die folgenden Gliederungsebenen. Auch -% hier werden alle relevanten Befehle gesichert, damit diese wiederhergestellt -% werden können. Verständlicherweise fällt für die \cls{tudscrartcl}-Klasse -% der Anteil für die Kapitel weg. Das Verhalten der nachgelagerten -% Gliederungsebenen orientiert für diese Klasse an den Einstellungen für die -% Teileseiten. +% Die Einstellungen für die Kapitel. Auch hier werden alle relevanten Befehle +% gesichert, damit diese wiederhergestellt werden können. Verständlicherweise +% fällt für die \cls{tudscrartcl}-Klasse der Anteil für die Kapitel weg. % \begin{macrocode} %<*book|report> - \ifcase\tud@layout@chapter@num\relax% false - \tud@cmd@restore{chapterheadstartvskip}% - \tud@cmd@restore{chapterformat}% - \tud@cmd@restore{@chapter}% - \tud@cmd@restore{@schapter}% - \ifcsdef{scr@v@3.18}{% - \tud@cmd@restore{scr@@makechapterhead}% - }{% - \tud@cmd@restore{@@makechapterhead}% - }% - \tud@sectioning@reset[addchap]{chapter}% - \tud@font@koma@unset{chapterprefix}% - \tud@cmd@restore{raggedchapter}% + \ifcase\tud@cd@chapter@num\relax% false + \tud@cs@restore{scr@chapter@beforeskip}% + \tud@cs@restore{scr@chapter@innerskip}% + \tud@cs@restore{scr@chapter@afterskip}% + \tud@cs@restore{chapterheadstartvskip}% + \tud@cs@restore{chapterlineswithprefixformat}% + \tud@cs@restore{chapterlinesformat}% + \tud@cs@restore{tud@chapter@before@hook}% + \tud@cs@restore{tud@chapter@after@hook}% + \tud@komafont@unset{chapter}% + \tud@komafont@unset{chapterprefix}% + \tud@cs@restore{raggedchapter}% % \end{macrocode} % Auch hier werden die Standardbefehle für ein mögliches Deaktivieren der % Optionen gesichert und anschließend geändert. Dabei erfolgt die Zuweisung der % angepassten Befehle abermals über \cs{let}. % \begin{macrocode} \else% !false - \tud@cmd@store{chapterheadstartvskip}% + \tud@cs@store{scr@chapter@beforeskip}% + \renewcommand*\scr@chapter@beforeskip{\tud@cd@beforeskip}% + \tud@cs@store{scr@chapter@innerskip}% + \renewcommand*\scr@chapter@innerskip{\tud@cd@innerskip}% + \tud@cs@store{scr@chapter@afterskip}% + \renewcommand*\scr@chapter@afterskip{\tud@cd@afterskip}% + \tud@cs@store{chapterheadstartvskip}% \let\chapterheadstartvskip\tud@chapterheadstartvskip% - \tud@cmd@store{chapterformat}% - \tud@cmd@store{@chapter}% - \tud@cmd@store{@schapter}% - \ifcsdef{scr@v@3.18}{% - \tud@cmd@store{scr@@makechapterhead}% - \let\scr@@makechapterhead\tud@@makechapterhead% - }{% - \tud@cmd@store{@@makechapterhead}% - \let\@@makechapterhead\tud@@makechapterhead% - }% - \tud@sectioning@set{chapter}{% + \tud@cs@store{chapterlineswithprefixformat}% + \let\chapterlineswithprefixformat\tud@chapterlineswithprefixformat% + \tud@cs@store{chapterlinesformat}% + \let\chapterlinesformat\tud@chapterlinesformat% + \tud@cs@store{tud@chapter@before@hook}% + \renewcommand*\tud@chapter@before@hook{\tud@chapter@pre}% + \tud@cs@store{tud@chapter@after@hook}% + \renewcommand*\tud@chapter@after@hook{\tud@chapter@app}% + \tud@komafont@set{chapter}{% \tud@sec@fontface% \tud@sec@fontsize% \tud@color{\tud@chapter@fontcolor}% }% - \tud@font@koma@set{chapterprefix}{\usesizeofkomafont{partnumber}}% - \tud@cmd@store{raggedchapter}% + \tud@komafont@set{chapterprefix}{\usesizeofkomafont{partnumber}}% + \tud@cs@store{raggedchapter}% \renewcommand*\raggedchapter{\tud@raggedright}% \fi% %</book|report> - \ifcase\tud@layout@section@num\relax% false - \tud@sectioning@reset[addsec]{section}% - \tud@sectioning@reset{subsection}% - \tud@sectioning@reset{subsubsection}% - \tud@sectioning@reset{minisec}% - \tud@sectioning@reset{paragraph}% - \tud@sectioning@reset{subparagraph}% - \tud@cmd@restore{raggedsection}% % \end{macrocode} -% Auch hier werden die Standardbefehle für ein mögliches Deaktivieren der -% Optionen gesichert und anschließend geändert. -% \begin{macrocode} +% Die Einstellungen für die Abschnittsebene. Wiederum werden alle relevanten +% Befehle gesichert. +% \begin{macrocode} + \ifcase\tud@cd@section@num\relax% false + \tud@cs@restore{sectionlinesformat}% + \tud@cs@restore{sectioncatchphraseformat}% + \tud@komafont@unset{section}% + \tud@komafont@unset{subsection}% + \tud@komafont@unset{subsubsection}% + \tud@komafont@unset{paragraph}% + \tud@komafont@unset{subparagraph}% + \tud@cs@restore{raggedsection}% + \tud@cs@restore{minisec}% + \tud@komafont@unset{minisec}% \else% !false - \renewcommand*\tud@section@fontcolor{}% - \ifcase\tud@layout@section@num\relax\or\else% *color - \renewcommand*\tud@section@fontcolor{HKS41}% - \fi% - \tud@sectioning@set{section}{% - \tud@sec@fontface% - \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% - }% - \tud@sectioning@set{subsection}{% + \tud@cs@store{sectionlinesformat}% + \let\sectionlinesformat\tud@sectionlinesformat% + \tud@cs@store{sectioncatchphraseformat}% + \let\sectioncatchphraseformat\tud@sectioncatchphraseformat% + \tud@komafont@set{section}{% \tud@sec@fontface% - \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + \tud@color{\tud@section@fontcolor}% }% - \tud@sectioning@set{subsubsection}{% + \tud@komafont@set{subsection}{% \tud@sec@fontface% - \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + \tud@color{\tud@section@fontcolor}% }% - \tud@sectioning@set{minisec}{% + \tud@komafont@set{subsubsection}{% \tud@sec@fontface% - \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + \tud@color{\tud@section@fontcolor}% }% - \tud@sectioning@set{paragraph}{% - \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + \tud@komafont@set{paragraph}{% + \tud@color{\tud@section@fontcolor}% }% - \tud@sectioning@set{subparagraph}{% - \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + \tud@komafont@set{subparagraph}{% + \tud@color{\tud@section@fontcolor}% }% - \tud@cmd@store{raggedsection}% + \tud@cs@store{raggedsection}% \renewcommand*\raggedsection{\tud@raggedright}% + \tud@cs@store{minisec}% + \renewcommand\minisec[1]{% + \tud@cs@use{minisec}{\tud@sec@format{##1}}% + }% + \tud@komafont@set{minisec}{% + \tud@sec@fontface% + \ifcase\tud@cd@section@num\relax\or\else% *color + \ifstr{\tud@pagecolor}{HKS41}{}{\color{HKS41}}% + \fi% + }% \fi% % \end{macrocode} % Für Poster wird außerdem der passende Seitenstil und die Ausprägung von Kopf @@ -1181,184 +1173,130 @@ \else% !false \pagestyle{empty.tudheadings}% \ifcase\tud@cd@num\relax\or% true - \cs@std@lock{tud@head@bar@num}{0}% - \bool@std@lock{@tud@foot@colored}{false}% + \tud@locked@num@preset{tud@head@bar@num}{0}% + \tud@locked@bool@preset{@tud@foot@colored}{false}% \color{black}% \or% litecolor - \cs@std@lock{tud@head@bar@num}{1}% - \bool@std@lock{@tud@foot@colored}{false}% + \tud@locked@num@preset{tud@head@bar@num}{1}% + \tud@locked@bool@preset{@tud@foot@colored}{false}% \color{HKS41}% \or% barcolor - \cs@std@lock{tud@head@bar@num}{2}% - \bool@std@lock{@tud@foot@colored}{false}% + \tud@locked@num@preset{tud@head@bar@num}{2}% + \tud@locked@bool@preset{@tud@foot@colored}{false}% \color{HKS41}% \else% bicolor/color/full - \cs@std@lock{tud@head@bar@num}{3}% - \bool@std@lock{@tud@foot@colored}{true}% + \tud@locked@num@preset{tud@head@bar@num}{3}% + \tud@locked@bool@preset{@tud@foot@colored}{true}% \color{HKS41}% \fi% \fi% %</poster> } % \end{macrocode} -% \end{macro}^^A \tud@layout@process -% \begin{macro}{\tud@layout@specialpage@set} +% \end{macro}^^A \tud@cd@process +% \begin{macro}{\tud@cd@specialpage@set} % \changes{v2.04}{2015/04/21}{neu}^^A % \changes{v2.04d}{2016/03/26}{Bugfix für \cls{tudscrartcl}}^^A -% \begin{macro}{\tud@layout@specialpage@unset} +% \begin{macro}{\tud@cd@specialpage@unset} % \changes{v2.04}{2015/04/21}{neu}^^A % Diese beiden Hilfsmakros werden für Titel- Teile und separate Kapitelseite % benötigt, um die Fußnoten auf diesen speziellen Seiten in der gleichen Farbe % wie den Rest der verwendeten Schriften zu setzen. % \begin{macrocode} -\newcommand*\tud@layout@specialpage@set[1]{% - \tud@font@koma@set{footnote}{% +%<*book|report|article> +\newcommand*\tud@cd@specialpage@set[1]{% + \tud@komafont@set{footnote}{% \edef\@tempa{% \noexpand\tud@color{% \expandafter\noexpand\csname tud@#1@fontcolor\endcsname% }% }\@tempa% }% - \tud@cmd@store{footnoterule}% + \tud@cs@store{footnoterule}% \let\footnoterule\relax% } +%</book|report|article> %<*book|report> -\newcommand*\tud@layout@specialpage@unset{% - \tud@font@koma@unset{footnote}% - \tud@cmd@restore{footnoterule}% +\newcommand*\tud@cd@specialpage@unset{% + \tud@komafont@unset{footnote}% + \tud@cs@restore{footnoterule}% } %</book|report> % \end{macrocode} -% \end{macro}^^A \tud@layout@specialpage@unset -% \end{macro}^^A \tud@layout@specialpage@set -% \begin{macro}{\tud@partheadstartvskip} -% \changes{v2.02}{2014/11/05}{Nutzung der Option \opt{parttitle} verbessert}^^A -% \changes{v2.03}{2015/01/21}{Bei Verwendung der Option \opt{parttitle}: -% Abstand ist identisch zu Untertitel auf Titelseite}^^A -% \begin{macro}{\partheadstartvskip} -% Dieses Makro ersetzt den Standardbefehl \cs{partheadstartvskip} für die -% CD-Teilseiten. Damit lassen sich insbesondere die Farbanpassungen für alle -% Klassen sowie die Option \opt{parttitle} für \cls{tudscrreprt}- und -% \cls{tudscrbook}-Klasse einfach realisieren und gleichzeitig das -% Zurückschalten auf das Standardverhalten gewährleisten. +% \end{macro}^^A \tud@cd@specialpage@unset +% \end{macro}^^A \tud@cd@specialpage@set +% \begin{macro}{\tud@cd@headstartvskip} +% \changes{v2.06}{2018/08/01}{neu}^^A +% \begin{macro}{\tud@cd@vphantom} +% \changes{v2.06}{2018/08/01}{neu}^^A +% \begin{macro}{\tud@cd@beforeskip} +% \changes{v2.06}{2018/08/01}{neu}^^A +% \begin{macro}{\tud@cd@innerskip} +% \changes{v2.06}{2018/08/01}{neu}^^A +% \begin{macro}{\tud@cd@afterskip} +% \changes{v2.06}{2018/08/01}{neu}^^A +% Im \TUDCD werden sowohl Titel als auch Teil- und Kapitelüberschriften auf der +% gleichen Grundlinienhöhe gesetzt. Hierfür sind Anpassungen der entsprechenden +% Gliederungsbefehle notwendig. Insbesondere der vor den Überschriften gesetzte +% Abstand wird für gewöhnlich über die Befehle \cs{partheadstartvskip} bzw. +% \cs{chapterheadstartvskip} gesetzt. Um das Layout des \CDs umzusetzen, werden +% diese beiden Makros als Haken genutzt. % -% Für die \cls{tudscrartcl}-Klasse wird der vertikale Standardabstand -% beibehalten und lediglich die Farbanpassung hinzugefügt. -% \begin{macrocode} -%<*article|poster> -\newcommand*\tud@partheadstartvskip{} -\let\tud@partheadstartvskip\partheadstartvskip -\pretocmd{\tud@partheadstartvskip}{% - \renewcommand*\tud@part@fontcolor{}% false/true - \ifcase\tud@layout@part@num\relax\or\else% *color - \renewcommand*\tud@part@fontcolor{HKS41}% - \fi% -}{}{\tud@patch@wrn{tud@partheadstartvskip}} -%</article|poster> +% Das Makro \cs{tud@cd@beforeskip} enthält den Abstand vor einer Überschrift, +% welcher über \cs{tud@cd@headstartvskip} gesetzt wird. Der Abstand zwischen +% der Nummerierung eines Teils und der eigentlichen Bezeichnung wird mit +% \cs{tud@cd@innerskip} definiert und durch \KOMAScript{} eingefügt. Gleiches +% gilt für eine separate Kapitelnummernzeile (\opt{chapterprefix}) und dem +% eigentlichen Kapiteltitel. Durch \cs{tud@cd@afterskip} wird der Abstand +% zwischen Titel und Fließtext respektive der unteren Prääambel definiert. +% Dieser Abstand ist abhängig von der gewählten Einstellung für \opt{headings}. +% \begin{macrocode} +\newcommand*\tud@cd@beforeskip{% + \dimexpr-\tud@len@areavskip-\tud@len@areaheadvskip\relax% +} +\newcommand*\tud@cd@innerskip{.25\baselineskip}% +\newcommand*\tud@cd@afterskip{% + .75\baselineskip \@plus .05\baselineskip \@minus .1\baselineskip% +} +\newcommand*\tud@cd@headstartvskip{% + \@tempskipa=\glueexpr\tud@cd@beforeskip\relax\relax% + \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi% + \null\vskip-\baselineskip\vskip\@tempskipa% +} % \end{macrocode} -% Für \cls{tudscrreprt}- und \cls{tudscrbook}-Klasse werden die Farben gesetzt -% und die vertikalen Abstände neu definiert. +% Sollte keine Präfixzeile für Teile oder Kapitel verwendet werden, muss für +% die exakte Positionierung der Grundlinie des Titels der entsprechende Abstand +% eingefügt werden, wofür \cs{tud@cd@vphantom} genutzt wird. % \begin{macrocode} -%<*book|report> -\newcommand*\tud@partheadstartvskip{% - \renewcommand*\tud@part@fontcolor{}% false/true - \ifcase\tud@layout@part@num\relax\or\or% litecolor - \renewcommand*\tud@part@fontcolor{HKS41}% - \or% barcolor - \renewcommand*\tud@part@fontcolor{HKS41}% - \or% bicolor - \renewcommand*\tud@part@fontcolor{HKS41}% - \or% color - \renewcommand*\tud@part@fontcolor{HKS41!30}% - \or% full - \renewcommand*\tud@part@fontcolor{HKS41!30}% - \fi% - \tud@layout@specialpage@set{part}% +\newcommand*\tud@cd@vphantom{% \begingroup% - \vspace*{% - \dimexpr\tud@len@areavskip+\tud@len@areaheadvskip-\baselineskip\relax% - }% - \TUD@deprecated@lengthcs{pageheadingsvskip}% - \vspace*{\tud@dim@pageheadingsvskip}% - \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% -% \end{macrocode} -% Sollte die \opt{parttitle}-Option aktiviert sein, so wird der Titel des -% Dokumentes statt des Teiletitels mit \cs{tud@parttitle} auf die Seite -% gesetzt. -% \begin{macrocode} - \if@tud@parttitle% - \begingroup% - \tud@sec@fontface% - \tud@sec@fontsize% - \tud@color{\tud@part@fontcolor}% - \ifx\@@title\@empty% - \ClassWarning{\TUD@Class@Name}{% - You activated the option `parttitle' but\MessageBreak% - no title was given% - }% - \tud@makeuppercase{\strut}% - \else% - \tud@makeuppercase{\@@title}% - \fi% -% \end{macrocode} -% Der Titel des Teils wird auf der gleichen Höhe wie der Untertitel auf der -% Titelseite ausgegeben. -% \begin{macrocode} - \par\nobreak% - {\usekomafont{titlepage}{\vskip 2ex\@plus1ex\@minus1ex}}% - \endgroup% - \else% - \usekomafont{partnumber}{\tud@headmidvskip@reverse}% - \fi% + \usekomafont{partnumber}{\nobreak\tud@sec@strut}% + \setlength\@tempskipa{\tud@cd@innerskip}% + \par\nobreak\vskip\@tempskipa% \endgroup% } -%</book|report> % \end{macrocode} -% \end{macro}^^A \partheadstartvskip -% \end{macro}^^A \tud@partheadstartvskip +% \end{macro}^^A \tud@cd@afterskip +% \end{macro}^^A \tud@cd@innerskip +% \end{macro}^^A \tud@cd@beforeskip +% \end{macro}^^A \tud@cd@vphantom +% \end{macro}^^A \tud@cd@headstartvskip % % \iffalse %<*book|report> % \fi % -% \begin{macro}{\tud@partheadendvskip} -% \changes{v2.02}{2014/06/23}{neu}^^A -% Hiermit wird die Seitenfarbe gesetzt sowie die Schrift für Kopf und -% Seitenzahl verändert. Die Änderungen sollen dabei lokal bleiben, wofür das -% obligatorische Argument des Befehls \cs{tud@cleardoublespecialpage} verwendet -% wird. Damit wird abhängig von den Einstellungen für die beiden Optionen -% \opt{cleardoublespecialpage} und \opt{clearcolor} die Rückseite farbig -% gesetzt. -% \begin{macrocode} -\newcommand*\tud@partheadendvskip{% - \tud@cleardoublespecialpage{% - \renewcommand*\tud@pagecolor{}% - \ifcase\tud@layout@part@num\relax\or% true - \cs@std@lock{tud@head@bar@num}{0}% - \or% litecolor - \cs@set@lock{tud@head@bar@num}{1}% - \or% barcolor - \cs@set@lock{tud@head@bar@num}{2}% - \or% bicolor - \cs@set@lock{tud@head@bar@num}{3}% - \or% color - \renewcommand*\tud@pagecolor{HKS41}% - \cs@set@lock{tud@head@bar@num}{1}% - \or% full - \renewcommand*\tud@pagecolor{HKS41}% - \cs@set@lock{tud@head@bar@num}{3}% - \fi% - \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% - \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% - \clearpage% - }% - \tud@layout@specialpage@unset% -} -% \end{macrocode} -% \end{macro}^^A \tud@partheadendvskip -% +% \subsection{Positionierung und Formatierung von Überschriften} % \subsubsection{Präambeln für Teile und Kapitel} % +% \begin{macro}{\tud@preamble@fontcolor} +% \changes{v2.06}{2018/08/08}{neu}^^A +% Der Befehl wird innerhalb von \cs{set@@@@preamble} genutzt, um die notwendige +% Farbe des Textes zu aktivieren. +% \begin{macrocode} +\newcommand*\tud@preamble@fontcolor{} +% \end{macrocode} +% \end{macro}^^A \tud@preamble@fontcolor % \begin{macro}{\tud@partpreamble} % Um die \KOMAScript-Befehle für die Teilepräambel auch für das farbige Layout % nutzen zu können, müssen diese leicht angepasst werden. Für die Präambeln wird @@ -1368,18 +1306,24 @@ % gepatchte Version von \cs{set@@@@preamble}. % \begin{macrocode} \newcommand*\tud@partpreamble{% +% \end{macrocode} +% Zunächst wird der unterschiedliche Abstand bei Teil- und Kapitelpräambeln +% ausgeglichen. +% \begin{macrocode} + \@tempskipa=\glueexpr\tud@cd@afterskip\relax% + \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi% + \vskip\@tempskipa% +% \end{macrocode} +% Anschließend folgen die Anpassungen für die Teilpräambel. +% \begin{macrocode} \ifnum\tud@abstract@level@num>\@ne\relax% sec/chap \renewcommand*\tud@abstract@level@num{1}% \fi% \KOMAoptions{titlepage=false}% + \null\vskip-\baselineskip% \addtokomafont{disposition}{\tud@color{\tud@part@fontcolor}}% \addtokomafont{dictum}{\tud@color{\tud@part@fontcolor}}% - \tud@color{\tud@part@fontcolor}% -% \end{macrocode} -% Hiermit wird der unterschiedliche Abstand bei Teil- und Kapitelpräambeln -% ausgeglichen. -% \begin{macrocode} - \vskip\dimexpr\topskip+.9\baselineskip\relax% + \let\tud@preamble@fontcolor\tud@part@fontcolor% \@afterindentfalse\@afterheading% } % \end{macrocode} @@ -1395,18 +1339,14 @@ \renewcommand*\tud@abstract@level@num{1}% \fi% \KOMAoptions{titlepage=false}% + \null\vskip-\baselineskip% % \end{macrocode} % Die Farb- und Schrifteinstellungen sind nur für reine Kapitelseiten notwendig. % \begin{macrocode} \if@tud@chapterpage% - \ifcase\tud@cdfont@num\relax\or% true - \TUDoptions{cdfont=true}% - \or% heavy - \TUDoptions{cdfont=heavy}% - \fi% \addtokomafont{disposition}{\tud@color{\tud@chapter@fontcolor}}% \addtokomafont{dictum}{\tud@color{\tud@chapter@fontcolor}}% - \tud@color{\tud@chapter@fontcolor}% + \let\tud@preamble@fontcolor\tud@chapter@fontcolor% \fi% \@afterindentfalse\@afterheading% } @@ -1434,11 +1374,12 @@ }{% \def\@tempa####1@####2{% \@nameuse{tud@####1preamble}% + \tud@color{\tud@preamble@fontcolor}% \KOMAoptionOf[\KOMAoption{parskip}]{\KOMAClassFileName}{parskip}% }% \hbox to\hsize{% \let\phantomsection\relax% - #4\parbox[{#2}]{#3}{\@tempa#1#6\par}#5\par% + #4\parbox[{#2}]{#3}{\@tempa#1#6\par\bigskip}#5\par% }% }{}{\tud@patch@wrn{set@@@@preamble}} % \end{macrocode} @@ -1448,188 +1389,201 @@ %</book|report> % \fi % -% \subsubsection{Layoutumsetzung speziell für Teile} -% -% \begin{macro}{\tud@@startpart} -% \changes{v2.04}{2015/06/15}{\KOMAScript~v3.18}^^A -% \changes{v2.04e}{2016/06/17}{\KOMAScript~v3.21}^^A -% \begin{macro}{\scr@@startpart} -% \changes{v2.04}{2015/06/15}{\KOMAScript~v3.18}^^A -% \changes{v2.04e}{2016/06/17}{\KOMAScript~v3.21}^^A -% \begin{macro}{\tud@@startspart} -% \changes{v2.04}{2015/06/15}{\KOMAScript~v3.18}^^A -% \begin{macro}{\scr@@startspart} -% \changes{v2.04}{2015/06/15}{\KOMAScript~v3.18}^^A -% \begin{macro}{\tud@@part} -% \changes{v2.03}{2015/01/21}{Korrektur bei der Position der Überschrift}^^A -% \begin{macro}{\@part} -% \begin{macro}{\tud@@spart} -% \begin{macro}{\@spart} -% Damit auch das Präfix der Teile in Majuskeln erscheint, wird dem Befehl -% \cs{partformat}, welcher das Präfix enthält, für die \cls{tudscrartcl}-Klasse -% der entsprechende Befehl vorangestellt. Die Patches für \KOMAScript~v3.18: -% \begin{macrocode} -\ifcsdef{scr@v@3.18}{\@tempswatrue}{\@tempswafalse} -\if@tempswa +% \subsubsection{Untertitel für Teile und Kapitel} +% Im Layout des \CDs können für Teile und Kapitel auch Untertitel angegeben +% werden. +% +% \begin{macro}{\setpartsubtitle} +% \changes{v2.06}{2018/08/20}{neu}^^A +% \begin{KOMAfont}{partsubtitle} +% \changes{v2.06}{2018/08/20}{neu}^^A +% \begin{KOMAfont}{parttitle} +% \begin{macro}{\tud@part@subtitle} +% \changes{v2.06}{2018/08/20}{neu}^^A +% Auf Anwenderebene können mit \cs{setpartsubtitle} und \cs{setchaptersubtitle} +% die gewünschten Untertitel angegegben werden. +% \begin{macrocode} +\newcommand*\tud@part@subtitle{} +\newcommand*\setpartsubtitle[1]{\gdef\tud@part@subtitle{#1}} +% \end{macrocode} +% Die Schriftelement für die Untertitel von Teilen. +% \begin{macrocode} +\newkomafont{partsubtitle}{% + \tud@thesis@fontsize% + \fontseries{\tud@cdfont@bf}\selectfont% + \tud@color{\tud@part@fontcolor}% +} +\aliaskomafont{parttitle}{partsubtitle} +% \end{macrocode} +% \end{macro}^^A \tud@part@subtitle +% \end{KOMAfont}^^A parttitle +% \end{KOMAfont}^^A partsubtitle +% \end{macro}^^A \setpartsubtitle +% \begin{macro}{\setchaptersubtitle} +% \changes{v2.06}{2018/08/20}{neu}^^A +% \begin{KOMAfont}{chaptersubtitle} +% \changes{v2.06}{2018/08/20}{neu}^^A +% \begin{macro}{\tud@chapter@subtitle} +% \changes{v2.06}{2018/08/20}{neu}^^A +% Das gleiche Spiel für Kapitel. +% \begin{macrocode} +%<*book|report> +\newcommand*\tud@chapter@subtitle{} +\newcommand*\setchaptersubtitle[1]{\gdef\tud@chapter@subtitle{#1}} +% \end{macrocode} +% Die Schriftelement für die Untertitel von Kapiteln. +% \begin{macrocode} +\newkomafont{chaptersubtitle}{% + \tud@thesis@fontsize% + \fontseries{\tud@cdfont@bf}\selectfont% + \tud@color{\tud@chapter@fontcolor}% +} +%</book|report> +% \end{macrocode} +% \end{macro}^^A \tud@chapter@subtitle +% \end{KOMAfont}^^A chaptersubtitle +% \end{macro}^^A \setchaptersubtitle +% \begin{macro}{\tud@sec@subtitle} +% \changes{v2.06}{2018/08/01}{neu}^^A +% Dieses Makro dient zur Umsetzung der Untertitel. +% \begin{macrocode} +\newcommand*\tud@sec@subtitle[1]{% + \ifcsvoid{tud@#1@subtitle}{}{% + {\usekomafont{#1subtitle}{\tud@sec@format{\csuse{tud@#1@subtitle}}}}\par% + \global\cslet{tud@#1@subtitle}{\@empty}% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@sec@subtitle +% +% +% \subsubsection{Umsetzung für Teile} +% +% \begin{macro}{\tud@partheadstartvskip} +% \begin{macro}{\partheadstartvskip} +% Dieses Makro ersetzt den Standardbefehl \cs{partheadstartvskip} für die +% CD-Teilseiten. Damit lassen sich insbesondere die Farbanpassungen für alle +% Klassen einfach realisieren und gleichzeitig das Zurückschalten auf das +% Standardverhalten gewährleisten. +% +% Für die \cls{tudscrartcl}-Klasse wird der vertikale Standardabstand +% beibehalten und lediglich die Farbanpassung hinzugefügt. +% \begin{macrocode} %<*article|poster> - \newcommand*\tud@@startpart{}% - \let\tud@@startpart\scr@@startpart% - \ifcsdef{scr@v@3.21}{\@tempswatrue}{\@tempswafalse}% - \if@tempswa% - \patchcmd{\tud@@startpart}{% - \usekomafont{#1prefix}{\nobreak\@nameuse{#1format}}% - }{% - \usekomafont{#1prefix}{\nobreak\tud@makeuppercase{\@nameuse{#1format}}}% - }{}{\tud@patch@wrn{scr@@startpart}}% - \else% - \patchcmd{\tud@@startpart}{% - \usekomafont{#1prefix}{\@nameuse{#1format}}% - }{% - \usekomafont{#1prefix}{\tud@makeuppercase{\@nameuse{#1format}}}% - }{}{\tud@patch@wrn{scr@@startpart}}% +\newcommand*\tud@partheadstartvskip{} +\let\tud@partheadstartvskip\partheadstartvskip +\pretocmd{\tud@partheadstartvskip}{% + \renewcommand*\tud@part@fontcolor{}% false/true + \ifcase\tud@cd@part@num\relax\or\else% *color + \renewcommand*\tud@part@fontcolor{HKS41}% \fi% +}{}{\tud@patch@wrn{tud@partheadstartvskip}} %</article|poster> % \end{macrocode} -% Für \cls{tudscrbook}- und \cls{tudscrreprt}-Klasse ist etwas mehr Arbeit -% nötig. Für separate Teileseiten muss dafür Sorge getragen werden, dass die -% Überschrift unabhängig von der Tiefe der Nummerierung immer an der gleichen -% Position steht. +% Für \cls{tudscrreprt}- und \cls{tudscrbook}-Klasse werden die Farben gesetzt +% und die vertikalen Abstände neu definiert. % \begin{macrocode} %<*book|report> - \newcommand*\tud@@startpart{}% - \let\tud@@startpart\scr@@startpart% - \ifcsdef{scr@v@3.21}{\@tempswatrue}{\@tempswafalse}% - \if@tempswa% - \patchcmd{\tud@@startpart}{% - \ifnumbered{#1}{% - \usekomafont{#1prefix}{\nobreak\@nameuse{#1format}}% - \setlength{\@tempskipa}{\@nameuse{scr@#1@innerskip}}% - \partheadmidvskip% - }{}% - }{% - \ifnumbered{#1}{% - \usekomafont{#1prefix}{% - \nobreak\tud@makeuppercase{\@nameuse{#1format}}% - }% - \if@tud@parttitle% - \enskip% - \else% - \tud@headmidvskip@normal% - \fi% - }{% - \if@tud@parttitle\else% - \usekomafont{#1prefix}{\vphantom{\partname}}% - \tud@headmidvskip@normal% - \fi% - }% - }{}{\tud@patch@wrn{scr@@startpart}}% - \else% - \patchcmd{\tud@@startpart}{% - \ifnumbered{#1}{% - \usekomafont{#1prefix}{\@nameuse{#1format}}% - \setlength{\@tempskipa}{\@nameuse{scr@#1@innerskip}}% - \partheadmidvskip% - }{}% - }{% - \ifnumbered{#1}{% - \usekomafont{#1prefix}{\tud@makeuppercase{\@nameuse{#1format}}}% - \if@tud@parttitle% - \enskip% - \else% - \tud@headmidvskip@normal% - \fi% - }{% - \if@tud@parttitle\else% - \usekomafont{#1prefix}{\vphantom{\partname}}% - \tud@headmidvskip@normal% - \fi% - }% - }{}{\tud@patch@wrn{scr@@startpart}}% +\newcommand*\tud@partheadstartvskip{% + \renewcommand*\tud@part@fontcolor{}% false/true + \ifcase\tud@cd@part@num\relax\or\or% litecolor + \renewcommand*\tud@part@fontcolor{HKS41}% + \or% barcolor + \renewcommand*\tud@part@fontcolor{HKS41}% + \or% bicolor + \renewcommand*\tud@part@fontcolor{HKS41}% + \or% color + \renewcommand*\tud@part@fontcolor{HKS41!30}% + \or% full + \renewcommand*\tud@part@fontcolor{HKS41!30}% \fi% + \tud@cd@specialpage@set{part}% + \tud@cd@headstartvskip% + \TUD@deprecated@lengthcs{pageheadingsvskip}% + \vspace*{\tud@dim@pageheadingsvskip}% +} %</book|report> % \end{macrocode} -% Bei den Teile-Befehlen ohne Gliederungsnummerierung muss zusätzlich der -% Freiraum vorgehalten werden, damit alle Überschriften auf der gleichen -% vertikalen Position liegen. +% \end{macro}^^A \partheadstartvskip +% \end{macro}^^A \tud@partheadstartvskip +% \begin{macro}{\tud@partheademptypage} +% \changes{v2.02}{2014/06/23}{neu}^^A +% Hiermit wird die Seitenfarbe gesetzt sowie die Schrift für Kopf und +% Seitenzahl verändert. Die Änderungen sollen dabei lokal bleiben, wofür +% der Befehl \cs{tud@cleardoublespecialpage} verwendet wird. Damit wird +% abhängig von den beiden Optionen \opt{cleardoublespecialpage} und +% \opt{clearcolor} die Rückseite farbig gesetzt. % \begin{macrocode} %<*book|report> - \newcommand*\tud@@startspart{}% - \let\tud@@startspart\scr@@startspart% - \patchcmd{\tud@@startspart}{% - \normalfont - \sectfont\nobreak - }{% - \normalfont\sectfont\nobreak% - \if@tud@parttitle\else% - \size@partnumber{\vphantom{\partname}}% - \tud@headmidvskip@normal\nobreak% +\newcommand*\tud@partheademptypage{% + \tud@cleardoublespecialpage{% + \renewcommand*\tud@pagecolor{}% + \ifcase\tud@cd@part@num\relax\or% true + \tud@locked@num@preset{tud@head@bar@num}{0}% + \or% litecolor + \tud@locked@num@set{tud@head@bar@num}{1}% + \or% barcolor + \tud@locked@num@set{tud@head@bar@num}{2}% + \or% bicolor + \tud@locked@num@set{tud@head@bar@num}{3}% + \or% color + \renewcommand*\tud@pagecolor{HKS41}% + \tud@locked@num@set{tud@head@bar@num}{1}% + \or% full + \renewcommand*\tud@pagecolor{HKS41}% + \tud@locked@num@set{tud@head@bar@num}{3}% \fi% - }{}{\tud@patch@wrn{scr@@startspart}}% + \clearpage% + }% + \tud@cd@specialpage@unset% +} %</book|report> % \end{macrocode} -% Und nun das Gleiche für \KOMAScript~v3.17: +% \end{macro}^^A \tud@partheademptypage +% \begin{macro}{\tud@partlineswithprefixformat} +% \changes{v2.06}{2018/08/01}{neu}^^A +% \begin{macro}{\tud@partformat} +% \changes{v2.06}{2018/08/01}{neu}^^A +% Die Formatierungsbefehle für die Überschriften von Teilen. % \begin{macrocode} -\else - \newcommand*\tud@@part{}% -%<*article|poster> - \let\tud@@part\@part% - \patchcmd{\tud@@part}{\size@partnumber{\partformat}}{% - \size@partnumber{\tud@makeuppercase{\partformat}}% - }{}{\tud@patch@wrn{@part}}% -%</article|poster> +\newcommand*\tud@partformat{}% +\newcommand*\tud@partlineswithprefixformat[3]{% %<*book|report> - \let\tud@@part\@part% - \patchcmd{\tud@@part}{% - \ifnumbered{part}{% - \size@partnumber{\partformat}% - \setlength{\@tempskipa}{\scr@part@innerskip}% - \partheadmidvskip% - }{}% - }{% - \ifnumbered{part}{% - \size@partnumber{\tud@makeuppercase{\partformat}}% - \if@tud@parttitle% - \enskip% - \else% - \tud@headmidvskip@normal% - \fi% - }{% - \if@tud@parttitle\else% - \size@partnumber{\vphantom{\partname}}% - \tud@headmidvskip@normal% - \fi% - }% - }{}{\tud@patch@wrn{@part}}% - \newcommand*\tud@@spart{}% - \let\tud@@spart\@spart% - \patchcmd{\tud@@spart}{% - \normalfont - \sectfont\nobreak\size@part - }{% - \normalfont\sectfont\nobreak% - \if@tud@parttitle\else% - \size@partnumber{\vphantom{\partname}}% - \tud@headmidvskip@normal\nobreak% + \if@tud@parttitle% + \ifx\@@title\@empty% + \ClassWarning{\TUD@Class@Name}{% + You activated the option `parttitle' but\MessageBreak% + no title was given% + }% \fi% - \size@part% - }{}{\tud@patch@wrn{@spart}}% + \tud@cd@vphantom% + \tud@sec@format[#1]{% + \usekomafont{#1}{\nobreak\interlinepenalty \@M\@@title\strut\@@par}% + }% + \setpartsubtitle{% + \setkomafont{part}{}% + \tud@sec@format[partnumber]{\IfUseNumber{\partformat\enskip}{}#3}% + }% + \else% %</book|report> -\fi + \edef\tud@partformat{\noexpand\tud@sec@format{\expandonce\partformat}}% + \let\partformat\tud@partformat% + \IfUseNumber{}{\tud@cd@vphantom}% + #2\tud@sec@format[#1]{#3}% +%<*book|report> + \fi% +%</book|report> + \tud@sec@subtitle{#1}% +} % \end{macrocode} -% \end{macro}^^A \@spart -% \end{macro}^^A \tud@@spart -% \end{macro}^^A \@part -% \end{macro}^^A \tud@@part -% \end{macro}^^A \scr@@startspart -% \end{macro}^^A \tud@@startspart -% \end{macro}^^A \scr@@startpart -% \end{macro}^^A \tud@@startpart +% \end{macro}^^A \tud@partformat +% \end{macro}^^A \tud@partlineswithprefixformat % % \iffalse %<*book|report> % \fi % -% \subsubsection{Layoutumsetzung speziell für Kapitel} +% \subsubsection{Umsetzung für Kapitel} % % \begin{macro}{\tud@chapterheadstartvskip} % \changes{v2.02}{2014/06/23}{neu}^^A @@ -1640,12 +1594,10 @@ % \begin{macrocode} \newcommand*\tud@chapterheadstartvskip{% \renewcommand*\tud@chapter@fontcolor{}% - \ifcase\tud@layout@chapter@num\relax\or\else% *color + \ifcase\tud@cd@chapter@num\relax\or\else% *color \renewcommand*\tud@chapter@fontcolor{HKS41}% \fi% - \vspace*{% - \dimexpr\tud@len@areavskip+\tud@len@areaheadvskip\relax% - }% + \tud@cd@headstartvskip% \if@tud@chapterpage% \TUD@deprecated@lengthcs{pageheadingsvskip}% \vspace*{\tud@dim@pageheadingsvskip}% @@ -1656,68 +1608,43 @@ } % \end{macrocode} % \end{macro}^^A \tud@chapterheadstartvskip -% \begin{macro}{\tud@@makechapterhead} -% \begin{macro}{\scr@@makechapterhead} -% \begin{macro}{\@@makechapterhead} -% Für das Präfix des Kapitels bei der gegebenenfalls aktivierten Option -% \opt{chapterprefix} ist einiges an Anpassungen notwendig, um die eigentliche -% Überschrift auf der gewünschten Position erscheinen zu lassen. -% -% Zunächst muss die Überschrift um die Höhe des Präfixes und ggf. der Länge -% \cs{parskip} nach oben verschoben werden. Der Befehl \cs{chapterformat} -% enthält das Präfix selbst. Damit dieses in Majuskeln erscheint, wird -% \cs{chapterformat} im Argument des Makros \cs{tud@makeuppercase} verwendet. -% Zuletzt wird der Abstand zwischen dem Präfix und dem Kapiteltitel auf -% \cs{tud@headmidvskip@normal} gesetzt. Somit liegen die Kapitelüberschriften -% für alle Einstellmöglichkieten der \opt{parskip}-Option immer auf exakt der -% selben Höhe. -% -% Zuerst die Patches für \KOMAScript~v3.18: -% \begin{macrocode} -\newcommand*\tud@@makechapterhead{}% -\ifcsdef{scr@v@3.18}{\@tempswatrue}{\@tempswafalse} -\if@tempswa - \let\tud@@makechapterhead\scr@@makechapterhead% - \patchcmd{\tud@@makechapterhead}{% - \csname #1format\endcsname% - \setlength{\@tempskipa}{\csname scr@#1@innerskip\endcsname}% - \chapterheadmidvskip - }{% - \tud@headmidvskip@reverse% - \vskip-\parskip% - \tud@makeuppercase{\csname #1format\endcsname}% - \tud@headmidvskip@normal% - }{}{\tud@patch@wrn{scr@@makechapterhead}}% -% \end{macrocode} -% Und nun das Gleiche für \KOMAScript~v3.17: -% \begin{macrocode} -\else - \let\tud@@makechapterhead\@@makechapterhead% - \patchcmd{\tud@@makechapterhead}{% - \chapterformat - \setlength{\@tempskipa}{\scr@chapter@innerskip}% - \chapterheadmidvskip - }{% - \tud@headmidvskip@reverse% - \vskip-\parskip% - \tud@makeuppercase{\chapterformat}% - \tud@headmidvskip@normal% - }{}{\tud@patch@wrn{@@makechapterhead}}% -\fi +% \begin{macro}{\tud@chapterlineswithprefixformat} +% \changes{v2.06}{2018/08/01}{neu}^^A +% \begin{macro}{\tud@chapterformat} +% \changes{v2.06}{2018/08/01}{neu}^^A +% \begin{macro}{\tud@chapterlinesformat} +% \changes{v2.06}{2018/08/01}{neu}^^A +% Die Formatierungsbefehle für die Überschriften von Kapiteln. +% \begin{macrocode} +\newcommand*\tud@chapterformat{}% +\newcommand*\tud@chapterlineswithprefixformat[3]{% + \edef\tud@chapterformat{% + \noexpand\tud@sec@format{\expandonce\chapterformat}% + }% + \let\chapterformat\tud@chapterformat% + \IfUseNumber{}{\tud@cd@vphantom}% + #2\tud@sec@format[#1]{#3}% + \tud@sec@subtitle{#1}% +} +\newcommand*\tud@chapterlinesformat[3]{% + \tud@cd@vphantom% + \@hangfrom{#2}{\tud@sec@format[#1]{#3}}% + \tud@sec@subtitle{#1}% +} % \end{macrocode} -% \end{macro}^^A \@@makechapterhead -% \end{macro}^^A \@@makechapterhead -% \end{macro}^^A \tud@@makechapterhead +% \end{macro}^^A \tud@chapterlinesformat +% \end{macro}^^A \tud@chapterformat +% \end{macro}^^A \tud@chapterlineswithprefixformat % \begin{macro}{\tud@chapter@pre} % \begin{macro}{\tud@chapter@app} -% \begin{macro}{\tud@head@bar@store} -% \changes{v2.04}{2015/04/01}{neu}^^A % \begin{macro}{\tud@head@bar@restore} % \changes{v2.04}{2015/04/01}{neu}^^A % Diese Makros dienen zur Behandlung der Besonderheiten von Kapiteln. Dies gilt % sowohl für normale Kapitelüberschriften als auch für separate Kapitelseiten % (Option~\opt{chapterpage}). Eingefügt werden sie für die Gliederungsbefehle -% der Kapitel (\cs{chapter} und \cs{addchap}) durch \cs{tud@sectioning@case}. +% der Kapitel durch die beiden Haken \cs{tud@chapter@before@hook} sowie +% \cs{tud@chapter@after@hook}, den Start und das Ende der Gliederungsbefehle +% für Kapitel definieren. % \begin{macrocode} \newcommand*\tud@chapter@pre{% \if@tud@chapterpage% @@ -1731,7 +1658,7 @@ % \begin{macrocode} \@restonecolfalse% \if@twocolumn\@restonecoltrue\onecolumn\fi% - \tud@layout@specialpage@set{chapter}% + \tud@cd@specialpage@set{chapter}% \fi% } % \end{macrocode} @@ -1739,8 +1666,6 @@ % Option \opt{cdchapter} für die Gestalt des TUD-Kopfes beachtet, falls dieser % zum Einsatz kommt. % \begin{macrocode} -\newcommand*\tud@head@bar@store{} -\let\tud@head@bar@store\relax \newcommand*\tud@head@bar@restore{} \let\tud@head@bar@restore\relax \newcommand*\tud@chapter@app{% @@ -1758,26 +1683,24 @@ \tud@cleardoublespecialpage{% \renewcommand*\tud@pagecolor{}% \let\tud@foot@fontcolor\tud@chapter@fontcolor% - \ifcase\tud@layout@chapter@num\relax\or% true - \cs@std@lock{tud@head@bar@num}{0}% + \ifcase\tud@cd@chapter@num\relax\or% true + \tud@locked@num@preset{tud@head@bar@num}{0}% \or% litecolor - \cs@set@lock{tud@head@bar@num}{1}% + \tud@locked@num@set{tud@head@bar@num}{1}% \or% barcolor - \cs@set@lock{tud@head@bar@num}{2}% + \tud@locked@num@set{tud@head@bar@num}{2}% \or% bicolor - \cs@set@lock{tud@head@bar@num}{3}% + \tud@locked@num@set{tud@head@bar@num}{3}% \or% color \renewcommand*\tud@pagecolor{HKS41!10}% - \cs@set@lock{tud@head@bar@num}{1}% + \tud@locked@num@set{tud@head@bar@num}{1}% \or% fullcolor \renewcommand*\tud@pagecolor{HKS41!10}% - \cs@set@lock{tud@head@bar@num}{3}% + \tud@locked@num@set{tud@head@bar@num}{3}% \fi% - \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% - \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% \clearpage% }% - \tud@layout@specialpage@unset% + \tud@cd@specialpage@unset% % \end{macrocode} % Außerdem wird für den Zweispaltensatz auf normales Verhalten zurückgestellt. % \begin{macrocode} @@ -1785,29 +1708,27 @@ % \end{macrocode} % Sollten keine reinen Kapitelseiten verwendet werden, wird die Einstellung für % die Gestalt des Seitenkopfes im restlichen Dokument (\cs{tud@head@bar@num}) -% in \cs{tud@head@bar@store} gesichert und \cs{tud@head@bar@restore} definiert, -% womit der gesicherte Wert beim Ausführen der Ebene \pgs{tudheadings.last} -% für die darauffolgenden Seite wiederhergestellt wird. +% in \cs{tud@head@bar@restore} gesichert. Dieser Befehl wird beim Ausführen der +% Ebene \pgs{tudheadings.last} aufgerufen, wodurch der geischerte Wert ab der +% darauffolgenden Seite wiederhergestellt wird. % \begin{macrocode} \else% - \edef\tud@head@bar@store{\tud@head@bar@num}% \edef\tud@head@bar@restore{% - \gdef\noexpand\tud@head@bar@num{\tud@head@bar@store}% - \global\let\noexpand\tud@head@bar@store\relax% + \gdef\noexpand\tud@head@bar@num{\tud@head@bar@num}% \global\let\noexpand\tud@head@bar@restore\relax% }% - \ifcase\tud@layout@chapter@num\relax\or% true - \cs@std@lock{tud@head@bar@num}{0}% + \ifcase\tud@cd@chapter@num\relax\or% true + \tud@locked@num@preset{tud@head@bar@num}{0}% \or% litecolor - \cs@set@lock{tud@head@bar@num}{1}% + \tud@locked@num@set{tud@head@bar@num}{1}% \or% barcolor - \cs@set@lock{tud@head@bar@num}{2}% + \tud@locked@num@set{tud@head@bar@num}{2}% \or% bicolor - \cs@set@lock{tud@head@bar@num}{3}% + \tud@locked@num@set{tud@head@bar@num}{3}% \or% color - \cs@set@lock{tud@head@bar@num}{1}% + \tud@locked@num@set{tud@head@bar@num}{1}% \or% fullcolor - \cs@set@lock{tud@head@bar@num}{3}% + \tud@locked@num@set{tud@head@bar@num}{3}% \fi% % \end{macrocode} % Im Kompatibilitätsmodus muss genügend zusätzlicher Freiraum für ein ggf. @@ -1825,220 +1746,80 @@ } % \end{macrocode} % \end{macro}^^A \tud@head@bar@restore -% \end{macro}^^A \tud@head@bar@store % \end{macro}^^A \tud@chapter@pre % \end{macro}^^A \tud@chapter@app -% \begin{macro}{\tud@clearcolor@wrn} -% Die Warnung für den Fall, dass die Option \opt{clearcolor} ohne -% \opt{open}|=|\val{right} und \opt{twoside} verwendet wird. -% \begin{macrocode} -\newcommand*\tud@clearcolor@wrn{% - \ClassWarning{\TUD@Class@Name}{% - Option `clearcolor' is only available together with\MessageBreak% - options `twoside' and `open=right'% - }% - \global\let\tud@clearcolor@wrn\relax% -} -% \end{macrocode} -% \end{macro}^^A \tud@clearcolor@wrn -% Damit ist das Intermezzo für die beiden Klassen \cls{tudscrbook} und -% \cls{tudscrreprt} beendet. +% \begin{macro}{\tud@chapter@before@hook} +% \changes{v2.06}{2018/08/01}{neu}^^A +% \begin{macro}{\tud@chapter@after@hook} +% \changes{v2.06}{2018/08/01}{neu}^^A +% \begin{macro}{\scr@startchapter} +% \begin{macro}{\scr@@startchapter} +% \begin{macro}{\scr@@startschapter} +% Die beiden Haken \cs{tud@chapter@before@hook} und \cs{tud@chapter@after@hook} +% werden den \KOMAScript-Befehlen hinzugefügt, welche den Start und das Ende +% der Gliederungsbefehle für Kapitel definieren. +% \begin{macrocode} +\newcommand*\tud@chapter@before@hook{} +\newcommand*\tud@chapter@after@hook{} +\pretocmd\scr@startchapter{% + \tud@chapter@before@hook% +}{}{\tud@patch@wrn{scr@startchapter}} +\apptocmd\scr@@startchapter{% + \tud@chapter@after@hook% +}{}{\tud@patch@wrn{scr@@startchapter}} +\apptocmd\scr@@startschapter{% + \tud@chapter@after@hook% +}{}{\tud@patch@wrn{scr@@startschapter}} +% \end{macrocode} +% \end{macro}^^A \scr@@startschapter +% \end{macro}^^A \scr@@startchapter +% \end{macro}^^A \scr@startchapter +% \end{macro}^^A \tud@chapter@after@hook +% \end{macro}^^A \tud@chapter@before@hook % % \iffalse %</book|report> % \fi % -% \subsubsection{Erzwungene Majuskeln für Überschriften} -% -% \begin{macro}{\tud@part} -% \begin{macro}{\tud@spart} -% \begin{macro}{\tud@chapter} -% \begin{macro}{\tud@schapter} -% \begin{macro}{\tud@section} -% \begin{macro}{\tud@ssection} -% \begin{macro}{\tud@subsection} -% \begin{macro}{\tud@ssubsection} -% \begin{macro}{\tud@subsubsection} -% \begin{macro}{\tud@ssubsubsection} -% Das \CD verlangt, dass sämtliche Auszeichnungen, die in \DIN gesetzt werden, -% groß zu schreiben sind. Das bedeutet, dass alle Überschriften automatisch in -% Majuskeln und in der gewünschten Schriftart erscheinen müssen. Dies erfordert -% eine Anpassung der Gliederungsbefehle, ohne deren normales Verhalten zu -% beeinflussen. -% -% Dazu werden die benötigten Hilfsmakros initialisiert. Die Gliederungsbefehle -% selbst werden innerhalb des Befehles \cs{tud@sectioning@set} durch -% \cs{tud@cmd@store} gesichert und anschließend mit \cs{tud@sectioning@case} -% neu definiert. Dabei wird mit \cs{SecDef} unterschieden, ob die Sternversion -% des Gliederungsbefehls durch den Anwender verwendet wird und ggf. das -% Hilfsmakro \cs{tud@s\meta{Gliederungsbefehl}} aufgerufen. Andernfalls wird -% \cs{tud@\meta{Gliederungsbefehl}} verwendet. -% -% Alle für \TUDScript angepassten Gliederungsbefehle von \cs{part} bis -% \cs{subsubsection} werden seit Version~v2.02 ausnahmslos mit \cs{SecDef} -% erzeugt. -% \ToDo{% -% Besser suchbare Makronamen (z.B. \cs{tud@sec@chapter}) implementieren% -% }[v2.06] -% \ToDo{Reimplementierung mit \cs{DeclareSectionCommand}}[v2.06] -% \ToDo{headings=optiontoheadandtoc in allen Kombinationen beachten!}[v2.06] -% \ToDo{\cs{ifcsdef\{scr@v@3.18\}} raus, \KOMAScript~v3.22 obligatorisch}[v2.06] -% \ToDo{Alle Elemente für vertikalen Freiraum vor Änderungen schützen}[v2.06] -% \ToDo{\cs{...pagecolor} (part/chapter/title)}[v2.06] -% \ToDo{\cs{...fontcolor} (part/chapter/title)}[v2.06] -% \ToDo{Schriftfarbauswahl in \cs{tud@layout@process}}[v2.06] -% \ToDo{Falls notwendig, \cs{@@tud@} mit \cs{tud@cmd@use} ersetzen}[v2.06] -% \begin{macrocode} -\newcommand*\tud@part{} -\newcommand*\tud@spart{} -%<*book|report> -\newcommand*\tud@chapter{} -\newcommand*\tud@schapter{} -%</book|report> -\newcommand*\tud@section{} -\newcommand*\tud@ssection{} -\newcommand*\tud@subsection{} -\newcommand*\tud@ssubsection{} -\newcommand*\tud@subsubsection{} -\newcommand*\tud@ssubsubsection{} -% \end{macrocode} -% \end{macro}^^A \tud@ssubsubsection -% \end{macro}^^A \tud@subsubsection -% \end{macro}^^A \tud@ssubsection -% \end{macro}^^A \tud@subsection -% \end{macro}^^A \tud@ssection -% \end{macro}^^A \tud@section -% \end{macro}^^A \tud@schapter -% \end{macro}^^A \tud@chapter -% \end{macro}^^A \tud@spart -% \end{macro}^^A \tud@part -% \begin{macro}{\tud@sectioning@set} -% \changes{v2.02}{2014/08/16}{Bug mit Majuskeln bei \cs{addsec} behoben}^^A -% \changes{v2.05k}{2017/03/14}{Sonderbehandlung von \cs{add\dots} unnötig}^^A -% \begin{macro}{\tud@sectioning@case} -% \changes{v2.02}{2014/09/12}{Reimplementierung mit \cs{SecDef}}^^A -% \begin{macro}{\tud@sectioning@reset} -% \begin{macro}{\tud@sectioning@uppercase} -% \changes{v2.02}{2014/07/25}{neu}^^A -% Das Makro \cs{tud@sectioning@set} sichert und überschreibt die gegebenen -% Befehle der einzelnen Gliederungsebenen und fügt diesen die zusätzlich -% angegebene Schriftdefinition mit dem Makro \cs{tud@font@koma@set} zu. -% \begin{macrocode} -\newcommand*\tud@sectioning@set[2]{% - \tud@cmd@store{#1}% -% \end{macrocode} -% Für die Überschriften, welche mit \cs{minisec} gesetzt werden, genügt jedoch -% ein vereinfachtes Vorgehen. -% \begin{macrocode} - \ifstr{#1}{minisec}{% - \renewcommand\minisec[1]{\@@tud@minisec{\tud@makeuppercase{##1}}}% -% \end{macrocode} -% Hier erfolgt die Anpassung und Formatierung aller anderen Gliederungsbefehle. -% \begin{macrocode} - }{% - \tud@sectioning@case{#1}% - }% - \tud@font@koma@set{#1}{#2}% -} -% \end{macrocode} -% Da die Großschreibung der Überschriften nur beim Setzen der Überschrift -% selbst, nicht aber beispielsweise im Inhaltsverzeichnis oder aber in der -% Kopfzeile unerwünscht erfolgen soll, werden die Gliederungsbefehle angepasst. -% Dabei müssen alle Varianten, also auch die mit Stern und optionalen Argument -% beachtet werden. -% \begin{macrocode} -\newcommand*\tud@sectioning@case[1]{% -% \end{macrocode} -% Als erstes wird unterschieden, ob die normale oder aber die nicht-nummerierte -% sprich die Sternversion gefordert ist. Dies passiert mit \cs{SecDef}. Für die -% Teileebene werden beispielsweise entweder \cs{tud@part} oder \cs{tud@spart} -% aufgerufen. Dabei wird durch \cs{SecDef} für \cs{tud@part} das obligatorische -% in das optionale Argument kopiert, falls keines angegeben wurde. -% \begin{macrocode} - \csedef{#1}{% - \noexpand\SecDef% - \expandafter\expandafter\expandafter\noexpand% - \expandafter\csname tud@#1\endcsname% - \expandafter\expandafter\expandafter\noexpand% - \expandafter\csname tud@s#1\endcsname% - }% -% \end{macrocode} -% Da für die normale Version das optionale Argument ggf. durch \cs{SecDef} -% automatisch erzeugt wird, ist nur die Definition eines Befehls mit optionalen -% Argument notwendig. Dabei wird der in \cs{@@tud@\meta{Gliederungsbefehl}} -% gesicherte Originalbefehl mit dem gewünschten Eintrag als optionales Argument -% aufgerufen und nur das obligatorische Argument mit \cs{tud@makeuppercase} -% behandelt. -% \begin{macrocode} - \csedef{tud@#1}[##1]##2{% - \expandafter\expandafter\expandafter\noexpand% - \expandafter\csname @@tud@#1\endcsname% - [{##1}]{\noexpand\tud@sectioning@uppercase{##2}}% - }% -% \end{macrocode} -% Für die Version mit Stern gibt es kein optionales Argument. Dementsprechend -% wird hier lediglich das obligatorische Argument in Großbuchstaben gesetzt. -% \begin{macrocode} - \csedef{tud@s#1}##1{% - \expandafter\expandafter\expandafter\noexpand% - \expandafter\csname @@tud@#1\endcsname*% - {\noexpand\tud@sectioning@uppercase{##1}}% - }% -% \end{macrocode} -% Die Änderungen durch \cs{tud@chapter@pre} und \cs{tud@chapter@app} sollen bei -% der Erzeugung eines Kapitels greifen. Damit die originalen Befehle nicht -% beeinflusst werden, erfolgt die Manipulation der bereits adaptierten Befehle -% für Kapitel. +% \subsubsection{Umsetzung für Abschnitte etc.} +% +% Die Farbwahl wird einfach in dem von \KOMAScript{} bereitgestellten Haken +% zu Beginn einer Abschnittsüberschrift ausgeführt. % \begin{macrocode} -%<*book|report> - \ifstr{#1}{chapter}{% - \def\@tempa{,s}% - \@for\@tempb:=\@tempa\do{% - \expandafter\pretocmd\expandafter{\csname tud@\@tempb#1\endcsname}{% - \tud@chapter@pre% - }{}{\tud@patch@wrn{tud@sectioning@case}}% - \expandafter\apptocmd\expandafter{\csname tud@\@tempb#1\endcsname}{% - \tud@chapter@app% - }{}{\tud@patch@wrn{tud@sectioning@case}}% +\At@startsection{% + \renewcommand*\tud@section@fontcolor{}% + \ifcase\tud@cd@section@num\relax\or\else% *color + \ifstr{\tud@pagecolor}{HKS41}{}{% + \renewcommand*\tud@section@fontcolor{HKS41}% }% - }{}% -%</book|report> + \fi% } % \end{macrocode} -% Mit dem Makro \cs{tud@sectioning@reset} können die manipulierten -% Gliederungsbefehle wieder auf ihr ursprüngliches Verhalten zurückgesetzt -% werden. +% \begin{macro}{\tud@sectionlinesformat} +% \changes{v2.06}{2018/08/01}{neu}^^A +% \begin{macro}{\tud@sectioncatchphraseformat} +% \changes{v2.06}{2018/08/01}{neu}^^A +% Die Formatierungsbefehle für die Überschriften von Abschnitten etc. % \begin{macrocode} -\newcommand*\tud@sectioning@reset[2][]{% - \tud@cmd@restore{#2}% - \ifblank{#1}{}{\tud@cmd@restore{#1}}% - \tud@font@koma@unset{#2}% +\newcommand*\tud@sectionlinesformat[4]{% + \@hangfrom{\hskip #2#3}{\tud@sec@format[#1]{#4}}% } % \end{macrocode} -% Der Befehl \cs{tud@sectioning@uppercase} ist für das Setzen der -% Gliederungsüberschriften in Majuskeln verantwortlich. Außerdem wird ggf. die -% Option \opt{footnotes}|=|\val{symbolheadings} umgesetzt. +% Für Überschriften mit Einzug wird \cs{tud@sec@strut} wirkungslos definiert. % \begin{macrocode} -\robustify{\footnote} -\newcommand*\tud@sectioning@uppercase[1]{% - \begingroup% - \if@tud@symbolheadings% - \let\c@footnote\c@symbolheadings% - \renewcommand*\thefootnote{\fnsymbol{symbolheadings}}% - \fi% - \tud@makeuppercase{#1}% - \endgroup% +\newcommand*\tud@sectioncatchphraseformat[4]{% + \let\tud@sec@strut\relax% + \hskip #2#3\tud@sec@format[#1]{#4}% } % \end{macrocode} -% \end{macro}^^A \tud@sectioning@uppercase -% \end{macro}^^A \tud@sectioning@reset -% \end{macro}^^A \tud@sectioning@case -% \end{macro}^^A \tud@sectioning@set +% \end{macro}^^A \tud@sectioncatchphraseformat +% \end{macro}^^A \tud@sectionlinesformat % % \iffalse %</class&body> % \fi % +% % \Finale % \endinput diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-locale.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-locale.dtx deleted file mode 100644 index 68f327166cb..00000000000 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-locale.dtx +++ /dev/null @@ -1,996 +0,0 @@ -% \CheckSum{771} -% \iffalse meta-comment -% -% TUD-Script -- Corporate Design of Technische Universität Dresden -% ---------------------------------------------------------------------------- -% -% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2017 -% -% ---------------------------------------------------------------------------- -% -% This work may be distributed and/or modified under the conditions of the -% LaTeX Project Public License, version 1.3c of the license. The latest -% version of this license is in http://www.latex-project.org/lppl.txt and -% version 1.3c or later is part of all distributions of LaTeX 2005/12/01 -% or later and of this work. This work has the LPPL maintenance status -% "author-maintained". The current maintainer and author of this work -% is Falk Hanisch. -% -% ---------------------------------------------------------------------------- -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz -% in der Version 1.3c, verteilt und/oder verändert werden. Die aktuelle -% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und -% Version 1.3c oder später ist Teil aller Verteilungen von LaTeX 2005/12/01 -% oder später und dieses Werks. Dieses Werk hat den LPPL-Verwaltungs-Status -% "author-maintained", wird somit allein durch den Autor verwaltet. Der -% aktuelle Verwalter und Autor dieses Werkes ist Falk Hanisch. -% -% ---------------------------------------------------------------------------- -% -% \fi -% -% \CharacterTable -% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -% Digits \0\1\2\3\4\5\6\7\8\9 -% Exclamation \! Double quote \" Hash (number) \# -% Dollar \$ Percent \% Ampersand \& -% Acute accent \' Left paren \( Right paren \) -% Asterisk \* Plus \+ Comma \, -% Minus \- Point \. Solidus \/ -% Colon \: Semicolon \; Less than \< -% Equals \= Greater than \> Question mark \? -% Commercial at \@ Left bracket \[ Backslash \\ -% Right bracket \] Circumflex \^ Underscore \_ -% Grave accent \` Left brace \{ Vertical bar \| -% Right brace \} Tilde \~} -% -% \iffalse -%%% From File: tudscr-locale.dtx -%<*driver> -\ifx\ProvidesFile\@undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-locale.dtx}[% - 2017/03/29 v2.05l TUD-Script (localization)% -] -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} -\documentclass[english,ngerman,xindy]{tudscrdoc} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} -\usepackage{babel} -\usepackage{tudscrfonts} % only load this package, if the fonts are installed -\KOMAoptions{parskip=half-} -\usepackage{bookmark} -\usepackage[babel]{microtype} - -\CodelineIndex -\RecordChanges -\GetFileInfo{tudscr-locale.dtx} -\title{\file{\filename}} -\author{Falk Hanisch\qquad\expandafter\mailto\expandafter{\tudscrmail}} -\date{\fileversion\nobreakspace(\filedate)} - -\begin{document} - \maketitle - \tableofcontents - \DocInput{\filename} -\end{document} -%</driver> -% \fi -% -% \selectlanguage{ngerman} -% -% \changes{v2.02}{2014/06/23}{Paket \pkg{titlepage} nicht weiter unterstützt}^^A -% \changes{v2.05}{2015/07/06}{Bezeichner für Poster}^^A -% -% \section{Lokalisierung mithilfe sprachabhängiger Bezeichner} -% -% Das \TUDScript-Bundle ist für die deutsche und englische Sprache lokalisiert. -% Dies bedeutet, dass abhängig von der gewählten Sprache die entsprechenden -% Bezeichner gesetzt werden. Hierfür werden die Möglichkeiten von \KOMAScript{} -% in Form des Befehls \cs{providecaptionname} genutzt. -% -% -% \StopEventually{\PrintIndex\PrintChanges\PrintToDos} -% -% \subsection{Definition der sprachabhängigen Bezeichner} -% -% \begin{macro}{\tud@locale@define} -% -% \iffalse -%<*class&!manual> -% \fi -% -% Die neu definierten Bezeichner werden mit einer Fehlermeldung initialisiert. -% Wird eine unterstützte Dokumentsprache~-- momentan sind dies lediglich -% Deutsch und Englisch~-- in der Präambel des Dokumentes geladen, so werden die -% Bezeichner sprachspezifisch überschrieben. Andernfalls bekommt der Anwender -% eine Fehlermeldung mit Hinweisen, wie er selbst die Bezeichner für die -% gewählte Sprache manuell definieren muss. -% \begin{macrocode} -\newcommand*\tud@locale@define[1]{% - \providecommand*#1{% - \ClassError{\TUD@Class@Name}{% - `\string#1' not defined for language `\languagename'% - }{% - Currently the class `\TUD@Class@Name' only supports the\MessageBreak% - languages german and english an its dialects. You must\MessageBreak% - define single patterns by yourself, e.g.:\MessageBreak% - `\string\providecaptionname{\languagename}\string#1{<text>}'\MessageBreak% - You can send your definitions to \tudscrmail\space in\MessageBreak% - order to implement support for additional languages.% - }% - }% -} -% \end{macrocode} -% -% \iffalse -%<*!doc> -%<*book|report|article> -% \fi -% -% \begin{locale}{\graduationtext} -% \changes{v2.02}{2014/05/16}{neu, umbenannt von \cs{degreetext}}^^A -% \begin{locale}{\refereename} -% \changes{v2.02}{2014/05/20}{Unterscheidung, ob ein oder mehrere Gutachter -% angegeben sind}^^A -% \begin{locale}{\refereeothername} -% \begin{locale}{\advisorname} -% \begin{locale}{\advisorothername} -% \begin{locale}{\supervisorname} -% \begin{locale}{\supervisorothername} -% \begin{locale}{\professorname} -% \begin{locale}{\professorothername} -% \changes{v2.02}{2014/09/03}{neu}^^A -% \begin{locale}{\datetext} -% \begin{locale}{\dateofbirthtext} -% \begin{locale}{\placeofbirthtext} -% \begin{locale}{\defensedatetext} -% \begin{locale}{\matriculationnumbername} -% \begin{locale}{\matriculationyearname} -% \begin{locale}{\coverpagename} -% \begin{locale}{\titlepagename} -% \begin{locale}{\titlename} -% \begin{locale}{\abstractname} -% \begin{locale}{\confirmationname} -% \begin{locale}{\confirmationtext} -% \changes{v2.02}{2014/11/05}{Korrektur bei der Verwendung von \cs{@@title}}^^A -% \begin{locale}{\blockingname} -% \changes{v2.02}{2014/05/16}{neu, \cs{restrictionname} umbenannt}^^A -% \begin{locale}{\blockingtext} -% \changes{v2.02}{2014/05/16}{neu, \cs{restrictiontext} umbenannt}^^A -% \changes{v2.02}{2014/11/05}{Korrektur bei der Verwendung von \cs{@@title}}^^A -% Diese Bezeichner existieren nur für die drei Hauptklassen. -% \begin{macrocode} -\tud@locale@define{\graduationtext} -\tud@locale@define{\refereename} -\tud@locale@define{\refereeothername} -\tud@locale@define{\advisorname} -\tud@locale@define{\advisorothername} -\tud@locale@define{\supervisorname} -\tud@locale@define{\supervisorothername} -\tud@locale@define{\professorname} -\tud@locale@define{\professorothername} -\tud@locale@define{\datetext} -\tud@locale@define{\dateofbirthtext} -\tud@locale@define{\placeofbirthtext} -\tud@locale@define{\defensedatetext} -\tud@locale@define{\matriculationyearname} -\tud@locale@define{\matriculationnumbername} -\tud@locale@define{\coverpagename} -\tud@locale@define{\titlepagename} -\tud@locale@define{\titlename} -%<*book> -\tud@locale@define{\abstractname} -%</book> -\tud@locale@define{\confirmationname} -\tud@locale@define{\confirmationtext} -\tud@locale@define{\blockingname} -\tud@locale@define{\blockingtext} -% \end{macrocode} -% \end{locale}^^A \blockingtext -% \end{locale}^^A \blockingname -% \end{locale}^^A \confirmationtext -% \end{locale}^^A \confirmationname -% \end{locale}^^A \abstractname -% \end{locale}^^A \titlename -% \end{locale}^^A \titlepagename -% \end{locale}^^A \coverpagename -% \end{locale}^^A \matriculationyearname -% \end{locale}^^A \matriculationnumbername -% \end{locale}^^A \defensedatetext -% \end{locale}^^A \placeofbirthtext -% \end{locale}^^A \dateofbirthtext -% \end{locale}^^A \datetext -% \end{locale}^^A \professorothername -% \end{locale}^^A \professorname -% \end{locale}^^A \supervisorothername -% \end{locale}^^A \supervisorname -% \end{locale}^^A \advisorothername -% \end{locale}^^A \advisorname -% \end{locale}^^A \refereeothername -% \end{locale}^^A \refereename -% \end{locale}^^A \graduationtext -% -% \iffalse -%</book|report|article> -% \fi -% -% \begin{locale}{\coursename} -% \begin{locale}{\disciplinename} -% \changes{v2.02}{2014/05/16}{neu, Umbenennung von \cs{branchname}}^^A -% \begin{locale}{\listingname} -% \begin{locale}{\listlistingname} -% \begin{locale}{\dissertationname} -% \begin{locale}{\diplomathesisname} -% \begin{locale}{\masterthesisname} -% \begin{locale}{\bachelorthesisname} -% \begin{locale}{\studentthesisname} -% \begin{locale}{\studentresearchname} -% \begin{locale}{\projectpapername} -% \begin{locale}{\seminarpapername} -% \begin{locale}{\termpapername} -% \begin{locale}{\researchname} -% \begin{locale}{\logname} -% \begin{locale}{\internshipname} -% \begin{locale}{\reportname} -% Diese Bezeichner stehen zusätzlich auch für \cls{tudscrposter} zur Verfügung. -% \begin{macrocode} -\tud@locale@define{\coursename} -\tud@locale@define{\disciplinename} -\tud@locale@define{\listingname} -\tud@locale@define{\listlistingname} -\tud@locale@define{\dissertationname} -\tud@locale@define{\diplomathesisname} -\tud@locale@define{\masterthesisname} -\tud@locale@define{\bachelorthesisname} -\tud@locale@define{\studentthesisname} -\tud@locale@define{\studentresearchname} -\tud@locale@define{\projectpapername} -\tud@locale@define{\seminarpapername} -\tud@locale@define{\termpapername} -\tud@locale@define{\researchname} -\tud@locale@define{\logname} -\tud@locale@define{\internshipname} -\tud@locale@define{\reportname} -% \end{macrocode} -% \end{locale}^^A \reportname -% \end{locale}^^A \internshipname -% \end{locale}^^A \logname -% \end{locale}^^A \researchname -% \end{locale}^^A \termpapername -% \end{locale}^^A \seminarpapername -% \end{locale}^^A \projectpapername -% \end{locale}^^A \studentresearchname -% \end{locale}^^A \studentthesisname -% \end{locale}^^A \bachelorthesisname -% \end{locale}^^A \masterthesisname -% \end{locale}^^A \diplomathesisname -% \end{locale}^^A \dissertationname -% \end{locale}^^A \listlistingname -% \end{locale}^^A \listingname -% \end{locale}^^A \disciplinename -% \end{locale}^^A \coursename -% -% \iffalse -%</!doc> -%</class&!manual> -%<*class&poster|package&supervisor|class&manual> -% \fi -% -% \begin{locale}{\authorname} -% \changes{v2.05}{2015/07/06}{neu}^^A -% \begin{locale}{\contactname} -% \changes{v2.05}{2015/07/06}{neu}^^A -% \begin{locale}{\contactpersonname} -% Diese Bezeichner stehen für \cls{tudscrposter} sowie \pkg{tudscrsupervisor} -% bereit. -% \begin{macrocode} -\tud@locale@define{\authorname} -\tud@locale@define{\contactname} -\tud@locale@define{\contactpersonname} -% \end{macrocode} -% \end{locale}^^A \contactpersonname -% \end{locale}^^A \contactname -% \end{locale}^^A \authorname -% -% \iffalse -%</class&poster|package&supervisor|class&manual> -%<*package&supervisor|class&manual> -% \fi -% -% \begin{locale}{\taskname} -% \begin{locale}{\tasktext} -% \begin{locale}{\namesname} -% \changes{v2.04}{2015/05/06}{neu, Umbenennung von \cs{authorname}}^^A -% \begin{locale}{\issuedatetext} -% \begin{locale}{\duedatetext} -% \begin{locale}{\chairmanname} -% \begin{locale}{\focusname} -% \begin{locale}{\objectivesname} -% \begin{locale}{\evaluationname} -% \begin{locale}{\evaluationtext} -% \begin{locale}{\contentname} -% \begin{locale}{\assessmentname} -% \begin{locale}{\gradetext} -% \begin{locale}{\noticename} -% \changes{v2.02}{2014/05/16}{neu, umbenannt von \cs{contactname}}^^A -% Die für \pkg{tudscrsupervisor} definierten Bezeichner werden durch -% \cs{tud@locale@define} mit einer Fehlermeldung initialisiert. -% \begin{macrocode} -\tud@locale@define{\taskname} -\tud@locale@define{\tasktext} -\tud@locale@define{\namesname} -\tud@locale@define{\issuedatetext} -\tud@locale@define{\duedatetext} -\tud@locale@define{\chairmanname} -\tud@locale@define{\focusname} -\tud@locale@define{\objectivesname} -\tud@locale@define{\evaluationname} -\tud@locale@define{\evaluationtext} -\tud@locale@define{\contentname} -\tud@locale@define{\assessmentname} -\tud@locale@define{\gradetext} -\tud@locale@define{\noticename} -% \end{macrocode} -% \end{locale}^^A \noticename -% \end{locale}^^A \gradetext -% \end{locale}^^A \assessmentname -% \end{locale}^^A \contentname -% \end{locale}^^A \evaluationtext -% \end{locale}^^A \evaluationname -% \end{locale}^^A \objectivesname -% \end{locale}^^A \focusname -% \end{locale}^^A \chairmanname -% \end{locale}^^A \duedatetext -% \end{locale}^^A \issuedatetext -% \end{locale}^^A \namesname -% \end{locale}^^A \tasktext -% \end{locale}^^A \taskname -% -% \iffalse -%</package&supervisor|class&manual> -%<*class&doc> -% \fi -% -% \begin{locale}{\tud@general@name} -% \changes{v2.05g}{2016/11/02}{neu}^^A -% \begin{locale}{\tud@implementation@name} -% \changes{v2.05g}{2016/11/02}{neu}^^A -% \begin{locale}{\tud@changes@name} -% \changes{v2.05g}{2016/11/02}{neu}^^A -% \begin{locale}{\tud@todo@name} -% \changes{v2.05g}{2016/11/02}{neu}^^A -% \begin{locale}{\tud@environment@name} -% \changes{v2.05g}{2016/11/02}{neu}^^A -% \begin{locale}{\tud@environments@name} -% \changes{v2.05g}{2016/11/02}{neu}^^A -% \begin{locale}{\tud@option@name} -% \changes{v2.05g}{2016/11/02}{neu}^^A -% \begin{locale}{\tud@options@name} -% \changes{v2.05g}{2016/11/02}{neu}^^A -% \begin{locale}{\tud@layerpagestyle@name} -% \changes{v2.05g}{2016/11/02}{neu}^^A -% \begin{locale}{\tud@layerpagestyles@name} -% \changes{v2.05g}{2016/11/02}{neu}^^A -% \begin{locale}{\tud@layer@name} -% \changes{v2.05g}{2016/11/02}{neu}^^A -% \begin{locale}{\tud@layers@name} -% \changes{v2.05g}{2016/11/02}{neu}^^A -% \begin{locale}{\tud@length@name} -% \changes{v2.05g}{2016/11/02}{neu}^^A -% \begin{locale}{\tud@lengths@name} -% \changes{v2.05g}{2016/11/02}{neu}^^A -% \begin{locale}{\tud@counter@name} -% \changes{v2.05g}{2016/11/02}{neu}^^A -% \begin{locale}{\tud@counters@name} -% \changes{v2.05g}{2016/11/02}{neu}^^A -% \begin{locale}{\tud@TUDcolor@name} -% \changes{v2.05g}{2016/11/02}{neu}^^A -% \begin{locale}{\tud@TUDcolors@name} -% \changes{v2.05g}{2016/11/02}{neu}^^A -% \begin{locale}{\tud@locale@name} -% \changes{v2.05g}{2016/11/02}{neu}^^A -% \begin{locale}{\tud@locales@name} -% \changes{v2.05g}{2016/11/02}{neu}^^A -% \begin{locale}{\tud@field@name} -% \changes{v2.05g}{2016/11/02}{neu}^^A -% \begin{locale}{\tud@fields@name} -% \changes{v2.05g}{2016/11/02}{neu}^^A -% \begin{locale}{\tud@KOMAfont@name} -% \changes{v2.05g}{2016/11/02}{neu}^^A -% \begin{locale}{\tud@KOMAfonts@name} -% \changes{v2.05g}{2016/11/02}{neu}^^A -% \begin{locale}{\tud@parameter@name} -% \changes{v2.05g}{2016/11/02}{neu}^^A -% \begin{locale}{\tud@parameters@name} -% \changes{v2.05g}{2016/11/02}{neu}^^A -% \begin{locale}{\tud@index@text} -% \changes{v2.05g}{2016/11/02}{neu}^^A -% Diese Bezeichner werden von der Klasse \cls{tudscrdoc} genutzt. -% \begin{macrocode} -\tud@locale@define{\tud@general@name} -\tud@locale@define{\tud@implementation@name} -\tud@locale@define{\tud@changes@name} -\tud@locale@define{\tud@todo@name} -\tud@locale@define{\tud@environment@name} -\tud@locale@define{\tud@environments@name} -\tud@locale@define{\tud@option@name} -\tud@locale@define{\tud@options@name} -\tud@locale@define{\tud@layerpagestyle@name} -\tud@locale@define{\tud@layerpagestyles@name} -\tud@locale@define{\tud@layer@name} -\tud@locale@define{\tud@layers@name} -\tud@locale@define{\tud@length@name} -\tud@locale@define{\tud@lengths@name} -\tud@locale@define{\tud@counter@name} -\tud@locale@define{\tud@counters@name} -\tud@locale@define{\tud@TUDcolor@name} -\tud@locale@define{\tud@TUDcolors@name} -\tud@locale@define{\tud@locale@name} -\tud@locale@define{\tud@locales@name} -\tud@locale@define{\tud@field@name} -\tud@locale@define{\tud@fields@name} -\tud@locale@define{\tud@KOMAfont@name} -\tud@locale@define{\tud@KOMAfonts@name} -\tud@locale@define{\tud@parameter@name} -\tud@locale@define{\tud@parameters@name} -\tud@locale@define{\tud@index@text} -% \end{macrocode} -% \end{locale}^^A \tud@index@text -% \end{locale}^^A \tud@parameters@name -% \end{locale}^^A \tud@parameter@name -% \end{locale}^^A \tud@KOMAfonts@name -% \end{locale}^^A \tud@KOMAfont@name -% \end{locale}^^A \tud@fields@name -% \end{locale}^^A \tud@field@name -% \end{locale}^^A \tud@locales@name -% \end{locale}^^A \tud@locale@name -% \end{locale}^^A \tud@TUDcolors@name -% \end{locale}^^A \tud@TUDcolor@name -% \end{locale}^^A \tud@counters@name -% \end{locale}^^A \tud@counter@name -% \end{locale}^^A \tud@lengths@name -% \end{locale}^^A \tud@length@name -% \end{locale}^^A \tud@layers@name -% \end{locale}^^A \tud@layer@name -% \end{locale}^^A \tud@layerpagestyles@name -% \end{locale}^^A \tud@layerpagestyle@name -% \end{locale}^^A \tud@options@name -% \end{locale}^^A \tud@option@name -% \end{locale}^^A \tud@environments@name -% \end{locale}^^A \tud@environment@name -% \end{locale}^^A \tud@todo@name -% \end{locale}^^A \tud@changes@name -% \end{locale}^^A \tud@implementation@name -% \end{locale}^^A \tud@general@name -% -% \iffalse -%</class&doc> -% \fi -% -% \end{macro}^^A \tud@locale@define -% -% \iffalse -%<*class&!(manual|doc)> -% \fi -% -% \subsection{Hilfsmakros für selektive Bezeichner} -% -% Einige Bezeichner verhalten sich je nach der Angabe für einzelne Felder -% selektiv, die zur Auswahl notwendigen Makros werden hier definiert. -% -% \begin{macro}{\tud@ifin@and} -% \changes{v2.05}{2015/08/05}{neu}^^A -% Dieser Befehl prüft, ob innerhalb eines Felder, welches im ersten Argument -% angegeben werden muss, \cs{and} verwendet wurde. Ist dies der Fall, wird das -% zweite Argument ausgeführt, andernfalls das dritte. -% \begin{macrocode} -\newcommand*\tud@ifin@and[1]{% - \begingroup% - \let\and\relax% - \protected@edef\@tempb{#1}% - \def\@tempa##1\and##2\relax{% - \IfArgIsEmpty{##2}{% - \aftergroup\@secondoftwo% - }{% - \aftergroup\@firstoftwo% - }% - }% - \expandafter\@tempa\@tempb\and\relax% - \endgroup -} -% \end{macrocode} -% \end{macro}^^A \tud@ifin@and -% -% \iffalse -%</class&!(manual|doc)> -%<*class&!manual> -% \fi -% -% \subsection{Deutschsprachige Bezeichner} -% \begin{macro}{\tud@locale@german} -% \changes{v2.02}{2014/07/07}{als Aliasbefehl für \cs{providecaptionname} mit -% dem Argument \marg{deutsche Sprachliste}}^^A -% Dieser Befehl dient zur Definition der deutschsprachigen Bezeichner. Dabei -% müssen als Argumente der Bezeichnerbefehl selbst sowie die dazugehörige -% Definition angegeben werden. Intern wird dabei \cs{providecaptionname} -% verwendet. -% \begin{macrocode} -\newcommand*\tud@locale@german{% - \providecaptionname{% - german,ngerman,austrian,naustrian,swissgerman,nswissgerman% - }% -} -% \end{macrocode} -% \end{macro}^^A \tud@locale@german -% -% \iffalse -%<*!doc> -% \fi -% -% Hier erfolgt die eigentliche Definition der sprachabhängigen Bezeichner für -% die deutsche Sprache und ihre Dialekte. -% \begin{macrocode} -%<*book|report|article> -\tud@locale@german{\graduationtext}{zur Erlangung des akademischen Grades}% -% \end{macrocode} -% Für die nachfolgenden Felder, für die es bedarfsweise einen Bezeichner für -% eine zweite Person gibt (\cs{\dots{}othername}), werden jeweils verschiedene -% Varianten definiert. Existiert in einem Feld nur eine Person, wird der -% Singular der Bezeichnung verwendet. Wurden mindestens zwei Personen angegeben -% (\cs{and}), so wird geprüft, ob der Bezeichner für die zusätzlichen Personen -% nicht leer ist. Ist dies der Fall, wird die alternative Form des Bezeichners -% der ersten Person verwendet, andernfalls wird der Bezeichner im Plural -% verwendet. -% \begin{macrocode} -\tud@locale@german{\refereename}{% - \tud@ifin@and{\@referee}{% - \ifx\refereeothername\@empty% - Gutachter% - \else% - Erstgutachter% - \fi% - }{Gutachter}% -}% -\tud@locale@german{\refereeothername}{Zweitgutachter}% -\tud@locale@german{\advisorname}{% - \tud@ifin@and{\@advisor}{% - \ifx\advisorothername\@empty% - Fachreferenten% - \else% - Erster Fachreferent% - \fi% - }{Fachreferent}% -}% -\tud@locale@german{\advisorothername}{}% -\tud@locale@german{\supervisorname}{% - \tud@ifin@and{\@supervisor}{% - \ifx\supervisorothername\@empty% - Betreuer% - \else% - Erstbetreuer% - \fi% - }{Betreuer}% -}% -\tud@locale@german{\supervisorothername}{}% -\tud@locale@german{\professorname}{% - \tud@ifin@and{\@professor}{% - \ifx\professorothername\@empty% - Betreuende Hochschullehrer% - \else% - Erster betreuender Hochschullehrer% - \fi% - }{Betreuender Hochschullehrer}% -}% -\tud@locale@german{\professorothername}{}% -\tud@locale@german{\datetext}{Eingereicht am}% -\tud@locale@german{\dateofbirthtext}{Geboren am}% -\tud@locale@german{\placeofbirthtext}{in}% -\tud@locale@german{\defensedatetext}{Verteidigt am}% -\tud@locale@german{\matriculationyearname}{Immatrikulationsjahr}% -\tud@locale@german{\matriculationnumbername}{Matrikelnummer}% -\tud@locale@german{\coverpagename}{Umschlagseite}% -\tud@locale@german{\titlepagename}{Titelblatt}% -\tud@locale@german{\titlename}{Titel}% -%<*book> -\tud@locale@german{\abstractname}{Zusammenfassung}% -%</book> -\tud@locale@german{\confirmationname}{Selbstst\"andigkeitserkl\"arung}% -\tud@locale@german{\confirmationtext}{% - Hiermit versichere ich, dass ich die vorliegende Arbeit - \ifx\@@title\@empty\else mit dem Titel \emph{\@@title} \fi - selbstst\"andig und ohne unzul\"assige Hilfe Dritter verfasst habe. - Es wurden keine anderen als die in der Arbeit angegebenen Hilfsmittel - und Quellen benutzt. Die w\"ortlichen und sinngem\"a\ss{} - \"ubernommenen Zitate habe ich als solche kenntlich gemacht. - \ifx\@supporter\@empty% - Es waren keine weiteren Personen an der geistigen Herstellung - der vorliegenden Arbeit beteiligt. - \else% - W\"ahrend der Anfertigung dieser Arbeit wurde ich nur von - folgenden Personen unterst\"utzt:% - \begin{quote}\def\and{\newline}\@supporter\end{quote}% - \noindent Weitere Personen waren an der geistigen Herstellung - der vorliegenden Arbeit nicht beteiligt. - \fi% - Mir ist bekannt, dass die Nichteinhaltung dieser Erkl\"arung zum - nachtr\"aglichen Entzug des Hochschulabschlusses f\"uhren kann.% -}% -\tud@locale@german{\blockingname}{Sperrvermerk}% -\tud@locale@german{\blockingtext}{% - Diese Arbeit - \ifx\@@title\@empty\else mit dem Titel \emph{\@@title} \fi - enth\"alt vertrauliche Informationen\ifx\@company\@empty\else - , offengelegt durch \emph{\@company}\fi. Ver\"offentlichungen, - Vervielf\"altigungen und Einsichtnahme~-- auch nur auszugsweise~-- - sind ohne ausdr\"uckliche Genehmigung \ifx\@company\@empty\else - durch \emph{\@company} \fi nicht gestattet, ebenso wie - Ver\"offentlichungen \"uber den Inhalt dieser Arbeit. Die - vorliegende Arbeit ist nur dem Betreuer an der Technischen - Universit\"at Dresden, den Gutachtern sowie den Mitgliedern - des Pr\"ufungsausschusses zug\"anglich zu machen.% -}% -%</book|report|article> -\tud@locale@german{\coursename}{Studiengang}% -\tud@locale@german{\disciplinename}{Studienrichtung}% -\tud@locale@german{\listingname}{Quelltext}% -\tud@locale@german{\listlistingname}{Quelltextverzeichnis}% -\tud@locale@german{\dissertationname}{Dissertation}% -\tud@locale@german{\diplomathesisname}{Diplomarbeit}% -\tud@locale@german{\masterthesisname}{Master-Arbeit}% -\tud@locale@german{\bachelorthesisname}{Bachelor-Arbeit}% -\tud@locale@german{\studentthesisname}{Studienarbeit}% -\tud@locale@german{\studentresearchname}{Gro\ss{}er Beleg}% -\tud@locale@german{\projectpapername}{Projektarbeit}% -\tud@locale@german{\seminarpapername}{Seminararbeit}% -\tud@locale@german{\termpapername}{Hausarbeit}% -\tud@locale@german{\researchname}{Forschungsbericht}% -\tud@locale@german{\logname}{Protokoll}% -\tud@locale@german{\internshipname}{Praktikumsbericht}% -\tud@locale@german{\reportname}{Bericht}% -% \end{macrocode} -% -% \iffalse -%</!doc> -%</class&!manual> -%<*class&poster|package&supervisor|class&manual> -% \fi -% -% Hier erfolgen für die Klasse \cls{tudscrposter} sowie das Paket -% \pkg{tudscrsupervisor} weitere Definitionen. -% \begin{macrocode} -\tud@locale@german{\authorname}{Autor}% -\tud@locale@german{\contactname}{Kontakt}% -\tud@locale@german{\contactpersonname}{Ansprechpartner}% -% \end{macrocode} -% -% \iffalse -%</class&poster|package&supervisor|class&manual> -%<*package&supervisor|class&manual> -% \fi -% -% Hier erfolgen für das Paket \pkg{tudscrsupervisor} weitere Definitionen. -% \begin{macrocode} -\tud@locale@german{\taskname}{Aufgabenstellung}% -\tud@locale@german{\tasktext}{f\"ur die Anfertigung einer}% -\tud@locale@german{\namesname}{Name}% -\tud@locale@german{\issuedatetext}{Ausgeh\"andigt am}% -\tud@locale@german{\duedatetext}{Einzureichen am}% -\tud@locale@german{\chairmanname}{Pr\"ufungsausschussvorsitzender}% -\tud@locale@german{\focusname}{Schwerpunkte der Arbeit}% -\tud@locale@german{\objectivesname}{Ziele der Arbeit}% -\tud@locale@german{\evaluationname}{Gutachten}% -\tud@locale@german{\evaluationtext}{f\"ur die}% -\tud@locale@german{\contentname}{Inhalt}% -\tud@locale@german{\assessmentname}{Bewertung}% -\tud@locale@german{\gradetext}{% - Die Arbeit wird mit der Note \textbf{\@grade} bewertet.% -}% -\tud@locale@german{\noticename}{Aushang}% -% \end{macrocode} -% -% \iffalse -%</package&supervisor|class&manual> -%<*class&doc> -% \fi -% -% Dies sind die Bezeichner für die Quelltextdokumentation. -% \begin{macrocode} -\tud@locale@german{\tud@general@name}{Allgemein}% -\tud@locale@german{\tud@implementation@name}{Implementierung}% -\tud@locale@german{\tud@changes@name}{\"Anderungsliste} -\tud@locale@german{\tud@todo@name}{Liste der noch zu erledigenden Punkte} -\tud@locale@german{\tud@environment@name}{Umg.} -\tud@locale@german{\tud@environments@name}{Umgebungen} -\tud@locale@german{\tud@option@name}{Opt.} -\tud@locale@german{\tud@options@name}{Optionen} -\tud@locale@german{\tud@layerpagestyle@name}{Seitenstil} -\tud@locale@german{\tud@layerpagestyles@name}{Seitenstile} -\tud@locale@german{\tud@layer@name}{Layer} -\tud@locale@german{\tud@layers@name}{Layer (Seitenstilebenen)} -\tud@locale@german{\tud@length@name}{L\"ange} -\tud@locale@german{\tud@lengths@name}{L\"angen} -\tud@locale@german{\tud@counter@name}{Z\"ahler} -\tud@locale@german{\tud@counters@name}{Z\"ahler} -\tud@locale@german{\tud@TUDcolor@name}{Farbe} -\tud@locale@german{\tud@TUDcolors@name}{Farben} -\tud@locale@german{\tud@locale@name}{Lok.} -\tud@locale@german{\tud@locales@name}{Lokalisierungsvariablen} -\tud@locale@german{\tud@field@name}{Feld} -\tud@locale@german{\tud@fields@name}{Eingabefelder} -\tud@locale@german{\tud@KOMAfont@name}{Schriftel.} -\tud@locale@german{\tud@KOMAfonts@name}{Schriftelemente} -\tud@locale@german{\tud@parameter@name}{Param.} -\tud@locale@german{\tud@parameters@name}{Parameter} -\tud@locale@german{\tud@index@text}{% - Kursive Zahlen entsprechen der Seite, auf welcher der korrespondierende - Eintrag beschrieben wird. Unterstrichene Zahlen verweisen auf die - \ifcodeline@index Codezeile der \fi Definition. - \ifscan@allowed% - Alle weiteren Eintr\"age sind - \ifcodeline@index Zeilennummern\else Seitenzahlen\fi, - wo der jeweilige Eintrag verwendet wird. - \fi% -} -% \end{macrocode} -% -% \iffalse -%</class&doc> -%<*class&!manual> -% \fi -% -% \subsection{Englischsprachige Bezeichner} -% -% \begin{macro}{\tud@locale@english} -% \changes{v2.02}{2014/07/07}{Pseudonym für \cs{providecaptionname} mit -% dem Argument \marg{englische Sprachliste}}^^A -% Dieser Befehl dient zur Definition der englischsprachigen Bezeichner. Dabei -% müssen als Argumente der Bezeichnerbefehl selbst sowie die dazugehörige -% Definition angegeben werden. Intern wird dabei \cs{providecaptionname} -% verwendet. -% \begin{macrocode} -\newcommand*\tud@locale@english{% - \providecaptionname{% - american,australian,british,canadian,english,newzealand,UKenglish,USenglish% - }% -} -% \end{macrocode} -% \end{macro}^^A \tud@locale@english -% -% \iffalse -%<*!doc> -% \fi -% -% Hier erfolgt die eigentliche Definition der sprachabhängigen Bezeichner für -% die deutsche Sprache und ihre Dialekte. -% \begin{macrocode} -%<*book|report|article> -\tud@locale@english{\graduationtext}{to achieve the academic degree}% -\tud@locale@english{\refereename}{% - \tud@ifin@and{\@referee}{% - \ifx\refereeothername\@empty% - Referees% - \else% - First referee% - \fi% - }{Referee}% -}% -\tud@locale@english{\refereeothername}{Second referee}% -\tud@locale@english{\advisorname}{% - \tud@ifin@and{\@advisor}{% - \ifx\advisorothername\@empty% - Advisors% - \else% - First advisor% - \fi% - }{Advisor}% -}% -\tud@locale@english{\advisorothername}{}% -\tud@locale@english{\supervisorname}{% - \tud@ifin@and{\@supervisor}{% - \ifx\supervisorothername\@empty% - Supervisors% - \else% - First supervisor% - \fi% - }{Supervisor}% -}% -\tud@locale@english{\supervisorothername}{}% -\tud@locale@english{\professorname}{% - \tud@ifin@and{\@professor}{% - \ifx\professorothername\@empty% - Supervising professors% - \else% - First supervising professor% - \fi% - }{Supervising professor}% -}% -\tud@locale@english{\professorothername}{}% -\tud@locale@english{\datetext}{Submitted on}% -\tud@locale@english{\dateofbirthtext}{Born on}% -\tud@locale@english{\placeofbirthtext}{in}% -\tud@locale@english{\defensedatetext}{Defended on}% -\tud@locale@english{\matriculationyearname}{Matriculation year}% -\tud@locale@english{\matriculationnumbername}{Matriculation number}% -\tud@locale@english{\coverpagename}{Cover page}% -\tud@locale@english{\titlepagename}{Title page}% -\tud@locale@english{\titlename}{Title}% -%<*book> -\tud@locale@english{\abstractname}{Abstract}% -%</book> -\tud@locale@english{\confirmationname}{Statement of authorship}% -\tud@locale@english{\confirmationtext}{% - I hereby certify that I have authored this - \ifx\@@thesis\@empty thesis\else\@@thesis{} \fi - \ifx\@@title\@empty\else entitled \emph{\@@title} \fi - independently and without undue assistance from third - parties. No other than the resources and references - indicated in this thesis have been used. I have marked - both literal and accordingly adopted quotations as such. - \ifx\@supporter\@empty% - There were no additional persons involved in the - intellectual preparation of the present thesis. - \else% - During the preparation of this thesis I was only - supported by the following persons:% - \begin{quote}\def\and{\newline}\@supporter\end{quote}% - \noindent Additional persons were not involved in the - intellectual preparation of the present thesis. - \fi% - I am aware that violations of this declaration may lead to - subsequent withdrawal of the degree.% -}% -\tud@locale@english{\blockingname}{Restriction note}% -\tud@locale@english{\blockingtext}{% - This \ifx\@@thesis\@empty thesis \else\@@thesis{} \fi - \ifx\@@title\@empty\else entitled \emph{\@@title} \fi - contains confidential data\ifx\@company\@empty\else - , disclosed by \emph{\@company}\fi. Publications, duplications - and inspections---even in part---are prohibited without explicit - permission\ifx\@company\@empty\else\space by \emph{\@company}\fi, - as well as publications about the content of this thesis. - This thesis may only be made accessible to the supervisor at - Technische Universit\"at Dresden, the reviewers and also the - members of the examination board.% -}% -%</book|report|article> -\tud@locale@english{\coursename}{Course}% -\tud@locale@english{\disciplinename}{Discipline}% -\tud@locale@english{\listingname}{Listing}% -\tud@locale@english{\listlistingname}{List of Listings}% -\tud@locale@english{\dissertationname}{Dissertation}% -\tud@locale@english{\diplomathesisname}{Diploma Thesis}% -\tud@locale@english{\masterthesisname}{Master Thesis}% -\tud@locale@english{\bachelorthesisname}{Bachelor Thesis}% -\tud@locale@english{\studentthesisname}{Student Thesis}% -\tud@locale@english{\studentresearchname}{Student Research Project}% -\tud@locale@english{\projectpapername}{Project Paper}% -\tud@locale@english{\seminarpapername}{Seminar Paper}% -\tud@locale@english{\termpapername}{Term Paper}% -\tud@locale@english{\researchname}{Research Report}% -\tud@locale@english{\logname}{Log}% -\tud@locale@english{\internshipname}{Internship Report}% -\tud@locale@english{\reportname}{Report}% -% \end{macrocode} -% -% \iffalse -%</!doc> -%</class&!manual> -%<*class&poster|package&supervisor|class&manual> -% \fi -% -% Hier erfolgen für die Klasse \cls{tudscrposter} sowie das Paket -% \pkg{tudscrsupervisor} weitere Definitionen. -% \begin{macrocode} -\tud@locale@english{\authorname}{Author}% -\tud@locale@english{\contactname}{Contact}% -\tud@locale@english{\contactpersonname}{Contact}% -% \end{macrocode} -% -% \iffalse -%</class&poster|package&supervisor|class&manual> -%<*package&supervisor|class&manual> -% \fi -% -% Hier erfolgen für das Paket \pkg{tudscrsupervisor} weitere Definitionen. -% \begin{macrocode} -\tud@locale@english{\taskname}{Task}% -\tud@locale@english{\tasktext}{for the preparation of a}% -\tud@locale@english{\namesname}{Name}% -\tud@locale@english{\issuedatetext}{Issued on}% -\tud@locale@english{\duedatetext}{Due date for submission}% -\tud@locale@english{\chairmanname}{Chairman of the Audit Committee}% -\tud@locale@english{\focusname}{Focus of work}% -\tud@locale@english{\objectivesname}{Objectives of work}% -\tud@locale@english{\evaluationname}{Evaluation}% -\tud@locale@english{\evaluationtext}{for the}% -\tud@locale@english{\contentname}{Content}% -\tud@locale@english{\assessmentname}{Assessment}% -\tud@locale@english{\gradetext}{% - The thesis is evaluated with a grade of \textbf{\@grade}.% -}% -\tud@locale@english{\noticename}{Notice}% -% \end{macrocode} -% -% \iffalse -%</package&supervisor|class&manual> -%<*class&doc> -% \fi -% -% Dies sind die Bezeichner für die Quelltextdokumentation. -% \begin{macrocode} -\tud@locale@english{\tud@general@name}{General}% -\tud@locale@english{\tud@implementation@name}{Implementation}% -\tud@locale@english{\tud@changes@name}{Change History} -\tud@locale@english{\tud@todo@name}{List of ToDos} -\tud@locale@english{\tud@environment@name}{env.} -\tud@locale@english{\tud@environments@name}{environments} -\tud@locale@english{\tud@option@name}{opt.} -\tud@locale@english{\tud@options@name}{options} -\tud@locale@english{\tud@layerpagestyle@name}{pagestyle} -\tud@locale@english{\tud@layerpagestyles@name}{pagestyles} -\tud@locale@english{\tud@layer@name}{layer} -\tud@locale@english{\tud@layers@name}{layers (pagestyle)} -\tud@locale@english{\tud@length@name}{length} -\tud@locale@english{\tud@lengths@name}{lengths} -\tud@locale@english{\tud@counter@name}{counter} -\tud@locale@english{\tud@counters@name}{counters} -\tud@locale@english{\tud@TUDcolor@name}{color} -\tud@locale@english{\tud@TUDcolors@name}{colors} -\tud@locale@english{\tud@locale@name}{locale} -\tud@locale@english{\tud@locales@name}{locales} -\tud@locale@english{\tud@field@name}{field} -\tud@locale@english{\tud@fields@name}{input fields} -\tud@locale@english{\tud@KOMAfont@name}{font} -\tud@locale@english{\tud@KOMAfonts@name}{font elements} -\tud@locale@english{\tud@parameter@name}{param.} -\tud@locale@english{\tud@parameters@name}{parameters} -\tud@locale@english{\tud@index@text}{% - Numbers written in italic refer to the page where the corresponding entry is - described. Numbers underlined refer to the - \ifcodeline@index code line of the \fi definition. - \ifscan@allowed% - All additional entries refer to the - \ifcodeline@index code lines \else pages \fi - where the entry is used. - \fi% -} -% \end{macrocode} -% -% \iffalse -%</class&doc> -%<*class&!(manual|doc)> -% \fi -% -% \subsection{Kompatibilität der Bezeichner mit verschiedenen Pakete} -% \subsubsection{Unterstützung des Paketes \pkg{listings}} -% -% Die Bezeichner des Paketes werden auf die bereits definierten gesetzt. -% \begin{macrocode} -\AfterPackage{listings}{% - \renewcommand*\lstlistingname{\listingname}% - \renewcommand*\lstlistlistingname{\listlistingname}% -} -% \end{macrocode} -% -% \subsubsection{Unterstützung des Paketes \pkg{mathswap}} -% -% Wird das Paket \pkg{mathswap} verwendet, werden die Ersetzungen für Punkt und -% Komma im Mathematikmodus sprachspezifisch angepasst. -% \begin{macrocode} -\AfterPackage{mathswap}{% - \tud@locale@german{\@commaswap}{,}% - \tud@locale@german{\@dotswap}{\,}% - \tud@locale@english{\@commaswap}{\,}% - \tud@locale@english{\@dotswap}{.}% -} -% \end{macrocode} -% -% \iffalse -%</class&!(manual|doc)> -% \fi -% -% \Finale -% -\endinput diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-localization.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-localization.dtx new file mode 100644 index 00000000000..0c3e2ba06af --- /dev/null +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-localization.dtx @@ -0,0 +1,1006 @@ +% \CheckSum{774} +% \iffalse meta-comment +% +% TUD-Script -- Corporate Design of Technische Universität Dresden +% ---------------------------------------------------------------------------- +% +% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2019 +% +% ---------------------------------------------------------------------------- +% +% This work may be distributed and/or modified under the conditions of the +% LaTeX Project Public License, version 1.3c of the license. The latest +% version of this license is in http://www.latex-project.org/lppl.txt and +% version 1.3c or later is part of all distributions of LaTeX 2005/12/01 +% or later and of this work. This work has the LPPL maintenance status +% "author-maintained". The current maintainer and author of this work +% is Falk Hanisch. +% +% ---------------------------------------------------------------------------- +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz +% in der Version 1.3c, verteilt und/oder verändert werden. Die aktuelle +% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und +% Version 1.3c oder später ist Teil aller Verteilungen von LaTeX 2005/12/01 +% oder später und dieses Werks. Dieses Werk hat den LPPL-Verwaltungs-Status +% "author-maintained", wird somit allein durch den Autor verwaltet. Der +% aktuelle Verwalter und Autor dieses Werkes ist Falk Hanisch. +% +% ---------------------------------------------------------------------------- +% +% \fi +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \iffalse +%%% From File: tudscr-localization.dtx +%<*dtx> +% \fi +% +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\ProvidesFile{tudscr-localization.dtx}[2019/06/28 v2.06 TUD-Script\space% + (localization)% +] +% +% \iffalse +\documentclass[english,ngerman,xindy]{tudscrdoc} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} +\usepackage{babel} +\usepackage{tudscrfonts} +\KOMAoptions{parskip=half-} +\usepackage{bookmark} +\usepackage[babel]{microtype} + +\CodelineIndex +\RecordChanges +\GetFileInfo{tudscr-localization.dtx} +\title{\file{\filename}} +\author{Falk Hanisch\qquad\expandafter\mailto\expandafter{\tudscrmail}} +\date{\fileversion\nobreakspace(\filedate)} + +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +%</dtx> +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v2.02}{2014/06/23}{Paket \pkg{titlepage} nicht weiter unterstützt}^^A +% \changes{v2.05}{2015/07/06}{Bezeichner für Poster}^^A +% +% \section{Lokalisierung mithilfe sprachabhängiger Bezeichner} +% +% Das \TUDScript-Bundle ist für die deutsche und englische Sprache lokalisiert. +% Dies bedeutet, dass abhängig von der gewählten Sprache die entsprechenden +% Bezeichner gesetzt werden. Hierfür werden die Möglichkeiten von \KOMAScript{} +% in Form des Befehls \cs{providecaptionname} genutzt. +% +% +% \StopEventually{\PrintIndex\PrintChanges\PrintToDos} +% +% \subsection{Definition der sprachabhängigen Bezeichner} +% +% \begin{macro}{\tud@localization@define} +% +% \iffalse +%<*class&!manual> +% \fi +% +% Die neu definierten Bezeichner werden mit einer Fehlermeldung initialisiert. +% Wird eine unterstützte Dokumentsprache~-- momentan sind dies lediglich +% Deutsch und Englisch~-- in der Präambel des Dokumentes geladen, so werden die +% Bezeichner sprachspezifisch überschrieben. Andernfalls bekommt der Anwender +% eine Fehlermeldung mit Hinweisen, wie er selbst die Bezeichner für die +% gewählte Sprache manuell definieren muss. +% \begin{macrocode} +\newcommand*\tud@localization@define[1]{% + \providecommand*#1{% + \ClassError{\TUD@Class@Name}{% + `\string#1' not defined for language `\languagename'% + }{% + Currently the class `\TUD@Class@Name' only supports the\MessageBreak% + languages german and english an its dialects. You must\MessageBreak% + define single patterns by yourself, e.g.:\MessageBreak% + `\string\providecaptionname{\languagename}\string#1{<text>}'\MessageBreak% + You can send your definitions to \tudscrmail\space in\MessageBreak% + order to implement support for additional languages.% + }% + }% +} +% \end{macrocode} +% +% \iffalse +%<*!doc> +%<*book|report|article> +% \fi +% +% \begin{localization}{\graduationtext} +% \changes{v2.02}{2014/05/16}{neu, umbenannt von \cs{degreetext}}^^A +% \begin{localization}{\refereename} +% \changes{v2.02}{2014/05/20}{Unterscheidung, ob ein oder mehrere Gutachter +% angegeben sind}^^A +% \begin{localization}{\refereeothername} +% \begin{localization}{\advisorname} +% \begin{localization}{\advisorothername} +% \begin{localization}{\supervisorname} +% \begin{localization}{\supervisorothername} +% \begin{localization}{\professorname} +% \begin{localization}{\professorothername} +% \changes{v2.02}{2014/09/03}{neu}^^A +% \begin{localization}{\datetext} +% \begin{localization}{\dateofbirthtext} +% \begin{localization}{\placeofbirthtext} +% \begin{localization}{\defensedatetext} +% \begin{localization}{\matriculationnumbername} +% \begin{localization}{\matriculationyearname} +% \begin{localization}{\coverpagename} +% \begin{localization}{\titlepagename} +% \begin{localization}{\titlename} +% \begin{localization}{\abstractname} +% \begin{localization}{\confirmationname} +% \begin{localization}{\confirmationtext} +% \changes{v2.02}{2014/11/05}{Korrektur bei der Verwendung von \cs{@@title}}^^A +% \begin{localization}{\blockingname} +% \changes{v2.02}{2014/05/16}{neu, \cs{restrictionname} umbenannt}^^A +% \begin{localization}{\blockingtext} +% \changes{v2.02}{2014/05/16}{neu, \cs{restrictiontext} umbenannt}^^A +% \changes{v2.02}{2014/11/05}{Korrektur bei der Verwendung von \cs{@@title}}^^A +% Diese Bezeichner existieren nur für die drei Hauptklassen. +% \begin{macrocode} +\tud@localization@define{\graduationtext} +\tud@localization@define{\refereename} +\tud@localization@define{\refereeothername} +\tud@localization@define{\advisorname} +\tud@localization@define{\advisorothername} +\tud@localization@define{\supervisorname} +\tud@localization@define{\supervisorothername} +\tud@localization@define{\professorname} +\tud@localization@define{\professorothername} +\tud@localization@define{\datetext} +\tud@localization@define{\dateofbirthtext} +\tud@localization@define{\placeofbirthtext} +\tud@localization@define{\defensedatetext} +\tud@localization@define{\matriculationyearname} +\tud@localization@define{\matriculationnumbername} +\tud@localization@define{\coverpagename} +\tud@localization@define{\titlepagename} +\tud@localization@define{\titlename} +%<*book> +\tud@localization@define{\abstractname} +%</book> +\tud@localization@define{\confirmationname} +\tud@localization@define{\confirmationtext} +\tud@localization@define{\blockingname} +\tud@localization@define{\blockingtext} +% \end{macrocode} +% \end{localization}^^A \blockingtext +% \end{localization}^^A \blockingname +% \end{localization}^^A \confirmationtext +% \end{localization}^^A \confirmationname +% \end{localization}^^A \abstractname +% \end{localization}^^A \titlename +% \end{localization}^^A \titlepagename +% \end{localization}^^A \coverpagename +% \end{localization}^^A \matriculationyearname +% \end{localization}^^A \matriculationnumbername +% \end{localization}^^A \defensedatetext +% \end{localization}^^A \placeofbirthtext +% \end{localization}^^A \dateofbirthtext +% \end{localization}^^A \datetext +% \end{localization}^^A \professorothername +% \end{localization}^^A \professorname +% \end{localization}^^A \supervisorothername +% \end{localization}^^A \supervisorname +% \end{localization}^^A \advisorothername +% \end{localization}^^A \advisorname +% \end{localization}^^A \refereeothername +% \end{localization}^^A \refereename +% \end{localization}^^A \graduationtext +% +% \iffalse +%</book|report|article> +% \fi +% +% \begin{localization}{\coursename} +% \begin{localization}{\disciplinename} +% \changes{v2.02}{2014/05/16}{neu, Umbenennung von \cs{branchname}}^^A +% \begin{localization}{\listingname} +% \begin{localization}{\listlistingname} +% \begin{localization}{\dissertationname} +% \begin{localization}{\diplomathesisname} +% \begin{localization}{\masterthesisname} +% \begin{localization}{\bachelorthesisname} +% \begin{localization}{\studentthesisname} +% \begin{localization}{\studentresearchname} +% \begin{localization}{\projectpapername} +% \begin{localization}{\seminarpapername} +% \begin{localization}{\termpapername} +% \begin{localization}{\researchname} +% \begin{localization}{\logname} +% \begin{localization}{\internshipname} +% \begin{localization}{\reportname} +% Diese Bezeichner stehen zusätzlich auch für \cls{tudscrposter} zur Verfügung. +% \begin{macrocode} +\tud@localization@define{\coursename} +\tud@localization@define{\disciplinename} +\tud@localization@define{\listingname} +\tud@localization@define{\listlistingname} +\tud@localization@define{\dissertationname} +\tud@localization@define{\diplomathesisname} +\tud@localization@define{\masterthesisname} +\tud@localization@define{\bachelorthesisname} +\tud@localization@define{\studentthesisname} +\tud@localization@define{\studentresearchname} +\tud@localization@define{\projectpapername} +\tud@localization@define{\seminarpapername} +\tud@localization@define{\termpapername} +\tud@localization@define{\researchname} +\tud@localization@define{\logname} +\tud@localization@define{\internshipname} +\tud@localization@define{\reportname} +% \end{macrocode} +% \end{localization}^^A \reportname +% \end{localization}^^A \internshipname +% \end{localization}^^A \logname +% \end{localization}^^A \researchname +% \end{localization}^^A \termpapername +% \end{localization}^^A \seminarpapername +% \end{localization}^^A \projectpapername +% \end{localization}^^A \studentresearchname +% \end{localization}^^A \studentthesisname +% \end{localization}^^A \bachelorthesisname +% \end{localization}^^A \masterthesisname +% \end{localization}^^A \diplomathesisname +% \end{localization}^^A \dissertationname +% \end{localization}^^A \listlistingname +% \end{localization}^^A \listingname +% \end{localization}^^A \disciplinename +% \end{localization}^^A \coursename +% +% \iffalse +%</!doc> +%</class&!manual> +%<*class&poster|package&supervisor|class&manual> +% \fi +% +% \begin{localization}{\authorname} +% \changes{v2.05}{2015/07/06}{neu}^^A +% \begin{localization}{\contactname} +% \changes{v2.05}{2015/07/06}{neu}^^A +% \begin{localization}{\contactpersonname} +% Diese Bezeichner stehen für \cls{tudscrposter} sowie \pkg{tudscrsupervisor} +% bereit. +% \begin{macrocode} +\tud@localization@define{\authorname} +\tud@localization@define{\contactname} +\tud@localization@define{\contactpersonname} +% \end{macrocode} +% \end{localization}^^A \contactpersonname +% \end{localization}^^A \contactname +% \end{localization}^^A \authorname +% +% \iffalse +%</class&poster|package&supervisor|class&manual> +%<*package&supervisor|class&manual> +% \fi +% +% \begin{localization}{\taskname} +% \begin{localization}{\tasktext} +% \begin{localization}{\namesname} +% \changes{v2.04}{2015/05/06}{neu, Umbenennung von \cs{authorname}}^^A +% \begin{localization}{\issuedatetext} +% \begin{localization}{\duedatetext} +% \begin{localization}{\chairmanname} +% \begin{localization}{\focusname} +% \begin{localization}{\objectivesname} +% \begin{localization}{\evaluationname} +% \begin{localization}{\evaluationtext} +% \begin{localization}{\contentname} +% \begin{localization}{\assessmentname} +% \begin{localization}{\gradetext} +% \begin{localization}{\noticename} +% \changes{v2.02}{2014/05/16}{neu, umbenannt von \cs{contactname}}^^A +% Die für das Paket \pkg{tudscrsupervisor} definierten Bezeichner werden durch +% das Makro \cs{tud@localization@define} mit einer Fehlermeldung initialisiert. +% \begin{macrocode} +\tud@localization@define{\taskname} +\tud@localization@define{\tasktext} +\tud@localization@define{\namesname} +\tud@localization@define{\issuedatetext} +\tud@localization@define{\duedatetext} +\tud@localization@define{\chairmanname} +\tud@localization@define{\focusname} +\tud@localization@define{\objectivesname} +\tud@localization@define{\evaluationname} +\tud@localization@define{\evaluationtext} +\tud@localization@define{\contentname} +\tud@localization@define{\assessmentname} +\tud@localization@define{\gradetext} +\tud@localization@define{\noticename} +% \end{macrocode} +% \end{localization}^^A \noticename +% \end{localization}^^A \gradetext +% \end{localization}^^A \assessmentname +% \end{localization}^^A \contentname +% \end{localization}^^A \evaluationtext +% \end{localization}^^A \evaluationname +% \end{localization}^^A \objectivesname +% \end{localization}^^A \focusname +% \end{localization}^^A \chairmanname +% \end{localization}^^A \duedatetext +% \end{localization}^^A \issuedatetext +% \end{localization}^^A \namesname +% \end{localization}^^A \tasktext +% \end{localization}^^A \taskname +% +% \iffalse +%</package&supervisor|class&manual> +%<*class&doc> +% \fi +% +% \begin{localization}{\tud@general@name} +% \changes{v2.05g}{2016/11/02}{neu}^^A +% \begin{localization}{\tud@implementation@name} +% \changes{v2.05g}{2016/11/02}{neu}^^A +% \begin{localization}{\tud@changes@name} +% \changes{v2.05g}{2016/11/02}{neu}^^A +% \begin{localization}{\tud@todo@name} +% \changes{v2.05g}{2016/11/02}{neu}^^A +% \begin{localization}{\tud@environment@name} +% \changes{v2.05g}{2016/11/02}{neu}^^A +% \begin{localization}{\tud@environments@name} +% \changes{v2.05g}{2016/11/02}{neu}^^A +% \begin{localization}{\tud@option@name} +% \changes{v2.05g}{2016/11/02}{neu}^^A +% \begin{localization}{\tud@options@name} +% \changes{v2.05g}{2016/11/02}{neu}^^A +% \begin{localization}{\tud@layerpagestyle@name} +% \changes{v2.05g}{2016/11/02}{neu}^^A +% \begin{localization}{\tud@layerpagestyles@name} +% \changes{v2.05g}{2016/11/02}{neu}^^A +% \begin{localization}{\tud@layer@name} +% \changes{v2.05g}{2016/11/02}{neu}^^A +% \begin{localization}{\tud@layers@name} +% \changes{v2.05g}{2016/11/02}{neu}^^A +% \begin{localization}{\tud@length@name} +% \changes{v2.05g}{2016/11/02}{neu}^^A +% \begin{localization}{\tud@lengths@name} +% \changes{v2.05g}{2016/11/02}{neu}^^A +% \begin{localization}{\tud@counter@name} +% \changes{v2.05g}{2016/11/02}{neu}^^A +% \begin{localization}{\tud@counters@name} +% \changes{v2.05g}{2016/11/02}{neu}^^A +% \begin{localization}{\tud@TUDcolor@name} +% \changes{v2.05g}{2016/11/02}{neu}^^A +% \begin{localization}{\tud@TUDcolors@name} +% \changes{v2.05g}{2016/11/02}{neu}^^A +% \begin{localization}{\tud@localization@name} +% \changes{v2.05g}{2016/11/02}{neu}^^A +% \begin{localization}{\tud@localizations@name} +% \changes{v2.05g}{2016/11/02}{neu}^^A +% \begin{localization}{\tud@field@name} +% \changes{v2.05g}{2016/11/02}{neu}^^A +% \begin{localization}{\tud@fields@name} +% \changes{v2.05g}{2016/11/02}{neu}^^A +% \begin{localization}{\tud@KOMAfont@name} +% \changes{v2.05g}{2016/11/02}{neu}^^A +% \begin{localization}{\tud@KOMAfonts@name} +% \changes{v2.05g}{2016/11/02}{neu}^^A +% \begin{localization}{\tud@parameter@name} +% \changes{v2.05g}{2016/11/02}{neu}^^A +% \begin{localization}{\tud@parameters@name} +% \changes{v2.05g}{2016/11/02}{neu}^^A +% \begin{localization}{\tud@index@text} +% \changes{v2.05g}{2016/11/02}{neu}^^A +% Diese Bezeichner werden von der Klasse \cls{tudscrdoc} genutzt. +% \begin{macrocode} +\tud@localization@define{\tud@general@name} +\tud@localization@define{\tud@implementation@name} +\tud@localization@define{\tud@changes@name} +\tud@localization@define{\tud@todo@name} +\tud@localization@define{\tud@environment@name} +\tud@localization@define{\tud@environments@name} +\tud@localization@define{\tud@option@name} +\tud@localization@define{\tud@options@name} +\tud@localization@define{\tud@layerpagestyle@name} +\tud@localization@define{\tud@layerpagestyles@name} +\tud@localization@define{\tud@layer@name} +\tud@localization@define{\tud@layers@name} +\tud@localization@define{\tud@length@name} +\tud@localization@define{\tud@lengths@name} +\tud@localization@define{\tud@counter@name} +\tud@localization@define{\tud@counters@name} +\tud@localization@define{\tud@TUDcolor@name} +\tud@localization@define{\tud@TUDcolors@name} +\tud@localization@define{\tud@localization@name} +\tud@localization@define{\tud@localizations@name} +\tud@localization@define{\tud@field@name} +\tud@localization@define{\tud@fields@name} +\tud@localization@define{\tud@KOMAfont@name} +\tud@localization@define{\tud@KOMAfonts@name} +\tud@localization@define{\tud@parameter@name} +\tud@localization@define{\tud@parameters@name} +\tud@localization@define{\tud@index@text} +% \end{macrocode} +% \end{localization}^^A \tud@index@text +% \end{localization}^^A \tud@parameters@name +% \end{localization}^^A \tud@parameter@name +% \end{localization}^^A \tud@KOMAfonts@name +% \end{localization}^^A \tud@KOMAfont@name +% \end{localization}^^A \tud@fields@name +% \end{localization}^^A \tud@field@name +% \end{localization}^^A \tud@localizations@name +% \end{localization}^^A \tud@localization@name +% \end{localization}^^A \tud@TUDcolors@name +% \end{localization}^^A \tud@TUDcolor@name +% \end{localization}^^A \tud@counters@name +% \end{localization}^^A \tud@counter@name +% \end{localization}^^A \tud@lengths@name +% \end{localization}^^A \tud@length@name +% \end{localization}^^A \tud@layers@name +% \end{localization}^^A \tud@layer@name +% \end{localization}^^A \tud@layerpagestyles@name +% \end{localization}^^A \tud@layerpagestyle@name +% \end{localization}^^A \tud@options@name +% \end{localization}^^A \tud@option@name +% \end{localization}^^A \tud@environments@name +% \end{localization}^^A \tud@environment@name +% \end{localization}^^A \tud@todo@name +% \end{localization}^^A \tud@changes@name +% \end{localization}^^A \tud@implementation@name +% \end{localization}^^A \tud@general@name +% +% \iffalse +%</class&doc> +% \fi +% +% \end{macro}^^A \tud@localization@define +% +% \iffalse +%<*class&!(manual|doc)> +% \fi +% +% \subsection{Hilfsmakros für selektive Bezeichner} +% +% Einige Bezeichner verhalten sich je nach der Angabe für einzelne Felder +% selektiv, die zur Auswahl notwendigen Makros werden hier definiert. +% +% \begin{macro}{\tud@ifin@and} +% \changes{v2.05}{2015/08/05}{neu}^^A +% Dieser Befehl prüft, ob innerhalb eines Felder, welches im ersten Argument +% angegeben werden muss, \cs{and} verwendet wurde. Ist dies der Fall, wird das +% zweite Argument ausgeführt, andernfalls das dritte. +% \begin{macrocode} +\newcommand*\tud@ifin@and[1]{% + \begingroup% + \let\and\relax% + \robustify\\% + \protected@edef\@tempb{#1}% + \def\@tempa##1\and##2\relax{% + \IfArgIsEmpty{##2}{% + \aftergroup\@secondoftwo% + }{% + \aftergroup\@firstoftwo% + }% + }% + \expandafter\@tempa\@tempb\and\relax% + \endgroup +} +% \end{macrocode} +% \end{macro}^^A \tud@ifin@and +% +% \iffalse +%</class&!(manual|doc)> +%<*class&!manual> +% \fi +% +% \subsection{Deutschsprachige Bezeichner} +% \begin{macro}{\tud@localization@german} +% \changes{v2.02}{2014/07/07}{als Aliasbefehl für \cs{providecaptionname} mit +% dem Argument \marg{deutsche Sprachliste}}^^A +% Dieser Befehl dient zur Definition der deutschsprachigen Bezeichner. Dabei +% müssen als Argumente der Bezeichnerbefehl selbst sowie die dazugehörige +% Definition angegeben werden. Intern wird dabei \cs{providecaptionname} +% verwendet. +% \begin{macrocode} +\newcommand*\tud@localization@german{% + \providecaptionname{% + german,ngerman,austrian,naustrian,swissgerman,nswissgerman% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@localization@german +% +% \iffalse +%<*!doc> +% \fi +% +% Hier erfolgt die eigentliche Definition der sprachabhängigen Bezeichner für +% die deutsche Sprache und ihre Dialekte. +% \begin{macrocode} +%<*book|report|article> +\tud@localization@german{\graduationtext}{% + zur Erlangung des akademischen Grades% +}% +% \end{macrocode} +% Für die nachfolgenden Felder, für die es bedarfsweise einen Bezeichner für +% eine zweite Person gibt (\cs{\dots{}othername}), werden jeweils verschiedene +% Varianten definiert. Existiert in einem Feld nur eine Person, wird der +% Singular der Bezeichnung verwendet. Wurden mindestens zwei Personen angegeben +% (\cs{and}), so wird geprüft, ob der Bezeichner für die zusätzlichen Personen +% nicht leer ist. Ist dies der Fall, wird die alternative Form des Bezeichners +% der ersten Person verwendet, andernfalls wird der Bezeichner im Plural +% verwendet. +% \begin{macrocode} +\tud@localization@german{\refereename}{% + \tud@ifin@and{\@referee}{% + \ifx\refereeothername\@empty% + Gutachter% + \else% + Erstgutachter% + \fi% + }{Gutachter}% +}% +\tud@localization@german{\refereeothername}{Zweitgutachter}% +\tud@localization@german{\advisorname}{% + \tud@ifin@and{\@advisor}{% + \ifx\advisorothername\@empty% + Fachreferenten% + \else% + Erster Fachreferent% + \fi% + }{Fachreferent}% +}% +\tud@localization@german{\advisorothername}{}% +\tud@localization@german{\supervisorname}{% + \tud@ifin@and{\@supervisor}{% + \ifx\supervisorothername\@empty% + Betreuer% + \else% + Erstbetreuer% + \fi% + }{Betreuer}% +}% +\tud@localization@german{\supervisorothername}{}% +\tud@localization@german{\professorname}{% + \tud@ifin@and{\@professor}{% + \ifx\professorothername\@empty% + Betreuende Hochschullehrer% + \else% + Erster betreuender Hochschullehrer% + \fi% + }{Betreuender Hochschullehrer}% +}% +\tud@localization@german{\professorothername}{}% +\tud@localization@german{\datetext}{Eingereicht am}% +\tud@localization@german{\dateofbirthtext}{Geboren am}% +\tud@localization@german{\placeofbirthtext}{in}% +\tud@localization@german{\defensedatetext}{Verteidigt am}% +\tud@localization@german{\matriculationyearname}{Immatrikulationsjahr}% +\tud@localization@german{\matriculationnumbername}{Matrikelnummer}% +\tud@localization@german{\coverpagename}{Umschlagseite}% +\tud@localization@german{\titlepagename}{Titelblatt}% +\tud@localization@german{\titlename}{Titel}% +%<*book> +\tud@localization@german{\abstractname}{Zusammenfassung}% +%</book> +\tud@localization@german{\confirmationname}{Selbstst\"andigkeitserkl\"arung}% +\tud@localization@german{\confirmationtext}{% + Hiermit versichere ich, dass ich die vorliegende Arbeit + \ifx\@@title\@empty\else mit dem Titel \emph{\@@title} \fi + selbstst\"andig und ohne unzul\"assige Hilfe Dritter verfasst habe. + Es wurden keine anderen als die in der Arbeit angegebenen Hilfsmittel + und Quellen benutzt. Die w\"ortlichen und sinngem\"a\ss{} + \"ubernommenen Zitate habe ich als solche kenntlich gemacht. + \ifx\@supporter\@empty% + Es waren keine weiteren Personen an der geistigen Herstellung + der vorliegenden Arbeit beteiligt. + \else% + W\"ahrend der Anfertigung dieser Arbeit wurde ich nur von + folgenden Personen unterst\"utzt:% + \begin{quote}\def\and{\newline}\@supporter\end{quote}% + \noindent Weitere Personen waren an der geistigen Herstellung + der vorliegenden Arbeit nicht beteiligt. + \fi% + Mir ist bekannt, dass die Nichteinhaltung dieser Erkl\"arung zum + nachtr\"aglichen Entzug des Hochschulabschlusses f\"uhren kann.% +}% +\tud@localization@german{\blockingname}{Sperrvermerk}% +\tud@localization@german{\blockingtext}{% + Diese Arbeit + \ifx\@@title\@empty\else mit dem Titel \emph{\@@title} \fi + enth\"alt vertrauliche Informationen\ifx\@company\@empty\else + , offengelegt durch \emph{\@company}\fi. Ver\"offentlichungen, + Vervielf\"altigungen und Einsichtnahme~-- auch nur auszugsweise~-- + sind ohne ausdr\"uckliche Genehmigung \ifx\@company\@empty\else + durch \emph{\@company} \fi nicht gestattet, ebenso wie + Ver\"offentlichungen \"uber den Inhalt dieser Arbeit. Die + vorliegende Arbeit ist nur dem Betreuer an der Technischen + Universit\"at Dresden, den Gutachtern sowie den Mitgliedern + des Pr\"ufungsausschusses zug\"anglich zu machen.% +}% +%</book|report|article> +\tud@localization@german{\coursename}{Studiengang}% +\tud@localization@german{\disciplinename}{Studienrichtung}% +\tud@localization@german{\listingname}{Quelltext}% +\tud@localization@german{\listlistingname}{Quelltextverzeichnis}% +\tud@localization@german{\dissertationname}{Dissertation}% +\tud@localization@german{\diplomathesisname}{Diplomarbeit}% +\tud@localization@german{\masterthesisname}{Master-Arbeit}% +\tud@localization@german{\bachelorthesisname}{Bachelor-Arbeit}% +\tud@localization@german{\studentthesisname}{Studienarbeit}% +\tud@localization@german{\studentresearchname}{Gro\ss{}er Beleg}% +\tud@localization@german{\projectpapername}{Projektarbeit}% +\tud@localization@german{\seminarpapername}{Seminararbeit}% +\tud@localization@german{\termpapername}{Hausarbeit}% +\tud@localization@german{\researchname}{Forschungsbericht}% +\tud@localization@german{\logname}{Protokoll}% +\tud@localization@german{\internshipname}{Praktikumsbericht}% +\tud@localization@german{\reportname}{Bericht}% +% \end{macrocode} +% +% \iffalse +%</!doc> +%</class&!manual> +%<*class&poster|package&supervisor|class&manual> +% \fi +% +% Hier erfolgen für die Klasse \cls{tudscrposter} sowie das Paket +% \pkg{tudscrsupervisor} weitere Definitionen. +% \begin{macrocode} +\tud@localization@german{\authorname}{Autor}% +\tud@localization@german{\contactname}{Kontakt}% +\tud@localization@german{\contactpersonname}{Ansprechpartner}% +% \end{macrocode} +% +% \iffalse +%</class&poster|package&supervisor|class&manual> +%<*package&supervisor|class&manual> +% \fi +% +% Hier erfolgen für das Paket \pkg{tudscrsupervisor} weitere Definitionen. +% \begin{macrocode} +\tud@localization@german{\taskname}{Aufgabenstellung}% +\tud@localization@german{\tasktext}{f\"ur die Anfertigung einer}% +\tud@localization@german{\namesname}{Name}% +\tud@localization@german{\issuedatetext}{Ausgeh\"andigt am}% +\tud@localization@german{\duedatetext}{Einzureichen am}% +\tud@localization@german{\chairmanname}{Pr\"ufungsausschussvorsitzender}% +\tud@localization@german{\focusname}{Schwerpunkte der Arbeit}% +\tud@localization@german{\objectivesname}{Ziele der Arbeit}% +\tud@localization@german{\evaluationname}{Gutachten}% +\tud@localization@german{\evaluationtext}{f\"ur die}% +\tud@localization@german{\contentname}{Inhalt}% +\tud@localization@german{\assessmentname}{Bewertung}% +\tud@localization@german{\gradetext}{% + Die Arbeit wird mit der Note \textbf{\@grade} bewertet.% +}% +\tud@localization@german{\noticename}{Aushang}% +% \end{macrocode} +% +% \iffalse +%</package&supervisor|class&manual> +%<*class&doc> +% \fi +% +% Dies sind die Bezeichner für die Quelltextdokumentation. +% \begin{macrocode} +\tud@localization@german{\tud@general@name}{Allgemein}% +\tud@localization@german{\tud@implementation@name}{Implementierung}% +\tud@localization@german{\tud@changes@name}{\"Anderungsliste} +\tud@localization@german{\tud@todo@name}{Liste der noch zu erledigenden Punkte} +\tud@localization@german{\tud@environment@name}{Umg.} +\tud@localization@german{\tud@environments@name}{Umgebungen} +\tud@localization@german{\tud@option@name}{Opt.} +\tud@localization@german{\tud@options@name}{Optionen} +\tud@localization@german{\tud@layerpagestyle@name}{Seitenstil} +\tud@localization@german{\tud@layerpagestyles@name}{Seitenstile} +\tud@localization@german{\tud@layer@name}{Layer} +\tud@localization@german{\tud@layers@name}{Layer (Seitenstilebenen)} +\tud@localization@german{\tud@length@name}{L\"ange} +\tud@localization@german{\tud@lengths@name}{L\"angen} +\tud@localization@german{\tud@counter@name}{Z\"ahler} +\tud@localization@german{\tud@counters@name}{Z\"ahler} +\tud@localization@german{\tud@TUDcolor@name}{Farbe} +\tud@localization@german{\tud@TUDcolors@name}{Farben} +\tud@localization@german{\tud@localization@name}{Lok.} +\tud@localization@german{\tud@localizations@name}{Lokalisierungsmakros} +\tud@localization@german{\tud@field@name}{Feld} +\tud@localization@german{\tud@fields@name}{Eingabefelder} +\tud@localization@german{\tud@KOMAfont@name}{Schriftel.} +\tud@localization@german{\tud@KOMAfonts@name}{Schriftelemente} +\tud@localization@german{\tud@parameter@name}{Param.} +\tud@localization@german{\tud@parameters@name}{Parameter} +\tud@localization@german{\tud@index@text}{% + Kursive Zahlen entsprechen der Seite, auf welcher der korrespondierende + Eintrag beschrieben wird. Unterstrichene Zahlen verweisen auf die + \ifcodeline@index Codezeile der \fi Definition. + \ifscan@allowed% + Alle weiteren Eintr\"age sind + \ifcodeline@index Zeilennummern\else Seitenzahlen\fi, + wo der jeweilige Eintrag verwendet wird. + \fi% +} +% \end{macrocode} +% +% \iffalse +%</class&doc> +%<*class&!manual> +% \fi +% +% \subsection{Englischsprachige Bezeichner} +% +% \begin{macro}{\tud@localization@english} +% \changes{v2.02}{2014/07/07}{Pseudonym für \cs{providecaptionname} mit +% dem Argument \marg{englische Sprachliste}}^^A +% Dieser Befehl dient zur Definition der englischsprachigen Bezeichner. Dabei +% müssen als Argumente der Bezeichnerbefehl selbst sowie die dazugehörige +% Definition angegeben werden. Intern wird dabei \cs{providecaptionname} +% verwendet. +% \begin{macrocode} +\newcommand*\tud@localization@english{% + \providecaptionname{% + american,australian,british,canadian,english,newzealand,UKenglish,USenglish% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@localization@english +% +% \iffalse +%<*!doc> +% \fi +% +% Hier erfolgt die eigentliche Definition der sprachabhängigen Bezeichner für +% die deutsche Sprache und ihre Dialekte. +% \begin{macrocode} +%<*book|report|article> +\tud@localization@english{\graduationtext}{to achieve the academic degree}% +\tud@localization@english{\refereename}{% + \tud@ifin@and{\@referee}{% + \ifx\refereeothername\@empty% + Referees% + \else% + First referee% + \fi% + }{Referee}% +}% +\tud@localization@english{\refereeothername}{Second referee}% +\tud@localization@english{\advisorname}{% + \tud@ifin@and{\@advisor}{% + \ifx\advisorothername\@empty% + Advisors% + \else% + First advisor% + \fi% + }{Advisor}% +}% +\tud@localization@english{\advisorothername}{}% +\tud@localization@english{\supervisorname}{% + \tud@ifin@and{\@supervisor}{% + \ifx\supervisorothername\@empty% + Supervisors% + \else% + First supervisor% + \fi% + }{Supervisor}% +}% +\tud@localization@english{\supervisorothername}{}% +\tud@localization@english{\professorname}{% + \tud@ifin@and{\@professor}{% + \ifx\professorothername\@empty% + Supervising professors% + \else% + First supervising professor% + \fi% + }{Supervising professor}% +}% +\tud@localization@english{\professorothername}{}% +\tud@localization@english{\datetext}{Submitted on}% +\tud@localization@english{\dateofbirthtext}{Born on}% +\tud@localization@english{\placeofbirthtext}{in}% +\tud@localization@english{\defensedatetext}{Defended on}% +\tud@localization@english{\matriculationyearname}{Matriculation year}% +\tud@localization@english{\matriculationnumbername}{Matriculation number}% +\tud@localization@english{\coverpagename}{Cover page}% +\tud@localization@english{\titlepagename}{Title page}% +\tud@localization@english{\titlename}{Title}% +%<*book> +\tud@localization@english{\abstractname}{Abstract}% +%</book> +\tud@localization@english{\confirmationname}{Statement of authorship}% +\tud@localization@english{\confirmationtext}{% + I hereby certify that I have authored this + \ifx\@@thesis\@empty thesis\else\@@thesis{} \fi + \ifx\@@title\@empty\else entitled \emph{\@@title} \fi + independently and without undue assistance from third + parties. No other than the resources and references + indicated in this thesis have been used. I have marked + both literal and accordingly adopted quotations as such. + \ifx\@supporter\@empty% + There were no additional persons involved in the + intellectual preparation of the present thesis. + \else% + During the preparation of this thesis I was only + supported by the following persons:% + \begin{quote}\def\and{\newline}\@supporter\end{quote}% + \noindent Additional persons were not involved in the + intellectual preparation of the present thesis. + \fi% + I am aware that violations of this declaration may lead to + subsequent withdrawal of the degree.% +}% +\tud@localization@english{\blockingname}{Restriction note}% +\tud@localization@english{\blockingtext}{% + This \ifx\@@thesis\@empty thesis \else\@@thesis{} \fi + \ifx\@@title\@empty\else entitled \emph{\@@title} \fi + contains confidential data\ifx\@company\@empty\else + , disclosed by \emph{\@company}\fi. Publications, duplications + and inspections---even in part---are prohibited without explicit + permission\ifx\@company\@empty\else\space by \emph{\@company}\fi, + as well as publications about the content of this thesis. + This thesis may only be made accessible to the supervisor at + Technische Universit\"at Dresden, the reviewers and also the + members of the examination board.% +}% +%</book|report|article> +\tud@localization@english{\coursename}{Course}% +\tud@localization@english{\disciplinename}{Discipline}% +\tud@localization@english{\listingname}{Listing}% +\tud@localization@english{\listlistingname}{List of Listings}% +\tud@localization@english{\dissertationname}{Dissertation}% +\tud@localization@english{\diplomathesisname}{Diploma Thesis}% +\tud@localization@english{\masterthesisname}{Master Thesis}% +\tud@localization@english{\bachelorthesisname}{Bachelor Thesis}% +\tud@localization@english{\studentthesisname}{Student Thesis}% +\tud@localization@english{\studentresearchname}{Student Research Project}% +\tud@localization@english{\projectpapername}{Project Paper}% +\tud@localization@english{\seminarpapername}{Seminar Paper}% +\tud@localization@english{\termpapername}{Term Paper}% +\tud@localization@english{\researchname}{Research Report}% +\tud@localization@english{\logname}{Log}% +\tud@localization@english{\internshipname}{Internship Report}% +\tud@localization@english{\reportname}{Report}% +% \end{macrocode} +% +% \iffalse +%</!doc> +%</class&!manual> +%<*class&poster|package&supervisor|class&manual> +% \fi +% +% Hier erfolgen für die Klasse \cls{tudscrposter} sowie das Paket +% \pkg{tudscrsupervisor} weitere Definitionen. +% \begin{macrocode} +\tud@localization@english{\authorname}{Author}% +\tud@localization@english{\contactname}{Contact}% +\tud@localization@english{\contactpersonname}{Counterpart}% +% \end{macrocode} +% +% \iffalse +%</class&poster|package&supervisor|class&manual> +%<*package&supervisor|class&manual> +% \fi +% +% Hier erfolgen für das Paket \pkg{tudscrsupervisor} weitere Definitionen. +% \begin{macrocode} +\tud@localization@english{\taskname}{Task}% +\tud@localization@english{\tasktext}{for the preparation of a}% +\tud@localization@english{\namesname}{Name}% +\tud@localization@english{\issuedatetext}{Issued on}% +\tud@localization@english{\duedatetext}{Due date for submission}% +\tud@localization@english{\chairmanname}{Chairman of the Audit Committee}% +\tud@localization@english{\focusname}{Focus of work}% +\tud@localization@english{\objectivesname}{Objectives of work}% +\tud@localization@english{\evaluationname}{Evaluation}% +\tud@localization@english{\evaluationtext}{for the}% +\tud@localization@english{\contentname}{Content}% +\tud@localization@english{\assessmentname}{Assessment}% +\tud@localization@english{\gradetext}{% + The thesis is evaluated with a grade of \textbf{\@grade}.% +}% +\tud@localization@english{\noticename}{Notice}% +% \end{macrocode} +% +% \iffalse +%</package&supervisor|class&manual> +%<*class&doc> +% \fi +% +% Dies sind die Bezeichner für die Quelltextdokumentation. +% \begin{macrocode} +\tud@localization@english{\tud@general@name}{General}% +\tud@localization@english{\tud@implementation@name}{Implementation}% +\tud@localization@english{\tud@changes@name}{Change History} +\tud@localization@english{\tud@todo@name}{List of ToDos} +\tud@localization@english{\tud@environment@name}{env.} +\tud@localization@english{\tud@environments@name}{environments} +\tud@localization@english{\tud@option@name}{opt.} +\tud@localization@english{\tud@options@name}{options} +\tud@localization@english{\tud@layerpagestyle@name}{pagestyle} +\tud@localization@english{\tud@layerpagestyles@name}{pagestyles} +\tud@localization@english{\tud@layer@name}{layer} +\tud@localization@english{\tud@layers@name}{layers (pagestyle)} +\tud@localization@english{\tud@length@name}{length} +\tud@localization@english{\tud@lengths@name}{lengths} +\tud@localization@english{\tud@counter@name}{counter} +\tud@localization@english{\tud@counters@name}{counters} +\tud@localization@english{\tud@TUDcolor@name}{color} +\tud@localization@english{\tud@TUDcolors@name}{colors} +\tud@localization@english{\tud@localization@name}{localization} +\tud@localization@english{\tud@localizations@name}{localizations} +\tud@localization@english{\tud@field@name}{field} +\tud@localization@english{\tud@fields@name}{input fields} +\tud@localization@english{\tud@KOMAfont@name}{font} +\tud@localization@english{\tud@KOMAfonts@name}{font elements} +\tud@localization@english{\tud@parameter@name}{param.} +\tud@localization@english{\tud@parameters@name}{parameters} +\tud@localization@english{\tud@index@text}{% + Numbers written in italic refer to the page where the corresponding entry is + described. Numbers underlined refer to the + \ifcodeline@index code line of the \fi definition. + \ifscan@allowed% + All additional entries refer to the + \ifcodeline@index code lines \else pages \fi + where the entry is used. + \fi% +} +% \end{macrocode} +% +% \iffalse +%</class&doc> +%<*class&!(manual|doc)> +% \fi +% +% \subsection{Kompatibilität der Bezeichner mit verschiedenen Pakete} +% \subsubsection{Unterstützung des Paketes \pkg{listings}} +% +% Die Bezeichner des Paketes werden auf die bereits definierten gesetzt. +% \begin{macrocode} +\AfterPackage{listings}{% + \renewcommand*\lstlistingname{\listingname}% + \renewcommand*\lstlistlistingname{\listlistingname}% +} +% \end{macrocode} +% +% \subsubsection{Unterstützung des Paketes \pkg{mathswap}} +% +% Wird das Paket \pkg{mathswap} verwendet, werden die Ersetzungen für Punkt und +% Komma im Mathematikmodus sprachspezifisch angepasst. +% \begin{macrocode} +\AfterPackage{mathswap}{% + \tud@localization@german{\@commaswap}{,}% + \tud@localization@german{\@dotswap}{\,}% + \tud@localization@english{\@commaswap}{\,}% + \tud@localization@english{\@dotswap}{.}% +} +% \end{macrocode} +% +% \iffalse +%</class&!(manual|doc)> +% \fi +% +% \Finale +% +\endinput diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx index d5e44591be9..8d642e11ce0 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx @@ -1,10 +1,10 @@ -% \CheckSum{4322} +% \CheckSum{4472} % \iffalse meta-comment % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2017 +% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2019 % % ---------------------------------------------------------------------------- % @@ -48,25 +48,35 @@ % % \iffalse %%% From File: tudscr-manual.dtx -%<*driver> -\ifx\ProvidesFile\@undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-manual.dtx}[% - 2017/05/30 v2.05m TUD-Script\space% -%</driver> +%<*dtx> +% \fi +% +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\ProvidesFile{tudscr-manual.dtx}[2019/06/28 v2.06 TUD-Script\space% +% +% \iffalse +%</dtx> %<package&identify>\ProvidesPackage{tudscrtutorial}[% -%<*driver|package&identify> +%<*package&identify> %!TUD@Version -%<package> package +%</package&identify> +%<package&identify> package +%<*dtx|package&identify> +% \fi (internal tutorials)% ] -%</driver|package&identify> -%<*driver> -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} +% \iffalse +%</dtx|package&identify> +%<*dtx> \documentclass[english,ngerman,xindy]{tudscrdoc} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} \usepackage{babel} -\usepackage{tudscrfonts} % only load this package, if the fonts are installed +\usepackage{tudscrfonts} \KOMAoptions{parskip=half-} \usepackage{bookmark} \usepackage[babel]{microtype} @@ -83,7 +93,7 @@ \tableofcontents \DocInput{\filename} \end{document} -%</driver> +%</dtx> % \fi % % \selectlanguage{ngerman} @@ -110,7 +120,7 @@ % % \subsection{Notwendige Pakete und Befehle} % -% Basis für die Handbuchklasse \cls{tudscrmanual} ist die \cls{tudscrreprt}. +% Basis für die Handbuchklasse \cls{tudscrmanual} ist \cls{tudscrreprt}. % Zusätzlich wird das Paket \pkg{tudscrtutorial} erstellt, um an das Handbuch % angelehnte Tutorials in einem Unterordner zu erstellen. Sowohl für die Klasse % als auch das Paket werden einige Pakete geladen, um Einstellungen vorzunehmen @@ -156,19 +166,19 @@ % erzeugt. % \ToDo{Kann raus, sobald \pkg{geometry} nicht mehr notwendig}[v2.07] % \begin{macrocode} -%<*!doc> -\@ifpackagelater{geometry}{2010/09/13}{% +%<*!(doc|package)> +\@ifpackagelater{geometry}{2018/04/17}{% \ClassWarning{\TUD@Class@Name}{% Package `geometry' was updated so some patches\MessageBreak% are maybe outdated% }% }{}% -%</!doc> +%</!(doc|package)> % \end{macrocode} % \begin{macro}{\vTUDScript} % \begin{macro}{\vKOMAScript} % Diese Befehle geben in der Dokumentation die aktuelle Version von \TUDScript -% sowie die mindestens notwendige Version von \KOMAScript aus. +% sowie die mindestens notwendige Version von \KOMAScript{} aus. % \begin{macrocode} \newcommand*\vTUDScript{v\TUDScriptVersionNumber} \newcommand*\vKOMAScript{v\TUD@Version@KOMA} @@ -190,10 +200,13 @@ } % \end{macrocode} % \end{macro}^^A \tud@english -% Sollte \app{lualatex} als Dokumentprozessor eingesetzt werden, sind die -% \app{pdflatex}-Primitiven \cs{pdf(@)strcmp} und \cs{pdf(@)shellescape} -% dennoch notwendig, wofür das Paket \pkg{pdftexcmds} geladen wird. +% Das Paket \pkg{shellesc} ermöglicht mit dem Befehl \cs{ShellEscape} die +% Verwendung von Systembefehlen auf der Kommandozeile unabhängig von der +% genutzten Engine. Sollte \app{lualatex} als Dokumentprozessor eingesetzt +% werden, sind dennoch die \app{pdflatex}-Primitiven \cs{pdf(@)strcmp} und +% \cs{pdf(@)shellescape} nötig, wofür das Paket \pkg{pdftexcmds} geladen wird. % \begin{macrocode} +\RequirePackage{shellesc}[2016/06/07] \RequirePackage{pdftexcmds}[2016/05/21] % \end{macrocode} % @@ -201,6 +214,7 @@ %</body|class&doc> %<*!doc> %<*body> +%<*class> % \fi % % \begin{macro}{\tud@list@sort} @@ -314,6 +328,7 @@ % \end{macro}^^A \tud@list@sort % % \iffalse +%</class> %<*package> % \fi % @@ -331,13 +346,20 @@ % Varianten nutzen das Paket \pkg{filecontents}, um ihren Inhalt in eine % temporäre Datei zu schreiben und diese direkt mit dem Paket \pkg{listings} % darzustellen sowie ggf. den Quelltext auszuführen. Beim Überschreiben einer -% Datei wird für gewöhnlich eine Warnung erzeugt. Mit dem Paket \pkg{silence} -% wird diese innerhalb der genannten Umgebungen deaktiviert. +% Datei wird für gewöhnlich eine Warnung erzeugt. Dies wird mit dem Patch +% unterbunden. % \begin{macrocode} -\RequirePackage{silence}[2012/07/02] \RequirePackage{filecontents}[2011/10/08] -\WarningFilter[Tutorial]{latex}{Overwriting file}% -\WarningFilter[Tutorial]{latex}{Writing file}% +\begingroup% + \catcode`\*=11% + \catcode`\^^M\active% + \catcode`\^^L\active\let^^L\relax% + \catcode`\^^I\active% + \patchcmd{\filec@ntents}{% + \@latex@warning@no@line{Overwriting file `\@currdir#1'}% + }{}{}{\tud@patch@wrn{filec@tents}}% + \global\let\filec@ntents\filec@ntents% +\endgroup% % \end{macrocode} % % \iffalse @@ -383,7 +405,9 @@ \ifdef{\tudfinalflag}{% \TUDoptions{ToDo=false}% \TUD@key{ToDo}{\FamilyKeyStateProcessed}% - }{}% + }{% + \KOMAoptions{overfullrule}% + }% \ifdef{\tudprintflag}{% \ifnum\tud@cd@num>\z@\relax% \TUDoptions{cd=true}% @@ -452,7 +476,7 @@ % \begin{macrocode} \newcommand*\tud@trace@lbl@created@add[1]{} \newcommand*\tud@trace@lbl@missing@add[1]{} -\NewDocumentCommand\tracinglabels{sO{missing}}{% +\NewDocumentCommand\tracinglabels{!s !O{missing}}{% \newcommand*\tud@trace@lbl@created@list{}% \newcommand*\tud@trace@lbl@missing@list{}% \@tempswafalse% @@ -507,8 +531,8 @@ % \changes{v2.05}{2015/10/29}{neu}^^A % \begin{macro}{\tud@trace@markup} % \changes{v2.05}{2015/10/29}{neu}^^A -% Durch die Verwendung von \cs{tracinglabels} wird die Nachverfolgung aller -% Aufrufe von \cs{Process@@MarkupDeclare} und \cs{Process@@MarkupInline} durch +% Mit \cs{tracinglabels} wird die Nachverfolgung aller Aufrufe von +% \cs{Process@@MarkupDeclare} und \cs{Process@@MarkupInline} durch % \cs{Process@Markup} inklusive all ihrer Argumente aktiviert. Dies ist für die % Kontrolle des erzeugten Markups sinnvoll. % \begin{macrocode} @@ -568,7 +592,7 @@ % \subsection{Anpassungen für das Paket \pkg{hyperref} und Querverweise} % % Das Paket \pkg{hyperref} wird für alle möglichen Links und Querverweise -% geladen, \pkg{bookmark} verbesssert das Erstellen der Outline-Einträge. +% geladen, \pkg{bookmark} verbessert das Erstellen der Outline-Einträge. % \begin{macrocode} \PassOptionsToPackage{hyperindex=false,colorlinks,linkcolor=blue}{hyperref} \PassOptionsToPackage{open,openlevel=0}{bookmark} @@ -607,7 +631,7 @@ % \begin{macrocode} \newcommand*\tud@manualname{tudscr}% %<*class> - \NewDocumentCommand\tudhyperdef{st'm}{% + \NewDocumentCommand\tudhyperdef{s t' m}{% \@tempswafalse% \IfBooleanT{#1}{\@tempswatrue\setlength\@tempdima{3\baselineskip}}% \IfBooleanT{#2}{\@tempswatrue\setlength\@tempdima{15\baselineskip}}% @@ -820,16 +844,16 @@ % \begin{macro}{\subsubsectionautorefname} % Die notwendigen, lokalen Bezeichner der Gliederungsebenen. % \begin{macrocode} - \tud@locale@german{\partautorefname}{Teil}% - \tud@locale@german{\chapterautorefname}{Kapitel}% - \tud@locale@german{\sectionautorefname}{Unterkapitel}% - \tud@locale@german{\subsectionautorefname}{Abschnitt}% - \tud@locale@german{\subsubsectionautorefname}{Unterabschnitt}% - \tud@locale@english{\partautorefname}{Part}% - \tud@locale@english{\chapterautorefname}{chapter}% - \tud@locale@english{\sectionautorefname}{section}% - \tud@locale@english{\subsectionautorefname}{subsection}% - \tud@locale@english{\subsubsectionautorefname}{subsubsection}% + \tud@localization@german{\partautorefname}{Teil}% + \tud@localization@german{\chapterautorefname}{Kapitel}% + \tud@localization@german{\sectionautorefname}{Unterkapitel}% + \tud@localization@german{\subsectionautorefname}{Abschnitt}% + \tud@localization@german{\subsubsectionautorefname}{Unterabschnitt}% + \tud@localization@english{\partautorefname}{Part}% + \tud@localization@english{\chapterautorefname}{chapter}% + \tud@localization@english{\sectionautorefname}{section}% + \tud@localization@english{\subsectionautorefname}{subsection}% + \tud@localization@english{\subsubsectionautorefname}{subsubsection}% % \end{macrocode} % \end{macro}^^A \subsubsectionautorefname % \end{macro}^^A \subsectionautorefname @@ -870,7 +894,7 @@ % Mit diesem Makro können Hyperlinks im Fließtext erzeugt werden, welche % zusätzlich noch die dazugeörige URL als Fußnote anzeigen. % \begin{macrocode} -%<doc>\TUD@UnwindPackage{trimspaces}{\providecommand*\trim@spaces[1]{#1}} +%<doc>\RequirePackage{trimspaces}[2009/09/17] \newcommand*\hrfn[2]{% \href{#1}{\trim@spaces{#2}}% \footnote{% @@ -897,6 +921,7 @@ % \cs{pdfstringdef} ziemlich viele und absolut unnötige Infos in der Form % \texttt{Package babel Info: Redefining ngerman shorthand}. Dieser Patch dient % zum Unterdrücken dieser Infos. +% \begin{macro}{\pdfstringdef} % \begin{macrocode} \AfterPackage*{hyperref}{% \patchcmd{\pdfstringdef}{\csname HyPsd@babel@}{% @@ -904,6 +929,7 @@ }{}{\tud@patch@wrn{pdfstringdef}}% } % \end{macrocode} +% \end{macro}^^A \pdfstringdef % % \iffalse %</body|class&doc> @@ -958,8 +984,8 @@ \newif\if@openindex % \end{macrocode} % Das Makro \cs{tud@declare@num} bestimmt innerhalb einer Deklaration, wie -% das Markup erfolgen soll. Die möglichen Werte für \cs{tud@declare@num} sind -% bei der Beschreibung von \cs{Process@@MarkupDeclare} zu finden. +% das Markup erfolgen soll. Die möglichen Werte sind bei der Beschreibung von +% \cs{Process@@MarkupDeclare} zu finden. % \begin{macrocode} \newcommand*\tud@declare@num{0} % \end{macrocode} @@ -1250,7 +1276,7 @@ \newskip\tud@lastskip \pretocmd{\index}{\tud@lastskip=\lastskip}{}{\tud@patch@wrn{index}} \pretocmd{\label}{\tud@lastskip=\lastskip}{}{\tud@patch@wrn{label}} -\NewDocumentCommand\printdeclarationlist{sd()}{% +\NewDocumentCommand\printdeclarationlist{!s !d()}{% \ifx\tud@declaration@list\relax\else% \ifhmode% \vskip\medskipamount% @@ -1262,7 +1288,7 @@ % gesetzt. % \begin{macrocode} \@tempskipa=\glueexpr\medskipamount-\tud@lastskip\relax% - \ifdim\@tempskipa>\z@% + \ifdim\@tempskipa>\z@\relax% \addpenalty{\@beginparpenalty}% \addvspace{\@tempskipa}% \fi% @@ -1274,7 +1300,7 @@ \@afterindentfalse\@afterheading% \@tud@declaretrue\@openindextrue% % \end{macrocode} -% Die deklarierten Optionen, Umgebungen, Befehle etc. werden umrahmt. Dabe +% Die deklarierten Optionen, Umgebungen, Befehle etc. werden umrahmt. Dabei % erfolgt die Ausgabe mithilfe einer Box, um die Größe des Deklarationsrahmens % zu speichern und die Änderungsmarkierung am Seitenrand auf die richtige Höhe % zu platzieren. Da innerhalb von Tabellen der Wert von \cs{baselineskip} auf @@ -1297,7 +1323,7 @@ % \begin{macrocode} \ifboolexpr{bool {@tud@preset@list} or bool {@tud@additional@list}}{% \def\@tempa##1{\small\ignorespaces##1\tabularnewline}% - \qquad% + \hskip1.2em% \if@tud@preset@list% \begin{tabular}{@{}l@{}}% \forlistloop\@tempa{\tud@preset@list}% @@ -1359,7 +1385,7 @@ % Damit werden Änderungsnotizen der Umgebungen \env{Declaration*}, \env{Bundle} % und \env{Bundle*} ausgegeben. % \begin{macrocode} -\NewDocumentCommand\printchangedatlist{sO{\z@}}{% +\NewDocumentCommand\printchangedatlist{!s !O{\z@}}{% \print@changedatlist{#1}{#2}% } % \end{macrocode} @@ -1522,6 +1548,7 @@ % \end{macrocode} % Diese Makros werden für das Definieren eines Bundle-Elements und ggf. das % Prüfen des selbigen benötigt. +% \ToDo{Suffixe wie Klasse, Paket etc. lokalisieren (locale)}[v2.??] % \begin{macrocode} \newcommand*\tud@bdl@curr{} \newcommand*\tud@bdl@dflt{tudscr} @@ -1538,14 +1565,14 @@ % Die Auszeichnung und der Indexeintrag einer Anwendungssoftware. % \begin{macrocode} \NewExpandableDocumentCommand\@Application{sm}{#2} -\NewDocumentCommand\Application{smd()d<>d||}{% +\NewDocumentCommand\Application{s m !d() !d<> !d||}{% \Markup@SetFormat{\sbsfont}% \IfValueTF{#4}{% \Process@Markup{\Application{#2}}(#3)<#4>% }{% \Process@Markup{\Application{#2}}(#3)% }% - \Process@Index{#1}{\Application{#2}}[Anwendungssoftware](#3)|#4|% + \Process@Index{#1}{\Application{#2}}[Anwendungssoftware](#3)|#5|% } % \end{macrocode} % \end{macro}^^A \@Application @@ -1558,7 +1585,7 @@ % Fließtext genutzt werden. % \begin{macrocode} \NewExpandableDocumentCommand\@Distribution{sm}{#2} -\NewDocumentCommand\Distribution{smod()d||}{% +\NewDocumentCommand\Distribution{s m !o !d() !d||}{% \Markup@SetFormat{\sbnfont}% \IfValueTF{#3}{% \Process@Markup{\Distribution{#2}}[~#3](#4)% @@ -1577,7 +1604,7 @@ % Die Auszeichnung und der Indexeintrag für ein bestimmtes Textsatzsystem. % \begin{macrocode} \NewExpandableDocumentCommand\@Engine{sm}{#2} -\NewDocumentCommand\Engine{smd()d||}{% +\NewDocumentCommand\Engine{s m !d() !d||}{% \Markup@SetFormat{\sbnfont}% \Process@Markup{\Engine{\hologo{#2}}}(#3)% \Process@Index{#1}{\Engine{#2}}[Textsatzsystem](#3)|#4|% @@ -1585,13 +1612,19 @@ % \end{macrocode} % \end{macro}^^A \@Engine % \end{macro}^^A \Engine +% \begin{macro}{\Path} +% Pfade werden ohne zusätzliches Markup ausgegeben. +% \begin{macrocode} +\newrobustcmd*\Path[1]{\mbox{\texttt{#1}}} +% \end{macrocode} +% \end{macro}^^A \Path % \begin{macro}{\File} % \changes{v2.02}{2014/10/08}{überarbeitet}^^A % \begin{macro}{\@File} % Die Auszeichnung und der Indexeintrag einer Datei. % \begin{macrocode} \NewExpandableDocumentCommand\@File{sm}{#2} -\NewDocumentCommand\File{smd()d||}{% +\NewDocumentCommand\File{s m !d() !d||}{% \Markup@SetFormat{\sbnfont}% \Process@Markup{\File{#2}}(#3)% \Process@Index{#1}{\File{#2}}[Datei](#3)|#4|% @@ -1608,7 +1641,7 @@ % der Formatierung des Indexeintrages. % \begin{macrocode} \NewExpandableDocumentCommand\@Class{sm}{#2} -\NewDocumentCommand\Class{smd()d''d||}{% +\NewDocumentCommand\Class{s m !d() !d'' !d||}{% %<*class> \if@tud@changedat% \Process@ChangedAt{\Class{#2}}[Klasse]% @@ -1635,7 +1668,7 @@ % obligatorischen Argument generiert wird. % \begin{macrocode} \NewExpandableDocumentCommand\@Package{sm}{#2} -\NewDocumentCommand\Package{smd()d<>d''d||}{% +\NewDocumentCommand\Package{s m !d() !d<> !d'' !d||}{% %<*class> \if@tud@changedat% \Process@ChangedAt{\Package{#2}}[Paket]% @@ -1672,7 +1705,7 @@ % verwiesen werden. % \begin{macrocode} \NewExpandableDocumentCommand\@Option{sm}{#2} -\NewDocumentCommand\Option{s>{\ProcessorKeyVal}md==d()d''d||}{% +\NewDocumentCommand\Option{s >{\ProcessorKeyVal}m !d== !d() !d'' !d||}{% \Option@Value{#1}#2=#3=(#4)'#5'|#6|% } % \end{macrocode} @@ -1680,6 +1713,12 @@ % direkt mit |=|\meta{Wert}|=| angehangen werden. Um die gleichzeitige % Verwendung beider Varianten zu unterdrücken, wird in diesem Fall ein Fehler % erzeugt. +% \ToDo{% +% Eigentlich sollte der Wert hier formatiert werden. Wünschenswert wäre die +% Angabe von \val{Option=Wert} und \val{Option=<Spezialwert>}, damit das +% Gezerre mit der Spezialbehandlung von \cs{PSet} etc. wegfallen könnte, +% siehe \cs{tud@declare@start} +% }[v2.??]% % \begin{macrocode} \NewDocumentCommand\Option@Value{mmd==d==d()d''d||}{% \IfValueT{#4}{\tud@keyval@error}% @@ -1707,7 +1746,7 @@ % Umgebungsargumente bzw. -parameter \emph{bei der Deklaration}. % \begin{macrocode} \NewExpandableDocumentCommand\@Environment{sm}{#2} -\NewDocumentCommand\Environment{smod()d''d||}{% +\NewDocumentCommand\Environment{s m !o !d() !d'' !d||}{% %<*class> \if@tud@changedat% \Process@ChangedAt{\Environment{#2}}[Umgebung](#4)% @@ -1750,13 +1789,13 @@ % aus dem \TUDScript-Bundle. % \begin{macrocode} \NewExpandableDocumentCommand\@Macro{sm}{#2} -\NewDocumentCommand\Macro{smod()d''d||}{% +\NewDocumentCommand\Macro{s m !o !d() !d'' !d||}{% %<*class> \if@tud@changedat% \Process@ChangedAt{\Macro{#2}}[Befehl](#4)% \else% %</class> - \Markup@SetFormat{\ttfamily\bsc}% + \Markup@SetFormat[\bsc]{\ttfamily}% \Process@Markup{\Macro{#2}}[#3](#4)'#5'% \Process@Index{#1}{\Macro{#2}}(#4)|#6|% %<*class> @@ -1772,13 +1811,13 @@ % Die Auszeichnung und der Indexeintrag einer \LaTeX-Länge. % \begin{macrocode} \NewExpandableDocumentCommand\@Length{sm}{#2} -\NewDocumentCommand\Length{smd()d''d||}{% +\NewDocumentCommand\Length{s m !d() !d'' !d||}{% %<*class> \if@tud@changedat% \Process@ChangedAt{\Length{#2}}[L\"ange](#3)% \else% %</class> - \Markup@SetFormat{\ttfamily\bsc}[L\"ange]% + \Markup@SetFormat[\bsc]{\ttfamily}[L\"ange]% \Process@Markup{\Length{#2}}(#3)'#4'% \Process@Index{#1}{\Length{#2}}[L\"ange](#3)|#5|% %<*class> @@ -1793,7 +1832,7 @@ % Die Auszeichnung und der Indexeintrag einer \LaTeX-Zählers. % \begin{macrocode} \NewExpandableDocumentCommand\@Counter{sm}{#2} -\NewDocumentCommand\Counter{smd()d''d||}{% +\NewDocumentCommand\Counter{s m !d() !d'' !d||}{% %<*class> \if@tud@changedat% \Process@ChangedAt{\Counter{#2}}[Z\"ahler](#3)% @@ -1827,9 +1866,15 @@ % Parameter gültig ist. Das zweite Argument ist der Parameter selbst. Die % optionale Zuweisung eines Wertes kann äquivalent zu \cs{Option} mit dem % Trennzeichen~|=| im Hauptargument erfolgen. +% \ToDo{% +% Eigentlich sollte der Wert hier formatiert werden. Die Angabe von +% \val{Parameter=Wert} und \val{Parameter=<Spezialwert>} wäre gut, damit +% das Gezerre mit der Spezialbehandlung von \cs{PSet} etc. wegfallen könnte, +% siehe \cs{tud@declare@start} +% }[v2.??]% % \begin{macrocode} \NewExpandableDocumentCommand\@Key{smm}{#2!#3} -\NewDocumentCommand\Key{sm>{\ProcessorKeyVal}md==d()d''d||}{% +\NewDocumentCommand\Key{s m >{\ProcessorKeyVal}m !d== !d() !d'' !d||}{% \Key@Value{#1}{#2}#3=#4=(#5)'#6'|#7|% } \NewDocumentCommand\Key@Value{mmmd==d==d()d''d||}{% @@ -1852,11 +1897,11 @@ % Die Auszeichnung und der Indexeintrag eines sprachabhängigen Bezeichners. % \begin{macrocode} \NewExpandableDocumentCommand\@Term{sm}{#2} -\NewDocumentCommand\Term{smd()d''d||}{% +\NewDocumentCommand\Term{s m !d() !d'' !d||}{% \if@tud@changedat% \Process@ChangedAt{\Term{#2}}[Bezeichner](#3)% \else% - \Markup@SetFormat{\ttfamily\bsc}[Bezeichner]% + \Markup@SetFormat[\bsc]{\ttfamily}[Bezeichner]% \Process@Markup{\Term{#2}}(#3)'#4'% \Process@Index{#1}{\Term{#2}}(#3)|#5|% \fi% @@ -1870,7 +1915,7 @@ % Die Auszeichnung und der Indexeintrag eines Seitenstils. % \begin{macrocode} \NewExpandableDocumentCommand\@PageStyle{sm}{#2} -\NewDocumentCommand\PageStyle{smd()d''d||}{% +\NewDocumentCommand\PageStyle{s m !d() !d'' !d||}{% \if@tud@changedat% \Process@ChangedAt{\PageStyle{#2}}[Seitenstil](#3)% \else% @@ -1888,7 +1933,7 @@ % Die Auszeichnung und der Indexeintrag eines Schriftelementes. % \begin{macrocode} \NewExpandableDocumentCommand\@Font{sm}{#2} -\NewDocumentCommand\Font{smd()d''d||}{% +\NewDocumentCommand\Font{s m !d() !d'' !d||}{% \if@tud@changedat% \Process@ChangedAt{\Font{#2}}[Schriftelement](#3)% \else% @@ -1909,7 +1954,7 @@ % Farben referenzieren standardmäßig auf das Paket \pkg{tudscrcolor}. % \begin{macrocode} \NewExpandableDocumentCommand\@Color{sm}{#2} -\NewDocumentCommand\Color{smoD(){\Package{tudscrcolor}}d''d||}{% +\NewDocumentCommand\Color{s m !o !D(){\Package{tudscrcolor}} !d'' !d||}{% \if@tud@changedat% \Process@ChangedAt{\Color{#2}}[Farbe](#4)% \else% @@ -1917,7 +1962,7 @@ \begingroup\ttfamily{#2\IfValueT{#3}{~(#3)}}\endgroup% )% \Process@Markup{\Color{#2}}[#3](#4)'#5'% - \Process@Index{#1}{\Color{#2}}[Farbe](#4)|#5|% + \Process@Index{#1}{\Color{#2}}[Farbe](#4)|#6|% \fi% } % \end{macrocode} @@ -1995,9 +2040,23 @@ % % \subsubsection{Markup von Variablen, Parametern etc.} % -% \begin{macro}{\Path} -% \changes{v2.02}{2014/07/22}{\cs{DeclareRobustCommand} ersetzt durch -% \cs{newrobustcmd} aus \pkg{etoolbox}}^^A +% \ToDo{% +% Verwendung der Befehle überprüfen, evtl. umbennenen. Wozu \cs{PValueName}?% +% Evtl. sollte \cs{PValue} innerhalb von \cs{PName} lokal geändert werden? +% Was passiert, wenn auch \cs{PName} von \cs{tud@doifPValue} akzeptiert? +% Zeile 542--546 in tudscr-hints, 294 in tudscr-packages +% }[v2.??]% +% \ToDo{% +% nach '=\cs{P(Value)?Name}' in *.tex suchen und ggf. +% überarbeiten; \cs{PValueName} umbenennen% +% }[v2.??]% +% \ToDo{% +% bei der Deklaration evtl. ein Hilfsmakro erstellen und den +% Default-Eintrag hinterlegen, um ggf. darauf zu prüfen% +% }[v2.??]% +% \ToDo{% +% neues Makro \cs{PLength} mit \cs{PName\{Längenwert\}} +% }[v2.??]% % \begin{macro}{\PValue} % \begin{macro}{\PName} % \begin{macro}{\PValueName} @@ -2017,7 +2076,6 @@ % Diese Befehle dienen zum Auszeichnen von obligatorischen und optionalen % Parametern und Befehlen oder bestimmten Wertzuweisungen. % \begin{macrocode} -\newrobustcmd*\Path[1]{\mbox{\texttt{#1}}} \newrobustcmd*\PValue[1]{\mbox{\texttt{#1}}} \newrobustcmd*\PName[1]{\PValue{\textsl{<#1>}}} \newrobustcmd*\PValueName[1]{\PName{#1}} @@ -2049,7 +2107,6 @@ % \end{macro}^^A \PValueName % \end{macro}^^A \PName % \end{macro}^^A \PValue -% \end{macro}^^A \Path % \begin{macro}{\tud@doifPValue} % \changes{v2.05}{2015/11/14}{neu}^^A % Der Befehl wird von den Makros \cs{tud@lbl@get@curr} und \cs{tud@idx@get} @@ -2083,8 +2140,8 @@ \let\textOR\relax% \let\emph\@firstofone% % \end{macrocode} -% Im optionalen Argument können weitere Angaben gemacht werden, beispielsweise -% um weitere lokale Redefinitionen vorzunehmen. +% Im optionalen Argument können weitere Angaben gemacht werden, um zum Beispiel +% weitere lokale Redefinitionen vorzunehmen. % \begin{macrocode} #1% % \end{macrocode} @@ -2178,6 +2235,7 @@ \let\IeC\@firstofone% \def\"##1{##1e}% \def\ss{ss}% + \def\dots{...}% \let\NoCaseChange\@firstofone% } % \end{macrocode} @@ -2247,8 +2305,8 @@ %</class> } % \end{macrocode} -% Mit dem Befehl \cs{tud@lbl@get@@curr} wird das generierte Label in das beim -% Aufruf von \cs{tud@lbl@get@curr} angegebenen Makro gespeichert. +% Mit \cs{tud@lbl@get@@curr} wird das generierte Label in Makro gespeichert, +% welches beim Aufruf von \cs{tud@lbl@get@curr} angegebenen wurde. % \begin{macrocode} \NewDocumentCommand\tud@lbl@get@@curr{mmd==}{% \def#1{#2}% @@ -2330,8 +2388,8 @@ % der Spaltung des Argumentes in \cs{tud@lbl@create} ist aufgrund des % mehrmaligen rekursiven Aufrufs von \cs{tud@lbl@create} nicht möglich. % -% Mit dem Argumentprozessor \cs{tud@lbl@create} wird es möglich, an die beiden -% Befehle \cs{tud@lbl@get@curr} und \cs{tud@if@lbl@exists} sowohl ein +% Mit dem Argumentprozessor \cs{tud@lbl@create} wird es ermöglicht, an die +% beiden Befehle \cs{tud@lbl@get@curr} und \cs{tud@if@lbl@exists} sowohl ein % einzelnes Makro, welches das Label bereits beinhaltet als auch einen % Markup-Befehl ggf. mit einem Bundlepräfix zu übergeben. In beiden Fällen % wird aus dem übergebenen Argument ein eindeutiges Label in der Form @@ -2385,12 +2443,12 @@ \edef\@tempa{#1:#2:#3}% }{% % \end{macrocode} -% Hier geschieht der eigentliche Vorgang der Labelgenerierung. Dabei wird mit -% dem Makro \cs{tud@attr@get} der für den jeweiligen Markup-Befehl aus dem -% zweiten obligatorischen Argument spezifische Labelpräfix generiert. Abhängig -% davon, ob im ersten obligatorischen Argument ein spezieller Bundlepräfix -% angegeben wurde, wird dieser entweder verwendet oder aber implizit auf den -% Inhalt aus \cs{tud@bdl@dflt} zurückgegriffen. +% Hier geschieht die eigentliche Erzeugung der Labels. Dabei wird mit +% \cs{tud@attr@get} der für den jeweiligen Markup-Befehl aus dem zweiten +% obligatorischen Argument spezifische Labelpräfix generiert. Abhängig davon, +% ob im ersten obligatorischen Argument ein spezieller Bundlepräfix angegeben +% wurde, wird dieser entweder verwendet oder aber implizit auf den Inhalt aus +% \cs{tud@bdl@dflt} zurückgegriffen. % \begin{macrocode} \IfValueTF{#2}{% \tud@attr@get\@tempb{#2}% @@ -2437,6 +2495,31 @@ % Markup umgesetzt und zum anderen wird dabei gleich automatisch ein Eintrag % für das Element im Index erzeugt. % +% \begin{macro}{\ifdisposition} +% \changes{v2.06}{2018/08/02}{neu}^^A +% \begin{macro}{\if@tud@disposition} +% \begin{macro}{\tud@sec@format} +% Für Markup oder andere Inhalte, die lediglich im Fließtext jedoch nicht in +% Überschriften ausgegeben werden, wird der Schalter \cs{if@tud@disposition} +% und der dazugehörige auswertende Befehl \cs{ifdisposition} definiert. Das +% Setzen des Schalters wird in \cs{tud@sec@format} gepatcht. +% \begin{macrocode} +\newif\if@tud@disposition +\newcommand*\ifdisposition{% + \if@tud@disposition% + \expandafter\@firstoftwo% + \else% + \expandafter\@secondoftwo% + \fi% +} +\pretocmd{\tud@sec@format}{% + \@tud@dispositiontrue% +}{}{\tud@patch@wrn{tud@sec@format}} +% \end{macrocode} +% \end{macro}^^A \tud@sec@format +% \end{macro}^^A \if@tud@disposition +% \end{macro}^^A \tud@if@disposition +% % In der Klasse \cls{tudscrmanual} werden die Markup-Befehle zusätzlich auch % als Argument der Umgebung \env{Declaration} genutzt. Für diese Verwendung % kommt die Definiton von \cs{Markup@Declare} und ggf. \cs{Markup@Suffix} zum @@ -2682,10 +2765,14 @@ % \begin{macro}{\Process@@MarkupInline} % \changes{v2.05}{2015/11/05}{neu}^^A % Mit \cs{Process@@MarkupInline} wird die formatierte Ausgabe außerhalb der -% Deklarationsumgebungen umgesetzt. Dabei entsprechen die ersten vier Argument -% denen des Befehls \cs{Process@@MarkupDeclare} und werden bis auf das Label -% ebenso an \cs{Markup@Output} übergeben, nachdem mit \cs{Markup@CheckFormat} +% Deklarationsumgebungen umgesetzt. Die ersten vier Argument entsprechen denen +% des Befehls \cs{Process@@MarkupDeclare} und werden bis auf das Label ebenso an +% \cs{Markup@Output} übergeben, nachdem mit dem Befehl \cs{Markup@CheckFormat} % auf eine existierende Markup-Definition geprüft wurde. +% \ToDo{% +% Hyperlinks auf erläuterte Element innerhalb der Umgenung \env{Declaration} +% unterbinden? Könnte \cs{tud@declaration@list} genutzt werden?% +% }[v2.07]% % \begin{macrocode} \NewDocumentCommand\Process@@MarkupInline{mmd==od<>d''}{% \Markup@CheckFormat% @@ -2717,7 +2804,13 @@ \let\@tempb\relax% \IfValueT{#6}{% \def\@tempb{% - \ClassWarning{tudscrmanual}{% +%<*class> + \ClassWarning{tudscrmanual}% +%</class> +%<*package> + \PackageWarning{tudscrtutorial}% +%</package> + {% You've used the unknown cross-reference\MessageBreak% shorthand '#6'. Only 'auto', 'page' and 'full'\MessageBreak% as well as 'none' \IfValueT{#5}{or 'url' }are valid% @@ -2750,7 +2843,13 @@ \ifstr{#6}{none}{\let\@tempa\@tempc}{% %<package> \ifstr{#6}{manual}{\def\@tempa{\tudhyperref{#1}{\@tempc}}}{% \def\@tempb{% - \ClassWarning{tudscrmanual}{% +%<*class> + \ClassWarning{tudscrmanual}% +%</class> +%<*package> + \PackageWarning{tudscrtutorial}% +%</package> + {% %<*class> Label #1\MessageBreak% is missing, no cross-reference created% @@ -2777,7 +2876,7 @@ % Ganz zum Schluss erfolgt die Ausgabe als Hyperlink mit optional erweitertem % Querverweis nicht, wenn gerade eine Überschrift gesetzt wird. % \begin{macrocode} - \ifdin{\@tempc}{\@tempa\@tempb}% + \ifdisposition{\@tempc}{\@tempa\@tempb}% % \end{macrocode} % Zum Schluss wird die Formatierung mit \cs{Markup@ClearFormat} zurückgesetzt. % \begin{macrocode} @@ -2851,9 +2950,7 @@ \newcommand*\Markup@Inline[1]{\mbox{\Markup@Format{#1}}} %<*class> \newcommand*\Markup@Declare{} -\newcommand*\Markup@@Declare[1]{% - \begingroup\Markup@Format{#1}\endgroup\Markup@Suffix% -} +\newcommand*\Markup@@Declare[1]{\Markup@Format{#1}\Markup@Suffix} %</class> % \end{macrocode} % \end{macro}^^A \Markup@@Declare @@ -2869,13 +2966,6 @@ % \changes{v2.05}{2015/11/05}{neu}^^A % \begin{macro}{\Markup@Suffix} % \changes{v2.05}{2015/11/05}{neu}^^A -% \begin{macro}{\tud@x@textcase@uclcnotmath} -% \begin{macro}{\tud@nonchangecase} -% \changes{v2.05}{2015/11/20}{neu}^^A -% \begin{macrocode} -\newcommand*\Markup@Format{} -\newcommand*\Markup@Suffix{} -% \end{macrocode} % Der Befehl \cs{Markup@SetFormat} setzt das gewünschte Format für die jeweilge % Ausgabe. Dieses wird im ersten Argument angegeben. Das ordinäre optionale % Argument kann genutzt werden, wenn bei der Deklaration noch eine genauere @@ -2886,63 +2976,25 @@ % wird insbesondere von \cs{Environment} genutzt, um bei der Deklaration eine % Tabelle zu erzeugen. % \begin{macrocode} -\NewDocumentCommand\Markup@SetFormat{mod()}{% -% \end{macrocode} -% Außerdem ist noch eine weitere Besonderheit zu beachten. Sollte gerade \DIN -% verwendet werden~-- der Befehl wird innerhalb einer Überschrift genutzt~-- -% wird lediglich das Hauptargument unformatiert jedoch als Argument von -% \cs{MakeTextUppercase} ausgegeben, um das Setzen von Majuskeln zu erzwingen. -% Der Hintergrund wird bei der Erweiterung von \cs{tud@x@textcase@uclcnotmath} -% erläutert. -% \begin{macrocode} - \def\Markup@Format{\ifdin{\MakeTextUppercase}{#1}}% - \IfValueT{#2}{\def\Markup@Suffix{\suffix{#2}}}% -%<*class> - \IfValueT{#3}{\renewcommand*\Markup@Declare[1]{#3\Markup@Suffix}}% -%</class> -} +\newcommand*\Markup@Format{} +\undef\Markup@Format +\newcommand*\Markup@Suffix{} +\NewDocumentCommand\Markup@SetFormat{omod()}{% % \end{macrocode} -% Das durch die \TUDScript-Hauptklassen in Ergänzung zum Paket \pkg{textcase} -% erstellte Makro \cs{tud@x@textcase@uclcnotmath} ermöglicht die Definition von -% Makros, welche von \cs{MakeTextUppercase} nicht beachtet werden sollen. -% Das besagte Makro kommt in Überschriften bei den \TUDScript-Klassen zum -% Einsatz, wenn diese in \DIN gesetzt werden. Das hat zu Folge, dass die -% Argumente der Markup-Befehle bereits in Majuskeln übergeben werden würden, -% was unter anderem für die Erstellung von Labeln und Einträgen für den Index -% nicht gewünscht wäre. Deshalb werden \emph{alle} Markup-Befehle der Liste zum -% Ignorieren hinzugefügt. Damit aber bei der eigentlichen Ausgabe alles in -% Majuskeln erscheint, wird für diesen Fall \cs{Markup@Format} genutzt. +% Außerdem ist noch eine weitere Besonderheit zu beachten. Sollte gerade eine +% Überschrift gesetzt werden, wird das Hauptargument nicht formatiert sondern +% lediglich mit \cs{tud@sec@format} ausgegeben. % \begin{macrocode} -\robustify\NoCaseChange -\NewDocumentCommand\tud@nonchangecase{m}{% - \DeclareExpandableDocumentCommand#1{sm}{% - \IfBooleanT{##1}{\noexpand\@tud@indextrue}% - \NoCaseChange{#1{##2}}% + \def\Markup@Format##1{% + \def\tud@res@a{#2}% + \tud@ifdin{\let\tud@res@a\tud@sec@format}{}% + \begingroup\tud@res@a{\IfValueT{#1}{#1}##1}\endgroup% }% -} -\apptocmd{\tud@x@textcase@uclcnotmath}{% - \tud@nonchangecase\Application% - \tud@nonchangecase\Distribution% - \tud@nonchangecase\Engine% - \tud@nonchangecase\File% - \tud@nonchangecase\Class% - \tud@nonchangecase\Package% - \tud@nonchangecase\Option% - \tud@nonchangecase\Environment% - \tud@nonchangecase\Macro% - \tud@nonchangecase\Length% - \tud@nonchangecase\Counter% + \IfValueT{#3}{\def\Markup@Suffix{\suffix{#3}}}% %<*class> - \DeclareExpandableDocumentCommand\Key{smm}{% - \IfBooleanT{##1}{\noexpand\@tud@indextrue}% - \NoCaseChange{#1{##2}{##3}}% - }% - \tud@nonchangecase\Term% - \tud@nonchangecase\PageStyle% - \tud@nonchangecase\Font% - \tud@nonchangecase\Color% + \IfValueT{#4}{\renewcommand*\Markup@Declare[1]{#4\Markup@Suffix}}% %</class> -}{}{\tud@patch@wrn{tud@x@textcase@uclcnotmath}} +} % \end{macrocode} % Nach der formatierten Ausgabe wird \cs{Markup@ClearFormat} aufgerufen, um die % aktuell definierte Formatierung zurückzusetzen und bei einem neuen Aufruf @@ -2950,26 +3002,73 @@ % \cs{Markup@SetFormat} prüfen zu können. % \begin{macrocode} \newcommand*\Markup@ClearFormat{% - \let\Markup@Format\relax% + \undef\Markup@Format% \let\Markup@Declare\Markup@@Declare% \let\Markup@Suffix\relax% } \Markup@ClearFormat \newcommand*\Markup@CheckFormat{% - \ifx\Markup@Format\relax% - \ClassError{tudscrmanual}{\string\Markup@SetFormat\space unused}{% - It seems you have forgotten to use \string\Markup@SetFormat.% - }% - \fi% + \ifundef\Markup@Format{% +%<*class> + \ClassError{tudscrmanual}% +%</class> +%<*package> + \PackageError{tudscrtutorial}% +%</package> + {\string\Markup@SetFormat\space unused}% + {It seems you have forgotten to use \string\Markup@SetFormat.}% + }{}% } % \end{macrocode} -% \end{macro}^^A \tud@nonchangecase -% \end{macro}^^A \tud@x@textcase@uclcnotmath % \end{macro}^^A \Markup@Suffix % \end{macro}^^A \Markup@Format % \end{macro}^^A \Markup@ClearFormat % \end{macro}^^A \Markup@SetFormat % \end{macro}^^A \Markup@CheckFormat +% \begin{macro}{\tud@nonchangecase} +% \changes{v2.05}{2015/11/20}{neu}^^A +% \begin{macro}{\tud@x@textcase@uclcnotmath} +% Die \TUDScript-Hauptklassen definieren in Ergänzung zum Paket \pkg{textcase} +% den internen Befehl \cs{tud@x@textcase@uclcnotmath}, womit die Definition von +% Makros ermöglicht wird, welche von \cs{MakeTextUppercase} nicht beachtet +% werden sollen. Hierfür werden \emph{alle} Markup-Befehle der Liste zum +% Ignorieren hinzugefügt. Damit aber bei der eigentlichen Ausgabe alles in +% Majuskeln erscheint, wird für diesen Fall \cs{Markup@Format} genutzt. +% \begin{macrocode} +\ifundef{\tud@x@textcase@uclcnotmath}{}{% + \NewDocumentCommand\tud@nonchangecase{m}{% + \DeclareExpandableDocumentCommand#1{sm}{% + \IfBooleanT{##1}{\noexpand\@tud@indextrue}% + \NoCaseChange{#1{##2}}% + }% + } + \apptocmd{\tud@x@textcase@uclcnotmath}{% + \tud@nonchangecase\Application% + \tud@nonchangecase\Distribution% + \tud@nonchangecase\Engine% + \tud@nonchangecase\File% + \tud@nonchangecase\Class% + \tud@nonchangecase\Package% + \tud@nonchangecase\Option% + \tud@nonchangecase\Environment% + \tud@nonchangecase\Macro% + \tud@nonchangecase\Length% + \tud@nonchangecase\Counter% +%<*class> + \DeclareExpandableDocumentCommand\Key{smm}{% + \IfBooleanT{##1}{\noexpand\@tud@indextrue}% + \NoCaseChange{#1{##2}{##3}}% + }% + \tud@nonchangecase\Term% + \tud@nonchangecase\PageStyle% + \tud@nonchangecase\Font% + \tud@nonchangecase\Color% +%</class> + }{}{\tud@patch@wrn{tud@x@textcase@uclcnotmath}} +} +% \end{macrocode} +% \end{macro}^^A \tud@x@textcase@uclcnotmath +% \end{macro}^^A \tud@nonchangecase % % \subsection{Index} % @@ -2977,12 +3076,9 @@ % notwendig ist. Hierfür wird das Paket \pkg{imakeidx} in Verbindung mit % \app{texindy} verwendet. Diese können sowohl mit dem Paket als auch mit der % Klasse erzeugt werden. -% \ToDo{Patcherei für imakeidx raus, sobald dies geht}[v2.06] % \begin{macrocode} \PassOptionsToPackage{xindy,splitindex}{imakeidx} -\let\tud@shellescape\shellescape \RequirePackage{imakeidx}[2013/07/11] -\let\shellescape\tud@shellescape % \end{macrocode} % Zuerst ein paar kleinere Einstellungen für das Layout\dots % \begin{macrocode} @@ -3073,7 +3169,7 @@ % danach wird die Datei mit den normalen Einträgen verarbeitet. Siehe hierzu % auch \cs{Process@@Index}. % \begin{macrocode} -\NewDocumentCommand\makexdyindex{somo}{% +\NewDocumentCommand\makexdyindex{s o m !o}{% \let\@tempb\@empty% %<*class> \IfBooleanT{#1}{% @@ -3320,7 +3416,7 @@ \ifx\tud@idx@bdl\tud@bdl@dflt% \@tempswafalse% % \end{macrocode} -% Ebenso werden die Anmerkungen für \cs{Key}-Elemente unterfdrückt, da diese +% Ebenso werden die Anmerkungen für \cs{Key}-Elemente unterdrückt, da diese % sowieso als Untereintrag erzeugt werden. Einträge in der Änderungsliste % werden ohnehin separat für jedes \TUDScript-Bundle-Element ausgegeben. In % jedem Fall ist jedoch Formatierung beim Markup für das Erzeugen des richtigen @@ -3370,8 +3466,8 @@ \IfValueT{#9}{\ifstr{#9}{declare}{\@tempswatrue}{}}% \IfValueT{#9}{\ifstr{#9}{default}{\@tempswatrue}{}}% % \end{macrocode} -% In diesem Fall die Ergänzungen für Schlüssel und Formatierung ggf. um die -% speziellen Schlüsselwerte für das Element ergänzt. +% In diesem Fall werden die Ergänzungen für Schlüssel und Formatierung ggf. um +% die speziellen Schlüsselwerte für das Element ergänzt. % \begin{macrocode} \if@tempswa% \protected@eappto#2{\expandonce\@tempa}% @@ -3383,7 +3479,7 @@ \else% \tud@doifPValue{#6}{\noexpand\@tempswatrue}% % \end{macrocode} -% Ist dies der Fall, wird aus den bisherigen Eingaben der Hauoteintrag und +% Ist dies der Fall, wird aus den bisherigen Eingaben der Haupteintrag und % daran anschließend der dazugehörige Untereintrag erstellt\dots % \begin{macrocode} \if@tempswa% @@ -3437,7 +3533,13 @@ % \begin{macrocode} \newrobustcmd*\cleversee{\tud@cleversee{\seename}} \newrobustcmd*\cleverseealso{% - \ClassWarning{tudscrmanual}{You should use `|see' instead of `|seealso'}% +%<*class> + \ClassWarning{tudscrmanual}% +%</class> +%<*package> + \PackageWarning{tudscrtutorial}% +%</package> + {You should use `|see' instead of `|seealso'}% \tud@cleversee{\alsoname}% } % \end{macrocode} @@ -3478,7 +3580,7 @@ % Seite eines Indexes. % \begin{macrocode} %<*class> -\NewDocumentCommand\seeref{sm}{% +\NewDocumentCommand\seeref{s m}{% \emph{\IfBooleanTF{#1}{\alsoname}{\seename}}\space#2% } \newcommand*\seeidx[2]{\pageref{idx:#1}} @@ -3518,7 +3620,13 @@ }{}{% \IfBooleanTF{#1}{% \IfValueT{#6}{% - \ClassWarning{tudscrmanual}{% +%<*class> + \ClassWarning{tudscrmanual}% +%</class> +%<*package> + \PackageWarning{tudscrtutorial}% +%</package> + {% You've used the starred version. No index entry\MessageBreak% for #2 is created. The\MessageBreak% optional argument |#6| will be ignored% @@ -3628,7 +3736,7 @@ % Verweise im allgemeinen Index erscheinen. Das zweite obligatorische Argument % kann eine kommagetrennte Liste enthalten. % \begin{macrocode} -\NewDocumentCommand\CrossIndex{smom}{% +\NewDocumentCommand\CrossIndex{s m o m}{% \def\@tempa##1##2##3{% \index{% \IfBooleanTF{#1}{##3@##3}{##3!"|@}% @@ -3650,7 +3758,7 @@ % hingegen nutzt \verb=|seeunverified=, um auf eine Prüfung des verwiesenen % Eintrags zu verzichten. % \begin{macrocode} -\NewDocumentCommand\SeeRef{smm}{% +\NewDocumentCommand\SeeRef{s m m}{% \sbox\z@{% \let\tud@idx@fmt\relax% #3% @@ -3882,6 +3990,9 @@ % \begin{macro}{\ChangedAt} % \changes{v2.02}{2014/07/25}{erweitert}^^A % \changes{v2.02}{2014/10/15}{Sternversion neu (keine Randnotiz)}^^A +% \changes{v2.06}{2018/09/03}{optionale Angabe des Bundles}^^A +% \begin{macro}{\@ChangedAt} +% \changes{v2.06}{2019/06/24}{neu}^^A % \begin{length}{\changedatskip} % \changes{v2.04}{2015/06/08}{neu}^^A % Der Befehl \cs{ChangedAt} kann im Fließtext für das Erstellen einer freien @@ -3904,30 +4015,41 @@ % unterdrückt die Ausgabe der Randnotiz. % \begin{macrocode} \newlength\changedatskip -\NewDocumentCommand\ChangedAt{somO{\changedatskip}}{% +\NewDocumentCommand\ChangedAt{s o d() m !O{\changedatskip}}{% \IfValueTF{#2}{% - \Changed@At@CreateList[#2]{#3}% + \Changed@At@CreateList[#2](#3){#4}% }{% - \Changed@At@CreateList{#3}% + \Changed@At@CreateList(#3){#4}% }% % \end{macrocode} % Nach dem Erstellen der Liste wird diese abgearbeitet und ggf. die Randnotiz % ausgegeben. % \begin{macrocode} - \print@changedatlist{#1}{#4}% + \print@changedatlist{#1}{#5}% +} +% \end{macrocode} +% Die expandierbare Version des Befehls ist innerhalb von Überschriften nötig. +% \begin{macrocode} +\NewExpandableDocumentCommand\@ChangedAt{s o d() m}{} +\AfterPackage*{hyperref}{% + \pdfstringdefDisableCommands{% + \let\ChangedAt\@ChangedAt% + }% } +\BeforeStartingTOC{\let\ChangedAt\@ChangedAt} % \end{macrocode} % \end{length}^^A \changedatskip +% \end{macro}^^A \@ChangedAt % \end{macro}^^A \ChangedAt % % \subsubsection{Sukzessive Erstellung der Einträge für die Änderungsliste} % % Das Erstellen von Änderungsnotizen erfolgt in zwei Schritten. Diese werden -% mit dem Befehl \cs{Changed@At@CreateList} in einer standardisierten Form in -% der temporären Liste \cs{tud@changedat@list} gespeichert und später mit dem -% Makro \cs{Changed@At@CreateEntry} verarbeitet. Dieses Vorgehen liegt in den -% Umgebungen für Deklarationen begründet, welche verschachtelt werden können, -% jedoch einmalig mit \cs{printdeclarationlist} abgearbeitet werden. +% zuerst mit dem Befehl \cs{Changed@At@CreateList} in einer standardisierten +% Form in der temporären Liste \cs{tud@changedat@list} gespeichert und später +% mit dem Makro \cs{Changed@At@CreateEntry} verarbeitet. Dieses Vorgehen liegt +% in den Umgebungen für Deklarationen begründet, welche verschachtelt werden +% können, jedoch einmalig mit \cs{printdeclarationlist} abgearbeitet werden. % % \begin{macro}{\tud@changedat@list} % \changes{v2.02}{2014/07/25}{neu}^^A @@ -4110,8 +4232,9 @@ % % \subsubsection{Erzeugen der Änderungseinträge} % -% Mit diesen Makros erfolgt das eigentliche Eintragen der Änderungseinträge aus -% der Liste \cs{listqChangedAt} in den entsprechenden Index \val{changelog}. +% Mit den nachfolgenden Makros erfolgt das eigentliche Eintragen der +% Änderungseinträge aus der Liste \cs{tud@changedat@list} in den entsprechenden +% Index~\val{changelog}. % % \begin{macro}{\Changed@At@CreateEntry} % \changes{v2.02}{2014/09/02}{neu}^^A @@ -4243,6 +4366,7 @@ % verfahren. % % \begin{macro}{\PrintChangelog} +% \begin{environment}{theindex} % Mit \cs{PrintChangelog} erfolgt die Ausgabe der Änderungsliste. Dabei ist zu % beachten, dass die Einträge im Index bis zur vierten Ebene erfolgen. % \begin{macrocode} @@ -4276,9 +4400,11 @@ \expandafter\def\csname\string\item\endcsname##1~% }{% \endgroup% - \addsec[##1]{\TUDScript \NoCaseChange{##1}}% + \let\@tempb\@firstofone% + \if@tud@cdoldfont@active\def\@tempb##1{\NoCaseChange{##1}}\fi% + \addsec[##1]{\TUDScript \@tempb{##1}}% \tudhyperdef*{idx:changelog:##1}% - \def\@tempa{\indexname: \TUDScript \NoCaseChange{##1}}% + \def\@tempa{\indexname: \TUDScript \@tempb{##1}}% \@mkboth{\@tempa}{\@tempa}% }% }{}{\tud@patch@wrn{theindex}}% @@ -4292,6 +4418,7 @@ \endgroup% } % \end{macrocode} +% \end{environment}^^A theindex % \end{macro}^^A \PrintChangelog % \begin{macro}{\print@changedatlist} % \changes{v2.02}{2014/10/09}{neu}^^A @@ -4341,10 +4468,11 @@ % % Das Paket \pkg{enumitem} erlaubt das Beeinflussen der Standardlisten und die % Ableitung neuer Listen aus diesen. Mit \cs{setlist\{noitemsep\}} werden die -% zusätzlichen Zwischenräume innerhalb der Listen beseitigt. +% zusätzlichen Zwischenräume innerhalb der Listen beseitigt. Weiterhin wird +% linksbündiger Flattersatz für die Standardlisten aktiviert. % \begin{macrocode} \RequirePackage{enumitem}[2011/09/28] -\setlist{noitemsep} +\setlist{before*={\endgraf\tud@RaggedRight},partopsep=0pt,noitemsep} % \end{macrocode} % \begin{macro}{\stditem} % \begin{macro}{\tud@before@item} @@ -4362,8 +4490,8 @@ \let\stditem\item% \letcs\item{tud@item@#1}% % \end{macrocode} -% Damit Änderungsnotizen in der passenden vertikalen Position erscheinen, wird -% die Länge \cs{changedatskip} entsprechend angepasst. +% Damit die Änderungsnotizen in der passenden vertikalen Position erscheinen, +% wird die Länge \cs{changedatskip} entsprechend angepasst. % \begin{macrocode} \setlength\changedatskip{-\baselineskip}% }{}% @@ -4500,8 +4628,12 @@ % Standardwerte für positive bzw. negative boolesche Schalter. Diese werden % durch den Befehl \cs{item@bool} gesetzt. % \begin{macrocode} -\NewDocumentCommand\itemtrue{sood()}{\item@bool{#1}{true/on/yes}[#2][#3](#4)} -\NewDocumentCommand\itemfalse{sood()}{\item@bool{#1}{false/off/no}[#2][#3](#4)} +\NewDocumentCommand\itemtrue{!s !o !o !d()}{% + \item@bool{#1}{true/on/yes}[#2][#3](#4)% +} +\NewDocumentCommand\itemfalse{!s !o !o !d()}{% + \item@bool{#1}{false/off/no}[#2][#3](#4)% +} % \end{macrocode} % Der Befehl \cs{item@bool} setzt je nach angegebenen Argumenten über ein % token-Register den auszuführenden \cs{item}-Befehl zusammen. @@ -4641,7 +4773,7 @@ % dafür die \env{tabularx}-Umgebung. Für diese kann ein zweites Argument % angegeben werden, welches die gewünschte Breite der Tabelle angibt. % \begin{macrocode} -\NewDocumentCommand\TermTable{smg}{% +\NewDocumentCommand\TermTable{s m !g}{% \let\tud@templist\relax% \forcsvlist{\listadd\tud@templist}{#2}% \ifhmode\par\fi% @@ -4665,7 +4797,7 @@ \bottomrule% } \newcommand*\Term@@Table[1]{% - \Term{#1} & % + \Term{#1}'none' & % \ifstr{\csuse{#1}}{}{\PName{leer}}{\csuse{#1}} & % \selectlanguage{english}\vspace*{\@tempdimc}% \ifstr{\csuse{#1}}{}{\PName{empty}}{\csuse{#1}}\tabularnewline% @@ -4690,8 +4822,8 @@ \addvspace{-\topsep}% } \newenvironment{Example*}{% - \labeling{{\usekomafont{disposition}Beispiel:\nobreakspace}}% - \item[{\usekomafont{disposition}Beispiel:\nobreakspace}]% + \labeling{{\usekomafont{disposition}{Beispiel:\nobreakspace}}}% + \item[{\usekomafont{disposition}{Beispiel:\nobreakspace}}]% }{% \endlabeling% } @@ -4705,20 +4837,22 @@ % % \subsection{Lesen und Schreiben von Hilfsdateien} % -% Für den Anwender werden im \TUDScript-Bundle einige Tutorials für die Nutzung -% von \LaTeXe bereitgestellt. Innerhalb dieser werden Auszüge von Quelltexten -% verwendet und erläutert. Zum einen soll die Möglichkeit geschaffen werden, -% diese gesammelt am Ende eines Tutorials für ein Copy"~\&"~Paste"~Beispiel zu -% verwenden. Andererseits soll auch das sofortige Ausführen des beschriebenen -% Quelltextauszuges direkt im Tutorial möglich sein. Dafür werden im Folgenden -% die Umgebungen \env{Preamble}, \env{Trunk} und \env{Hint} sowie daraus -% abgeleitet Varianten definiert, womit sich die Angabe und Erläuterung der -% Quelltexte im Tutorial logisch strukturieren lässt und dennoch die notwendige -% Ordnung dieser für das Copy"~\&"~Paste"~Beispiel aufrechterhalen werden kann. -% Hierfür zeichnen die beiden Umgebungen \env{Preamble} und \env{Trunk} und -% deren Derivate verantwortlich. Die Umgebung \env{Hint} steht für zusätzliche -% Erläuterungen bereit, welche jedoch nicht in das Copy"~\&"~Paste"~Beispiel -% übernommen werden. +% Für den Anwender werden im \TUDScript-Bundle einige Tutorials mit Hinweisen +% zur Nutzung von \LaTeXe{} bereitgestellt. Innerhalb dieser werden Auszüge von +% Quelltexten verwendet und erläutert. Zum einen soll die Möglichkeit +% geschaffen werden, diese gesammelt am Ende eines Tutorials für ein +% Copy"~\&"~Paste"~Beispiel zu verwenden. Andererseits soll auch das sofortige +% Ausführen des beschriebenen Quelltextauszuges direkt im Tutorial möglich +% sein. +% +% Dafür werden im Folgenden die Umgebungen \env{Preamble}, \env{Trunk} und +% \env{Hint} sowie daraus abgeleitet Varianten definiert, womit sich die Angabe +% und Erläuterung der Quelltexte im Tutorial logisch strukturieren lässt und +% dennoch die notwendige Ordnung dieser für das Copy"~\&"~Paste"~Beispiel +% aufrechterhalten werden kann. Hierfür zeichnen die beiden Umgebungen +% \env{Preamble} und \env{Trunk} und deren Derivate verantwortlich. Die +% Umgebung \env{Hint} steht für zusätzliche Erläuterungen bereit, welche jedoch +% nicht in das Copy"~\&"~Paste"~Beispiel übernommen werden. % % \begin{macro}{\tud@write@a} % \changes{v2.02}{2014/10/22}{neu}^^A @@ -4801,7 +4935,7 @@ % \begin{macrocode} \RequirePackage{filemod}[2011/09/19] % \end{macrocode} -% Um die \cs{write18} sowohl für Windows als auch für unixoide Betriebssysteme +% Um \cs{ShellEscape} sowohl für Windows als auch für unixoide Betriebssysteme % nutzen zu können, wird das Paket \pkg{ifplatform} geladen. % \begin{macrocode} \RequirePackage{ifplatform}[2010/10/22] @@ -4827,6 +4961,16 @@ } % \end{macrocode} % \end{macro}^^A \tud@shellescape@wrn +% \begin{macro}{\tud@latex@ext} +% \changes{v2.06}{2019/06/21}{neu}^^A +% Für das verschachtelte Aufrufen von \app{pdflatex} bzw. \app{lualatex}. +% \begin{macrocode} +\newcommand*\tud@latex@ext{} +\ifpdftex% + {\def\tud@latex@ext{pdflatex\space}}% + {\def\tud@latex@ext{lualatex\space}}% +% \end{macrocode} +% \end{macro}^^A \tud@latex@ext % \begin{macro}{\Tutorial} % \changes{v2.02}{2014/08/22}{neu}^^A % \changes{v2.02}{2014/10/22}{Reimplementierung}^^A @@ -4840,7 +4984,7 @@ \newrobustcmd*\hypertut[2]{% \hyperref{tutorials/#1.pdf}{#1}{tutorials:#1}{\File*{#1.pdf}#2}% } -\NewDocumentCommand\Tutorial{smd||}{% +\NewDocumentCommand\Tutorial{s m !d||}{% \ifnum\pdf@shellescape=\@ne\relax% % \end{macrocode} % Um mit den verschachtelten Aufrufen von \app{pdflatex} umgehen zu können, @@ -4861,20 +5005,20 @@ % Hier erfolgt die Unterscheidung der Befehle für die unterschiedlichen OS. % \begin{macrocode} \ifwindows% - \immediate\write18{rename tutorials.sh tutorials.bat}% - \immediate\write18{tutorials.bat}% - \immediate\write18{del tutorials.bat}% + \ShellEscape{rename tutorials.sh tutorials.bat}% + \ShellEscape{tutorials.bat}% + \ShellEscape{del tutorials.bat}% \else% - \immediate\write18{bash tutorials.sh}% - \immediate\write18{rm tutorials.sh}% + \ShellEscape{bash tutorials.sh}% + \ShellEscape{rm tutorials.sh}% \fi% }% - \@tempb{pdflatex -shell-escape "\@tempa"}% + \@tempb{\tud@latex@ext -shell-escape "\@tempa"}% \IfFileExists{tutorials/#2.bcf}{\@tempb{biber #2}}{}% \@tempb{% - pdflatex "\@tempa"^^J% - pdflatex -shell-escape "\@tempa"^^J% - pdflatex -shell-escape "\@tempa"% + \tud@latex@ext "\@tempa"^^J% + \tud@latex@ext -shell-escape "\@tempa"^^J% + \tud@latex@ext -shell-escape "\@tempa"% }% }% \fi% @@ -4917,9 +5061,9 @@ % \begin{macrocode} \ifnum\pdf@shellescape=\@ne\relax% \filemodCmp{examples/#1.pdf}{examples/#1.tex}{}{% - \immediate\write18{% - pdflatex -output-directory examples examples/#1.tex^^J% - pdflatex -output-directory examples examples/#1.tex% + \ShellEscape{% + \tud@latex@ext -output-directory examples examples/#1.tex^^J% + \tud@latex@ext -output-directory examples examples/#1.tex% }% }% % \end{macrocode} @@ -4927,9 +5071,9 @@ % wird auch dieses kompiliert. % \begin{macrocode} \filemodCmp{examples/#1_print.pdf}{examples/#1_print.tex}{}{% - \immediate\write18{% - pdflatex -output-directory examples examples/#1_print.tex^^J% - pdflatex -output-directory examples examples/#1_print.tex% + \ShellEscape{% + \tud@latex@ext -output-directory examples examples/#1_print.tex^^J% + \tud@latex@ext -output-directory examples examples/#1_print.tex% }% }% \fi% @@ -5020,12 +5164,12 @@ % \end{macrocode} % Der innerhalb der Umgebungen \env{Preamble} und \env{Trunk}~-- sowie deren % Derivaten~-- angegebene Inhalt wird beim Schließen dieser Umgebungen in die -% Hilfsdatei \cs{tud@tut@temp.tex} zwischengespeichert. Mit dem Befehl -% \cs{tud@tut@append} wird der Inhalt dieser Datei ausgelesen und den -% zusätzlichen Hilfsdateien \cs{tud@tut@temp-preamble.tex} beziehungsweise -% \cs{tud@tut@temp-trunk.tex} angehangen und damit gesichert, um die jeweiligen -% Quelltextauszüge aus dem Tutorial für die Präambel sowie den Dokumentteil -% trennen beziehungsweise sortieren zu können. +% Hilfsdatei \cs{tud@tut@temp.tex} zwischengespeichert. Mit \cs{tud@tut@append} +% wird der Inhalt dieser Datei ausgelesen und den Hilfsdateien +% \cs{tud@tut@temp-preamble.tex} respektive \cs{tud@tut@temp-trunk.tex} +% angehangen und damit gesichert, um die jeweiligen Quelltextauszüge aus dem +% Tutorial für die Präambel sowie den Dokumentteil trennen beziehungsweise +% sortieren zu können. % \begin{macrocode} \newcommand*\tud@tut@append[1]{% \ifstr{#1}{preamble}{% @@ -5075,7 +5219,7 @@ % gibt den vorgestellten Quelltext vollständig aus. % \begin{macrocode} \newcommand\FinishTutorial[1][]{% - \immediate\write\tud@write@b{^^J\string\end{document}^^J} + \immediate\write\tud@write@b{^^J\string\end{document}^^J}% \immediate\closeout\tud@write@b% \immediate\closeout\tud@write@a% \immediate\openout\tud@write@a\jobname-example.tex\relax% @@ -5110,7 +5254,7 @@ \else% \def\@tempa{rm}% \fi% - \immediate\write18{\@tempa\space\tud@tut@temp*.*}% + \ShellEscape{\@tempa\space\tud@tut@temp*.*}% \fi% } % \end{macrocode} @@ -5165,12 +5309,10 @@ % genutzt wird. % \begin{macrocode} \newcommand*\tud@tut@pre{% - \ActivateWarningFilters[Tutorial]% \csuse{filecontents*}{\tud@tut@temp.tex}% } \newcommand*\tud@tut@post{% \csuse{endfilecontents*}% - \DeactivateWarningFilters[Tutorial]% } % \end{macrocode} % \end{macro}^^A \tud@tut@post @@ -5411,9 +5553,7 @@ % diese Konflikte durch eine lokale Redefinition ebensolcher Befehle auflösen % (bspw. \cs{let}\cs{newcommand}\cs{renewcommand}). % \begin{macrocode} - \ActivateWarningFilters[Tutorial]% \@tempa{\input{\tud@tut@temp.tex}}{\Code@Hook}% - \DeactivateWarningFilters[Tutorial]% \global\let\Code@Hook\relax% \setlength\leftskip{\@tempdimc}% \noindent\ignorespaces% @@ -5435,20 +5575,18 @@ % Quelltextes diesen abermals, um daraus eine PDF-Datei zu erzeugen. Dafür wird % eine temporäre \LaTeX-Datei mithilfe einer \env{filecontents}-Umgebung % erzeugt. Diese bindet die mit \env{Trunk!} erzeugte Datei ein und wird -% anschließend via \cs{write18} kompiliert. Dabei sollte man sich nicht von der -% doppelten Verwendung von \cs{jobname} verwirren lassen. Der Dateiname der +% anschließend via \cs{ShellEscape} kompiliert. Dabei sollte man sich nicht von +% der doppelten Verwendung von \cs{jobname} verwirren lassen. Der Dateiname der % temporär erzeugten \LaTeX-Datei ist abhängig vom gesetzten Tutorial. Beim % Aufruf dieser wird über die Optionen von \app{pdflatex} der verwendete % \cs{jobname} angepasst (siehe \cs{tud@tut@pdf}). % \begin{macrocode} \IfFileExists{\tud@tut@temp-standalone.tex}{\@tempswafalse}{\@tempswatrue} \if@tempswa% -\ActivateWarningFilters[Tutorial]% \begin{filecontents*}{\tud@tut@temp-standalone.tex} -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[english,ngerman]{tudscrreprt} \usepackage[T1]{fontenc} -\usepackage[utf8]{inputenc} +\ifpdftex{\usepackage[ngerman=ngerman-x-latest]{hyphsubst}}{} \usepackage{babel} \usepackage{tudscrsupervisor} \usepackage{isodate} @@ -5459,7 +5597,6 @@ \input{\jobname.tex}% \end{document} \end{filecontents*} -\DeactivateWarningFilters[Tutorial]% \fi % \end{macrocode} % Der Quelltext aus den Umgebungen \env{Trunk!} und \env{Hint!} wird~-- wie bei @@ -5469,10 +5606,10 @@ % aufgerufenen Datei \file{\string\tud@tut@temp-standalone.tex} überschrieben % und der Inhalt von \file{\string\tud@tut@temp.tex} wie gewünscht eingebunden % und kompiliert. Damit die so erstellte PDF-Datei mit \cs{IncludeStandalone} -% im weiteren Verlauf in das Tutorial eingebunden werden kann, wird diese noch -% in \cs{\meta{Argument}-temp.pdf} umbenannt. Das Makro \cs{StandaloneDate} -% wird auf das Datum der Master-Datei gesetzt, damit das voreingestellte Datum -% der erzeugten Datei angepasst werden kann. +% im weiteren Verlauf in das Tutorial eingebunden werden kann, wird diese +% außerdem noch in \cs{\meta{Argument}-temp.pdf} umbenannt. Das Makro +% \cs{StandaloneDate} wird auf das Datum der Master-Datei gesetzt, damit das +% voreingestellte Datum der erzeugten Datei angepasst werden kann. % \begin{macrocode} \newcommand*\tud@tut@pdf{% \ifnum\pdf@shellescape=\@ne\relax% @@ -5482,22 +5619,22 @@ \edef\@tempa{\expandonce\@date}% \def\@tempb{\today}% \ifx\@tempa\@tempb\relax% - \def\@tempb{}% + \let\@tempb\@empty% \else% \edef\@tempb{\etex@unexpanded{\def\StandaloneDate}{\@date}}% \fi% \edef\@tempa{% - pdflatex -jobname=\tud@tut@temp\space% + \tud@latex@ext -jobname=\tud@tut@temp\space% "\noexpand\unexpanded{\expandonce\@tempb\noexpand\input}% {\tud@tut@temp-standalone.tex}"% }% - \immediate\write18{\@tempa^^J\@tempa^^J\@tempa}% + \ShellEscape{\@tempa^^J\@tempa^^J\@tempa}% \ifwindows% \def\@tempa{rename}% \else% \def\@tempa{mv}% \fi% - \immediate\write18{% + \ShellEscape{% \@tempa\space\tud@tut@temp.pdf\space% \jobname-standalone-\StandaloneFile.pdf% }% @@ -5515,7 +5652,7 @@ % einzubindenden Seiten der PDF-Datei, wobei diese automatisch auf die passende % Breite skaliert werden. % \begin{macrocode} -\NewDocumentCommand\IncludeStandalone{omO{1}}{% +\NewDocumentCommand\IncludeStandalone{o m !O{1}}{% \IfFileExists{\jobname-standalone-#2.pdf}{% \@tempcnta\z@% \@for\@tempa:=#3\do{\advance\@tempcnta\@ne}% @@ -5593,6 +5730,11 @@ \PassOptionsToPackage{colorinlistoftodos,color=HKS92!10}{todonotes}% } \RequirePackage{todonotes}[2012/07/25] +\AtEndPreamble{% + \ifdim\marginparwidth<2cm\relax% + \setlength\marginparwidth{2cm}% + \fi% +} % \end{macrocode} % % \iffalse @@ -5636,17 +5778,17 @@ % \begin{macrocode} \def\@tempa not##1##2##3##4\@nil{% \ifstr{##1##2##3}{not}{% - \if\relax##4\relax\else% + \IfArgIsEmpty{##4}{}{% \listeadd\tud@todo@type@neg{##4}% \@tud@todotrue% \FamilyKeyStateProcessed% - \fi% + }% }{% - \if\relax##1\relax\else% + \IfArgIsEmpty{##1}{}{% \listeadd\tud@todo@type@pos{##1##2##3##4}% \@tud@todotrue% \FamilyKeyStateProcessed% - \fi% + }% }% }% \edef\@tempb{not\trim@spaces{#1}}% @@ -5668,106 +5810,144 @@ % \changes{v2.02}{2014/07/10}{Verwendung von \pkg{todonotes}}^^A % \changes{v2.03}{2015/01/25}{Ausgabe auf bestimmten Typ beschränkbar}^^A % \changes{v2.05}{2015/11/02}{Farbkodierung durch optionale Versionsnummer}^^A -% \begin{macro}{\tud@todo@type@color} -% \changes{v2.05}{2015/11/02}{neu}^^A -% \begin{macro}{\tud@todo@marginnote} -% \changes{v2.05}{2016/05/31}{neu}^^A +% \changes{v2.06}{2018/08/02}{farbige Ausgabe abhängig von Versionsnummer}^^A +% \begin{macro}{\tud@todo@type@use} +% \changes{v2.06}{2018/08/02}{neu}^^A % \begin{macro}{\ListOfToDo} % \changes{v2.02}{2014/07/10}{neu}^^A % Mit dem Befehl \cs{ToDo}\oarg{Option}\marg{ToDo-Notiz}\oarg{Versionsnummer} % kann bei aktivierter Option \opt{ToDo} eine Notiz mit einer offenen Aufgabe -% erstellt werden. Das vorangestellte Argument kann Optionen beinhalten, welche -% durch \pkg{todonotes} unterstützt werden. Außerdem werden die fünf booleschen -% Schlüssel \val{doc}, \val{man}, \val{imp}, \val{urg} und \val{nxt} definiert, -% welche eine farbliche Kodierung erzeugen, um die Aufgaben tu kategorisieren. +% erstellt werden. Das erste optionale Argument kann die Kategorisierungstypen +% \val{doc}, \val{imp} und \val{rls} beinhalten, welche für eine spezifische +% farbliche Kodierung sorgen, um die Aufgaben zu kategorisieren. % \begin{macrocode} \AfterPackage*{todonotes}{% - \newcommand*\tud@todo@type@color[2]{% - \define@boolkey{todonotes}{#1}[true]{% - \ifdef{\tudprintflag}{}{% - \ifbool{KV@todonotes@#1}{\setkeys{todonotes}{color=#2}}{}% - }% - }% - }% - \tud@todo@type@color{doc}{HKS41!30}% - \tud@todo@type@color{rls}{HKS44!30}% - \tud@todo@type@color{imp}{HKS57!50}% - \tud@todo@type@color{urg}{HKS07!50}% - \tud@todo@type@color{nxt}{HKS92!30}% - \undef\tud@todo@type@color% - \newcommand*\tud@todo@marginnote{}% + \newcommand*\tud@todo@type@use{}% % \end{macrocode} % Nun folgt die Definition des eigentlichen Befehls. Dabei wird zu Beginn % \cs{@currentHref} gesichert und am Ende wiederhergestellt. % \begin{macrocode} - \NewDocumentCommand\ToDo{somo}{% + \NewDocumentCommand\ToDo{s o m !o}{% \ifbool{@tud@todo}{% \global\let\tud@currentHref\@currentHref% \begingroup% % \end{macrocode} -% In \cs{@tempa} wird das optionale Argument für den \cs{todo}-Befehl aus dem -% Paket \pkg{todonotes} erstellt. +% In \cs{tud@todo@type@use} werden alle im optionalen Argument angegeben Werte +% gesischer, welche entweder über die Liste \cs{tud@todo@type@pos} explizit +% angefordert oder nicht über die Liste \cs{tud@todo@type@neg} ausgeschlossen +% wurden. % \begin{macrocode} - \let\@tempa\@empty% + \let\tud@todo@type@use\@empty% % \end{macrocode} -% Das angestellte optionale Argument erzeugt zusätzlich eine Notiz am Rand, in -% welcher vorzugsweise die angedachte Version eingetragen werden kann. Sollte -% dieser angegeben sein, wird auf eine gültige Versionsnummer geprüft. Dabei -% wird ein möglicherweise vorangestelltes |v| entfernt. +% Das optionale Argument enthält die gewüscnhten Kategorisierungstypen. % \begin{macrocode} - \def\tud@todo@marginnote{ToDo}% - \IfValueT{#4}{% - \def\tud@todo@marginnote{#4}% - \tud@v@get\@tempc{#4}% + \IfValueTF{#2}{% + \IfArgIsEmpty{#2}{}{% +% \end{macrocode} +% Die Ausgabe erfolgt entweder für alle ToDo-Notizen oder nur für die per +% Option festgelegten Typen. Dabei wird in einer Schleife geprüft, ob der in +% der aktuellen Notiz angegebene Kategorisierungstyp entweder in der Positv- +% oder aber in der Negativ-Liste enthalten ist. +% \begin{macrocode} + \let\tud@todo@type@use\relax% + \ifx\tud@todo@type@pos\relax% + \def\tud@res@a##1{% + \ifinlist{##1}{\tud@todo@type@use}{}{% + \ifinlist{##1}{\tud@todo@type@neg}{}{% + \listadd\tud@todo@type@use{##1}% + }% + }% + }% + \else% + \def\tud@res@a##1{% + \ifinlist{##1}{\tud@todo@type@use}{}{% + \ifinlist{##1}{\tud@todo@type@pos}{% + \listadd\tud@todo@type@use{##1}% + }{}% + }% + }% + \fi% + \forcsvlist\tud@res@a{#2}% + }% + }{}% % \end{macrocode} -% Exisitiert die angegebene Versionsnummer, so wird geprüft, ob die des -% optionalen Argumentes bereits veraltet ist. Ist dies der Fall, wird die -% ToDo-Notiz als dringlich (\val{urg}) gekennzeichnet. +% Nur wenn mindestens ein aktiver Kategorisierungstyp gefunden wurde oder aber +% gar keine Angabe gemacht wurde, erfolgt die Ausgabe. % \begin{macrocode} - \ifcsdef{tud@v@\@tempc}{% - \ifstr{\@tempc}{\TUDScriptVersionNumber}{}{\def\@tempa{urg}}% - \edef\tud@todo@marginnote{v\@tempc}% + \ifx\tud@todo@type@use\relax\else% % \end{macrocode} -% Exisitiert die angegebene Versionsnummer nicht, so wird geprüft, ob es sich -% überhaupt um eine Versionsnummer handelt. Ist dies der Fall, wird die -% ToDo-Notiz als Aufgabe für eine spätere Version (\val{nxt}) gekennzeichnet. +% In den temporären Makros werden die Einstellungen für die farbige Ausprägung +% von Randnotiz (\cs{tud@res@a}) und der Textbox im Fließtex(\cs{tud@res@b}) +% sowie das Label der Randnotiz (\cs{tud@res@c}) gespeichert. % \begin{macrocode} - }{% - \def\@tempa##1.##2##3##4\@nil{##1##2##3}% - \edef\@tempb{\expandafter\@tempa\@tempc.000\@nil}% - \ifxnumber{\@tempb}{% - \def\@tempa{nxt}% - \edef\tud@todo@marginnote{v\@tempc}% - }{\let\@tempa\@empty}% - }% - }% + \let\tud@res@a\@empty% + \let\tud@res@b\@empty% + \let\tud@res@c\@empty% % \end{macrocode} -% Anschließend wird das eigentliche optionale Argument vorangestellt, wobei in -% diesem ggf. auch der Kategorisierungstyp enthalten ist. +% Der Kategorisierungstyp für Releases \val{rls} ist quasi vorkonfiguriert. +% Sind weitere Kategorisierungstypen angegeben, werden diese ignoriert. Der Typ +% für Implemtierung \val{imp} wird vorangig zur Dokumentation \val{doc} +% behandelt. % \begin{macrocode} - \IfValueT{#2}{\preto\@tempa{#2,}}% + \ifinlist{rls}{\tud@todo@type@use}{% + \def\tud@res@a{color=HKS44!30,}% + \def\tud@res@b{color=HKS44!30,}% + \edef\tud@res@c{v\TUDScriptVersionNumber}% + }{% + \ifinlist{imp}{\tud@todo@type@use}{% + \def\tud@res@a{color=HKS57!50,}% + }{% + \ifinlist{doc}{\tud@todo@type@use}{% + \def\tud@res@a{color=HKS41!30,}% + }{}% + }% % \end{macrocode} -% Die Ausgabe erfolgt entweder für alle ToDo-Notizen oder nur für die per -% Option festgelegten Typen. Dabei wird in einer Schleife geprüft, ob der in -% der aktuellen Notiz angegebene Kategorisierungstyp entweder in der Positv- -% oder aber in der Negativ-Liste enthalten ist. Soll der aktuelle Typ -% ausgegeben werden, wird der Schalter \cs{@tempswa} gesetzt. +% Das angestellte optionale Argument erzeugt zusätzlich eine Notiz am Rand, in +% welcher vorzugsweise die angedachte Version eingetragen werden kann. Sollte +% dieser angegeben sein, wird auf eine gültige Versionsnummer geprüft. Dabei +% wird ein möglicherweise vorangestelltes |v| entfernt. % \begin{macrocode} - \@tempswafalse% - \ifx\tud@todo@type@pos\relax\@tempswatrue\fi% - \toks@{\forcsvlist\@tempb}% - \eaddto@hook\toks@{\expandafter{\@tempa}}% - \let\@tempa\@empty% - \def\@tempb##1{% - \eappto\@tempa{##1,}% - \ifinlist{##1}{\tud@todo@type@pos}{\@tempswatrue}{}% - \ifinlist{##1}{\tud@todo@type@neg}{\@tempswafalse}{}% - }% - \the\toks@% + \def\tud@res@c{ToDo}% + \IfValueT{#4}{% + \begingroup% +% \end{macrocode} +% Die angegebene Versionsnummer wird geprüft, ob bereits zu einer vergangenen +% Version gehört. In diesem Fall wird die ToDo-Notiz entsprechend als dringlich +% gekennzeichnet. Entspricht die angegebene Versionsnummer einer späteren +% Version, so wird ToDo-Notiz ebenfalls für diese gekennzeichnet. +% \begin{macrocode} + \tud@v@get\tud@res@a{#4}% + \def\tud@res@c##1.##2##3##4\@nil{##1##2##3}% + \edef\tud@res@b{\expandafter\tud@res@c\tud@res@a.000\@nil}% + \ifnumber{\tud@res@b}{% + \edef\tud@res@c{% + \expandafter\tud@res@c\TUDScriptVersionNumber.000\@nil% + }% + \ifnum\tud@res@b>\tud@res@c\relax% + \def\tud@res@b{color=HKS92!30,}% + \else% + \ifnum\tud@res@b<\tud@res@c\relax% + \def\tud@res@b{color=HKS07!50,}% + \else% + \def\tud@res@b{color=HKS41!30,}% + \fi% + \fi% + \def\tud@res@c{v\tud@res@a}% + }{% + \let\tud@res@b\@empty% + \def\tud@res@c{#4}% + }% + \edef\tud@res@c{% + \endgroup% + \def\noexpand\tud@res@b{\tud@res@b}% + \def\noexpand\tud@res@c{\tud@res@c}% + }% + \tud@res@c% + }% + }% % \end{macrocode} % Vor der Ausgabe wird ein kleiner vertikaler Abstand eingefügt. % \begin{macrocode} - \if@tempswa% \ifhmode\par\fi% \let\par\relax% \vskip\medskipamount% @@ -5776,7 +5956,7 @@ % Dann erfolgt die Ausgabe der eigentlichen ToDo-Notiz im Textbereich. Die % Sternversion von \cs{ToDo} unterdrückt dabei die Aufnahme in die ToDo-Liste. % \begin{macrocode} - \toks@\expandafter{\@tempa inline}% + \toks@\expandafter{\tud@res@b inline}% \IfBooleanT{#1}{\addto@hook\toks@{,nolist}}% \sbox\z@{% \expandafter\todo\expandafter[\the\toks@]{\trim@spaces{#3}\strut}% @@ -5790,11 +5970,34 @@ \renewcommand*\marginpar[2][]{% \marginnote[##1]{##2}[\dimexpr-\ht\z@+1.6ex+1.75pt\relax]% }% - \toks@\expandafter{\@tempa noline,nolist}% - \settowidth\marginparwidth{\tud@todo@marginnote}% + \toks@\expandafter{\tud@res@a noline,nolist}% + \settowidth\marginparwidth{\tud@res@c}% \addtolength\marginparwidth{\dimexpr1.6ex+1pt\relax}% - \expandafter\todo\expandafter[\the\toks@]{\tud@todo@marginnote\strut}% + \expandafter\todo\expandafter[\the\toks@]{\tud@res@c\strut}% \aftergroup\par\aftergroup\noindent% +% \end{macrocode} +% Wurden im ersten optionalen Argument unbekannte Werte gefunden, werden diese +% mit einer Warnung gemeldet. +% \begin{macrocode} + \listremove{\tud@todo@type@use}{rls}% + \listremove{\tud@todo@type@use}{imp}% + \listremove{\tud@todo@type@use}{doc}% + \ifx\tud@todo@type@use\@empty\else% + \begingroup% + \let\tud@res@c\@empty% + \renewcommand*{\do}[1]{% + \appto\tud@res@c{,##1}% + }% + \dolistloop{\tud@todo@type@use}% + \edef\tud@res@c{% + \endgroup% + \edef\noexpand\tud@res@c{\expandafter\@gobble\tud@res@c}% + }% + \tud@res@c% + \ClassWarning{tudscrmanual}{% + Unknown key(s) `\string\ToDo[\tud@res@c]'% + }% + \fi% \fi% \endgroup% \global\let\@currentHref\tud@currentHref% @@ -5812,13 +6015,12 @@ % der beiden notwendigen Befehle als Dummy. % \begin{macrocode} \TUD@UnwindPackage{todonotes}{% - \NewDocumentCommand\ToDo{somo}{}% + \NewDocumentCommand\ToDo{s o m !o}{}% \newcommand*\ListOfToDo{}% } % \end{macrocode} % \end{macro}^^A \ListOfToDo -% \end{macro}^^A \tud@todo@marginnote -% \end{macro}^^A \tud@todo@type@color +% \end{macro}^^A \tud@todo@type@use % \end{macro}^^A \ToDo % % \iffalse @@ -5835,10 +6037,11 @@ % \subsubsection{Ergänzend geladene Pakete} % % Sprachabhängiges Setzen von Anführungszeichen. Das Laden des Paketes darf -% erst nach \pkg{inputenc} erfolgen. +% erst nach \pkg{inputenc} oder \pkg{inputenx} erfolgen. % \begin{macrocode} -%<body|class&doc>\AfterPackage*{inputenc}{\RequirePackage{csquotes}[2011/10/22]} -%<body>\TUD@UnwindPackage{inputenc}{\RequirePackage{csquotes}[2011/10/22]} +%<*body|class&doc> +\RequirePackage{csquotes}[2011/10/22] +%</body|class&doc> % \end{macrocode} % % \iffalse @@ -5883,11 +6086,7 @@ % \end{macrocode} % \dots und im Flattersatz ausgegeben. % \begin{macrocode} -\ifcsdef{scr@v@3.23}{% - \renewcommand*\raggedfootnote{\tud@RaggedRight}% -}{% - \pretocmd{\@makefntext}{\tud@RaggedRight}{}{\tud@patch@wrn{@makefntext}}% -} +\renewcommand*\raggedfootnote{\tud@RaggedRight}% % \end{macrocode} % Das Paket wird für die Erstellung von Tabellen verwendet. % \begin{macrocode} @@ -6023,19 +6222,19 @@ % \begin{macrocode} \newcommand*\Attention[2][\z@]{% \marginnote{% - \setlength\fboxsep{0.25em} + \setlength\fboxsep{0.25em}% \fbox{Achtung!}% }[#1]% \emph{\trim@spaces{#2}}% } -\NewDocumentCommand\Forum{st'}{% +\NewDocumentCommand\Forum{!s !t'}{% \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% \IfBooleanT{#2}{\toks@{\url}}% \addto@hook\toks@{{http://latex.wcms-file3.tu-dresden.de/phpBB3/}}% \IfBooleanF{#2}{\addto@hook\toks@{{TUD-\LaTeX-Forum}}}% \the\toks@\xspace% } -\NewDocumentCommand\CTAN{sog}{% +\NewDocumentCommand\CTAN{!s !o !g}{% \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% \addto@hook\toks@{{http://www.ctan.org/\IfValueT{#2}{#2}}}% \addto@hook\toks@{% @@ -6044,10 +6243,13 @@ \the\toks@\xspace% } %<*class> -\NewDocumentCommand\GitHubRepo{s}{% +\NewDocumentCommand\GitHubRepo{!s !t' !O{releases}}{% \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% - \addto@hook\toks@{{https://github.com/tud-cd/tudscr/releases}}% - \addto@hook\toks@{{\tud@english{GitHub-Repository~\Distribution*{tudscr}}}}% + \IfBooleanT{#2}{\toks@{\url}}% + \addto@hook\toks@{{https://github.com/tud-cd/tudscr/#3}}% + \IfBooleanF{#2}{% + \addto@hook\toks@{{\tud@english{GitHub-Repository~\Distribution*{tudscr}}}}% + }% \the\toks@\xspace% } \newcommand*\Download[1]{% @@ -6058,7 +6260,7 @@ Option nicht verf\"ugbar.% } %</class> -\NewDocumentCommand\scrguide{sO{\KOMAScript-Handbuch}}{% +\NewDocumentCommand\scrguide{!s !O{\KOMAScript-Handbuch}}{% \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% \addto@hook\toks@{% {http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide.pdf}% @@ -6120,15 +6322,36 @@ % \end{macro}^^A \TUD % \end{macro}^^A \CDs % \end{macro}^^A \CD +% \begin{macro}{\OpenSans} +% \changes{v2.06}{2018/07/02}{neu}^^A +% \begin{macro}{\tud@cdfont@texteb} +% \changes{v2.06}{2018/08/31}{neu}^^A % \begin{macro}{\Univers} % \begin{macro}{\DIN} % Für die Nennung der Schriften spezielle Markos bereitgestellt. % \begin{macrocode} -\newcommand*\Univers{\texorpdfstring{\textubn{Univers}}{Univers}\xspace} -\newcommand*\DIN{\texorpdfstring{\textdbn{DIN~BOLD}}{DIN BOLD}\xspace} +\DeclareTextFontCommand\tud@cdfont@texteb{% + \fontfamily{\tud@cdfont@fam}\fontseries{\tud@cdfont@ebf}\selectfont% +} +\newrobustcmd*\OpenSans{% + \texorpdfstring{\tud@cdfont@texteb{Open~Sans}}{Open Sans}\xspace% +} +\newrobustcmd*\Univers{\texorpdfstring{\textcdbi{Univers}}{Univers}\xspace} +\newrobustcmd*\DIN{\texorpdfstring{\textcdxi{DIN~Bold}}{DIN Bold}\xspace} % \end{macrocode} % \end{macro}^^A \DIN % \end{macro}^^A \Univers +% \end{macro}^^A \tud@cdfont@texteb +% \end{macro}^^A \OpenSans +% \begin{macro}{\@pnumwidth} +% \begin{macro}{\@tocrmarg} +% Für das Inhaltsverzeichnis werden die beiden Längen angepasst. +% \begin{macrocode} +\renewcommand*\@pnumwidth{2.1em}% +\renewcommand*\@tocrmarg{3.1em}% +% \end{macrocode} +% \end{macro}^^A \@tocrmarg +% \end{macro}^^A \@pnumwidth % % \iffalse %</body|class&doc> diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-mathswap.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-mathswap.dtx index dce3784acb9..158befa025f 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-mathswap.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-mathswap.dtx @@ -4,7 +4,7 @@ % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2017 +% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2019 % % ---------------------------------------------------------------------------- % @@ -48,26 +48,38 @@ % % \iffalse %%% From File: tudscr-mathswap.dtx -%<*driver> -\ifx\ProvidesFile\@undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-mathswap.dtx}[% - 2017/03/29 v2.05l TUD-Script\space% -%</driver> +%<*dtx> +% \fi +% +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\ProvidesFile{tudscr-mathswap.dtx}[2019/06/28 v2.06 TUD-Script\space% +% +% \iffalse +%</dtx> %<package>\NeedsTeXFormat{LaTeX2e} %<package>\ProvidesPackage{mathswap}[% -%<*driver|package> +%<*package> %!TUD@Version +%</package> %<package> package +%<*dtx|package> +% \fi +% (swap mathematical separators)% ] -%</driver|package> -%<*driver> -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} +% +% \iffalse +%</dtx|package> +%<*dtx> \documentclass[english,ngerman,xindy]{tudscrdoc} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} \usepackage{babel} -\usepackage{tudscrfonts} % only load this package, if the fonts are installed +\usepackage{tudscrfonts} \KOMAoptions{parskip=half-} \usepackage{bookmark} \usepackage[babel]{microtype} @@ -84,7 +96,7 @@ \tableofcontents \DocInput{\filename} \end{document} -%</driver> +%</dtx> % \fi % % \selectlanguage{ngerman} @@ -118,12 +130,12 @@ % jedoch zwischen Trennzeichen und Ziffer Leerraum befinden, wird dieser als % solcher auch gesetzt. % -% \ToDo{Vergleich mit \pkg{ionumbers}, ist \pkg{mathswap} notwendig?}[v2.06] -% \ToDo{Als eingenständiges Paket herauslösen}[v2.06] -% \ToDo{Allgem. Bezeichnungen englisches/deutsches Format?}[v2.06] -% \ToDo{Sprachabhängige Einstellungen in Paket und aus Klassen raus}[v2.06] -% \ToDo{Makro(s)/Key-Value zum Festlegen von Eingabe- und Ausgabeformat}[v2.06] -% \ToDo{Inhalte von \file{mathswap.tex} hier rein}[v2.06] +% \ToDo{Vergleich mit \pkg{ionumbers}, ist \pkg{mathswap} notwendig?}[v2.??] +% \ToDo{Als eingenständiges Paket herauslösen}[v2.??] +% \ToDo{Allgem. Bezeichnungen englisches/deutsches Format?}[v2.??] +% \ToDo{Sprachabhängige Einstellungen in Paket und aus Klassen raus}[v2.??] +% \ToDo{Makro(s)/Key-Value zum Festlegen von Eingabe- und Ausgabeformat}[v2.??] +% \ToDo{Inhalte von \file{mathswap.tex} hier rein}[v2.??] % % \StopEventually{\PrintIndex\PrintChanges\PrintToDos} % @@ -138,7 +150,7 @@ % Die beiden Befehle \cs{commaswap} und \cs{dotswap} sind die zentrale % Benutzerschnittstelle des Paketes. Das Makro \cs{commaswap} definiert das % Trennzeichen oder den Inhalt, wodurch ein Komma ersetzt werden soll, auf -% welches direkt danach eine Ziffer folgt. Normalerweise setzt \LaTeX +% welches direkt danach eine Ziffer folgt. Normalerweise setzt \LaTeX{} % nach einem Komma im mathematischen Satz zusätzlich einen horizontalen Abstand. % Bei der Ersetzung durch \cs{commaswap} entfällt dieser. Die Voreinstellung % für \cs{commaswap} ist deshalb auf ein Komma (,) gesetzt. diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-misc.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-misc.dtx index 0ff0baf521f..c96567a2d27 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-misc.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-misc.dtx @@ -1,10 +1,10 @@ -% \CheckSum{413} +% \CheckSum{300} % \iffalse meta-comment % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2017 +% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2019 % % ---------------------------------------------------------------------------- % @@ -48,17 +48,24 @@ % % \iffalse %%% From File: tudscr-misc.dtx -%<*driver> -\ifx\ProvidesFile\@undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-misc.dtx}[% - 2017/03/29 v2.05l TUD-Script (miscellaneous)% +%<*dtx> +% \fi +% +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\ProvidesFile{tudscr-misc.dtx}[2019/06/28 v2.06 TUD-Script\space% + (miscellaneous)% ] -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} +% +% \iffalse \documentclass[english,ngerman,xindy]{tudscrdoc} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} \usepackage{babel} -\usepackage{tudscrfonts} % only load this package, if the fonts are installed +\usepackage{tudscrfonts} \KOMAoptions{parskip=half-} \usepackage{bookmark} \usepackage[babel]{microtype} @@ -75,7 +82,7 @@ \tableofcontents \DocInput{\filename} \end{document} -%</driver> +%</dtx> % \fi % % \selectlanguage{ngerman} @@ -89,280 +96,7 @@ % % \StopEventually{\PrintIndex\PrintChanges\PrintToDos} % -% \subsection{Sukkzessives Abarbeiten von Layoutoptionen im Dokument} -% -% Werden mit \cs{TUDoptions} nach \cs{begin\{document\}} mehrere Layoutoptionen -% gleichzeitig angegeben, muss dafür Sorge getragen werden, dass diese in der -% korrekten Reihenfolge abgearbeitet werden. -% -% Das Makro \cs{TUD@SpecialOptionAtDocument} kann innerhalb von \cs{TUD@key} -% verwendet werden, um einen im obligatorischen Argument angegebenen Schalter -% zu aktivieren. Dabei wird über \cs{tud@atdocument@hook} garantiert, dass der -% Befehl \cs{tud@atdocument@process}, welcher für die Abarbeitung der einzelnen -% Makros in der richtigen Reihenfolge verantwortlich ist, lediglich einmal über -% \cs{AtEndOfFamilyOptions} ausgeführt wird. -% \ToDo{Evtl. in \file{tudscr-layout.dtx} verschieben?}[v2.06] -% \ToDo{% -% Problem bei \cs{TUDoptions} mit \cs{AtEndOfFamilyOptions} beheben -% }[v2.06] -% \ToDo{Überarbeiten: \cs{AtEndOfFamilyOptions*}}[v3.23] -% -% \begin{macro}{\TUD@SpecialOptionAtDocument} -% \changes{v2.05}{2016/06/14}{neu}^^A -% \begin{macro}{\tud@atdocument@hook} -% \changes{v2.05}{2016/06/14}{neu}^^A -% \begin{macrocode} -%<*execute&(class&!inherit|package&fonts)> -\newcommand*\TUD@SpecialOptionAtDocument[1]{} -%</execute&(class&!inherit|package&fonts)> -%<*body> -\newcommand*\tud@atdocument@hook{} -\let\tud@atdocument@hook\relax -\AtBeginDocument{% - \renewcommand*\TUD@SpecialOptionAtDocument[1]{% - \ifx\tud@atdocument@hook\relax% - \gdef\tud@atdocument@hook{\global\let\tud@atdocument@hook\relax}% - \AtEndOfFamilyOptions{% - \tud@atdocument@hook% - \tud@atdocument@process% - }% - \fi% - \gappto\tud@atdocument@hook{\global\booltrue{@#1}}% - }% -} -%</body> -% \end{macrocode} -% \end{macro}^^A \tud@atdocument@hook -% \end{macro}^^A \TUD@SpecialOptionAtDocument -% -% \iffalse -%<*body> -% \fi -% -% \begin{macro}{\tud@atdocument@process} -% \changes{v2.05}{2016/06/14}{neu}^^A -% \begin{macro}{\if@tud@font@set} -% \changes{v2.05}{2016/06/14}{neu}^^A -% \begin{macro}{\if@tud@font@math@set} -% \changes{v2.05}{2016/06/14}{neu}^^A -% \begin{macro}{\if@tud@font@skip@set} -% \changes{v2.05}{2016/06/14}{neu}^^A -% \begin{macro}{\if@tud@x@scr@headings@reset} -% \changes{v2.05}{2016/06/14}{neu}^^A -% \begin{macro}{\if@tud@layout@process} -% \changes{v2.05}{2016/06/14}{neu}^^A -% \begin{macro}{\if@tud@cdgeometry@process} -% \changes{v2.05}{2016/06/14}{neu}^^A -% \begin{macro}{\if@tud@cdgeometry@@process} -% \changes{v2.05}{2016/06/14}{neu}^^A -% Das Makro \cs{tud@atdocument@process} wird im Dokument ausgeführt, wenn -% mindestens eine Option gesetzt wurde, welche \cs{TUD@SpecialOptionAtDocument} -% verwendet. Je nachdem, welche Schalter insgesamt aktiviert wurden, werden die -% dazugehörigen Befehle für die Einstellungen von Schriften, Layout und/oder -% Satzspiegel in der richtigen Reihenfolge ausgeführt. -% \begin{macrocode} -\newif\if@tud@font@set -\newif\if@tud@font@math@set -\newif\if@tud@font@skip@set -\newif\if@tud@x@scr@headings@reset -\newif\if@tud@layout@process -\newif\if@tud@cdgeometry@process -\newif\if@tud@cdgeometry@@process -\newcommand*\tud@atdocument@process{% - \if@tud@font@set% - \tud@font@set% - \global\@tud@font@setfalse% - \global\@tud@font@math@setfalse% - \global\@tud@font@skip@setfalse% - \global\@tud@layout@processfalse% - \fi% - \if@tud@font@math@set% - \tud@font@math@set% - \global\@tud@font@math@setfalse% - \fi% - \if@tud@font@skip@set% - \tud@font@skip@set% - \global\@tud@font@skip@setfalse% - \fi% -%<*class> - \if@tud@x@scr@headings@reset% - \tud@x@scr@headings@reset% - \global\@tud@x@scr@headings@resetfalse% - \global\@tud@layout@processfalse% - \fi% - \if@tud@layout@process% - \tud@layout@process% - \global\@tud@layout@processfalse% - \fi% - \if@tud@cdgeometry@process% - \tud@cdgeometry@process% - \global\@tud@cdgeometry@processfalse% - \global\@tud@cdgeometry@@processfalse% - \fi% - \if@tud@cdgeometry@@process% - \tud@cdgeometry@@process% - \global\@tud@cdgeometry@@processfalse% - \fi% -%</class> -} -% \end{macrocode} -% \end{macro}^^A \if@tud@cdgeometry@@process -% \end{macro}^^A \if@tud@cdgeometry@process -% \end{macro}^^A \if@tud@layout@process -% \end{macro}^^A \if@tud@x@scr@headings@reset -% \end{macro}^^A \if@tud@font@skip@set -% \end{macro}^^A \if@tud@font@math@set -% \end{macro}^^A \if@tud@font@set -% \end{macro}^^A \tud@atdocument@process -% -% \iffalse -%</body> -%<*class&option> -% \fi -% -% \subsection{Papierformat und Schriftgröße} -% -% Insbesondere für Poster aber auch für alle anderen \TUDScript-Klassen wird -% überprüft, ob nach einer Änderung des Standardpapierformates auch die -% Schriftgröße durch den Anwender angepasst wurde. Diese wird jedoch nicht auf -% Plausibilität geprüft, da der Aufwand hierfür relativ hoch wäre. Vielmehr -% wird davon ausgegangen, dass die explizite Angabe der Schriftgröße bewusst -% und dem Papierformat sowie den verwendeten Textspalten entsprechend erfolgt. -% -% Die nachfolgend definierten Optionen und Befehle orientieren sich dabei stark -% an internen \KOMAScript-Makros. -% \ToDo{Evtl. in \file{tudscr-area.dtx} verschieben?}[v2.06] -% \ToDo{% -% Wie mit \opt{layout} von \pkg{geometry} umgehen? Wann Papierformat prüfen? -% Vielleicht mit \cs{KOMAoptionOf\{paper\}} prüfen? Oder ganz raus? -% }[v2.06] -% -% \begin{option}{paper} -% \changes{v2.05}{2015/07/24}{neu}^^A -% \begin{macro}{\if@tud@x@scr@paper@set} -% \changes{v2.05}{2015/07/24}{neu}^^A -% Da die \KOMAScript-Option \opt{paper} eine Menge an Einstellmöglichkeiten -% bietet, müssen die relevanten hier abgefangen werden. -% \begin{macrocode} -\newif\if@tud@x@scr@paper@set -\TUD@key{paper}{% - \tud@lowerstring{\@tempa}{#1}% -% \end{macrocode} -% Sowohl ISO/DIN-Formate\dots -% \begin{macrocode} - \def\@tempb##1##2\@nil{% - \@tempswafalse% - \if ##1a\@tempswatrue% - \else\if ##1b\@tempswatrue% - \else\if ##1c\@tempswatrue% - \else\if ##1d\@tempswatrue% - \fi\fi\fi\fi% - \if@tempswa% - \ifnumber{##2}{}{\@tempswafalse}% - \fi% - }% - \expandafter\@tempb\@tempa\@nil% -% \end{macrocode} -% \dots als auch frei gewählte Papierformate werden erkannt. -% \begin{macrocode} - \if@tempswa\else% - \def\@tempb##1:##2:##3\@nil{% - \edef\@tempc{##1}% - \ifx\@tempc\@empty\@tempswafalse\else% - \edef\@tempc{##2}% - \ifx\@tempc\@empty\@tempswafalse\else\@tempswatrue\fi% - \fi% - }% - \expandafter\@tempb\@tempa::\@nil% - \fi% -% \end{macrocode} -% Die Standardpapiergröße spielt allerdings keine Rolle für eine Warnung. -% \begin{macrocode} - \@tud@x@scr@paper@setfalse% - \if@tempswa% - \ifstr{\@tempa}{a4}{}{\@tud@x@scr@paper@settrue}% - \FamilyKeyStateProcessed% - \else% - \FamilyKeyStateUnknownValue% - \fi% -} -% \end{macrocode} -% \end{macro}^^A \if@tud@x@scr@paper@set -% \end{option}^^A paper -% \begin{option}{fontsize} -% \changes{v2.05}{2015/07/24}{neu}^^A -% \begin{macro}{\if@tud@fontsize@set} -% \changes{v2.05}{2015/07/24}{neu}^^A -% Bei der Schriftgröße ist das bloße Erkennen und Weiterreichen der Option an -% die Klasse ausreichend. -% \begin{macrocode} -\newif\if@tud@fontsize@set -\TUD@key{fontsize}{% - \@tud@fontsize@settrue% - \PassOptionsToClass{fontsize=#1}{\TUD@Class@KOMA}% - \FamilyKeyStateProcessed% -} -% \end{macrocode} -% \end{macro}^^A \if@tud@fontsize@set -% \end{option}^^A fontsize -% Die Schlüssel sollen lediglich beim Laden der Dokumentklasse die angegebenen -% Optionen abfangen. Wurde das Papierformat jedoch nicht die Schriftgröße -% geändert, wird nun eine Warnung erzeugt. -% \ToDo{% -% Warnung überarbeiten erst zu Dokumentbeginn prüfen, \opt{layout} beachten!% -% }[v2.06] -% \begin{macrocode} -\AtEndOfClass{% - \RelaxFamilyKey{TUD}{paper}% - \RelaxFamilyKey{TUD}{fontsize}% - \ifboolexpr{bool {@tud@x@scr@paper@set} or bool {@landscape}}{% - \if@tud@fontsize@set\else% - \ClassWarningNoLine{\TUD@Class@Name}{% - You've set a paper size, which is different from\MessageBreak% - default (paper=a4, paper=portrait). Therefore you\MessageBreak% - should additionally specify an explicit font size.\MessageBreak% - See the manual for further information% - }% - \fi% - }{}% -} -% \end{macrocode} -% % \iffalse -%</class&option> -%<*class&execute&!inherit> -% \fi -% -% \begin{macro}{\tud@x@scr@paper} -% \changes{v2.05}{2015/07/24}{neu}^^A -% \begin{macro}{\tud@x@scr@@paper} -% \changes{v2.05}{2015/07/24}{neu}^^A -% Um die Änderung des Papierformats auch über die \LaTeX-Standardoptionen wie -% beispielsweise \opt{a5paper} abfangen zu können, müssen auch die äquivalent -% zu \KOMAScript{} ausgewertet werden. -% \begin{macrocode} -\newcommand*\tud@x@scr@paper{% - \expandafter\tud@x@scr@@paper\CurrentOption paper\tud@x@scr@@paper% -} -\newcommand*\tud@x@scr@@paper{} -\def\tud@x@scr@@paper #1#2paper#3\tud@x@scr@@paper{% - \@tempswafalse% - \ifstr{#3}{paper}{\ifnumber{#2}{% - \ifstr{#1}{a}{\@tempswatrue}{% - \ifstr{#1}{b}{\@tempswatrue}{% - \ifstr{#1}{c}{\@tempswatrue}{% - \ifstr{#1}{d}{\@tempswatrue}{% - }}}}% - }{}}{}% - \if@tempswa\TUDExecuteOptions{#3=#1#2}\fi% - \PassOptionsToClass{\CurrentOption}{\TUD@Class@KOMA}% -} -% \end{macrocode} -% \end{macro}^^A \tud@x@scr@@paper -% \end{macro}^^A \tud@x@scr@paper -% -% \iffalse -%</class&execute&!inherit> %<*class&option> % \fi % @@ -375,7 +109,9 @@ % automatisch ein Eintrag für die Sprungmarken erzeugt werden soll. % \begin{macrocode} \newif\if@tud@bookmarks -\TUD@ifkey{tudbookmarks}{@tud@bookmarks} +\TUD@key{tudbookmarks}[true]{% + \TUD@set@ifkey{tudbookmarks}{@tud@bookmarks}{#1}% +} % \end{macrocode} % \end{macro}^^A \if@tud@bookmarks % \end{option}^^A tudbookmarks @@ -433,7 +169,7 @@ % \changes{v2.05}{2015/08/05}{neu}^^A % \begin{macro}{\@maketitle} % \changes{v2.05}{2015/08/05}{neu}^^A -% \begin{macro}{\tud@make@titlehead} +% \begin{macro}{\tud@maketitle@inpage} % \changes{v2.05}{2015/08/05}{neu}^^A % Ist die Option \opt{tudbookmarks} aktiviert, werden für Umschlag- und % Titelseite PDF"=Lesezeichen bzw. Outline-Einträge erzeugt. @@ -441,7 +177,10 @@ %<*book|report|article> \apptocmd{\titlepage}{% \tud@x@bookmark@startatroot% - \if@tud@cover% + \@tud@res@swafalse% + \if@tud@coverpage\@tud@res@swatrue\fi% + \if@titlepageiscoverpage\@tud@res@swatrue\fi% + \if@tud@res@swa% \tudbookmark[% %<book|report> 0% %<article> 1% @@ -457,13 +196,13 @@ % \end{macrocode} % Dies geschieht außerdem auch für die Titelköpfe. % \begin{macrocode} -\pretocmd{\tud@make@titlehead}{% +\pretocmd{\tud@maketitle@inpage}{% \tud@x@bookmark@startatroot% \tudbookmark[% %<book|report> 0% %<article|poster> 1% ]{\titlename}{title}% -}{}{\tud@patch@wrn{tud@make@titlehead}} +}{}{\tud@patch@wrn{tud@maketitle@inpage}} \pretocmd{\@maketitle}{% \tud@x@bookmark@startatroot% \tudbookmark[% @@ -472,7 +211,7 @@ ]{\titlename}{title}% }{}{\tud@patch@wrn{@maketitle}} % \end{macrocode} -% \end{macro}^^A \tud@make@titlehead +% \end{macro}^^A \tud@maketitle@inpage % \end{macro}^^A \@maketitle % \end{environment}^^A titlepage % \begin{macro}{\tableofcontents} @@ -490,10 +229,10 @@ \iftocfeature{toc}{totoc}{}{% \if@tud@bookmarks% \setuptoc{toc}{totoc}% - \tud@cmd@store{addtocontents}% + \tud@cs@store{addtocontents}% \def\@tempc{% \unsettoc{toc}{totoc}% - \tud@cmd@restore{addtocontents}% + \tud@cs@restore{addtocontents}% }% \let\addtocontents\@gobbletwo% \fi% @@ -507,115 +246,307 @@ % \end{macro}^^A \listoffigures % \end{macro}^^A \tableofcontents % -% \subsection{Warnung bei der Nutzung des Paketes \pkg{tocloft}} +% \iffalse +%</class&body> +%<*class&option> +% \fi +% +% \subsection{Fußnoten in Überschriften} +% +% Eigentlich sollte die Option \opt{footnotes}|=|\val{symbolheadings} es +% ermöglichen, Fußnoten mit Symbolen in Überschriften zu verwenden. Umgesetzt +% werden sollte dies mit dem Paket \pkg{footmisc}. Da dieses aber mit +% Inkompatibilitäten zu \pkg{hyperref} und \KOMAScript{} aufwartet, wird darauf +% leider verzichtet. +%^^A% \begin{option}{footnotes} +%^^A% \changes{v2.02}{2014/06/27}{neu}^^A +%^^A% \begin{macro}{\if@tud@symbolheadings} +%^^A% \changes{v2.02}{2014/06/27}{neu}^^A +%^^A% \begin{macro}{\tud@sec@note} +%^^A% \changes{v2.02}{2014/06/27}{neu}^^A +%^^A% \begin{counter}{symbolheadings} +%^^A% \changes{v2.02}{2014/06/27}{neu}^^A +%^^A% Die \KOMAScript-Option \opt{footnotes} wird um den Schlüssel +%^^A% \val{symbolheadings} erweitert, mit welchem eingestellt werden kann, ob +%^^A% in den Überschriften Symbole für die Fußnoten anstelle von Zahlen +%^^A% verwendet werden sollen. +%^^A% \begin{macrocode} +%^^A\newif\if@tud@symbolheadings +%^^A\TUD@key{footnotes}{% +%^^A \TUD@set@numkey{footnotes}{@tempa}{% +%^^A {nosymbolheadings}{0},{numberheadings}{0},% +%^^A {symbolheadings}{1}% +%^^A }{#1}% +%^^A \ifx\FamilyKeyState\FamilyKeyStateProcessed% +%^^A \ifcase\@tempa\relax% nosymbolheadings +%^^A \@tud@symbolheadingsfalse% +%^^A \or% symbolheadings +%^^A \@tud@symbolheadingstrue% +%^^A \fi% +%^^A \fi% +%^^A} +%^^A% \end{macrocode} +%^^A% Mit \cs{tud@sec@note} wird die Option \opt{footnotes=symbolheadings} +%^^A% umgesetzt. Hierfür wird das Paket \pkg{footmisc} benötigt. +%^^A% \begin{macrocode} +%^^A\newcommand*\tud@sec@note[1]{% +%^^A \ClassWarning{\TUD@Class@Name}{% +%^^A You have to load package `footmisc' with\MessageBreak% +%^^A option `stable' in order to use\MessageBreak% +%^^A footnotes with symbols in headings% +%^^A }% +%^^A} +%^^A\AfterPackage{footmisc}{% +%^^A \@ifpackagewith{footmisc}{stable}{% +%^^A \renewcommand*\tud@sec@note[1]{% +%^^A \begingroup% +%^^A \if@tud@symbolheadings% +%^^A \let\c@footnote\c@symbolheadings% +%^^A \def\thefootnote{\fnsymbol{symbolheadings}}% +%^^A \fi% +%^^A \footnote{#1}% +%^^A \endgroup% +%^^A }% +%^^A }{}% +%^^A} +%^^A% \end{macrocode} +%^^A% Bei aktivierter Option \opt{footnotes}|=|\val{symbolheadings} wird +%^^A% dieser Zähler für die Symboleauswahl von Fußnoten in Überschirften +%^^A% inkrementiert. +%^^A% \begin{macrocode} +%^^A\AtEndOfClass{% +%^^A%<book|report> \newcounter{symbolheadings}[chapter] +%^^A%<article|poster> \newcounter{symbolheadings} +%^^A} +%^^A% \end{macrocode} +%^^A% \end{counter}^^A symbolheadings +%^^A% \end{macro}^^A \tud@sec@note +%^^A% \end{macro}^^A \if@tud@symbolheadings +%^^A% \end{option}^^A footnotes +% +% \subsection{Papierformat und Schriftgröße} +% +% Insbesondere für Poster aber auch für alle anderen \TUDScript-Klassen wird +% überprüft, ob nach einer Änderung des Standardpapierformates auch die +% Schriftgröße durch den Anwender angepasst wurde. Diese wird jedoch nicht auf +% Plausibilität geprüft, da der Aufwand hierfür relativ hoch wäre. Vielmehr +% wird davon ausgegangen, dass die explizite Angabe der Schriftgröße bewusst +% und dem Papierformat sowie den verwendeten Textspalten entsprechend erfolgt. % -% Das Paket \pkg{tocloft} verursacht allerlei Probleme. Wird es geladen, so -% erscheint eine entsprechende Warnung. +% \begin{macro}{\tud@x@scr@checkoptions} +% \changes{v2.06}{2018/07/31}{neu}^^A +% \begin{macro}{\tud@x@scr@pt} +% \changes{v2.06}{2018/07/31}{neu}^^A +% Das Makro \cs{tud@x@scr@checkoptions} wird mit \cs{DeclareOption*} für alle +% Optionen aufgerufen, welche kein Mitglied der Familie~\val{TUD} sind. Damit +% kann auf nicht definierte Schlüssel reagiert werden. Anschließend werden diese +% an die zugrundeliegende \KOMAScript-Klasse weitergereicht. % \begin{macrocode} -\BeforePackage{tocloft}{% - \ClassWarningNoLine{\TUD@Class@Name}{% - It is absolutely not recommended to use package\MessageBreak% - `tocloft'. Loading the package will certainly lead\MessageBreak% - to problems with table of contents and any list of\MessageBreak% - floats. You should use the appropriate options of\MessageBreak% - the KOMA-Script classes% - }% +\newcommand*\tud@x@scr@checkoptions{% + \expandafter\tud@x@scr@pt\CurrentOption pt\@nil% + \PassOptionsToClass{\CurrentOption}{\TUD@Class@KOMA}% } % \end{macrocode} +% Wird die Schriftgröße im veralteten Format \val{\dots pt} übergeben, so wird +% der Schalter \cs{if@tud@x@scr@fontsize@set} auf \val{true} gesetzt. +% \begin{macrocode} +\newcommand*\tud@x@scr@pt{} +\def\tud@x@scr@pt #1pt#2\@nil{% + \ifstr{#2}{pt}{\ifnumber{#1}{\@tud@x@scr@fontsize@settrue}{}}{}% +} +% \end{macrocode} +% \end{macro}^^A \tud@x@scr@pt +% \end{macro}^^A \tud@x@scr@checkoptions % % \iffalse -%</class&body> -%<*class&option> +%</class&option> +%<*class&body> % \fi % -% \subsection{Fußnoten in Überschriften} -% -% \begin{option}{footnotes} -% \changes{v2.02}{2014/06/27}{neu}^^A -% \begin{macro}{\if@tud@symbolheadings} -% \changes{v2.02}{2014/06/27}{neu}^^A -% Die \KOMAScript-Option \opt{footnotes} wird um den Schlüssel -% \val{symbolheadings} erweitert, mit welchem eingestellt werden kann, ob in den -% Überschriften Symbole für die Fußnoten anstelle von Zahlen verwendet werden -% sollen. -% \ToDo{\opt{footnotes}=\val{symbolheadings} komplett überarbeiten}[v2.06] +% Wurde das Papierformat jedoch nicht die Schriftgröße geändert, wird eine +% Warnung erzeugt. % \begin{macrocode} -\newif\if@tud@symbolheadings -\TUD@key{footnotes}{% - \TUD@set@numkey{footnotes}{@tempa}{% - {nosymbolheadings}{0},{numberheadings}{0},% - {symbolheadings}{1}% - }{#1}% - \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% nosymbolheadings - \@tud@symbolheadingsfalse% - \or% symbolheadings - \@tud@symbolheadingstrue% +\AtBeginDocument{% + \if@tud@x@scr@fontsize@set\else% + \@tud@res@swafalse% + \ifdim\tud@len@layoutwidth<208mm\relax\@tud@res@swatrue\fi% + \ifdim\tud@len@layoutwidth>212mm\relax\@tud@res@swatrue\fi% + \ifdim\tud@len@layoutheight<295mm\relax\@tud@res@swatrue\fi% + \ifdim\tud@len@layoutheight>299mm\relax\@tud@res@swatrue\fi% + \if@tud@res@swa% + \ClassWarningNoLine{\TUD@Class@Name}{% + You've set a layout size, which is different from\MessageBreak% + default (paper=a4, paper=portrait). Therefore you\MessageBreak% + should additionally specify an explicit font size.\MessageBreak% + See the manual for further information% + }% \fi% \fi% } % \end{macrocode} -% \end{macro}^^A \if@tud@symbolheadings -% \end{option}^^A footnotes -% \begin{counter}{symbolheadings} -% \changes{v2.02}{2014/06/27}{neu}^^A -% Bei aktivierter Option \opt{footnotes}|=|\val{symbolheadings} wird dieser -% Zähler für die Symboleauswahl von Fußnoten in Überschirften inkrementiert. +% +% \iffalse +%</class&body> +%<*class&!inherit|package&fonts> +%<*option> +% \fi +% +% \subsection{Sukkzessives Abarbeiten von Layoutoptionen im Dokument} +% +% Werden mit \cs{TUDoptions} nach \cs{begin\{document\}} mehrere Layoutoptionen +% gleichzeitig angegeben, muss dafür Sorge getragen werden, dass diese in der +% korrekten Reihenfolge abgearbeitet werden. +% +% Das Makro \cs{TUD@SpecialOptionAtDocument} kann innerhalb von \cs{TUD@key} +% verwendet werden, um einen im obligatorischen Argument angegebenen Schalter +% zu aktivieren. Dabei wird über \cs{tud@atdocument@hook} garantiert, dass der +% Befehl \cs{tud@atdocument@process}, welcher für die Abarbeitung der einzelnen +% Makros in der richtigen Reihenfolge verantwortlich ist, lediglich einmal über +% \cs{AtEndOfFamilyOptions*} ausgeführt wird. +% +% \begin{macro}{\TUD@SpecialOptionAtDocument} +% \changes{v2.05}{2016/06/14}{neu}^^A +% \begin{macro}{\tud@atdocument@hook} +% \changes{v2.05}{2016/06/14}{neu}^^A % \begin{macrocode} -\AtEndOfClass{% -%<book|report> \newcounter{symbolheadings}[chapter] -%<article|poster> \newcounter{symbolheadings} +\newcommand*\tud@atdocument@hook{} +\let\tud@atdocument@hook\relax +\newcommand*\TUD@SpecialOptionAtDocument[1]{} +\AfterEndPreamble{% + \renewcommand*\TUD@SpecialOptionAtDocument[1]{% + \ifx\tud@atdocument@hook\relax% + \gdef\tud@atdocument@hook{\global\let\tud@atdocument@hook\relax}% + \AtEndOfFamilyOptions*{% + \tud@atdocument@hook% + \tud@atdocument@process% + }% + \fi% + \gappto\tud@atdocument@hook{\global\booltrue{@#1}}% + }% } % \end{macrocode} -% \end{counter}^^A symbolheadings +% \end{macro}^^A \tud@atdocument@hook +% \end{macro}^^A \TUD@SpecialOptionAtDocument % % \iffalse -%</class&option> +%</option> %<*body> % \fi % -% \begin{macro}{\tud@x@textcase@uclcnotmath} -% \changes{v2.02}{2014/06/27}{\pkg{textcase}: Ignorieren von Fußnoten im -% Argument des Befehls \cs{MakeTextUppercase}}^^A -% \changes{v2.03}{2015/01/21}{\pkg{textcase}: Ignorieren des Befehls -% \cs{@mkboth} im Argument des Befehls \cs{MakeTextUppercase}}^^A -% \begin{macro}{\@uclcnotmath} -% Damit Fußnoten nicht automatisch in Majuskeln gesetzt werden, wird der -% interne Befehl \cs{@uclcnotmath} aus dem Paket \pkg{textcase} angepasst. +% \begin{macro}{\tud@atdocument@process} +% \changes{v2.05}{2016/06/14}{neu}^^A +% \begin{macro}{\if@tud@font@set} +% \changes{v2.05}{2016/06/14}{neu}^^A +% \begin{macro}{\if@tud@math@set} +% \changes{v2.05}{2016/06/14}{neu}^^A +% \begin{macro}{\if@tud@font@skip@set} +% \changes{v2.05}{2016/06/14}{neu}^^A +% \begin{macro}{\if@tud@x@scr@headings@reset} +% \changes{v2.05}{2016/06/14}{neu}^^A +% \begin{macro}{\if@tud@cd@process} +% \changes{v2.05}{2016/06/14}{neu}^^A +% \begin{macro}{\if@tud@cdgeometry@process} +% \changes{v2.05}{2016/06/14}{neu}^^A +% Das Makro \cs{tud@atdocument@process} wird im Dokument ausgeführt, wenn +% mindestens eine Option gesetzt wurde, welche \cs{TUD@SpecialOptionAtDocument} +% verwendet. Je nachdem, welche Schalter insgesamt aktiviert wurden, werden die +% dazugehörigen Befehle für die Einstellungen von Schriften, Layout und/oder +% Satzspiegel in der richtigen Reihenfolge ausgeführt. % \begin{macrocode} -\CheckCommand*\@uclcnotmath[4]{% - \begingroup - #1% - \def\({$}\let\)\(% - \def\NoCaseChange##1{\noexpand\NoCaseChange{\noexpand##1}}% - \@nonchangecase\label - \@nonchangecase\ref - \@nonchangecase\ensuremath - \def\cite##1##{\toks@{\noexpand\cite##1}\@citex}% - \def\@citex##1{\NoCaseChange{\the\toks@{##1}}}% - \def\reserved@a##1##2{\let#2\reserved@a}% - \expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}% - \protected@edef\reserved@a{% - \endgroup - \noexpand\@skipmath#3#4$\valign$% - }% - \reserved@a% -} -\newcommand*\tud@x@textcase@uclcnotmath{% - \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}% - \def\@footnote##1{\NoCaseChange{\the\toks@{##1}}}% - \def\@mkboth##1##2{\NoCaseChange{\@mkboth{##1}{##2}}}% +\newif\if@tud@font@set +\newif\if@tud@math@set +\newif\if@tud@font@skip@set +%<*class> +\newif\if@tud@x@scr@headings@reset +\newif\if@tud@cd@process +\newif\if@tud@cdgeometry@process +%</class> +\newcommand*\tud@atdocument@process{% + \if@tud@font@set% + \tud@font@set% + \global\@tud@font@setfalse% + \global\@tud@font@skip@setfalse% +%<class> \global\@tud@cd@processfalse% + \fi% + \if@tud@font@skip@set% + \tud@font@skip@set% + \global\@tud@font@skip@setfalse% + \fi% + \if@tud@math@set% + \tud@math@set% + \global\@tud@math@setfalse% + \fi% +%<*class> + \if@tud@x@scr@headings@reset% + \tud@x@scr@headings@reset% + \global\@tud@x@scr@headings@resetfalse% + \global\@tud@cd@processfalse% + \fi% + \if@tud@cd@process% + \tud@cd@process% + \global\@tud@cd@processfalse% + \fi% + \if@tud@cdgeometry@process% + \tud@cdgeometry@process% + \global\@tud@cdgeometry@processfalse% + \fi% +%</class> } -\patchcmd{\@uclcnotmath}{\@nonchangecase\ensuremath}{% - \@nonchangecase\ensuremath\tud@x@textcase@uclcnotmath% -}{}{\tud@patch@wrn{@uclcnotmath}} % \end{macrocode} -% \end{macro}^^A \@uclcnotmath -% \end{macro}^^A \tud@x@textcase@uclcnotmath +% \end{macro}^^A \if@tud@cdgeometry@process +% \end{macro}^^A \if@tud@cd@process +% \end{macro}^^A \if@tud@x@scr@headings@reset +% \end{macro}^^A \if@tud@font@skip@set +% \end{macro}^^A \if@tud@math@set +% \end{macro}^^A \if@tud@font@set +% \end{macro}^^A \tud@atdocument@process % % \iffalse %</body> +%</class&!inherit|package&fonts> %<*execute> +%<*class&!inherit|package&fonts> +% \fi +% +% \subsection{Versionsabhängige Voreinstellungen} +% +% Voreinstellungen von neu eingeführten Optionen, welche die resultierende +% Ausgabe entscheidend verändern könnten, werden hier versionsabhängig gesetzt. +% Hierfür wird der Schlüssel \opt{tudscrver} des Mitglieds \val{.comp} vor +% allen anderen Schlüsseln ausgewertet. Danach kann mit \cs{tud@if@v@lower} auf +% die gewählte Kompatibilitäsversion getestet werden. +% \begin{macrocode} +\DeclareOption*{} +\FamilyProcessOptions[.comp]{TUD}\relax +% \end{macrocode} +% Ab der \TUDScript-Version~v2.05 werden einige vertikale Abstände abhängig von +% der Schriftgröße definiert. Sollte eine frühere Kompatibilitätseinstellung +% angegeben worden sein, wird dieses verhalten deaktiviert. +% \begin{macrocode} +\tud@if@v@lower{2.05}{% + \TUD@key@preset{relspacing}{false}% +}{% + \TUD@key@preset{relspacing}{true}% +} +% \end{macrocode} +% Ab \TUDScript-Version~v2.06 werden die verwendeten Schriften auf \OpenSans +% gesetzt, für die Komptibilität zu vorherigen Versionen auf \Univers und \DIN. +% \begin{macrocode} +\tud@if@v@lower{2.06}{% +%<!(class&poster)> \TUD@key@preset{cdoldfont}{true}% +%<class&poster> \TUD@key@preset{cdoldfont}{ultrabold}% + \TUD@key@preset{ttfont}{lmodern}% +%<class> \TUD@key@preset{headings}{light}% +}{% +%<!(class&poster)> \TUD@key@preset{cdfont}{true}% +%<class&poster> \TUD@key@preset{cdfont}{ultrabold}% + \TUD@key@preset{ttfont}{roboto}% +%<class> \TUD@key@preset{headings}{heavy}% +} +% \end{macrocode} +% +% \iffalse +%</class&!inherit|package&fonts> % \fi % % \subsection{Durchreichen von Optionen und Standardoptionen} @@ -624,42 +555,104 @@ % genutzte \TUDScript-Elternklasse. Für Klassen wird vor dem Durchreichen noch % geprüft, ob ein spezielles Papierformat angegeben wurde. % \begin{macrocode} -%<class&!inherit>\DeclareOption*{\tud@x@scr@paper} -%<*class&inherit> +%<*package> +%<*fonts> +\DeclareOption*{\KOMAoptions{\CurrentOption}} +%</fonts> +%<*fixfonts> +\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{tudscrfonts}} +%</fixfonts> +%<*comp> +\DeclareOption*{\TUDoptions{\CurrentOption}} +%</comp> +%</package> +%<*class> +%<*!inherit> +\DeclareOption*{\tud@x@scr@checkoptions} +%</!inherit> +%<*inherit> \DeclareOption*{\PassOptionsToClass{\CurrentOption}{\TUD@Class@Parent}} -%</class&inherit> -%<package&fonts>\DeclareOption*{\KOMAoptions{\CurrentOption}} -%<package&comp>\DeclareOption*{\TUDoptions{\CurrentOption}} +%</inherit> +%</class> % \end{macrocode} % Es werden die Standardoptionen ausgeführt. Für die Klasse \cls{tudscrposter} % werden die Farben aktiviert. % \begin{macrocode} -%<*class&!inherit> -\TUDExecuteOptions{% -%<book|report|article> cd=true,relspacing=true,tudbookmarks=true% -%<poster> cd=bicolor,relspacing=true,tudbookmarks=false,cdfont=ultrabold% -} -%</class&!inherit> %<*package&tutorial> \KOMAoptions{headings=small} \TUDoptions{cdfoot=true} -\TUDExecuteOptions{ToDo=true} %</package&tutorial> +\TUDExecuteOptions{% +%<*package> +%<*fixfonts> + headings=heavy% +%</fixfonts> +%<*tutorial> + ToDo=true% +%</tutorial> +%</package> +%<*class&!inherit> +%<*book|report|article> + cd=true,tudbookmarks=true% +%</book|report|article> +%<*poster> + cd=bicolor,tudbookmarks=false% +%</poster> +%</class&!inherit> +} \TUDProcessOptions\relax % \end{macrocode} % Die korrespindierende \KOMAScript-Klasse bzw. \TUDScript-Elternklasse wird % geladen. % \begin{macrocode} %<*class&!inherit> -\LoadClass{\TUD@Class@KOMA}[2015/04/23] +\LoadClass{\TUD@Class@KOMA}[2018/03/30] %</class&!inherit> %<*class&inherit> +%<manual>\PassOptionsToClass{ttfont=roboto}{\TUD@Class@Parent} \LoadClass{\TUD@Class@Parent} %</class&inherit> % \end{macrocode} % % \iffalse %</execute> +%<*body> +% \fi +% +% \subsection{Anpassungen für das Paket \pkg{textcase}} +% +% \begin{macro}{\@uclcnotmath} +% \begin{macro}{\tud@x@textcase@uclcnotmath} +% \changes{v2.02}{2014/06/27}{\pkg{textcase}: Ignorieren von Fußnoten im +% Argument des Befehls \cs{MakeTextUppercase}}^^A +% \changes{v2.03}{2015/01/21}{\pkg{textcase}: Ignorieren des Befehls +% \cs{@mkboth} im Argument des Befehls \cs{MakeTextUppercase}}^^A +% Damit Fußnoten innerhalb von \cs{MakeTextUppercase} nicht in Majuskeln +% gesetzt werden, wird der interne Befehl \cs{@uclcnotmath} aus dem Paket +% \pkg{textcase} angepasst. +% \begin{macrocode} +\if@tud@cdoldfont@active + \RequirePackage{textcase}[2004/10/07] + \AfterPackage*{textcase}{% + \robustify\NoCaseChange% + \newcommand*\tud@x@textcase@uclcnotmath{% + \@nonchangecase\hologo% + \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}% + \def\@footnote##1{\NoCaseChange{\the\toks@{##1}}}% + \def\@mkboth##1##2{\NoCaseChange{\@mkboth{##1}{##2}}}% + }% + \patchcmd{\@uclcnotmath}{\@nonchangecase\ensuremath}{% + \@nonchangecase\ensuremath\tud@x@textcase@uclcnotmath% + }{}{\tud@patch@wrn{@uclcnotmath}}% + }% +\fi +\TUD@deprecated@cs{NoCaseChange}{@firstofone} +% \end{macrocode} +% \end{macro}^^A \tud@x@textcase@uclcnotmath +% \end{macro}^^A \@uclcnotmath +% +% \iffalse +%</body> % \fi % % \Finale diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx index 0c37ad84779..edd109794ef 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx @@ -1,10 +1,10 @@ -% \CheckSum{2119} +% \CheckSum{2046} % \iffalse meta-comment % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2017 +% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2019 % % ---------------------------------------------------------------------------- % @@ -48,17 +48,24 @@ % % \iffalse %%% From File: tudscr-pagestyle.dtx -%<*driver> -\ifx\ProvidesFile\@undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-pagestyle.dtx}[% - 2017/05/30 v2.05m TUD-Script (pagestyle)% +%<*dtx> +% \fi +% +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\ProvidesFile{tudscr-pagestyle.dtx}[2019/06/28 v2.06 TUD-Script\space% + (pagestyle)% ] -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} +% +% \iffalse \documentclass[english,ngerman,xindy]{tudscrdoc} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} \usepackage{babel} -\usepackage{tudscrfonts} % only load this package, if the fonts are installed +\usepackage{tudscrfonts} \KOMAoptions{parskip=half-} \usepackage{bookmark} \usepackage[babel]{microtype} @@ -75,7 +82,7 @@ \tableofcontents \DocInput{\filename} \end{document} -%</driver> +%</dtx> % \fi % % \selectlanguage{ngerman} @@ -89,7 +96,7 @@ % Es wird der Seitenstil des \CD der \TnUD mit Logo und dem charakteristischen % Querbalken im Kopfbereich definiert. Hierfür kommt das \KOMAScript-Paket % \pkg{scrlayer-scrpage} zum Einsatz. -% \ToDo{Abhängigkeiten zwischen Satzspiegel und Seitenstilen beseitigen}[v2.07] +% \ToDo{Abhängigkeiten Satzspiegel<>Seitenstil beseitigen}[v2.07] % % \StopEventually{\PrintIndex\PrintChanges\PrintToDos} % @@ -191,7 +198,7 @@ contents={% \ifnum\tud@head@bar@num>\@ne\relax% cdhead=barcolor/color \color{HKS41!60}% - \setlength{\@tempdima}{\dimexpr\ht\strutbox-\tud@len@barheight\relax}% + \setlength\@tempdima{\dimexpr\ht\strutbox-\tud@len@barheight\relax}% \ifdim\@tempdima<\z@\relax\setlength\@tempdima{\z@}\fi% \raisebox{\@tempdima}{\rule{\layerwidth}{\layerheight}}% \fi% @@ -549,9 +556,7 @@ % verwendeten Seitenstil erstellen zu können, wird die zusätzliche Ebene % \val{tudheadings.pagecolor} definiert, die \emph{allen} Seitenstilen % hinzugefügt wird. Dabei dient das Makros \cs{tud@pagecolor} zum Umschalten -% der Hintergrundfarben und wird durch die Auswertung der Hilfsmakros -% \cs{tud@layout@\meta{Typ}@num} optionsabhängig für Titel-, Teile- sowie -% Kapitelseiten gesetzt. +% der Hintergrundfarben. % \begin{macrocode} \DeclareNewLayer[% background,% @@ -629,6 +634,7 @@ % \begin{macrocode} \newcommand*\tud@pagestyle{} \let\tud@pagestyle\pagestyle +\newcommand*\currentpagestyle{plain} \pretocmd{\tud@pagestyle}{% \tud@BeforeSelectAnyPageStyle{#1}% \edef\currentpagestyle{#1}% @@ -640,15 +646,23 @@ % vor dem Laden des Paketes wiederhergestellt. Damit werden die Seitenstile % erst aktiviert, nachdem diese auch tatsächlich erstellt wurden. % \begin{macrocode} -\tud@cmd@store{pagestyle} +\tud@cs@store{pagestyle} \renewcommand*\pagestyle[1]{\AfterPackage!{scrlayer-scrpage}{\pagestyle{#1}}} \BeforePackage{scrlayer-scrpage}{% - \tud@cmd@restore{pagestyle}% + \tud@cs@restore{pagestyle}% \undef\tud@pagestyle% + \undef\currentpagestyle% } % \end{macrocode} % \end{macro}^^A \tud@pagestyle % \end{macro}^^A \pagestyle +% Die Seitenstile und Satzspiegel korrelieren sehr stark, weshalb das Paket +% \pkg{scrlayer-scrpage} geladen sein muss und auch alle darauf aufbauenden +% Einstellungen abgeschlossen sein müssen, um die Satzspiegel zu definieren. +% \ToDo{Abhängigkeiten Satzspiegel<>Seitenstil beseitigen}[v2.07] +% \begin{macrocode} +\AfterPackage!{scrlayer-scrpage}{\AtEndPreamble{\tud@cdgeometry@init}} +% \end{macrocode} % \begin{macro}{\ps@tudheadings} % \begin{macro}{\ps@plain.tudheadings} % \begin{macro}{\ps@empty.tudheadings} @@ -781,13 +795,14 @@ % Die Einstellungen für Seiten mit Hintergrundfarbe variieren davon. Zuerst die % für farbige Titel- und Teileseiten\dots % \begin{macrocode} + \tud@locked@bool@preset{@tud@head@widebar}{true}% \ifstr{\tud@pagecolor}{HKS41}{% \renewcommand*\tud@head@logocolor{white}% \renewcommand*\tud@head@fontcolor{white}% \renewcommand*\tud@foot@logocolor{white}% % \end{macrocode} % Die Farbe für die Schrift im Fuß wird für Poster immer weiß gesetzt, falls -% über die Option \opt{backgroundcolor} für den Seitenhintergrund die primäre +% über die Option \opt{backcolor} für den Seitenhintergrund die primäre % Hausfarbe genutzt wird. % \begin{macrocode} %<*book|report|article> @@ -799,7 +814,6 @@ \renewcommand*\tud@foot@fontcolor{HKS41!30}% \fi% %</book|report|article> - \bool@std@lock{@tud@head@widebar}{true}% % \end{macrocode} % \dots sowie die für die farbigen Kapitelseiten. % \begin{macrocode} @@ -817,7 +831,6 @@ \renewcommand*\tud@foot@logocolor{HKS41}% \renewcommand*\tud@foot@fontcolor{HKS41}% \fi% - \bool@std@lock{@tud@head@widebar}{true}% }% }% % \end{macrocode} @@ -836,92 +849,11 @@ % \end{macro}^^A \tud@head@logocolor % \end{macro}^^A \tud@ps@onbackground % -% \subsubsection{Gestaltung des Querbalkens in der Kopfzeile} -% -% \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@fontsize} -% \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 -% Die Schrift der Kopfzeile wird entweder in den Schriften des \CDs oder aber -% in den serifenlosen Standardschriften gesetzt, wobei für beide Varianten -% sowohl eine fettgedruckte als auch eine normale Version benötigt wird. Die -% Schrifthöhe ist durch das \CD unabhängig von der gewählten Schriftgröße im -% Dokument vorgegeben und wird in Abhängigkeit von der Papiergröße gewählt und -% in \cs{tud@head@fontsize} gespeichert. Das Makro \cs{tud@head@font@@bold} -% wird verwendet, um die Einstellung der fetten Schriften ohne die fixierte -% Schriftgröße nutzen zu können. -% \begin{macrocode} -\newcommand*\tud@head@fontsize{} -\newcommand*\tud@head@font@light{} -\newcommand*\tud@head@font@bold{} -%<class&poster>\newcommand*\tud@head@font@@bold{} -\newcommand*\tud@head@font@set{% -% \end{macrocode} -% Die Option \opt{cdhead} wird ausgewertet. Sollte diese inkompatibel gesetzt -% sein, wird eine Warnung ausgegeben. -% \begin{macrocode} - \ifcase\tud@head@font@num\relax% false - \ifnum\tud@cdfont@num>\z@\relax% true/heavy - \if@tud@head@font@set% - \ClassWarning{\TUD@Class@Name}{% - It isn't possible to use `cdhead=false'\MessageBreak% - together with `cdfont=true'% - }% - \fi% - \TUDoptions{cdhead=true}% - \fi% - \fi% -% \end{macrocode} -% Die Schriften für den Kopf im \CD werden nachfolgend definiert. Abhängig von -% \cs{tud@cdfont@num} werden entweder die Schriften des \CDs oder aber die -% serifenlose Standardschrift für die Kopfzeile verwendet. Die Rückfallebene: -% \begin{macrocode} - \if@tud@head@font@set% - \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {\sfdefault}{\mddefault}{\updefault}{\tud@head@fontsize}% - \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% - {\sfdefault}{\bfdefault}{\updefault}{\tud@head@fontsize}% -%<*class&poster> - \protected\gdef\tud@head@font@@bold{% - \usefont{\encodingdefault}{\sfdefault}{\bfdefault}{\updefault}% - }% -%</class&poster> -% \end{macrocode} -% Und jetzt die eigentlichen Schriften im \CD. -% \begin{macrocode} - \ifcase\tud@head@font@num\relax\else% true/heavy - \if@tud@univers% - \ifcase\tud@head@font@num\relax\or% true - \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {\tud@univers}{l}{n}{\tud@head@fontsize}% - \or% heavy - \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {\tud@univers}{m}{n}{\tud@head@fontsize}% - \fi% - \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% - {\tud@univers}{b}{n}{\tud@head@fontsize}% -%<*class&poster> - \protected\gdef\tud@head@font@@bold{% - \usefont{\encodingdefault}{\tud@univers}{b}{n}% - }% -%</class&poster> - \fi% - \fi% - \global\@tud@head@font@setfalse% - \global\@tud@head@text@settrue% - \fi% -} -% \end{macrocode} -% \end{macro}^^A \tud@head@font@@bold -% \end{macro}^^A \tud@head@font@bold -% \end{macro}^^A \tud@head@font@light -% \end{macro}^^A \tud@head@fontsize -% \end{macro}^^A \tud@head@font@set +% \subsubsection{Inhalt des Querbalkens in der Kopfzeile} +% +% Mit dem Makro \cs{tud@head@font@set} wird die zu verwendende Schrift für den +% Querbalken definiert. Hier wird der zu verwendende Inhalt formatiert. +% % \begin{macro}{\tud@head@text@line} % \begin{macro}{\tud@head@text@list} % \changes{v2.05}{2015/11/26}{neu}^^A @@ -997,9 +929,9 @@ % mit \cs{tud@head@text@add}\oarg{Trennzeichen}\marg{Schrift}\marg{Feld}. Die % dafür benötigten Hilfsmakros werden vor der Verwendung initialisiert. % \begin{macrocode} - \def\tud@head@text@line{}% - \def\tud@head@text@list{}% - \def\tud@head@text@buffer{}% + \let\tud@head@text@line\@empty% + \let\tud@head@text@list\@empty% + \let\tud@head@text@buffer\@empty% \tud@head@text@add[\enskip]{\tud@head@font@bold}{\@faculty}% \tud@head@text@add{\tud@head@font@light}{\@department}% \tud@head@text@add{\tud@head@font@light}{\@institute}% @@ -1032,16 +964,9 @@ % \begin{macrocode} \newcommand*\tud@head@text@box{% % \end{macrocode} -% Sollte keine Fakultät angegeben sein, wird eine Warnung ausgegeben. -% \begin{macrocode} - \ifx\@faculty\@empty% - \ClassWarningNoLine{\TUD@Class@Name}{No `\string\faculty' given}% - \faculty{}% - \fi% -% \end{macrocode} % Die Ausgabe der Textzeile(n) mit Fakultät etc. im Kopfbereiche erfolgt über -% das Makro \cs{tud@head@text@write}. Hierbei ist zu beachten, dass für die -% erste Zeile bei einem zweifarbigem Kopf eine andere Textfarbe als für die +% das Makro \cs{tud@head@text@write}. Hierbei ist zu beachten, dass für die +% erste Zeile bei einem zweifarbigem Kopf eine andere Textfarbe als für die % restlichen benötigt wird. Außerdem ist für diese aufgrund der Linien im % Querbalken ein etwas größerer Abstand zur zweiten Zeile notwendig, weshalb % die temporären Makros \cs{@tempb} und \cs{@tempc} einmalig genutzt werden. @@ -1197,7 +1122,7 @@ % \changes{v2.03}{2015/02/04}{neu}^^A % \begin{macro}{\tud@head@bar@num} % \changes{v2.03}{2015/02/04}{neu}^^A -% \begin{macro}{\tud@head@bar@num@lock} +% \begin{macro}{\if@tud@head@bar@num@locked} % \changes{v2.04}{2015/04/01}{neu}^^A % \begin{macro}{\if@tud@head@widebar} % \changes{v2.03}{2015/02/14}{neu}^^A @@ -1212,9 +1137,9 @@ % (Institut, Fakultät etc.) geändert werden. Zusätzlich ist die Laufweite des % Querbalkens bzw. die Farbe einstellbar. % \begin{macrocode} -\cs@lock{tud@head@font@num}{0} -\cs@lock{tud@head@bar@num}{0} -\bool@lock{@tud@head@widebar} +\tud@locked@newnum{tud@head@font@num}{0} +\tud@locked@newnum{tud@head@bar@num}{0} +\tud@locked@newbool{@tud@head@widebar} \newif\if@tud@head@font@set \newif\if@tud@head@date \TUD@key{cdhead}[true]{% @@ -1241,23 +1166,23 @@ }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \cs@set@lock{tud@head@font@num}{0}% + \tud@locked@num@set{tud@head@font@num}{0}% \or% true - \cs@set@lock{tud@head@font@num}{1}% + \tud@locked@num@set{tud@head@font@num}{1}% \or% heavy - \cs@set@lock{tud@head@font@num}{2}% + \tud@locked@num@set{tud@head@font@num}{2}% \or% nocolor - \cs@set@lock{tud@head@bar@num}{0}% + \tud@locked@num@set{tud@head@bar@num}{0}% \or% litecolor - \cs@set@lock{tud@head@bar@num}{1}% + \tud@locked@num@set{tud@head@bar@num}{1}% \or% barcolor - \cs@set@lock{tud@head@bar@num}{2}% + \tud@locked@num@set{tud@head@bar@num}{2}% \or% color - \cs@set@lock{tud@head@bar@num}{3}% + \tud@locked@num@set{tud@head@bar@num}{3}% \or% textwidth - \bool@set@lock{@tud@head@widebar}{false}% + \tud@locked@bool@set{@tud@head@widebar}{false}% \or% paperwidth - \bool@set@lock{@tud@head@widebar}{true}% + \tud@locked@bool@set{@tud@head@widebar}{true}% \or% date \@tud@head@datetrue% \or% nodate @@ -1273,7 +1198,7 @@ % \end{macro}^^A \if@tud@head@font@set % \end{macro}^^A \if@tud@head@widebar@locked % \end{macro}^^A \if@tud@head@widebar -% \end{macro}^^A \tud@head@bar@num@lock +% \end{macro}^^A \if@tud@head@bar@num@locked % \end{macro}^^A \tud@head@bar@num % \end{macro}^^A \if@tud@head@font@num@locked % \end{macro}^^A \tud@head@font@num @@ -1428,9 +1353,9 @@ \renewcommand*\tud@headlogo@filename{#2}% \renewcommand*\tud@headlogo@fileoptions{#1}% % \end{macrocode} -% Nachdem Setzen des Zweitlogos müssen die entsprechenden Boxen mit den Logos -% von \DDC neu gesetzt werden. Weil dieses dabei vom Kopf in den Fuß oder -% umgekehrt wandern könnte, werden beide relevanten Makros ausgeführt. +% Nach dem Setzen des Zweitlogos müssen die Boxen mit den Logos von \DDC neu +% gesetzt werden. Weil dieses dabei vom Kopf in den Fuß oder umgekehrt wandern +% könnte, werden beide relevanten Makros ausgeführt. % \begin{macrocode} \global\@tud@headlogo@option@settrue% \global\@tud@footlogo@option@settrue% @@ -1572,13 +1497,12 @@ % der Fußzeile aktiviert werden. % % Einige Einstellungen sind abhängig vom Paket \pkg{scrlayer-scrpage}, welches -% unter Umständen nicht geladen wird. Mit dem Befehl \cs{TUD@AfterPackage@do} -% kann Quelltext nur dann ausgeführt werden, wenn ein Paket auch tatsächlich -% geladen wurde. Hierfür ist die Initialisierung mit \cs{TUD@AfterPackage@set} -% nötig. +% unter Umständen nicht geladen wird. Mit \cs{TUD@AfterPackage@do} kann +% Quelltext nur dann ausgeführt werden, wenn ein Paket auch tatsächlich geladen +% wurde. Hierfür ist die Initialisierung mit \cs{TUD@AfterPackage@set} nötig. % \begin{macrocode} \TUD@AfterPackage@set{scrlayer-scrpage} -\bool@lock{@tud@foot@colored} +\tud@locked@newbool{@tud@foot@colored} \TUD@key{cdfoot}[true]{% \TUD@set@numkey{cdfoot}{@tempa}{% \TUD@bool@numkey,% @@ -1598,7 +1522,7 @@ \TUD@AfterPackage@do{scrlayer-scrpage}{% \tud@ps@restore{scrheadings}% \tud@ps@restore{plain.scrheadings}% - \tud@font@koma@unset{pageheadfoot}% + \tud@komafont@unset{pageheadfoot}% }% % \end{macrocode} % Die ursprünglichen Kopf- und Fußzeilen werden mit dem Makro \cs{tud@ps@store} @@ -1610,7 +1534,7 @@ \TUD@AfterPackage@do{scrlayer-scrpage}{% \tud@ps@store{scrheadings}% \tud@ps@store{plain.scrheadings}% - \tud@font@koma@set{pageheadfoot}{\upshape}% + \tud@komafont@set{pageheadfoot}{\upshape}% \clearpairofpagestyles% \ofoot[\pagemark]{% \if@twoside\ifodd\value{page}\else\pagemark\quad\fi\fi% @@ -1623,15 +1547,16 @@ % Hier kann die Hintergrundfarbe des Fußes aktiviert bzw. deaktiviert werden. % \begin{macrocode} \or% nocolor - \bool@set@lock{@tud@foot@colored}{false}% + \tud@locked@bool@set{@tud@foot@colored}{false}% \or% color - \bool@set@lock{@tud@foot@colored}{true}% + \tud@locked@bool@set{@tud@foot@colored}{true}% \fi% % \end{macrocode} % Außerdem kann mit der Option \opt{extrabottommargin} gesetzt werden. % \begin{macrocode} \else% - \ifdimen{#1}{\TUDoptions{extrabottommargin=#1}}{}% + \tud@lowerstring\tud@res@a{#1}% + \ifdimen{\tud@res@a}{\TUDoptions{extrabottommargin=#1}}{}% \fi% } % \end{macrocode} @@ -1656,9 +1581,9 @@ % zurückgegriffen werden muss. % \begin{macrocode} \newcommand*\tud@ps@@store[4]{% - \ifcsdef{@@tud@ps@#1@#2@#3@#4}{}{% + \ifcsundef{@@tud@ps@#1@#2@#3@#4}{% \csletcs{@@tud@ps@#1@#2@#3@#4}{sls@ps@#1@#2@#3@#4}% - }% + }{}% } \newcommand*\tud@ps@restore[1]{% \tud@ps@@restore{#1}{odd}{left}{head}% @@ -1783,8 +1708,8 @@ } % \end{macrocode} % Hiermit werden die \DDC-Optionen \opt{ddc} bzw. \opt{ddcfoot} abgearbeitet. -% Dies geschieht bei der Ausgabe des dazugehörigen Layers, falls hierfür der -% entsprechende Schalter \cs{if@tud@footlogo@option@set} gesetzt wurde. +% Dies geschieht, falls hierfür der Schalter \cs{if@tud@footlogo@option@set} +% gesetzt wurde, bei der Ausgabe des dazugehörigen Layers. % \begin{macrocode} \newcommand*\tud@footlogo@option@set{% \if@tud@footlogo@option@set% @@ -1833,7 +1758,7 @@ }% \vss\vss% }{% - You should reduce `footlogoheight', because it is\MessageBreak + You should reduce `footlogoheight', because it is\MessageBreak% too high (\the\dimexpr\tud@dim@footlogoheight\relax).% \ifnum\tud@cdgeometry@num>\@ne% true/symmetric/twoside \MessageBreak% @@ -1867,6 +1792,14 @@ % \changes{v2.03}{2015/01/27}{neu}^^A % \begin{macro}{\footlogosep} % \changes{v2.03}{2015/01/27}{neu}^^A +% \begin{macro}{\tud@footlogo@cmd@set} +% \changes{v2.04}{2015/06/01}{neu}^^A +% \begin{macro}{\tud@footlogo@cmd@@set} +% \changes{v2.03}{2015/01/27}{neu}^^A +% \changes{v2.03}{2015/02/02}{optionale Parameter für unterschiedliche Dateien +% individuell nutzbar}^^A +% \begin{macro}{\if@tud@footlogo@cmd@set} +% \changes{v2.04}{2015/06/01}{neu}^^A % Mit dem Befehl \cs{footlogo} kann eine kommasparierte Liste für Logos im % Fuß angegeben werden, die mit \cs{footlogosep} voneinander getrennt werden. % \begin{macrocode} @@ -1881,18 +1814,6 @@ \tud@comp@resetpagestyle% } % \end{macrocode} -% \end{macro}^^A \footlogosep -% \end{macro}^^A \tud@footlogo@fileoptions -% \end{macro}^^A \tud@footlogo@filenames -% \end{macro}^^A \footlogo -% \begin{macro}{\tud@footlogo@cmd@set} -% \changes{v2.04}{2015/06/01}{neu}^^A -% \begin{macro}{\tud@footlogo@cmd@@set} -% \changes{v2.03}{2015/01/27}{neu}^^A -% \changes{v2.03}{2015/02/02}{optionale Parameter für unterschiedliche Dateien -% individuell nutzbar}^^A -% \begin{macro}{\if@tud@footlogo@cmd@set} -% \changes{v2.04}{2015/06/01}{neu}^^A % Die mit \cs{footlogo} angegeben Logos und die dazugehörigen Einstellungen, % welche entweder allgemein über das optionale Argument oder aber individuell % durch \val{:} an den Dateinamen angehängt übergeben wurden, werden hier in @@ -1938,8 +1859,8 @@ % den Anwender so gestaltet, dass individuelle Parameter mit einem Doppelpunkt % direkt an den Dateinamen angehangen werden können. % \begin{macrocode} - \def\@tempa{}% - \def\@tempb{}% + \let\@tempa\@empty% + \let\@tempb\@empty% \@tempswatrue% \def\do##1{% \if@tempswa% @@ -1979,6 +1900,10 @@ % \end{macro}^^A \if@tud@footlogo@cmd@set % \end{macro}^^A \tud@footlogo@cmd@@set % \end{macro}^^A \tud@footlogo@cmd@set +% \end{macro}^^A \footlogosep +% \end{macro}^^A \tud@footlogo@fileoptions +% \end{macro}^^A \tud@footlogo@filenames +% \end{macro}^^A \footlogo % \begin{macro}{\tud@footlogo@cmd@use} % \changes{v2.04}{2015/06/01}{neu}^^A % Der Befehl \cs{tud@footlogo@cmd@use} wird genutzt, um die einzelnen Logos für @@ -2004,6 +1929,10 @@ % \begin{macro}{\tud@footcontent@@do} % \changes{v2.04}{2015/04/21}{neu}^^A % \changes{v2.05}{2016/04/17}{Stern im Argument erhält aktuellen Inhalt}^^A +% \begin{macro}{\tud@footcontent@usefont} +% \changes{v2.06}{2018/08/01}{neu}^^A +% \begin{macro}{\tud@footcontent@fontsize} +% \changes{v2.06}{2018/08/01}{neu}^^A % \begin{macro}{\tud@footcontent@fontface} % \changes{v2.04}{2015/06/01}{neu}^^A % \changes{v2.05}{2015/07/21}{Bugfix für die Schriftgröße und den Durchschuss @@ -2019,10 +1948,22 @@ % \begin{macrocode} \newkomafont{tudheadings}{\tud@color{\tud@foot@fontcolor}} % \end{macrocode} -% Die mit \cs{footcontent} angegebenen Inhalte werden in diesen drei Makros -% gesichert, weshalb diese vorher alloziert werden. Anschließend erfolgt die -% Definition des Befehls. +% Dieser Befehl wird zur Formatierung der Schrift im Fußbereich definiert. +% \begin{macrocode} +\newcommand*\tud@footcontent@usefont[1]{% + \usekomafont{tudheadings}{% + \tud@footcontent@fontsize% + \tud@footcontent@fontface% + \selectfont% + #1% + }% +} +% \end{macrocode} +% Die mit \cs{footcontent} angegebenen Einstellungen und Inhalte werden in +% diesen Makros gesichert, weshalb diese vorher alloziert werden. Anschließend +% erfolgt die Definition des Befehls. % \begin{macrocode} +\newcommand*\tud@footcontent@fontsize{} \newcommand*\tud@footcontent@fontface{} \newcommand*\tud@footcontent@left{} \newcommand*\tud@footcontent@right{\@nil} @@ -2032,14 +1973,12 @@ % \begin{macrocode} \newcommand*\footcontent{% \kernel@ifstar{% - \renewcommand*\tud@footcontent@fontface{\usekomafont{tudheadings}}% + \renewcommand*\tud@footcontent@fontsize{}% \tud@footcontent@do% }{% - \renewcommand*\tud@footcontent@fontface{% - \usekomafont{tudheadings}% + \renewcommand*\tud@footcontent@fontsize{% \setlength\@tempdima{\tud@head@fontsize\p@}% - \fontsize{\tud@head@fontsize}{1.25\@tempdima}% - \selectfont% + \fontsize{\@tempdima}{1.25\@tempdima}% }% \tud@footcontent@do% }% @@ -2057,7 +1996,13 @@ } \newcommand*\tud@footcontent@@do{} \def\tud@footcontent@@do#1#2[#3]{% - \appto\tud@footcontent@fontface{#1\selectfont}% +% \end{macrocode} +% Wurde im optionalen Argument für zusätzliche Schrifteinstellungen ein Stern +% verwendet, bleibt die bisherige Definition bestehen. +% \begin{macrocode} + \if\detokenize{*#1}\relax\else% + \renewcommand*\tud@footcontent@fontface{#1}% + \fi% % \end{macrocode} % Wurde in einem der Argumente für den linken und/oder rechten Inhalt ein Stern % verwendet, bleibt die bisherige Definition bestehen. @@ -2073,6 +2018,8 @@ % \end{macro}^^A \tud@footcontent@right % \end{macro}^^A \tud@footcontent@left % \end{macro}^^A \tud@footcontent@fontface +% \end{macro}^^A \tud@footcontent@fontsize +% \end{macro}^^A \tud@footcontent@usefont % \end{macro}^^A \tud@footcontent@@do % \end{macro}^^A \tud@footcontent@do % \end{KOMAfont}^^A tudheadings @@ -2141,8 +2088,8 @@ \ifxblank{#1}{}{{\tud@head@font@@bold#1\newline}}% % \end{macrocode} % Das Makro zum Aufteilen der Autorenangaben wird für die hier benötigte Form -% definiert. Dabei wird die Ausgabe aller nicht \emph{lokal} angegebenen Felder -% unterdrückt, indem der Befehl \cs{tud@multiple@fields@preset} im zweiten +% definiert. Die Ausgabe aller nicht \emph{lokal} angegebenen Felder wird +% unterdrückt, indem das Makro \cs{tud@multiple@fields@preset} im zweiten % Argument mit einem \val{*} aufgerufen wird. % \begin{macrocode} \renewcommand*\tud@split@author@do[2]{% @@ -2243,33 +2190,34 @@ \linespread{1}% \vss% \hbox to #2{% - \tud@footcontent@fontface% + \tud@footcontent@usefont{% % \end{macrocode} % Wurde das optionale Argument nach dem obligatorischen nicht genutzt, so wird % der Inhalt über die komplette Breite des Textbereiches ausgegeben. % \begin{macrocode} - \def\@tempa{\@nil}% - \ifx\@tempa\tud@footcontent@right\relax% - \vtop{% - \hsize=\dimexpr#2-\@tempdimc\relax% - \strut\ignorespaces\tud@footcontent@left\strut% - }% + \def\@tempa{\@nil}% + \ifx\@tempa\tud@footcontent@right\relax% + \vtop{% + \hsize=\dimexpr#2-\@tempdimc\relax% + \strut\ignorespaces\tud@footcontent@left\strut% + }% % \end{macrocode} % Im zweispaltigen modus werden zwei vertikale Boxen erzeugt, zwischen denen % der Abstand \cs{columnsep} eingefügt wird. % \begin{macrocode} - \else% - \vtop{% - \hsize=\dimexpr(#2-\columnsep)/2\relax% - \strut\ignorespaces\tud@footcontent@left\strut% - }% - \hspace{\columnsep}% - \vtop{% - \hsize=\dimexpr(#2-\columnsep)/2-\@tempdimc\relax% - \strut\ignorespaces\tud@footcontent@right\strut% - }% - \fi% - \hss% + \else% + \vtop{% + \hsize=\dimexpr(#2-\columnsep)/2\relax% + \strut\ignorespaces\tud@footcontent@left\strut% + }% + \hspace{\columnsep}% + \vtop{% + \hsize=\dimexpr(#2-\columnsep)/2-\@tempdimc\relax% + \strut\ignorespaces\tud@footcontent@right\strut% + }% + \fi% + \hss% + }% }% \vss\vss% % \end{macrocode} @@ -2294,65 +2242,53 @@ % % \iffalse %</class&body> -%<*class&option> % \fi % % \subsection{Optionen für das \DDC-Logo} % -% \begin{macro}{\if@tud@ddc@internal} -% \changes{v2.02}{2014/07/08}{neu}^^A -% Dieser Schalter wird intern von den Optionen \opt{ddc}, \opt{ddchead} und -% \opt{ddcfoot} verwendet, um rekursive Aufrufe der Optionen zu verhindern. -% \begin{macrocode} -\newif\if@tud@ddc@internal -% \end{macrocode} -% \end{macro}^^A \if@tud@ddc@internal -% -% \iffalse -%</class&option> -%<*class> -% \fi -% % \begin{macro}{\tud@comp@clearpage} % \changes{v2.04}{2015/05/31}{neu}^^A % \begin{macro}{\tud@comp@resetpagestyle} % \changes{v2.04}{2015/05/31}{neu}^^A +% \begin{macro}{\if@tud@ddc@internal} +% \changes{v2.02}{2014/07/08}{neu}^^A % Bis zur Version~v2.02 wurden unterschiedliche Satzsiegel für den Seitenfuß % mit und ohne \DDC-Logo verwendet. Damit dieser im Zweifelsfall umgestellt % werden kann, wurde vor dem Ausführen der entsprechenden Optionen ein % Seitenumbruch erzwungen und nach dem Verarbeiten der Optionen der aktuelle % Seitenstil erneut aufgerufen. Die beiden folgenden Makros werden für dieses % Unterfangen definiert, jedoch bei der Abarbeitung der Optionen nur noch im -% Kompatibilitätmodus ausgeführt. +% Kompatibilitätmodus ausgeführt. Der Schalter \cs{if@tud@ddc@internal} wird +% intern von den Optionen \opt{ddc}, \opt{ddchead} und \opt{ddcfoot} verwendet, +% um rekursive Aufrufe der Optionen zu verhindern. % \begin{macrocode} -%<*option> +%<*class&option> +\newif\if@tud@ddc@internal \newcommand*\tud@comp@clearpage{}% \newcommand*\tud@comp@resetpagestyle{}% -%</option> -%<*body> -\AtBeginDocument{% - \tud@if@v@lower{2.04}{% - \renewcommand*\tud@comp@clearpage{% - \if@tud@ddc@internal\else% - \tud@if@tudheadings{\currentpagestyle}{\clearpage}{}% - \fi% - }% - \renewcommand*\tud@comp@resetpagestyle{% - \if@tud@ddc@internal\else% - \tud@if@tudheadings{\currentpagestyle}{% - \expandafter\pagestyle\expandafter{\currentpagestyle}% - }{}% - \fi% - }% - }{}% -} -%</body> +%</class&option> +%<*class&body> +\tud@if@v@lower{2.04}{% + \renewcommand*\tud@comp@clearpage{% + \if@tud@ddc@internal\else% + \tud@if@tudheadings{\currentpagestyle}{\clearpage}{}% + \fi% + }% + \renewcommand*\tud@comp@resetpagestyle{% + \if@tud@ddc@internal\else% + \tud@if@tudheadings{\currentpagestyle}{% + \expandafter\pagestyle\expandafter{\currentpagestyle}% + }{}% + \fi% + }% +}{}% +%</class&body> % \end{macrocode} +% \end{macro}^^A \if@tud@ddc@internal % \end{macro}^^A \tud@comp@clearpage % \end{macro}^^A \tud@comp@resetpagestyle % % \iffalse -%</class> %<*class&option> % \fi % @@ -2379,9 +2315,9 @@ \TUD@bool@numkey,% {color}{2},{colour}{2},{cdcolor}{2},{cdcolour}{2},% {colorblack}{3},{colourblack}{3},{cdcolorblack}{3},{cdcolourblack}{3},% - {gray}{4},{grey}{4},{HKS92}{4},{cdgray}{4},{cdgrey}{4},% + {gray}{4},{grey}{4},{hks92}{4},{cdgray}{4},{cdgrey}{4},% {black}{5},{cdblack}{5},% - {blue}{6},{HKS41}{6},{cdblue}{6},{cddarkblue}{6},% + {blue}{6},{hks41}{6},{cdblue}{6},{cddarkblue}{6},% {white}{7},{cdwhite}{7}% } % \end{macrocode} @@ -2525,8 +2461,8 @@ % \changes{v2.02}{2014/06/23}{neu}^^A % Dieses Hilfsmakro wird aufgerufen, wenn geprüft wird, welche Einstellungen % für Kopf und Fuß des Seitenstiles \pgs{tudheadings} zum Tragen kommen sollen. -% Dabei wird über den Schalter \cs{if@tud@ddc@auto}festgelegt, ob die Auswahl -% des \DDC-Logos automatisch erfolgen soll~-- Option \opt{ddc} wurde verwendet. +% Über den Schalter \cs{if@tud@ddc@auto} wird festgelegt, ob die Auswahl des +% \DDC-Logos automatisch erfolgen soll~-- Option \opt{ddc} wurde verwendet. % Ist dies der Fall, wird das Logo standardmäßig im Kopf gesetzt. Ist jedoch % durch den Befehl \cs{headlogo} ein Zweitlogo angegeben worde, wird dieses in % der Fußzeile ausgegeben. Die Verwendung einer der Optionen \opt{ddchead} bzw. @@ -2743,13 +2679,13 @@ \def\tud@envir@ps{tudheadings}% \TUD@parameter@set{tudpage}{#1}% \tud@envir@selectps% - \tud@x@multicol@check% % \end{macrocode} % Falls das \pkg{multicol}-Paket geladen ist und eine Spaltenanzahl angegeben % ist, wird die entsprechende Umgebung gesartet, mit \cs{BODY} der Inhalt der % \env{tudpage}-Umgebung ausgegeben und anschließend gegebenenfalls die % \env{multicols}-Umgebung beendet. % \begin{macrocode} + \tud@x@multicol@check% \ifnum\tud@x@multicol@num>\@ne\relax% \begin{multicols}{\tud@x@multicol@num}% \fi% @@ -2783,7 +2719,7 @@ % werden. Die Spaltenanzahl kann auch ohne den entsprechenden Schlüssel direkt % Parameter angegeben werden. % \begin{macrocode} - \TUD@parameter@def{columns}{\cs@std@lock{tud@x@multicol@num}{#1}}% + \TUD@parameter@def{columns}{\renewcommand*\tud@x@multicol@num{#1}}% % \end{macrocode} % Mit dem Parameter \prm{pagestyle} kann der verwendete Seitenstil eingestellt % werden, wobei einer der \pgs{tudheadings}-Seitenstile verwendet wird. @@ -2820,8 +2756,8 @@ % \end{macro}^^A \tud@envir@selectps % \end{macro}^^A \tud@envir@ps % \end{parameter}^^A pagestyle -% \end{parameter} ^^A columns -% \end{parameter} ^^A language +% \end{parameter}^^A columns +% \end{parameter}^^A language % \end{environment}^^A tudpage % % \iffalse diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-supervisor.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-supervisor.dtx index a5102480414..0d8de251f3d 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-supervisor.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-supervisor.dtx @@ -4,7 +4,7 @@ % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2017 +% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2019 % % ---------------------------------------------------------------------------- % @@ -48,25 +48,35 @@ % % \iffalse %%% From File: tudscr-supervisor.dtx -%<*driver> -\ifx\ProvidesFile\@undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-supervisor.dtx}[% - 2017/03/29 v2.05l TUD-Script\space% -%</driver> +%<*dtx> +% \fi +% +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\ProvidesFile{tudscr-supervisor.dtx}[2019/06/28 v2.06 TUD-Script\space% +% +% \iffalse +%</dtx> %<package>\ProvidesPackage{tudscrsupervisor}[% -%<*driver|package> +%<*package> %!TUD@Version +%</package> %<package> package +%<*dtx|package> +% \fi (commands for supervisors)% ] -%</driver|package> -%<*driver> -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} +% \iffalse +%</dtx|package> +%<*dtx> \documentclass[english,ngerman,xindy]{tudscrdoc} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} \usepackage{babel} -\usepackage{tudscrfonts} % only load this package, if the fonts are installed +\usepackage{tudscrfonts} \KOMAoptions{parskip=half-} \usepackage{bookmark} \usepackage[babel]{microtype} @@ -83,7 +93,7 @@ \tableofcontents \DocInput{\filename} \end{document} -%</driver> +%</dtx> % \fi % % \selectlanguage{ngerman} @@ -201,7 +211,7 @@ % \end{macrocode} % Der Befehl \cs{tud@split@author@do} wird innerhalb der \TUDScript-Klassen zur % formatierten Ausgabe mehrerer Autoren auf der Titelseite verwendet, welche -% durch\cs{author}\marg{Autor(en)} angegeben und mit \cs{and} getrennt wurden. +% durch \cs{author}\marg{Autor(en)} angegeben und mit \cs{and} getrennt wurden. % Er wird hier auf die Ausgabe der Autoren mit den jeweils zusätzlich gegebenen % Informationen in einer Tabelle angepasst. % \begin{macrocode} @@ -283,7 +293,7 @@ % kann die standardmäßige Überschrift überschrieben werden. % \begin{macrocode} \cleardoubleoddpage% - \def\@headline{}% + \let\@headline\@empty% \TUD@parameter@family{tudpage}{% \TUD@parameter@def{headline}{\def\@headline{##1}}% \TUD@parameter@let{heading}{headline}% @@ -379,7 +389,6 @@ % \begin{macrocode} \newcommand\taskform[3][]{% \begin{task}[#1]% - \removelastskip% \ifblank{#2}{}{\minisec{\objectivesname}#2}% \ifblank{#3}{}{% \minisec{\focusname}% @@ -413,7 +422,7 @@ % PDF einen Lesezeichen- oder auch Outline-Eintrag gesetzt. % \begin{macrocode} \cleardoubleoddpage% - \def\@headline{}% + \let\@headline\@empty% \TUD@parameter@family{tudpage}{% \TUD@parameter@def{headline}{\def\@headline{##1}}% \TUD@parameter@let{heading}{headline}% @@ -438,11 +447,11 @@ % \begin{macrocode} \removelastskip% \ifdim\parskip>\z@\vskip\parskip\else\vskip\topsep\fi% - \setlength{\@tempskipa}{\smallskipamount}% + \setlength\@tempskipa{\smallskipamount}% \ifx\@grade\@empty\else% \vskip\@tempskipa\noindent% \gradetext% - \setlength{\@tempskipa}{\bigskipamount}% + \setlength\@tempskipa{\bigskipamount}% \fi% \ifx\@date\@empty\else% \vskip\@tempskipa\noindent% @@ -488,7 +497,6 @@ % \begin{macrocode} \newcommand\evaluationform[5][]{% \begin{evaluation}[#1]% - \removelastskip% \ifblank{#2}{}{\minisec{\taskname}#2}% \ifblank{#3}{}{\minisec{\contentname}#3}% \ifblank{#4}{}{\minisec{\assessmentname}#4}% @@ -569,10 +577,9 @@ % \begin{macrocode} \newcommand\noticeform[3][]{% \begin{notice}[#1]% - \removelastskip% \ifblank{#2}{}{% \ifx\@@title\@empty\else% - \minisec{\expandonce{\@@title}}% + \minisec{\expandonce{\@@title}}\medskip% \fi% #2% }% diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-texindy.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-texindy.dtx index 1e6ea55abc6..a666c74ef5c 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-texindy.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-texindy.dtx @@ -4,7 +4,7 @@ % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2017 +% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2019 % % ---------------------------------------------------------------------------- % @@ -48,17 +48,24 @@ % % \iffalse %%% From File: tudscr-texindy.dtx -%<*driver> -\ifx\ProvidesFile\@undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-texindy.dtx}[% - 2017/05/30 v2.05m TUD-Script (texindy style files)% +%<*dtx> +% \fi +% +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\ProvidesFile{tudscr-texindy.dtx}[2019/06/28 v2.06 TUD-Script\space% + (texindy style files)% ] -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} +% +% \iffalse \documentclass[english,ngerman,xindy]{tudscrdoc} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} \usepackage{babel} -\usepackage{tudscrfonts} % only load this package, if the fonts are installed +\usepackage{tudscrfonts} \KOMAoptions{parskip=half-} \usepackage{bookmark} \usepackage[babel]{microtype} @@ -75,7 +82,7 @@ \tableofcontents \DocInput{\filename} \end{document} -%</driver> +%</dtx> % \fi % % \selectlanguage{ngerman} @@ -111,7 +118,7 @@ % \changes{v2.05}{2016/04/24}{neu}^^A % \begin{macro}{\if@tud@xdy@glo} % \changes{v2.05}{2016/04/25}{neu}^^A -% Dies sind die Hilfsmakros für die Erzeugung der notwendigen Dateien. Mit +% Dies sind die Hilfsmakros für die Erzeugung der nötigen Dateien. Mit dem % \cs{tud@xdy@create} wird angegeben, ob die Stildatei für einen Index oder ein % Glossar erzeugt wird, was prinzipiell nur für die Klasse \cls{tudscrdoc} % notwendig ist. diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-title.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-title.dtx index bfc2c020d8d..d797e96b169 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-title.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-title.dtx @@ -1,10 +1,10 @@ -% \CheckSum{1387} +% \CheckSum{1406} % \iffalse meta-comment % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2017 +% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2019 % % ---------------------------------------------------------------------------- % @@ -48,17 +48,24 @@ % % \iffalse %%% From File: tudscr-title.dtx -%<*driver> -\ifx\ProvidesFile\@undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-title.dtx}[% - 2017/05/30 v2.05m TUD-Script (title)% +%<*dtx> +% \fi +% +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\ProvidesFile{tudscr-title.dtx}[2019/06/28 v2.06 TUD-Script\space% + (title)% ] -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} +% +% \iffalse \documentclass[english,ngerman,xindy]{tudscrdoc} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} \usepackage{babel} -\usepackage{tudscrfonts} % only load this package, if the fonts are installed +\usepackage{tudscrfonts} \KOMAoptions{parskip=half-} \usepackage{bookmark} \usepackage[babel]{microtype} @@ -75,7 +82,7 @@ \tableofcontents \DocInput{\filename} \end{document} -%</driver> +%</dtx> % \fi % % \selectlanguage{ngerman} @@ -111,19 +118,32 @@ % % \begin{option}{subjectthesis} % \begin{macro}{\if@tud@subjectthesis} -% \begin{macro}{\if@tud@subjectthesis@locked} % Die alte \cls{tudbook}-Klasse hat den Typ der Arbeit in der Betreffzeile des % Titels gesetzt. Um dieses Verhalten nachbilden zu können, wird diese Option % zur Verfügung gestellt. % \begin{macrocode} \newif\if@tud@subjectthesis -\TUD@key@lock{subjectthesis}[true]{% - \TUD@set@ifkey@lock{subjectthesis}{@tud@subjectthesis}{#1}% +\TUD@key{subjectthesis}[true]{% + \TUD@set@ifkey{subjectthesis}{@tud@subjectthesis}{#1}% } % \end{macrocode} -% \end{macro}^^A \if@tud@subjectthesis@locked % \end{macro}^^A \if@tud@subjectthesis % \end{option}^^A subjectthesis +% \begin{option}{titlesignature} +% \changes{v2.06}{2018/08/21}{neu}^^A +% \begin{macro}{\if@tud@titlesignature} +% \changes{v2.06}{2018/08/21}{neu}^^A +% Von einigen Fakultäten wird eine Unterschrift der Autoren auf der Titelseite +% verlangt. Diese Option dient zum Aktivieren dieser Unterschriftenzeile am +% Ende der Titelseite. +% \begin{macrocode} +\newif\if@tud@titlesignature +\TUD@key{titlesignature}[true]{% + \TUD@set@ifkey{titlesignature}{@tud@titlesignature}{#1}% +} +% \end{macrocode} +% \end{macro}^^A \if@tud@titlesignature +% \end{option}^^A titlesignature % % \iffalse %</book|report|article> @@ -185,10 +205,11 @@ } %</book|report|article> \newkomafont{titlepage}{% - \usekomafont{subject}% + \raggedtitle% + \sffamily% \mdseries% - \large% - \tud@raggedright% + \usesizeofkomafont{subsection}% + \tud@color{\tud@title@fontcolor}% } % \end{macrocode} % \end{KOMAfont}^^A titlepage @@ -208,47 +229,57 @@ % \end{macrocode} % \end{macro}^^A \footnotemark % \end{macro}^^A \thanks -% \begin{macro}{\maketitle} +% \begin{macro}{\tud@maketitle} % \changes{v2.01a}{2014/06/03}{Fehler bei Nutzung von \cs{subtitle} behoben}^^A % \changes{v2.02}{2014/06/23}{\val{firstiscover} wird als Wert für die Option % \opt{titlepage} unterstützt}^^A % \changes{v2.02}{2014/07/19}{Im zweispaltigen Satz wird für den Titelkopf % \cs{tud@title@twocolumn} verwendet}^^A -% \changes{v2.02}{2014/09/05}{Titelseite mit \cs{tud@make@titlepage}}^^A +% \changes{v2.02}{2014/09/05}{Titelseite mit \cs{tud@maketitle@page}}^^A +% \changes{v2.06}{2018/08/16}{Unterstützung von \cs{frontispiece}}^^A +% \changes{v2.06}{2018/08/21}{\cs{emailaddress} für Autorangaben}^^A +% \changes{v2.06}{2018/08/21}{Unterschriftenfeld für Autoren}^^A +% \begin{macro}{\tud@title@pagenumber} +% \changes{v2.02}{2014/06/23}{neu}^^A % \begin{parameter}{cdtitle} % \changes{v2.03}{2015/01/12}{neu}^^A % \begin{parameter}{cd} % \changes{v2.03}{2015/01/12}{neu}^^A % \begin{parameter}{pagenumber} % \changes{v2.02}{2014/09/05}{neu}^^A -% \begin{macro}{\tud@maketitle} -% \begin{macro}{\tud@title@pagenumber} -% \changes{v2.02}{2014/06/23}{neu}^^A % Bei der entsprechend gewählten Layoutoption, wird eine neue Titelseite im \CD % gesetzt. Damit auf das Standardverhalten von \KOMAScript{} zurückgestellt % werden kann, wird der ursprüngliche \cs{maketitle}-Befehl bei der Abarbeitung -% der Layoutoptionen gesichert. (siehe \cs{tud@layout@process}) und kann ggf. -% wiederhergestellt bzw. mit \cs{tud@cmd@use} verwendet werden. Ist das Layout -% des \CDs gefordert wird entweder mit \cs{tud@make@titlepage} eine Titelseite +% der Layoutoptionen gesichert (siehe \cs{tud@cd@process}) und kann ggf. +% wiederhergestellt bzw. mit \cs{tud@cs@use} verwendet werden. Ist das Layout +% des \CDs gefordert wird entweder mit \cs{tud@maketitle@page} eine Titelseite % gesetzt~-- wobei sich diese in ihrer Struktur am originalen \cs{maketitle} % orientiert~-- oder das Titelkopflayout wird angepasst. -% \ToDo{cdgeometry=true als default?}[v2.06] % \begin{macrocode} \newcommand*\tud@title@pagenumber{} \let\tud@title@pagenumber\relax \newcommand*\tud@maketitle[1][]{% \begingroup% + \cleardoublepage% % \end{macrocode} % Das optionale Argument wird für das Setzen der Parameter verwendet. % \begin{macrocode} \TUD@parameter@set{title}{#1}% % \end{macrocode} -% Ist das \CD für den Titel deaktiviert, wird mit \cs{tud@cmd@use} der -% originale \KOMAScript-Befehl \cs{maketitle} aufgerufen. +% Ist das \CD für den Titel deaktiviert, wird mit \cs{tud@cs@use} der originale +% \KOMAScript-Befehl \cs{maketitle} aufgerufen. Wird die erste Seite als Cover +% gesetzt, werden mit \cs{tud@cover@fixmargins} ggf. die Ränder an das gegebene +% Layout von \pkg{geometry} angepasst. % \begin{macrocode} - \ifcase\tud@layout@title@num\relax% false - \ifx\tud@title@pagenumber\relax\gdef\tud@title@pagenumber{1}\fi% - \tud@cmd@use{maketitle}[\tud@title@pagenumber]% + \ifcase\tud@cd@title@num\relax% false + \if@titlepageiscoverpage% + \tud@cover@fixmargins% + \fi% + \ifx\tud@title@pagenumber\relax% + \tud@cs@use{maketitle}% + \else% + \tud@cs@use{maketitle}[\tud@title@pagenumber]% + \fi% \tud@if@tudheadings{\currentpagestyle}{% \ifstr{\titlepagestyle}{empty}{\thispagestyle{empty.tudheadings}}{}% }{}% @@ -259,14 +290,20 @@ % \begin{macrocode} \else% !false \if@tud@parameter@ps@font@set\else% - \TUDoptions{cdfont=true}% + \if@tud@cdfont@active\else% + \if@tud@cdfont@heavy% + \TUDoptions{cdfont=heavy}% + \else% + \TUDoptions{cdfont=true}% + \fi% + \fi% \fi% %<*book|report|article> \if@titlepage% - \tud@make@titlepage% + \tud@maketitle@page% \else% %</book|report|article> - \tud@make@titlehead% + \tud@maketitle@inpage% %<*book|report|article> \fi% %</book|report|article> @@ -276,27 +313,18 @@ \global\let\and\relax% } % \end{macrocode} -% Abschließend wird dafür Sorge getragen, dass bei einem aktivierten Seitenstil -% aus der \pgs{tudheadings}-Reihe ebenfalls der Titel in diesem gesetzt wird, -% auch wenn das Layout des \CDs selber nicht aktiv ist. -% \begin{macrocode} -\patchcmd{\titlepage}{\thispagestyle{empty}}{% - \tud@if@tudheadings{\currentpagestyle}{% - \thispagestyle{empty.tudheadings}% - }{% - \thispagestyle{empty}% - }% -}{}{\tud@patch@wrn{titlepage}} -\tud@cmd@store{maketitle} -\let\maketitle\tud@maketitle -% \end{macrocode} % Die einzelnen Parameter dienen zur Einstellung der Titelseite und entsprechen % in ihrem Verhalten den gleichnamigen Klassenoptionen. % \begin{macrocode} \TUD@parameter@family{title}{% +%<*book|report|article> + \TUD@parameter@def{titlepage}[true]{\KOMAoption{titlepage}{#1}}% + \TUD@parameter@def{titlesignature}[true]{\TUDoption{titlesignature}{#1}}% +%</book|report|article> + \TUD@parameter@def{pagenumber}{\def\tud@title@pagenumber{#1}}% \TUD@parameter@def{cdtitle}[true]{\TUDoption{cdtitle}{#1}}% \TUD@parameter@let{cd}{cdtitle}% - \TUD@parameter@def{pagenumber}{\def\tud@title@pagenumber{#1}}% + \TUD@parameter@def{cdgeometry}[true]{\TUDoption{cdgeometry}{#1}}% % \end{macrocode} % Mit \cs{TUD@parameter@ps@def} werden alle verfügbaren Parameter für % die Kopf- und Fußzeilen definiert. @@ -309,11 +337,31 @@ \TUD@parameter@handler@value{pagenumber}% } % \end{macrocode} -% \end{macro}^^A \tud@title@pagenumber -% \end{macro}^^A \tud@maketitle % \end{parameter}^^A pagenumber % \end{parameter}^^A cd % \end{parameter}^^A cdtitle +% \end{macro}^^A \tud@title@pagenumber +% \end{macro}^^A \tud@maketitle +% \begin{macro}{\maketitle} +% \begin{environment}{titlepage} +% Der originale Befehl wird gesichert und danach überschrieben. +% \begin{macrocode} +\tud@cs@store{maketitle} +\let\maketitle\tud@maketitle +% \end{macrocode} +% Abschließend wird dafür Sorge getragen, dass bei einem aktivierten Seitenstil +% aus der \pgs{tudheadings}-Reihe der Titel ebenfalls in diesem gesetzt wird, +% auch wenn das Layout des \CDs selber nicht aktiv ist. +% \begin{macrocode} +\patchcmd{\titlepage}{\thispagestyle{empty}}{% + \tud@if@tudheadings{\currentpagestyle}{% + \thispagestyle{empty.tudheadings}% + }{% + \thispagestyle{empty}% + }% +}{}{\tud@patch@wrn{titlepage}} +% \end{macrocode} +% \end{environment}^^A titlepage % \end{macro}^^A \maketitle % % \iffalse @@ -322,20 +370,20 @@ % % \subsubsection{Die Definition der Titelseite} % -% \begin{macro}{\tud@make@titlepage} +% \begin{macro}{\tud@maketitle@page} % \changes{v2.02}{2014/09/05}{neu}^^A % \begin{macro}{\tud@titleback} % Bei der entsprechend gewählten Layoutoption, wird eine neue Titelseite im \CD % gesetzt. Damit auf das Standardverhalten von \KOMAScript{} zurückgestellt % werden kann, wird der standardmäßige \cs{maketitle}-Befehl nur wenn notwendig -% überschrieben (siehe \cs{tud@layout@process}) und kann ggf. wiederhergestellt +% überschrieben (siehe \cs{tud@cd@process}) und kann ggf. wiederhergestellt % werden. Der Befehl selbst orientiert sich dabei in seiner Struktur an dem % originalen \cs{maketitle}. Für die ggf. farbige Ausgabe der Titelrückseite % wird das Hilfmakro \cs{tud@titleback} definiert. Eine Seitenzahl für den % Titel kann mit \cs{tud@title@pagenumber} angegeben werden. % \begin{macrocode} \newcommand*\tud@titleback{} -\newcommand*\tud@make@titlepage{% +\newcommand*\tud@maketitle@page{% % \end{macrocode} % Es wird durch die \KOMAScript-Option \opt{titlepage} unterschieden, ob eine % Titelseite oder aber ein Titelkopf gesetzt werden soll. In Abhängigkeit davon @@ -344,7 +392,7 @@ % Werte belegt. % \begin{macrocode} \renewcommand*\tud@title@fontcolor{}% - \ifcase\tud@layout@title@num\relax\or\or% litecolor + \ifcase\tud@cd@title@num\relax\or\or% litecolor \renewcommand*\tud@title@fontcolor{HKS41}% \or% barcolor \renewcommand*\tud@title@fontcolor{HKS41}% @@ -357,10 +405,9 @@ \fi% % \end{macrocode} % Die Titelseite mit unterschiedlich Varianten der farbigen Ausprägung. -% \ToDo{Schlüssel für das Abschalten des TUD-Satzspiegels?}[v2.06] % \begin{macrocode} \begin{titlepage}% - \tud@layout@specialpage@set{title}% + \tud@cd@specialpage@set{title}% % \end{macrocode} % Dieser Teil entspricht der Standarddefinition. Für das Setzen des Covers ist % ein Großteil der Einstellungen irrelevant und wird übersrpungen. @@ -372,7 +419,8 @@ % Dieser Teil entspricht der Standarddefinition. Für das Setzen des Covers ist % ein Großteil der Einstellungen irrelevant und wird übersrpungen. % \begin{macrocode} - \if@tud@cover\else% + \if@tud@coverpage\else% + \addtokomafont{footnote}{\sffamily}% \let\footnotesize\small% \let\footnoterule\relax% \let\footnote\thanks% @@ -380,7 +428,7 @@ \let\@oldmakefnmark\@makefnmark% \renewcommand*\@makefnmark{\rlap\@oldmakefnmark}% % \end{macrocode} -% Das Paket \pkg{hyperref} definert im Normalfall die Fußnoten so um, dass es +% Das Paket \pkg{hyperref} definiert im Normalfall die Fußnoten so um, dass es % anklickbare Links erzeugt. Damit dies auf der Titelseite zu ungewollten % Effekten führt, werden die Hyperlinks hier deaktiviert. Leider macht dies % \pkg{hyperref} direkt beim Laden. Da die \TUDScript-Klassen aber nun mal zwei @@ -403,10 +451,15 @@ possible with an extra title. Alternatively you can\MessageBreak% create a cover with `\string\makecover'% }% + \@titlepageiscoverpagefalse% + \fi% + \ifx\@frontispiece\@empty\else% + \if@twoside\null\fi% \fi% \else% % \end{macrocode} -% Der Teil ist aus den \KOMAScript-Klassen kopiert\dots +% Der Teil ist aus den \KOMAScript-Klassen übernommen, damit werden die +% Seitenränder für ein Cover festgelegt. % \begin{macrocode} \if@titlepageiscoverpage% \edef\titlepage@restore{% @@ -418,96 +471,50 @@ \noexpand\let\noexpand\titlepage@restore\noexpand\relax% }% \begingroup% - \topmargin=\dimexpr\coverpagetopmargin-1in\relax% - \oddsidemargin=\dimexpr\coverpageleftmargin-1in\relax% - \evensidemargin=\dimexpr\coverpageleftmargin-1in\relax% - \textwidth=\dimexpr\tud@len@layoutwidth-\coverpageleftmargin% - -\coverpagerightmargin\relax% - \textheight=\dimexpr\tud@len@layoutheight-\coverpagetopmargin% - -\coverpagebottommargin\relax% - \headheight=0pt% - \headsep=0pt% - \footskip=\baselineskip% - \@colht=\textheight% - \@colroom=\textheight% - \vsize=\textheight% - \columnwidth=\textwidth% - \hsize=\columnwidth% - \linewidth=\hsize% + \tud@cover@setmargins% \else% \let\titlepage@restore\relax% \fi% - \noindent\@extratitle\next@tdpage% + \noindent\@extratitle% + \fi% + \next@tpage% + \ifx\@frontispiece\@empty\else% + \noindent\@frontispiece% \fi% + \next@tdpage% \fi% % \end{macrocode} % Das ganze Layout wird vertikal so verschoben, dass der Titel auf der gleichen % Höhe steht wie die Überschriften auf Teil- und Kapitelseiten. % \begin{macrocode} - \vspace*{% - \dimexpr\tud@len@areavskip+\tud@len@areaheadvskip-\baselineskip\relax% - }% + \tud@cd@headstartvskip% \TUD@deprecated@lengthcs{pageheadingsvskip}% \vspace*{\tud@dim@pageheadingsvskip}% + \tud@cd@vphantom% \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% % \end{macrocode} % Damit die Farbeinstellungen der Schriften lokal begrenzt bleiben, wird dieser -% Teil des Titels in einer Gruppe (\cs{begingroup}) gesetzt. -% \begin{macrocode} - \begingroup% - \usekomafont{titlepage}% -% \end{macrocode} -% Da die Überschrift auf einer festen Position liegen soll, muss von allem, was -% über der Überschrift positioniert werden soll, die Höhe bestimmt werden, um -% einen entsprechenden Offset einfügen zu können. Dafür werden zwei temporäre -% Standardboxen verwendet. In diesen wird der gewünschte Inhalt für die beiden -% Felder \cs{@titlehead} bzw. \cs{@subject} abgelegt und die sich daraus -% kumulierende Höhe in \cs{@tempdima} gespeichert. Vor dem Setzen der Felder -% kann nun der \textbf{insgesamt} notwendige vertikaler Freiraum vor dem -% eigentlichen Titel für \cs{@titlehead} \textbf{und} \cs{@subject} abgezogen -% werden. Anschließend werden die beiden Boxen ausgegeben und der Aufbau der -% Titelseite kann beginnen. -% \ToDo{% -% Der Kram mit Absatz und neuer Zeile ist nicht ganz stimmig, die Länge zum -% Verschieben wird nicht suaber berechnet. Alles in eine Box der Höhe 0? -% }[v2.06] -% \begin{macrocode} - \setlength\@tempdima{\z@}% - \ifx\@titlehead\@empty\else% - \sbox\z@{\vbox{% - \begin{minipage}[t]{\textwidth}% - {\usekomafont{titlehead}{\@titlehead\par\null}}% - \end{minipage}\newline\null% - }}% - \addtolength\@tempdima{\dimexpr\ht\z@+\dp\z@\relax}% - \fi% +% Teil des Titels in einer Gruppe gesetzt. +% \begin{macrocode} + {\usekomafont{titlepage}{% % \end{macrocode} -% Erkennen, ob in der Betreffzeile eine Abschlussarbeit ausgegeben werden soll -% und kann. +% Zunächst der Kopf des Titels. % \begin{macrocode} - \tud@thesis@tosubject% - \ifx\@subject\@empty\else% - \sbox\@ne{\vbox{{\usekomafont{subject}{\@subject\par\null}}}}% - \addtolength\@tempdima{\dimexpr\ht\@ne+\dp\@ne+\p@\relax}% - \fi% - \vspace*{-\@tempdima}% - \ifx\@titlehead\@empty\else\usebox\z@\par\fi% - \ifx\@subject\@empty\else\usebox\@ne\par\fi% + \tud@maketitle@head% % \end{macrocode} % Nachdem bereits \cs{@titlehead} und \cs{@subject} gesetzt worden, folgen nun % die weiteren Felder wie vom \CD~-- mehr oder weniger~-- vorgegeben auf der % Titelseite in unterschiedlichen Größen und Schriftstärken. % \begin{macrocode} - {\usekomafont{title}{\tud@title@uppercase{\@title}\par}}% + {\usekomafont{title}{\tud@title@format{\@title}\par}}% % \end{macrocode} % Der Untertitel wird ggf. in der gleichen Schrift gesetzt wie der Titel, % allerdings etwas kleiner. % \begin{macrocode} \ifx\@subtitle\@empty\else% - \vskip 1ex\@plus.5ex\@minus.5ex% - {\usekomafont{subtitle}{\tud@title@uppercase{\@subtitle}\par}}% + {\usekomafont{partnumber}{\nobreak\tud@sec@strut}}% + {\usekomafont{subtitle}{\tud@title@format{\@subtitle}\par}}% \fi% - \vskip 2ex\@plus1ex\@minus1ex% \vskip 2\bigskipamount% % \end{macrocode} % Ausgabe eines Autors oder mehrerer Autoren ggf. mit Zusatzinformationen. @@ -521,7 +528,7 @@ % wird das angegebene bzw. das heutige Datum und ggf. die Ergänzung ausgegeben. % \begin{macrocode} \ifx\@thesis\@empty% - \if@tud@cover\else% + \if@tud@coverpage\else% \ifx\@date\@empty\else% \vskip 2ex\@plus.1fill% {\usekomafont{date}{\tud@date@print\par}}% @@ -539,40 +546,38 @@ \else% \vskip 2ex\@plus.25fill% \if@tud@subjectthesis\else% - {\usekomafont{thesis}{\tud@title@uppercase{\@thesis}\par}}% + {\usekomafont{thesis}{\tud@title@format{\@thesis}\par}}% \vskip 2ex\@plus1ex\@minus1ex% \fi% % \end{macrocode} % Ebenfalls wird in Abhängigkeit von der Option \opt{subjectthesis} der % angestrebte akademische Grad ausgegeben. % \begin{macrocode} - \if@tud@cover\else% + \if@tud@coverpage\else% \ifx\@graduation\@empty\else% \def\@tempc{% \@graduation% - \ifx\@@graduation\@empty\else\nobreakspace\@@graduation\fi% + \ifx\@graduationabbreviation\@empty\else% + \nobreakspace\@graduationabbreviation% + \fi% }% {\usekomafont{titlepage}{\graduationtext\par}}% - \vskip 2ex\@plus1ex\@minus1ex% - \if@tud@subjectthesis% - {\usekomafont{subject}{\@tempc\par}}% - \else% - {\usekomafont{thesis}{\tud@title@uppercase{\@tempc}\par}}% - \fi% + \vskip 2.5ex\@plus1ex\@minus1ex% + {\usekomafont{thesis}{\tud@title@format{\@tempc}\par}}% \vskip 3ex\@plus1ex\@minus1ex% \fi% \fi% \vskip 2ex\@plus.5fill% \fi% % \end{macrocode} -% \ToDo{Befehl zum Angeben optionaler Inhalte, bspw. ein Bild}[v2.06] +% \ToDo{Befehl zum Angeben optionaler Inhalte, bspw. ein Bild}[v2.07] % Wenn Betreuer angegeben wurden, dann werden diese auf dem Titel ausgeben. Um % diese Titelseite auch für Dissertationen verwenden zu können, ist ein Feld % für Gutachter vorgesehen. Außerdem wird für Promotionsschriften ein Feld für % Fachreferenten bereitgehalten. Das Format der Ausgabe ist dabei identisch. % Darauf folgend wird der betreuende Hochschullehrer ausgegeben. % \begin{macrocode} - \if@tud@cover\else% + \if@tud@coverpage\else% \tud@title@names{referee}% \tud@title@names{advisor}% \tud@title@names{supervisor}% @@ -601,21 +606,26 @@ \fi% \fi% \fi% +% \end{macrocode} +% Hier erfolgt die Ausgabe der Unterschriftenzeile, falls gewünscht. Ist nur +% ein Autor angegeben, wird die Box für die Unterschrift rechtsbündig erzeugt. +% \begin{macrocode} + \if@tud@titlesignature% + \let\tud@split@@author@do\tud@split@author@signature% + \vskip\tud@len@signatureskip\noindent% + \tud@ifin@and{\@@author}{}{\hfill}% + \tud@multiple@split{@@author}% + \fi% \fi% % \end{macrocode} % Zu guter Letzt kann das Standard-Verlagsfeld befüllt werden. -% \ToDo{Unterschriftenfeld auf Titelseite, siehe entsprechenden -% \href{% -% http://latex.wcms-file3.tu-dresden.de/phpBB3/viewtopic.php?p=1523\#p1523% -% }{Forumsbeitrag}% -% }[v2.06] % \begin{macrocode} \ifx\@publishers\@empty\else% \vskip 2ex\@plus.25fill% {\usekomafont{publishers}{\@publishers\par}}% \vskip\z@\@plus.25fill% \fi% - \endgroup% + }}% % \end{macrocode} % Die Rückseite des Titels wird~-- wie bei \KOMAScript~-- bloß bei zweiseitigem % Satz ausgegeben. Für diese Klassen wird aufgrund der möglicherweise farbigen @@ -648,24 +658,22 @@ % \begin{macrocode} \def\@tempa{% \renewcommand*\tud@pagecolor{}% - \ifcase\tud@layout@title@num\relax\or% true - \cs@std@lock{tud@head@bar@num}{0}% + \ifcase\tud@cd@title@num\relax\or% true + \tud@locked@num@preset{tud@head@bar@num}{0}% \or% litecolor - \cs@set@lock{tud@head@bar@num}{1}% + \tud@locked@num@set{tud@head@bar@num}{1}% \or% barcolor - \cs@set@lock{tud@head@bar@num}{2}% + \tud@locked@num@set{tud@head@bar@num}{2}% \or% bicolor - \cs@set@lock{tud@head@bar@num}{3}% + \tud@locked@num@set{tud@head@bar@num}{3}% \or% color \renewcommand*\tud@pagecolor{HKS41}% - \cs@set@lock{tud@head@bar@num}{1}% + \tud@locked@num@set{tud@head@bar@num}{1}% \or% full \renewcommand*\tud@pagecolor{HKS41}% - \cs@set@lock{tud@head@bar@num}{3}% + \tud@locked@num@set{tud@head@bar@num}{3}% \fi% \tud@color{\tud@title@fontcolor}% - \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% - \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% \thispagestyle{empty.tudheadings}% % \end{macrocode} % Im Kompatibilitätsmodus für die Version~v2.02 wird im Zweifelsfall die Seite @@ -677,7 +685,7 @@ % Bei der Ausgabe des Covers werden lediglich die Farb- und Schriftdefinitionen % benötigt, die Seite kann danach beendet werden. % \begin{macrocode} - \if@tud@cover% + \if@tud@coverpage% \begingroup% \@tempa% \cleardoubleemptypage% @@ -724,7 +732,7 @@ } % \end{macrocode} % \end{macro}^^A \tud@titleback -% \end{macro}^^A \tud@make@titlepage +% \end{macro}^^A \tud@maketitle@page % % \iffalse %</book|report|article> @@ -732,16 +740,16 @@ % % \subsubsection{Die Definition des Titelkopfes} % -% \begin{macro}{\tud@make@titlehead} +% \begin{macro}{\tud@maketitle@inpage} % \changes{v2.05}{2015/07/13}{neu}^^A -% \begin{macro}{\tud@make@@titlehead} +% \begin{macro}{\tud@maketitle@@inpage} % \changes{v2.05}{2015/07/13}{neu}^^A % Das sind die internen Makros für einen Titelkopf (\opt{titlepage}|=|\val{no}), % welche sich stark an den orginalen \KOMAScript-Befehlen orientieren. % \begin{macrocode} -\newcommand*\tud@make@titlehead{% +\newcommand*\tud@maketitle@inpage{% \renewcommand*\tud@title@fontcolor{}% - \ifcase\tud@layout@title@num\relax\or\else% *color + \ifcase\tud@cd@title@num\relax\or\else% *color \ifstr{\tud@pagecolor}{HKS41}{}{\renewcommand*\tud@title@fontcolor{HKS41}}% \fi% \par% @@ -768,21 +776,23 @@ % der Titel einspaltig ausgegeben und anschließend der im Zweispaltensatz % begonnen. % \begin{macrocode} - \@tempswafalse% + \def\tud@res@a##1{##1}% \if@twocolumn\ifnum\col@number>\@ne\relax% - \@tempswatrue% + \def\tud@res@a##1{\twocolumn[{##1}]}% \fi\fi% - \if@tempswa% - \ifx\@extratitle\@empty\else% - \twocolumn[\@makeextratitle]\next@tdpage% - \fi% - \twocolumn[\tud@make@@titlehead]% + \ifx\@extratitle\@empty% + \ifx\@frontispiece\@empty\else% + \if@twoside\null\fi% + \fi \else% - \ifx\@extratitle\@empty\else% - \@makeextratitle\next@tdpage% - \fi% - \tud@make@@titlehead% + \tud@res@a{\@makeextratitle}% \fi% + \next@tpage% + \ifx\@frontispiece\@empty\else% + \tud@res@a{\@makefrontispiece}% + \fi% + \next@tdpage% + \tud@res@a{\tud@maketitle@@inpage}% \ifx\titlepagestyle\@empty\else\thispagestyle{\titlepagestyle}\fi% \@thanks% \endgroup% @@ -790,62 +800,42 @@ % \end{macrocode} % Hier erfolgt die Ausgabe des Titelkopfes. % \begin{macrocode} -\newcommand*\tud@make@@titlehead{% +\newcommand*\tud@maketitle@@inpage{% \global\@topnum=\z@% + \tud@cd@headstartvskip% %<*book|report|article> - \vspace*{% - \dimexpr\tud@len@areavskip+\tud@len@areaheadvskip-\baselineskip\relax% - }% \TUD@deprecated@lengthcs{headingsvskip}% \vspace*{\tud@dim@headingsvskip}% + \tud@cd@vphantom% %</book|report|article> -%<*poster> - \vspace*{\dimexpr\tud@len@areavskip-\baselineskip\relax}% -%</poster> \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% % \end{macrocode} % Damit die Farbeinstellungen der Schriften lokal begrenzt bleiben, wird dieser -% Teil des Titels in einer Gruppe (\cs{begingroup}) gesetzt. Außerdem werden +% Teil des Titels in einer Gruppe gesetzt. Außerdem werden % wie auch für die Titelseite die Hyperlinks der Fußnoten deaktiviert. % \begin{macrocode} - \begingroup% - \usekomafont{titlepage}% + {\usekomafont{titlepage}{% \tud@x@hyperref@realfootnotes% % \end{macrocode} +% Bei einem Titelkopf ist nur die Variante möglich, dass eine Abschlussarbeit +% in der Betreffzeile angegeben wird. +% \begin{macrocode} +%<*book|report|article> + \TUDoptions{subjectthesis=true}% +%</book|report|article> +% \end{macrocode} % Ähnlich wie bei der Titelseite wird auch beim Titelkopf die Inhalte von % \cs{@titlehead} und \cs{@subject} so nach oben verschoben, dass der Titel % selbst auf der gewünschten Höhe landet. % \begin{macrocode} - \setlength\@tempdima{\z@}% - \ifx\@titlehead\@empty\else% - \sbox\z@{\vbox{% - \begin{minipage}[t]{\textwidth}% - {\usekomafont{titlehead}{\@titlehead\par\null}}% - \end{minipage}\newline\null% - }}% - \addtolength\@tempdima{\dimexpr\ht\z@+\dp\z@\relax}% - \fi% + \tud@maketitle@head% % \end{macrocode} -% Erkennen, ob in der Betreffzeile eine Abschlussarbeit ausgegeben werden soll -% und kann. Bei einem Titelkopf ist nur diese Variante möglich. +% Der eigentliche Titel nach dem Titelkopf. % \begin{macrocode} -%<*book|report|article> - \TUDoptions{subjectthesis=true}% - \tud@thesis@tosubject% -%</book|report|article> - \ifx\@subject\@empty\else% - \sbox\@ne{\vbox{{\usekomafont{subject}{\@subject\par\null}}}}% - \addtolength\@tempdima{\dimexpr\ht\@ne+\dp\@ne+\p@\relax}% - \fi% -%<*book|report|article> - \vspace*{-\@tempdima}% -%</book|report|article> - \ifx\@titlehead\@empty\else\usebox\z@\par\fi% - \ifx\@subject\@empty\else\usebox\@ne\par\fi% - {\usekomafont{title}{\tud@title@uppercase{\@title}\par}}% + {\usekomafont{title}{\tud@title@format{\@title}\par}}% \ifx\@subtitle\@empty\else% \vskip 1ex\@plus.5ex\@minus.5ex% - {\usekomafont{subtitle}{\tud@title@uppercase{\@subtitle}\par}}% + {\usekomafont{subtitle}{\tud@title@format{\@subtitle}\par}}% \fi% \vskip 2ex\@plus1ex\@minus1ex% % \end{macrocode} @@ -894,42 +884,94 @@ % muss dafür am unteren Rand entsprechend Platz gelassen werden. % \begin{macrocode} \tud@if@v@lower{2.03}{\tud@ddc@enlargepage[\titlepagestyle]}{}% - \endgroup% + }}% } % \end{macrocode} -% \end{macro}^^A \tud@make@@titlehead -% \end{macro}^^A \tud@make@titlehead +% \end{macro}^^A \tud@maketitle@@inpage +% \end{macro}^^A \tud@maketitle@inpage +% \begin{macro}{\tud@maketitle@head} +% \changes{v2.06}{2018/08/17}{neu}^^A +% Mit diesem Makro wird dafür gesorgt, dass Titelkopf und Typisierung so +% postioniert werden, dass der Titel selbst vertikal nicht verschoben wird. +% Hierfür wird von allem, was über der Überschrift positioniert werden soll, +% die Höhe bestimmt werden, um einen entsprechenden Offset einfügen zu können. +% Dafür wird eine temporäre Standardbox verwendet. In diesen wird der Inhalt +% für die beiden Felder \cs{@titlehead} bzw. \cs{@subject} abgelegt und die +% sich daraus kumulierende Höhe in \cs{@tempdima} gespeichert. Vor dem Setzen +% der Felder kann nun der notwendige vertikale Freiraum vor dem eigentlichen +% Titel für \cs{@titlehead} und \cs{@subject} abgezogen werden. Anschließend +% wird die Box ausgegeben und der Aufbau der Titelseite kann beginnen. +% \begin{macrocode} +\newcommand*\tud@maketitle@head{% + \setbox\z@\vbox{% + \ifx\@titlehead\@empty\else% + {\usekomafont{titlehead}{% + \begin{minipage}[t]{\textwidth}% + \@titlehead\tud@sec@strut% + \end{minipage}% + }}% + \fi% +%<*book|report|article> + \tud@thesis@tosubject% +%</book|report|article> + \ifx\@subject\@empty\else% + \par\medskip% + {\usekomafont{subject}{% + \@subject\tud@sec@strut% + }}% + \fi% + }% +% \end{macrocode} +% Der ermittelte Offset muss~-- warum auch immer~-- um \val{1pt} vergrößert +% werden. Zusätzlich wird ein mittlerer Abstand zwischen Kopf und Titel gesetzt. +% \begin{macrocode} + \setlength\@tempdima{\dimexpr\ht\z@+\dp\z@\relax}% + \ifdim\@tempdima>\z@\relax% +%<*book|report|article> + \vskip\dimexpr-\@tempdima-\p@-\medskipamount\relax% +%</book|report|article> + \usebox\z@\par\medskip% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@maketitle@inpage % % \subsubsection{Hilfsmakros für die Ausgabe} % -% \begin{macro}{\tud@title@uppercase} -% Für das Setzen einzelner Felder in Majuskeln werden diese beiden Befehle -% definiert. Bei der Verwendung des Befehls \cs{thanks} auf der Titelseite soll -% sichergestellt werden, dass der Inhalt selbst nicht in Majuskeln gesetzt wird. +% \begin{macro}{\tud@title@format} +% Für das Formatieren einzelner Felder auf dem Titel mit \cs{tud@sec@format} +% wird dieser Befehl definiert. Bei der Verwendung des Befehls \cs{thanks} auf +% der Titelseite soll sichergestellt werden, dass der Inhalt selbst nicht in +% Majuskeln gesetzt wird. % \begin{macrocode} -\newcommand*\tud@title@uppercase[1]{% - \let\@tempa\relax% +\newcommand*\tud@title@format[1]{% \begingroup% \let\\\newline% % \end{macrocode} % Der Befehl \cs{thanks} wird so umdefiniert, dass der Inhalt in ein temporäres % Makro gespeichert wird. Danach wird durch das Setzen einer temporären Box der % Befehl \cs{thanks} ausgeführt und der Inhalt gesichert. Für die Ausführung von -% \cs{tud@makeuppercase} wird das Argument von \cs{thanks} ignoriert. Nachdem -% das gewünschte Feld in Majuskeln gesetzt wurde, wird die gespeicherte Fußnote +% \cs{tud@sec@format} wird das Argument von \cs{thanks} ignoriert. Nachdem das +% gewünschte Feld in Majuskeln gesetzt wurde, wird die gespeicherte Fußnote % ausgegeben. % \begin{macrocode} - \def\thanks##1{\gdef\@tempa{##1}}% + \let\tud@thanks\relax% + \def\thanks##1{\gdef\tud@thanks{##1}}% \let\footnote\thanks% \sbox\z@{#1}% \let\thanks\@gobble% \let\footnote\@gobble% - \tud@makeuppercase{#1}% - \endgroup% - \ifx\@tempa\relax\else\thanks\@tempa\fi% + \tud@sec@format{#1}% + \edef\tud@res@a{% + \endgroup% + \ifx\tud@thanks\relax\else% + \noexpand\thanks{\expandonce\tud@thanks}% + \fi% + }% + \tud@res@a% } % \end{macrocode} -% \end{macro}^^A \tud@title@uppercase +% \end{macro}^^A \tud@title@format % % \iffalse %<*book|report|article> @@ -1004,18 +1046,25 @@ % etwas kleiner Abstand eingefügt. Anschließend wird jede Information einfach % in einer neuen Zeile ausgegeben. % \begin{macrocode} - \renewcommand*\tud@newline@title{\vskip .5ex\let\tud@newline@title\newline}% + \renewcommand*\tud@newline@title{% + \vskip .5ex\strut% + \def\tud@newline@title{\newline\strut}% + }% % \end{macrocode} % Die Felder \cs{@author} und ggf. \cs{@authormore} werden sowohl auf der % Titelseite als auch im Titelkopf jedoch nicht auf der Umschlagseite -% ausgegeben. +% ausgegeben. Gleiches gilt für E"~Mail-Adressen. % \begin{macrocode} - {\usekomafont{author}{\ignorespaces#1\unskip}}% - \if@tud@cover\else% + {\usekomafont{author}{\ignorespaces#1\strut\unskip}}% + \if@tud@coverpage\else% \ifx\@authormore\@empty\else% \tud@newline@title% \@authormore% \fi% + \ifx\@emailaddress\@empty\else% + \tud@newline@title% + \@emailaddress% + \fi% % \end{macrocode} % Nur auf der Titelseite erfolgt die Ausgabe von Geburtsdatum, Geburtsort, % Matrikelnummer und Immatrikulationsjahr. Sollte ein Titelkopf verwendet @@ -1055,7 +1104,7 @@ % \meta{Feld} sukzessive abgearbeitet. % \begin{macrocode} \tud@multiple@fields@restore{@author}% - \tud@multiple@@@split{#2}{\vskip 2ex}% + \tud@multiple@@@split{#2}{\vskip 1.5ex}% } % \end{macrocode} % \end{macro}^^A \tud@newline@title @@ -1072,6 +1121,38 @@ } % \end{macrocode} % \end{macro}^^A \tud@title@wrn +% \begin{macro}{\tud@split@author@signature} +% \changes{v2.06}{2018/08/21}{neu}^^A +% Das Makro \cs{tud@split@author@signature} dient zum Erstellen von Feldern für +% Unterschriften der Autoren am Ende der Titelseite. +% \begin{macrocode} +\newcommand*\tud@split@author@signature[2]{% +% \end{macrocode} +% Zu Beginn werden alle Felder, welche innerhalb von \cs{@author} angegeben +% sind, gesichert. +% \begin{macrocode} + \tud@multiple@fields@store{@author}{#1}% +% \end{macrocode} +% Für jeden Autor wird in einer Box ein Unterschriftenfeld mit fester Breite +% erzeugt. Innerhalb der Box wird erst eine Linie und darunter der Name des +% Autors zentriert ausgegeben. +% \begin{macrocode} + \vbox{% + \hsize=.3\textwidth% + \centering% + \rule{.3\textwidth}{.05pt}\newline% + \ignorespaces#1\strut\unskip% + }% +% \end{macrocode} +% Zunächst werden die zuvor bestehenden Feldinhalte wiederhergestellt. Danach +% wird durch den Aufruf von \cs{tud@multiple@@@split} wird das übergebene +% \meta{Feld} sukzessive abgearbeitet. +% \begin{macrocode} + \tud@multiple@fields@restore{@author}% + \tud@multiple@@@split{#2}{\hfill}% +} +% \end{macrocode} +% \end{macro}^^A \tud@split@author@signature % % \iffalse %</book|report|article> @@ -1084,15 +1165,12 @@ % \begin{macro}{\tud@title@twocolumn} % \changes{v2.03}{2015/01/13}{Bugfix für falsche Position des Titels}^^A % \begin{macro}{\tud@title@box} -% Zum Setzen eines einspaltigen Titels mit einspaltiger Zusammenfassung bei -% einem Titelkopf~-- \hrfn{http://www.komascript.de/node/1699}{Dank der Hilfe} -% von Markus Kohm. -% % Der Befehl \cs{maketitleonecolumn}\oarg{Parameter}\oarg{Inhalt} kann bei % zweispaltigem Satz dazu genutzt werden, einen einspaltigen Titel zu bekommen. % Beim der Verwendung einer Titelseite wird lediglich der Titel sowie % anschließend ggf. \meta{Inhalt} einspaltig ausgegeben. Beim Satz eines % Titelkopfes wird der Befehl \cs{tud@title@twocolumn} zur Ausgabe genutzt. +% \hrfn{http://www.komascript.de/node/1699}{Danke an Markus Kohm für die Hilfe}. % \begin{macrocode} \newcommand\maketitleonecolumn[2][]{% % \end{macrocode} @@ -1169,9 +1247,9 @@ \tud@if@v@lower{2.03}{\@tempswafalse}{}% }% % \end{macrocode} -% Passt der auszugebende einspaltige Teil auf eine Seite, ist eine vertikale -% Korrektur von |.9\baselineskip| nicht notwendig. In diesem Fall wird die Box -% vor der Ausgabe einfach neu und ohne diese Länge gesetzt. +% Passt der einspaltige Teil auf eine Seite, ist eine vertikale Korrektur von +% |.9\baselineskip| nicht notwendig. In diesem Fall wird die Box vor der +% Ausgabe einfach neu und ohne diese Länge gesetzt. % \begin{macrocode} \else% \setbox\tud@title@box\vbox{#1\bigskip}% @@ -1231,11 +1309,11 @@ % \changes{v2.02}{2014/06/23}{neu}^^A % \begin{macro}{\if@tud@cdgeometry@cover} % \begin{macro}{\if@tud@cdgeometry@cover@locked} -% \begin{macro}{\if@tud@cover} +% \begin{macro}{\if@tud@coverpage} % Der Befehl \cs{makecover} ist für eine Umschlagseite bei einem gebundenen % Werk zu verwenden. % \begin{macrocode} -\newif\if@tud@cover +\newif\if@tud@coverpage \newcommand*\makecover[1][]{% % \end{macrocode} % Ist die Option \opt{titlepage}|=|\val{firstiscover} aktiv, wird eine Warnung @@ -1266,8 +1344,40 @@ \let\thanks\@gobble% \let\footnote\@gobble% \TUD@parameter@set{cover}{#1}% - \let\tud@layout@title@num\tud@layout@cover@num% - \tud@layout@process% + \let\tud@cd@title@num\tud@cd@cover@num% + \tud@cd@process% +% \end{macrocode} +% Je nachdem, ob das \CD verwendet wird, wird der Satzspiegel standardmäßig +% umgestellt oder eben nicht. Der Schalter \cs{if@tud@coverpage} wird innerhalb +% des Befehles \cs{tud@maketitle} genutzt, um die Unterscheidung zu machen, ob +% es sich bei der aktuellen Ausgabe um das Cover im \CD oder eine beliebige +% Titelseite handelt. +% \begin{macrocode} + \ifcase\tud@cd@cover@num\relax% false + \tud@locked@bool@preset{@tud@cdgeometry@cover}{false}% + \@tud@coverpagefalse% + \else% !false + \tud@locked@bool@preset{@tud@cdgeometry@cover}{true}% + \@tud@coverpagetrue% + \fi% +% \end{macrocode} +% Weil bereits die Titelseite normalerweise die Seitenzahl eins bekommt, kann es +% bei der Verwendung des Paketes \pkg{hyperref} zu einer Warnung aufgrund der +% doppelt verwendeten Seitenzahl kommen. Um dies zu verhindern, werden die +% Seitenanker für das Cover deaktiviert. +% \begin{macrocode} + \ifundef{\hypersetup}{}{\hypersetup{pageanchor=false}}% +% \end{macrocode} +% Ein Cover wird immer als komplette Seite und nie als Kopf gesetzt. Außerdem +% werden ein mit \cs{extatitle} gegebener Schmutztitel ebenso ignoriert, wie +% die dazugehörige Rückseite, Danksagung oder Einträge für die Titelrückseite. +% \begin{macrocode} + \@titlepagetrue% + \let\@extratitle\@empty% + \let\@frontispiece\@empty% + \let\@uppertitleback\@empty% + \let\@lowertitleback\@empty% + \let\@dedication\@empty% % \end{macrocode} % Wird der Parameter \opt{cdgeometry} aktiviert, werden die Seitenränder wie % durch das \CD vorgegeben eingestellt. Andernfalls entsprechen diese den @@ -1275,40 +1385,31 @@ % durch den Anwender angepasst werden. % \begin{macrocode} \if@tud@cdgeometry@cover% - \let\coverpagetopmargin\tud@len@slimmargin% - \let\coverpagebottommargin\tud@len@widemargin% - \let\coverpageleftmargin\tud@len@widemargin% - \let\coverpagerightmargin\tud@len@slimmargin% +% \end{macrocode} +% Bei der Höhe des oberen Seitenrandes muss unterschieden werden, ob der +% Satzspiegel im \CD oder aber im Buchblock erscheinen soll. +% \begin{macrocode} + \if@tud@coverpage% + \def\coverpagetopmargin{% + \dimexpr\tud@len@topmargin+\tud@len@barheight% + +\tud@len@headsep\relax% + }% + \else% + \tud@if@v@lower{2.03}{% + \def\coverpagetopmargin{.5\tud@len@both}% + }{% + \def\coverpagetopmargin{\tud@len@slimmargin}% + }% + \fi% \tud@if@v@lower{2.03}{% - \def\coverpagetopmargin{.5\tud@len@both}% \def\coverpagebottommargin{.5\tud@len@both}% - }{}% + }{% + \def\coverpagebottommargin{\tud@len@widemargin}% + }% + \def\coverpageleftmargin{\tud@len@widemargin}% + \def\coverpagerightmargin{\tud@len@slimmargin}% \fi% -% \end{macrocode} -% Für den Fall, dass eine Umschlagseite gesetzt werden soll, die nicht im \CD -% erscheint, wird einfach das originale \cs{maketitle} aufgerufen und dabei -% die Option \opt{titlepage}|=|\val{firstiscover} verwendet, um die Seitenränder -% anpassen zu können. Außerdem werden ein mit \cs{extatitle} gegebener -% Schmutztitel ebenso ignoriert, wie Danksagung oder Einträge für die Rückseite. -% \begin{macrocode} - \ifcase\tud@layout@cover@num\relax% false - \KOMAoptions{titlepage=firstiscover}% - \let\@extratitle\@empty% - \let\@uppertitleback\@empty% - \let\@lowertitleback\@empty% - \let\@dedication\@empty% - \ifx\tud@title@pagenumber\relax\gdef\tud@title@pagenumber{1}\fi% - \tud@cmd@use{maketitle}[\tud@title@pagenumber]% - \else% !false -% \end{macrocode} -% Der Befehl verwendet das Layout des Titels im \CD. Allerdings werden nicht -% alle sondern nur für ein Cover relavante Angaben ausgegeben. Der Schalter -% \cs{if@tud@cover} wird innerhalb des Befehles \cs{tud@maketitle} genutzt, um -% die Unterscheidung zu machen, ob es sich bei der aktuellen Ausgabe um das -% Cover oder aber die Titelseite handelt. -% \begin{macrocode} - \@tud@covertrue% - \@titlepagetrue% + \if@tud@coverpage% % \end{macrocode} % Der Satzspiegel wird hierfür äquivalent zu den \KOMAScript-Klassen gesetzt, % wenn die Option \opt{titlepage}|=|\val{firstiscover} aktiviert ist. @@ -1318,82 +1419,37 @@ \noexpand\global\noexpand\@colht\the\@colht% \noexpand\global\noexpand\@colroom\the\@colroom% \noexpand\global\vsize\the\vsize% + \noexpand\global\noexpand\@titlepageiscoverpagefalse% \noexpand\let\noexpand\titlepage@restore\noexpand\relax% }% % \end{macrocode} % Linker und rechter Rand sowie die Textbreite werden identisch erzeugt. Für % das Layout im \CD wurden die Seitenränder (\cs{coverpage\dots margin}) zuvor -% angepasst. Die Höhe der Kopfzeile wird auf \val{0pt} gesetzt, die Fußzeile -% entspricht dem normalen Satzspiegel im \CD. +% angepasst. % \begin{macrocode} \begingroup% - \oddsidemargin=\dimexpr\coverpageleftmargin-1in\relax% - \evensidemargin=\dimexpr\coverpageleftmargin-1in\relax% - \textwidth=\dimexpr\tud@len@layoutwidth-\coverpageleftmargin% - -\coverpagerightmargin\relax% - \headheight=0pt% - \headsep=0pt% - \footskip=\dimexpr\tud@len@footsep+\footheight\relax% - \tud@if@v@lower{2.03}{% - \footskip=\dimexpr\tud@len@headsep+\footheight% - -1.25\baselineskip\relax% - }{}% -% \end{macrocode} -% Bei der Höhe des oberen Seitenrandes muss unterschieden werden, ob der -% Satzspiegel im \CD oder aber im Buchblock erscheinen soll. -% \begin{macrocode} - \if@tud@cdgeometry@cover% - \def\coverpagetopmargin{% - \dimexpr\tud@len@topmargin+\tud@len@barheight% - +\tud@len@headsep\relax% - }% - \else% -% \end{macrocode} -% Bei der Verwendung eines eigenen Satzspiegels kann der obere Seitenrand über -% das Makro \cs{coverpagetopmargin} geändert werden. Das Vermeiden einer -% unerwünschten Überdeckung des Kopfes oder ein zu kleiner Fußbereich muss -% durch den Anwender korrigiert werden. Standardmäßig wird die Höhe jedoch für -% das \CD angepasst. Auch die Fußhöhe wird im Zweifelsfall gesetzt. -% \begin{macrocode} - \topmargin=\dimexpr\tud@len@topmargin+\tud@len@barheight% - +\tud@len@headsep-1in\relax% - \def\@tempa{2\dimexpr\coverpagetopmargin\relax}% - \ifx\@tempa\coverpagebottommargin\relax% - \let\coverpagebottommargin\tud@len@widemargin% - \tud@if@v@lower{2.03}{% - \def\coverpagebottommargin{.5\tud@len@both}% - }{}% - \fi% - \fi% -% \end{macrocode} -% Damit alle Einstellungen korrekt und wie gewünscht übernommen werden, muss -% die Höhe des Textbereiches \cs{textheight} \emph{vor} der Größe des oberen -% Seitenrande gesetzt werden. Dies hat mit der originären Definition von -% \cs{coverpagetopmargin} zu tun. -% \begin{macrocode} - \textheight=\dimexpr\tud@len@layoutheight-\coverpagetopmargin% - -\coverpagebottommargin-\tud@dim@extrabottommargin\relax% - \topmargin=\dimexpr\coverpagetopmargin-1in\relax% - \@colht=\textheight% - \@colroom=\textheight% - \vsize=\textheight% - \columnwidth=\textwidth% - \hsize=\columnwidth% - \linewidth=\hsize% + \tud@cover@setmargins% \tud@len@areavskip=\z@% % \end{macrocode} -% Weil bereits die Titelseite normalerweise die Seitenzahl eins bekommt, kann es -% bei der Verwendung des Paketes \pkg{hyperref} zu einer Warnung aufgrund der -% doppelt verwendeten Seitenzahl kommen. Um dies zu verhindern, werden die -% Seitenanker für das Cover deaktiviert. -% \begin{macrocode} - \ifundef{\hypersetup}{}{\hypersetup{pageanchor=false}}% -% \end{macrocode} % Die Ausgabe des Covers und ggf. das Wiederherstellen des Satzspiegels. % \begin{macrocode} \tud@maketitle% \clearpage% \titlepage@restore% +% \end{macrocode} +% Für den Fall, dass eine Umschlagseite gesetzt werden soll, die nicht im \CD +% erscheint, wird einfach das originale \cs{maketitle} aufgerufen und die +% Option \opt{titlepage}|=|\val{firstiscover} verwendet, um die Seitenränder +% anpassen zu können. +% \begin{macrocode} + \else% + \@titlepageiscoverpagetrue% + \tud@cover@fixmargins% + \ifx\tud@title@pagenumber\relax% + \tud@cs@use{maketitle}% + \else% + \tud@cs@use{maketitle}[\tud@title@pagenumber]% + \fi% \fi% \endgroup% } @@ -1404,29 +1460,20 @@ % booleschen Werten verwenet werden. Für einen benutzerdefinierten Satzspiegel % der Umschlagseite müssen die \KOMAScript-Makros \cs{coverpage\dots{}margin} % angepasst werden. -% \ToDo{% -% Parametersatz mit title vereinheitlichen bzw. Untermenge an -% \cs{tud@maketitle} durchreichen% -% }[v2.06] % \begin{macrocode} -\bool@lock{@tud@cdgeometry@cover} +\tud@locked@newbool{@tud@cdgeometry@cover} \TUD@parameter@family{cover}{% + \TUD@parameter@def{pagenumber}{\def\tud@title@pagenumber{#1}}% \TUD@parameter@def{cdcover}[true]{\TUDoption{cdcover}{#1}}% \TUD@parameter@let{cd}{cdcover}% \TUD@parameter@def{cdgeometry}[true]{% - \ifstrbool{#1}{% - \bool@set@lock{@tud@cdgeometry@cover}{true}% - }{% - \bool@set@lock{@tud@cdgeometry@cover}{false}% - }{% - \ifstr{#1}{custom}{\bool@set@lock{@tud@cdgeometry@cover}{false}}{% - \ifstr{#1}{user}{\bool@set@lock{@tud@cdgeometry@cover}{false}}{% - \TUD@parameter@error{cdgeometry}{true, false}% - }% - }% - }% + \TUDoption{cdgeometry}{#1}% + \ifnum\tud@cdgeometry@num>\@ne\relax% true/symmetric/twoside + \tud@locked@bool@set{@tud@cdgeometry@cover}{true}% + \else% + \tud@locked@bool@set{@tud@cdgeometry@cover}{false}% + \fi% }% - \TUD@parameter@def{pagenumber}{\def\tud@title@pagenumber{#1}}% % \end{macrocode} % Mit \cs{TUD@parameter@ps@def} werden alle verfügbaren Parameter für % die Kopf- und Fußzeilen definiert. @@ -1440,7 +1487,7 @@ \TUD@parameter@handler@value{pagenumber}% } % \end{macrocode} -% \end{macro}^^A \if@tud@cover +% \end{macro}^^A \if@tud@coverpage % \end{macro}^^A \if@tud@cdgeometry@cover@locked % \end{macro}^^A \if@tud@cdgeometry@cover % \end{parameter}^^A cdgeometry @@ -1448,6 +1495,104 @@ % \end{parameter}^^A cd % \end{parameter}^^A cdcover % \end{macro}^^A \makecover +% \begin{macro}{\coverpagetopmargin} +% \begin{macro}{\coverpagebottommargin} +% Bei der Verwendung eines eigenen Satzspiegels kann der obere Seitenrand über +% das Makro \cs{coverpagetopmargin} geändert werden. Die \KOMAScript-Befehle +% werden so angepasst, dass die Ränder für eine Cover im des \CDs korrekt +% voreingestellt sind. Das Vermeiden einer unerwünschten Überdeckung des Kopfes +% oder ein zu kleiner Fußbereich muss durch den Anwender korrigiert werden. +% \begin{macrocode} +\renewcommand*{\coverpagetopmargin}{% + \if@tud@coverpage% + \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep\relax% + \else% + \dimexpr\topmargin+1in\relax% + \fi% +} +\renewcommand*{\coverpagebottommargin}{% + \if@tud@coverpage% + \dimexpr\tud@len@widemargin\relax% + \else% + 2\dimexpr\coverpagetopmargin\relax% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \coverpagebottommargin +% \end{macro}^^A \coverpagetopmargin +% \begin{macro}{\tud@cover@fixmargins} +% \changes{v2.06}{2018/08/16}{neu}^^A +% \begin{macro}{\tud@cover@setmargins} +% \changes{v2.06}{2018/08/16}{neu}^^A +% Diese beiden Befehle werden verwendet, um die von \KOMAScript{} zur Verfügung +% gestellten Befehle für die Definition der Cover-Seitenränder so anzupassen, +% dass diese auch mit der Option \opt{layout} aus dem Paket \pkg{geometry} +% genutzt werden können. Dafür werden die vom Anwender definierten Seitenränder +% expandiert und mit dem notwendigen Offset beaufschlagt. +% \begin{macrocode} +\newcommand*\tud@cover@fixmargins{% + \begingroup% + \tud@cdgeometry@assignlayout% + \tud@x@geometry@fixmargins% +% \end{macrocode} +% Standardmäßig ist \cs{coverbottommargin} abhängig von \cs{covertopmargin}, +% weshalb dieses Makro als erstes expandiert wird. +% \begin{macrocode} + \setlength\@tempdima{% + \dimexpr\coverpagebottommargin-\tud@len@layoutvoffset + +\paperheight-\tud@len@layoutheight\relax% + }% + \edef\coverpagebottommargin{\the\@tempdima}% + \setlength\@tempdima{% + \dimexpr\coverpagetopmargin+\tud@len@layoutvoffset\relax% + }% + \edef\coverpagetopmargin{\the\@tempdima}% +% \end{macrocode} +% Selbiges gilt für \cs{coverrightmargin} und \cs{coverleftmargin}. +% \begin{macrocode} + \setlength\@tempdima{% + \dimexpr\coverpagerightmargin-\tud@len@layouthoffset + +\paperwidth-\tud@len@layoutwidth\relax% + }% + \edef\coverpagerightmargin{\the\@tempdima}% + \setlength\@tempdima{% + \dimexpr\coverpageleftmargin+\tud@len@layouthoffset\relax% + }% + \edef\coverpageleftmargin{\the\@tempdima}% +% \end{macrocode} +% Abschließend werden die gewünschten Längen nach der lokalen Gruppe definiert. +% \begin{macrocode} + \edef\tud@res@a{% + \endgroup% + \def\noexpand\coverpagetopmargin{\coverpagetopmargin}% + \def\noexpand\coverpagebottommargin{\coverpagebottommargin}% + \def\noexpand\coverpageleftmargin{\coverpageleftmargin}% + \def\noexpand\coverpagerightmargin{\coverpagerightmargin}% + }% + \tud@res@a% +} +\newcommand*\tud@cover@setmargins{% + \tud@cover@fixmargins% + \topmargin=\dimexpr\coverpagetopmargin-1in\relax% + \oddsidemargin=\dimexpr\coverpageleftmargin-1in\relax% + \evensidemargin=\dimexpr\coverpageleftmargin-1in\relax% + \textwidth=\dimexpr\paperwidth-\coverpageleftmargin% + -\coverpagerightmargin\relax% + \textheight=\dimexpr\paperheight-\coverpagetopmargin% + -\coverpagebottommargin\relax% + \headheight=0pt% + \headsep=0pt% + \footskip=\baselineskip% + \@colht=\textheight% + \@colroom=\textheight% + \vsize=\textheight% + \columnwidth=\textwidth% + \hsize=\columnwidth% + \linewidth=\hsize% +} +% \end{macrocode} +% \end{macro}^^A \tud@cover@setmargins +% \end{macro}^^A \tud@cover@fixmargins % % \iffalse %</book|report|article> diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-twocolfix.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-twocolfix.dtx index 765e166db07..ff86b18493a 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-twocolfix.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-twocolfix.dtx @@ -4,7 +4,7 @@ % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2017 +% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2019 % % ---------------------------------------------------------------------------- % @@ -48,26 +48,36 @@ % % \iffalse %%% From File: tudscr-twocolfix.dtx -%<*driver> -\ifx\ProvidesFile\@undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-twocolfix.dtx}[% - 2017/03/29 v2.05l TUD-Script\space% -%</driver> +%<*dtx> +% \fi +% +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\ProvidesFile{tudscr-twocolfix.dtx}[2019/06/28 v2.06 TUD-Script\space% +% +% \iffalse +%</dtx> %<package>\NeedsTeXFormat{LaTeX2e} %<package>\ProvidesPackage{twocolfix}[% -%<*driver|package> +%<*package> %!TUD@Version +%</package> %<package> package +%<*dtx|package> +% \fi (twocolumn layout bugfix)% ] -%</driver|package> -%<*driver> -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} +% \iffalse +%</dtx|package> +%<*dtx> \documentclass[english,ngerman,xindy]{tudscrdoc} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} \usepackage{babel} -\usepackage{tudscrfonts} % only load this package, if the fonts are installed +\usepackage{tudscrfonts} \KOMAoptions{parskip=half-} \usepackage{bookmark} \usepackage[babel]{microtype} @@ -84,7 +94,7 @@ \tableofcontents \DocInput{\filename} \end{document} -%</driver> +%</dtx> % \fi % % \selectlanguage{ngerman} @@ -102,8 +112,8 @@ % des Bugfixes in \KOMAScript{} wurde bereits bei Markus Kohm angefragt, jedoch % \hrfn{http://www.komascript.de/node/1681}{von ihm nicht weiter verfolgt}. % -% \ToDo{Als eingenständiges Paket herauslösen}[v2.06] -% \ToDo{CheckCommand verwenden}[v2.06] +% \ToDo{Als eingenständiges Paket herauslösen}[v2.??] +% \ToDo{CheckCommand verwenden}[v2.??] % % \StopEventually{\PrintIndex\PrintChanges\PrintToDos} % diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-version.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-version.dtx index d1407fa22f3..a44736671cb 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-version.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-version.dtx @@ -1,10 +1,10 @@ -% \CheckSum{133} +% \CheckSum{147} % \iffalse meta-comment % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2017 +% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2019 % % ---------------------------------------------------------------------------- % @@ -95,7 +95,7 @@ \begingroup \catcode`\@11\relax %<*!(package|class)> - \ifx\newcommand\@undefined + \ifx\newcommand\undefined \gdef\TUD@Version@Check#1{% \gdef\TUD@Version{\space\space#1}% \gdef\TUDScriptVersion{\space\space#1}% @@ -110,7 +110,7 @@ \def\@tempb##1 v##2 ##3\relax##4\relax{\gdef\TUDScriptVersionNumber{##2}}% \edef\@tempa{\TUD@Version}% \expandafter\@tempb\@tempa\relax? ? \relax\relax% - \gdef\TUD@Version@KOMA{3.17}% + \gdef\TUD@Version@KOMA{3.25}% } \else \newcommand*\TUD@Version@Check[1]{% @@ -131,7 +131,7 @@ % \end{macrocode} % \ToDo{Version eintragen}[Release] % \begin{macrocode} - \TUD@Version@Check{2017/05/30 v2.05m TUD-Script} + \TUD@Version@Check{2019/06/28 v2.06 TUD-Script} \endgroup % \end{macrocode} % \end{macro}^^A \TUDScriptVersionNumber @@ -141,16 +141,21 @@ % \end{macro}^^A \TUD@Version % % \iffalse -%<*driver> +%<*dtx> % \fi +% \ProvidesFile{tudscr-version.dtx}[\TUDScriptVersion\space (versions)] +% % \iffalse -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[english,ngerman,xindy]{tudscrdoc} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} \usepackage{babel} -\usepackage{tudscrfonts} % only load this package, if the fonts are installed +\usepackage{tudscrfonts} \KOMAoptions{parskip=half-} \usepackage{bookmark} \usepackage[babel]{microtype} @@ -167,7 +172,7 @@ \tableofcontents \DocInput{\filename} \end{document} -%</driver> +%</dtx> % \fi % % Als erstes das benötigte \LaTeX-Format. @@ -239,13 +244,14 @@ % erstellt. % \begin{macrocode} \providecommand*\TUD@Class@Info{% - \typeout{+---------------------------------------------------------------}% + \typeout{+------------------------------------------------------------------}% \typeout{| Corporate Design of Technische Universitaet Dresden}% - \typeout{| Class: \TUD@Class@Name}% - \typeout{| Version: \TUD@Version}% - \typeout{| Author: Falk Hanisch (\tudscrmail)}% - \typeout{| Forum: http://latex.wcms-file3.tu-dresden.de/phpBB3/}% - \typeout{+---------------------------------------------------------------}% + \typeout{| Class: \TUD@Class@Name}% + \typeout{| Version: \TUD@Version}% + \typeout{| Author: Falk Hanisch (\tudscrmail)}% + \typeout{| Repository: https://github.com/tud-cd/tudscr}% + \typeout{| Forum: https://latex.wcms-file3.tu-dresden.de}% + \typeout{+------------------------------------------------------------------}% } % \end{macrocode} % \end{macro}^^A \TUD@Class@Info @@ -289,7 +295,7 @@ This package can only be used with a class out of the\MessageBreak% tudscr bundle (tudscrbook, tudscrreprt, tudscrartcl, tudscrposter).% }% - \endinput + \endinput% \fi % \end{macrocode} % @@ -304,9 +310,19 @@ %<*package|class> \@ifundefined{TUDScript}{% \DeclareRobustCommand\TUDScript{% - \ifdin{TUD-SCRIPT}{% - \textsf{T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script}% - }\csname xspace\endcsname% + \begingroup% + \def\tud@res@b##1{T\kern.05em U\kern.05em D\kern.1em-\kern.1em ##1}% +%<*!doc> + \tud@ifdin{% + \edef\tud@res@a{\tud@res@b{SCRIPT}}% + }{% +%</!doc> + \edef\tud@res@a{\noexpand\textsf{\tud@res@b{Script}}}% +%<*!doc> + }% +%</!doc> + \expandafter\endgroup\tud@res@a% + \csname xspace\endcsname% }% }{} %</package|class> diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr.ins b/Master/texmf-dist/source/latex/tudscr/tudscr.ins index ed114bd54f9..dd459ac6677 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr.ins +++ b/Master/texmf-dist/source/latex/tudscr/tudscr.ins @@ -2,7 +2,7 @@ % TUD-Script -- Corporate Design of Technische Universitaet Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2017 +% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2019 % % ---------------------------------------------------------------------------- % @@ -53,7 +53,7 @@ TUD-Script -- Corporate Design of Technische Universitaet Dresden \TUD@Version -Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2017 +Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2019 This file was generated from file(s) of the TUD-Script bundle. ---------------------------------------------------------------------------- @@ -87,13 +87,13 @@ The current maintainer and author of this work is Falk Hanisch. \from{tudscr-layout.dtx}{class,book,option}% \from{tudscr-title.dtx}{class,book,option}% \from{tudscr-frontmatter.dtx}{class,book,option}% - \from{tudscr-comp.dtx}{class,book,option}% \from{tudscr-misc.dtx}{class,book,option}% + \from{tudscr-comp.dtx}{class,book,option}% \from{tudscr-misc.dtx}{class,book,execute}% \from{tudscr-base.dtx}{class,book,body}% \from{tudscr-fonts.dtx}{class,book,body}% \from{tudscr-fields.dtx}{class,book,body}% - \from{tudscr-locale.dtx}{class,book,body}% + \from{tudscr-localization.dtx}{class,book,body}% \from{tudscr-area.dtx}{class,book,body}% \from{tudscr-pagestyle.dtx}{class,book,body}% \from{tudscr-layout.dtx}{class,book,body}% @@ -111,13 +111,13 @@ The current maintainer and author of this work is Falk Hanisch. \from{tudscr-layout.dtx}{class,report,option}% \from{tudscr-title.dtx}{class,report,option}% \from{tudscr-frontmatter.dtx}{class,report,option}% - \from{tudscr-comp.dtx}{class,report,option}% \from{tudscr-misc.dtx}{class,report,option}% + \from{tudscr-comp.dtx}{class,report,option}% \from{tudscr-misc.dtx}{class,report,execute}% \from{tudscr-base.dtx}{class,report,body}% \from{tudscr-fonts.dtx}{class,report,body}% \from{tudscr-fields.dtx}{class,report,body}% - \from{tudscr-locale.dtx}{class,report,body}% + \from{tudscr-localization.dtx}{class,report,body}% \from{tudscr-area.dtx}{class,report,body}% \from{tudscr-pagestyle.dtx}{class,report,body}% \from{tudscr-layout.dtx}{class,report,body}% @@ -135,13 +135,13 @@ The current maintainer and author of this work is Falk Hanisch. \from{tudscr-layout.dtx}{class,article,option}% \from{tudscr-title.dtx}{class,article,option}% \from{tudscr-frontmatter.dtx}{class,article,option}% - \from{tudscr-comp.dtx}{class,article,option}% \from{tudscr-misc.dtx}{class,article,option}% + \from{tudscr-comp.dtx}{class,article,option}% \from{tudscr-misc.dtx}{class,article,execute}% \from{tudscr-base.dtx}{class,article,body}% \from{tudscr-fonts.dtx}{class,article,body}% \from{tudscr-fields.dtx}{class,article,body}% - \from{tudscr-locale.dtx}{class,article,body}% + \from{tudscr-localization.dtx}{class,article,body}% \from{tudscr-area.dtx}{class,article,body}% \from{tudscr-pagestyle.dtx}{class,article,body}% \from{tudscr-layout.dtx}{class,article,body}% @@ -159,13 +159,13 @@ The current maintainer and author of this work is Falk Hanisch. \from{tudscr-layout.dtx}{class,poster,option}% \from{tudscr-title.dtx}{class,poster,option}% \from{tudscr-frontmatter.dtx}{class,poster,option}% - \from{tudscr-comp.dtx}{class,poster,option}% \from{tudscr-misc.dtx}{class,poster,option}% + \from{tudscr-comp.dtx}{class,poster,option}% \from{tudscr-misc.dtx}{class,poster,execute}% \from{tudscr-base.dtx}{class,poster,body}% \from{tudscr-fonts.dtx}{class,poster,body}% \from{tudscr-fields.dtx}{class,poster,body}% - \from{tudscr-locale.dtx}{class,poster,body}% + \from{tudscr-localization.dtx}{class,poster,body}% \from{tudscr-area.dtx}{class,poster,body}% \from{tudscr-pagestyle.dtx}{class,poster,body}% \from{tudscr-layout.dtx}{class,poster,body}% @@ -181,7 +181,7 @@ The current maintainer and author of this work is Falk Hanisch. \from{tudscr-version.dtx}{package,supervisor}% \from{tudscr-supervisor.dtx}{package,supervisor}% \from{tudscr-fields.dtx}{package,supervisor}% - \from{tudscr-locale.dtx}{package,supervisor}% + \from{tudscr-localization.dtx}{package,supervisor}% } } \generate{% @@ -191,6 +191,7 @@ The current maintainer and author of this work is Falk Hanisch. \from{tudscr-fonts.dtx}{package,fonts,identify}% \from{tudscr-base.dtx}{package,fonts,load}% \from{tudscr-fonts.dtx}{package,fonts,option}% + \from{tudscr-misc.dtx}{package,fonts,option}% \from{tudscr-comp.dtx}{package,fonts,option}% \from{tudscr-misc.dtx}{package,fonts,execute}% \from{tudscr-fonts.dtx}{package,fonts,body}% @@ -200,12 +201,15 @@ The current maintainer and author of this work is Falk Hanisch. } \generate{% \usepreamble\defaultpreamble% - \file{fix-tudscrfonts.sty}{% - \from{tudscr-version.dtx}{package,fontsfix}% - \from{tudscr-comp.dtx}{package,fontsfix,identify}% - \from{tudscr-base.dtx}{package,fontsfix}% - \from{tudscr-comp.dtx}{package,fontsfix,option}% - \from{tudscr-comp.dtx}{package,fontsfix,body}% + \file{tudscrcolor.sty}{% + \from{tudscr-version.dtx}{package,color}% + \from{tudscr-color.dtx}{package,color}% + } + \file{twocolfix.sty}{% + \from{tudscr-twocolfix.dtx}{package}% + } + \file{mathswap.sty}{% + \from{tudscr-mathswap.dtx}{package}% } } \generate{% @@ -231,15 +235,15 @@ The current maintainer and author of this work is Falk Hanisch. } \generate{% \usepreamble\defaultpreamble% - \file{tudscrcolor.sty}{% - \from{tudscr-version.dtx}{package,color}% - \from{tudscr-color.dtx}{package,color}% - } - \file{twocolfix.sty}{% - \from{tudscr-twocolfix.dtx}{package}% - } - \file{mathswap.sty}{% - \from{tudscr-mathswap.dtx}{package}% + \file{fix-tudscrfonts.sty}{% + \from{tudscr-version.dtx}{package,fixfonts}% + \from{tudscr-comp.dtx}{package,fixfonts,identify}% + \from{tudscr-base.dtx}{package,fixfonts,load}% + \from{tudscr-layout.dtx}{package,fixfonts,option}% + \from{tudscr-misc.dtx}{package,fixfonts,execute}% + \from{tudscr-layout.dtx}{package,fixfonts,body}% + \from{tudscr-comp.dtx}{package,fixfonts,body}% + \from{tudscr-misc.dtx}{package,fixfonts,body}% } } \generate{% @@ -252,7 +256,7 @@ The current maintainer and author of this work is Falk Hanisch. \from{tudscr-misc.dtx}{class,manual,inherit,execute}% \from{tudscr-manual.dtx}{class,manual,body}% \from{tudscr-fields.dtx}{class,manual,body}% - \from{tudscr-locale.dtx}{class,manual,body}% + \from{tudscr-localization.dtx}{class,manual,body}% \from{tudscr-texindy.dtx}{class,manual}% } \file{tudscrtutorial.sty}{% @@ -269,9 +273,9 @@ The current maintainer and author of this work is Falk Hanisch. \usepreamble\defaultpreamble% \file{tudscrdoc.cls}{% \from{tudscr-version.dtx}{class,doc}% - \from{tudscr-base.dtx}{class,doc}% + \from{tudscr-base.dtx}{class,doc,load}% \from{tudscr-doc.dtx}{class,doc,option}% - \from{tudscr-locale.dtx}{class,doc}% + \from{tudscr-localization.dtx}{class,doc}% \from{tudscr-manual.dtx}{class,doc}% \from{tudscr-doc.dtx}{class,doc,body}% \from{tudscr-texindy.dtx}{class,doc}% diff --git a/Master/texmf-dist/source/latex/tudscr/tudscrsource.tex b/Master/texmf-dist/source/latex/tudscr/tudscrsource.tex index d19ad832cce..f1bbcf9d9cb 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscrsource.tex +++ b/Master/texmf-dist/source/latex/tudscr/tudscrsource.tex @@ -4,12 +4,15 @@ \gdef\filename{\jobname} \endgroup \ProvidesFile{tudscrsource.tex}[\TUDScriptVersion (sourcedoc)] -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[english,ngerman,xindy]{tudscrdoc} -\usepackage[T1]{fontenc} -\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} \usepackage{babel} -\usepackage{tudscrfonts} % only load this package, if the fonts are installed +\usepackage{tudscrfonts} \KOMAoptions{parskip=half-} \usepackage{bookmark} \usepackage[babel]{microtype} @@ -22,7 +25,7 @@ \begin{document} \addtokomafont{subject}{\sffamily} \subject{\TUDScript basierend auf \KOMAScript} -\title{Ein \LaTeXe-Bundle für Dokumente \mbox{im neuen \CD der} \mbox{\TnUD}} +\title{Ein \LaTeX-Bundle für Dokumente \mbox{im neuen \CD der} \mbox{\TnUD}} \subtitle{Dokumentierter Quelltext} \author{Falk Hanisch\qquad\expandafter\mailto\expandafter{\tudscrmail}} \date{\fileversion\nobreakspace(\filedate)} @@ -41,16 +44,15 @@ pdfkeywords = {LaTeX, \TUDScript, Quelltext},% }% \endgroup% -\renewcommand*\@pnumwidth{1.9em} -\renewcommand*\@tocrmarg{2.9em} \let\@maketitle\scr@maketitle% \makeatother \maketitle +\ToDo{Release-Prozess mit \app{make} und \file{Makefile}}[v2.07] -Das \TUDScript-Bundle setzt das \CD der \TnUD für \LaTeXe{} um. Die enthaltenen +Das \TUDScript-Bundle setzt das \TUDCD für \LaTeXe{} um. Die enthaltenen Klassen und Pakete basieren auf dem \KOMAScript-Bundle und sind sehr eng mit diesen verwoben. Momentan ergänzen sie das Vorlagenpaket von Klaus Bergmann, das auf den Standard-\LaTeX-Klassen basiert und als veraltet betrachtet werden @@ -64,13 +66,6 @@ sondern um den dokumentierten Quelltext der Implementierung von \TUDScript. Das Anwenderhandbuch kann über die Kommandozeile respektive das Terminal mit dem Aufruf \texttt{texdoc tudscr} geöffnet werden. -\ToDo{Sämtliche \cs{@temp\dots}-Makros auf \cs{tud@temp\dots} ändern}[v2.06] -\ToDo{\cs{tud@reserved} in \cs{tud@temp\dots} ändern}[v2.06] -\ToDo{\cs{def} durch \cs{renewcommand*} ersetzen, wo möglich}[v2.06] -\ToDo{% - Felder \cs{@@...} mit \cs{@...} tauschen (einheitlicher Zugriff auf Rohwert)% -}[v2.06] - \tableofcontents \clearpage @@ -78,7 +73,7 @@ dem Aufruf \texttt{texdoc tudscr} geöffnet werden. \DocInclude{tudscr-base} \DocInclude{tudscr-fonts} \DocInclude{tudscr-fields} -\DocInclude{tudscr-locale} +\DocInclude{tudscr-localization} \DocInclude{tudscr-area} \DocInclude{tudscr-pagestyle} \DocInclude{tudscr-layout} @@ -96,9 +91,8 @@ dem Aufruf \texttt{texdoc tudscr} geöffnet werden. \DocInclude{tudscr-manual} \DocInclude{tudscr-doc} \DocInclude{tudscr-texindy} - -\DocInclude{install/tudscr-metrics} -\DocInclude{install/tudscr-scripts} +%\DocInclude{install/tudscr-metrics} +%\DocInclude{install/tudscr-scripts} \fi \addpart{\appendixname} |