summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/tudscr
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-07-30 23:12:46 +0000
committerKarl Berry <karl@freefriends.org>2016-07-30 23:12:46 +0000
commit6b200dd5c2335baa8c78037d8f1c75d1295187f4 (patch)
tree45201aff662870ef1d337d24f7ce584320a633bf /Master/texmf-dist/source/latex/tudscr
parent4e2bc5d88938c53a614ca1efafe6680e25d24c76 (diff)
tudscr (26jul16)
git-svn-id: svn://tug.org/texlive/trunk@41776 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/tudscr')
-rw-r--r--Master/texmf-dist/source/latex/tudscr/doc/examples/evaluation.tex8
-rw-r--r--Master/texmf-dist/source/latex/tudscr/doc/examples/mathswap-example.tex8
-rw-r--r--Master/texmf-dist/source/latex/tudscr/doc/examples/notice.tex19
-rw-r--r--Master/texmf-dist/source/latex/tudscr/doc/examples/poster.tex45
-rw-r--r--Master/texmf-dist/source/latex/tudscr/doc/examples/task.tex21
-rw-r--r--Master/texmf-dist/source/latex/tudscr/doc/examples/thesis.tex16
-rw-r--r--Master/texmf-dist/source/latex/tudscr/doc/examples/treatise-example.tex135
-rw-r--r--Master/texmf-dist/source/latex/tudscr/doc/tudscr-additional.tex35
-rw-r--r--Master/texmf-dist/source/latex/tudscr/doc/tudscr-bundle.tex739
-rw-r--r--Master/texmf-dist/source/latex/tudscr/doc/tudscr-examples.tex94
-rw-r--r--Master/texmf-dist/source/latex/tudscr/doc/tudscr-hints.tex682
-rw-r--r--Master/texmf-dist/source/latex/tudscr/doc/tudscr-index.tex114
-rw-r--r--Master/texmf-dist/source/latex/tudscr/doc/tudscr-installation.tex164
-rw-r--r--Master/texmf-dist/source/latex/tudscr/doc/tudscr-introduction.tex253
-rw-r--r--Master/texmf-dist/source/latex/tudscr/doc/tudscr-mainclasses.tex3416
-rw-r--r--Master/texmf-dist/source/latex/tudscr/doc/tudscr-obsolete.tex1008
-rw-r--r--Master/texmf-dist/source/latex/tudscr/doc/tudscr-packages.tex879
-rw-r--r--Master/texmf-dist/source/latex/tudscr/doc/tudscr-poster.tex395
-rw-r--r--Master/texmf-dist/source/latex/tudscr/doc/tudscr-preface.tex24
-rw-r--r--Master/texmf-dist/source/latex/tudscr/doc/tudscr-supervisor.tex421
-rw-r--r--Master/texmf-dist/source/latex/tudscr/doc/tudscr.tex63
-rw-r--r--Master/texmf-dist/source/latex/tudscr/doc/tutorials/mathswap.tex49
-rw-r--r--Master/texmf-dist/source/latex/tudscr/doc/tutorials/mathtype.tex53
-rw-r--r--Master/texmf-dist/source/latex/tudscr/doc/tutorials/treatise.tex2063
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-area.dtx2120
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-base.dtx920
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-color.dtx420
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-comp.dtx1764
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-doc.dtx1088
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-fields.dtx1083
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx3345
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-frontmatter.dtx614
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-layout.dtx1341
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-locale.dtx593
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx7531
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-mathswap.dtx48
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-misc.dtx1137
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx3162
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-poster.dtx311
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-supervisor.dtx268
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-title.dtx888
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-twocolfix.dtx92
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-version.dtx221
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr.ins211
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscrsource.tex67
45 files changed, 23273 insertions, 14655 deletions
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 c4137a4251a..c70743c9029 100644
--- a/Master/texmf-dist/source/latex/tudscr/doc/examples/evaluation.tex
+++ b/Master/texmf-dist/source/latex/tudscr/doc/examples/evaluation.tex
@@ -9,7 +9,7 @@
\begin{document}
\faculty{Juristische Fakultät}\department{Fachrichtung Strafrecht}
\institute{Institut für Kriminologie}\chair{Lehrstuhl für Kriminalprognose}
-\date{18.02.2015}
+\date{16.10.2015}
\author{Mickey Mouse}
\title{%
Entwicklung eines optimalen Verfahrens zur Eroberung des
@@ -24,9 +24,9 @@
\referee{Dagobert Duck}
\evaluationform[pagestyle=empty]{%
Als Ziel dieser Arbeit sollte identifiziert werden, warum das Thema
- gerade so omnipräsent ist und wie man diesen Effekt abschwächen
- könnte. Zusätzlich sollten Methoden entwickelt werden, wie sich ein
- ähnlicher Vorgang zukünftig vermeiden ließe.
+ gerade so omnipräsent ist und wie sich dieser Effekt abschwächen
+ 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
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 5120b3e45ee..1b064b73e11 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
@@ -22,13 +22,13 @@
\(4,523.58\)
\endgroup
-\begingroup%
+\begingroup
\selectlanguage{english}%
- \(4,523.58\)\par
- \(4.523,58\)\par
+ \(4,523.58\)\\
+ \(4.523,58\)\\
\commaswap{.}
\dotswap{\,}
- \(4.523,58\)%
+ \(4.523,58\)
\endgroup
\end{document}
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 c7cd3028bc4..954eca71f78 100644
--- a/Master/texmf-dist/source/latex/tudscr/doc/examples/notice.tex
+++ b/Master/texmf-dist/source/latex/tudscr/doc/examples/notice.tex
@@ -9,7 +9,7 @@
\begin{document}
\faculty{Juristische Fakultät}\department{Fachrichtung Strafrecht}
\institute{Institut für Kriminologie}\chair{Lehrstuhl für Kriminalprognose}
-\date{18.02.2015}
+\date{16.10.2015}
\title{%
Entwicklung eines optimalen Verfahrens zur Eroberung des
Geldspeichers in Entenhausen
@@ -22,15 +22,16 @@
\emailaddress{mac.moneysac@tu-dresden.de}\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
- nicht abzusehen, ob und wann sich diese Situation ändert. Eine kurzfristige
- Verlagerung aus dem Fokus der Öffentlichkeit wird nicht erwartet.
+ 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.
- Als Ziel dieser Arbeit soll identifiziert werden, warum das Thema gerade so
- omnipräsent ist und wie man diesen Effekt abschwächen könnte. Zusätzlich
- sollen Methoden entwickelt werden, wie sich ein ähnlicher Vorgang zukünftig
- vermeiden ließe.
+ 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.
\begin{center}
\medskip\includegraphics[width=.7\linewidth]{DDC-21}
\renewcommand*{\figureformat}{\figurename}
diff --git a/Master/texmf-dist/source/latex/tudscr/doc/examples/poster.tex b/Master/texmf-dist/source/latex/tudscr/doc/examples/poster.tex
new file mode 100644
index 00000000000..33ddd7ddc81
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tudscr/doc/examples/poster.tex
@@ -0,0 +1,45 @@
+\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
+\RequirePackage{fix-cm}
+\documentclass[ngerman,paper=A1,fontsize=22pt,cdfoot=5ex,ddcfoot]{tudscrposter}
+\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
+\usepackage[T1]{fontenc}
+\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}
+\title{%
+ Entwicklung eines optimalen Verfahrens zur Eroberung des
+ Geldspeichers in Entenhausen
+}
+\contactperson{%
+ Mickey Mouse%
+ \office{Büro 58}%
+ \telephone{463--xxxxx}%
+ \emailaddress{mickey.mouse@tu-dresden.de}%
+}
+\professor{Prof. Dr. Kater Karlo}
+\maketitle
+\begin{abstract}%[columns=2]
+\noindent\blindtext
+\end{abstract}
+
+\begin{multicols}{2}[\section*{Test}]
+\blindtext[3]
+\end{multicols}
+\bigskip
+
+\begin{center}
+\includegraphics[width=.7\linewidth]{TUD-black}
+\end{center}
+
+\begin{multicols}{2}[\section*{Test}]
+\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 d9e688ede34..2ac847e63e3 100644
--- a/Master/texmf-dist/source/latex/tudscr/doc/examples/task.tex
+++ b/Master/texmf-dist/source/latex/tudscr/doc/examples/task.tex
@@ -15,27 +15,28 @@
}
\thesis{master}\graduation[M.Sc.]{Master of Science}
\author{%
- Mickey Mouse\matriculationnumber{12345678}
- \dateofbirth{2.1.1990}\placeofbirth{Dresden}
- \course{Klinische Prognostik}\discipline{Individualprognose}
+ Mickey Mouse\matriculationnumber{12345678}%
+ \dateofbirth{2.1.1990}\placeofbirth{Dresden}%
+ \course{Klinische Prognostik}\discipline{Individualprognose}%
\and%
- Donald Duck\matriculationnumber{87654321}
- \dateofbirth{1.2.1990}\placeofbirth{Berlin}
- \course{Statistische Prognostik}\discipline{Makrosoziologische Prognosen}
+ Donald Duck\matriculationnumber{87654321}%
+ \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}
\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
+ 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 man diesen Effekt abschwächen
- könnte. Zusätzlich sollen Methoden entwickelt werden, wie sich ein
- ähnlicher Vorgang zukünftig vermeiden ließe.
+ 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
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 7099e9669cb..c59eb63f2b4 100644
--- a/Master/texmf-dist/source/latex/tudscr/doc/examples/thesis.tex
+++ b/Master/texmf-dist/source/latex/tudscr/doc/examples/thesis.tex
@@ -17,15 +17,15 @@
\subject{master}
\graduation[M.Sc.]{Master of Science}
\author{%
- Mickey Mouse
- \matriculationnumber{12345678}
- \dateofbirth{2.1.1990}
- \placeofbirth{Dresden}
+ Mickey Mouse%
+ \matriculationnumber{12345678}%
+ \dateofbirth{2.1.1990}%
+ \placeofbirth{Dresden}%
\and%
- Donald Duck
- \matriculationnumber{87654321}
- \dateofbirth{1.2.1990}
- \placeofbirth{Berlin}
+ Donald Duck%
+ \matriculationnumber{87654321}%
+ \dateofbirth{1.2.1990}%
+ \placeofbirth{Berlin}%
}
\matriculationyear{2010}
\supervisor{Dagobert Duck \and Mac Moneysac}
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 56e18adc611..ee552b76ef6 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,27 +1,28 @@
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
\documentclass[english,ngerman]{tudscrreprt}
\usepackage{babel}
-\usepackage{selinput}
-\SelectInputMappings{adieresis={ä},germandbls={ß}}
+\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage[T1]{fontenc}
\usepackage{scrhack}
\usepackage{tudscrsupervisor}
\AfterPackage*{hyperref}{%
\usepackage[%
- automake,%
-% mit Tex Live einfach verwendbar
-% xindy,
acronym,% Abkürzungen
symbols,% Formelzeichen
nomain,% kein Glossar
- translate=babel,%
nogroupskip,%
toc,%
section=chapter,%
+ nostyles,%
+ translate=babel,%
+% mit Tex Live einfach verwendbar
+ xindy={language=german-din},
]{glossaries}
\makeglossaries
+}% Ende von AfterPackage
+\AfterPackage*{glossaries}{%
\newglossarystyle{acrotabu}{%
\renewenvironment{theglossary}{%
\begin{tabu}spread 0pt{@{}lX<{\strut}l@{}}%
@@ -42,8 +43,8 @@
\newcommand*{\newsymbol}[5][]{%
\newglossaryentry{#2}{%
type=symbols,%
- description={},%
name={#3},%
+ description={\nopostdesc},%
symbol={\ensuremath{#4}},%
user1={\ensuremath{\mathrm{#5}}},%
sort={#2},%
@@ -64,15 +65,15 @@
}{%
\end{longtabu}%
}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glsgroupskip}{}%
\renewcommand*{\glossaryheader}{%
\toprule
- \bfseries Symbol & \bfseries Einheit &
- \bfseries Name & \bfseries Seite(n)
+ \bfseries Formelzeichen & \bfseries Einheit &
+ \bfseries Bezeichnung & \bfseries Seite(n)
\tabularnewline\midrule\endhead%
\bottomrule\endfoot%
}%
- \renewcommand*{\glsgroupheading}[1]{}%
- \renewcommand*{\glsgroupskip}{}%
\renewcommand*{\glossentry}[2]{%
\glsentryitem{##1}% Entry number if required
\glstarget{##1}{\glossentrysymbol{##1}} &
@@ -81,7 +82,7 @@
##2\tabularnewline%
}%
}
-}% Ende von AfterPackage*
+}% Ende von AfterPackage
\usepackage{csquotes}
\usepackage[backend=biber,style=alphabetic]{biblatex}
@@ -109,9 +110,8 @@
}
@manual{hanisch14,
author = {Hanisch, Falk},
- title = {Ein \LaTeX"=Bundle für Dokumente
- im neuen Corporate Design
- der Technischen Universität Dresden},
+ title = {Ein \LaTeX"=Bundle für Dokumente im neuen Corporate
+ Design der Technischen Universität Dresden},
date = {2014},
subtitle = {Benutzerhandbuch},
location = {Dresden},
@@ -135,6 +135,7 @@
\usepackage{tabularx}
\usepackage{tabulary}
\usepackage{tabu}
+\usepackage{longtable}
\usepackage{quoting}
@@ -165,29 +166,28 @@
\thesis{master}
\graduation[M.Sc.]{Master of Science}
\author{%
- Mickey Mouse
- \matriculationnumber{12345678}
- \dateofbirth{2.1.1990}
- \placeofbirth{Dresden}
- \course{Klinische Prognostik}
- \discipline{Individualprognose}
+ Mickey Mouse%
+ \matriculationnumber{12345678}%
+ \dateofbirth{2.1.1990}%
+ \placeofbirth{Dresden}%
+ \course{Klinische Prognostik}%
+ \discipline{Individualprognose}%
\and%
- Donald Duck
- \matriculationnumber{87654321}
- \dateofbirth{1.2.1990}
- \placeofbirth{Berlin}
- \course{Statistische Prognostik}
- \discipline{Makrosoziologische Prognosen}
+ Donald Duck%
+ \matriculationnumber{87654321}%
+ \dateofbirth{1.2.1990}%
+ \placeofbirth{Berlin}%
+ \course{Statistische Prognostik}%
+ \discipline{Makrosoziologische Prognosen}%
}
\matriculationyear{2010}
\supervisor{Dagobert Duck \and Mac Moneysac}
\professor{Prof. Dr. Kater Karlo}
\date{10.09.2014}
-
\makecover
\maketitle
-\newcommand\taskcontent{%
+\newcommand{\taskcontent}{%
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
@@ -195,9 +195,9 @@
wird nicht erwartet.
Als Ziel dieser Arbeit soll identifiziert werden, warum das Thema
- gerade so omnipräsent ist und wie man diesen Effekt abschwächen
- könnte. Zusätzlich sollen Methoden entwickelt werden, wie sich ein
- ähnlicher Vorgang zukünftig vermeiden ließe.
+ 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.
}
\taskform[pagestyle=empty]{\taskcontent}{%
\item Recherche
@@ -227,7 +227,7 @@
\printsymbols[style=symblongtabu]
\setchapterpreamble{%
- \renewcommand*\dictumwidth{.4\textwidth}%
+ \renewcommand*{\dictumwidth}{.4\textwidth}%
\dictum[Johann Wolfgang von Goethe]{%
Es irrt der Mensch, solang er strebt.%
}%
@@ -266,7 +266,7 @@ Punktmasse lautet:
\[\gls{F} = \gls{m} \cdot \gls{a}\]
\section{Referenzen und das Literaturverzeichnis}
-Das Literaturverzeichnis wir auf Basis der nachfolgend verwendeten
+Das Literaturverzeichnis wird auf Basis der nachfolgend verwendeten
Zitate erstellt und ist auf Seite~\pageref{sec:bibliography} zu finden.
In diesem Textabschnitt werden die zwei bekannten \LaTeX-Bücher
\cite{knuth84} und \cite{goossens94} sowie das Anwenderhandbuch
@@ -278,7 +278,7 @@ Grafiken als auch Tabellen verwendet werden sollten. Im vorliegenden
Beispiel kann unter Umständen der Eindruck entstehen, dass diese Seite
etwas zu überladen mit Gleitobjekten ist. Dies liegt nicht an der
Verwendung der Gleitobjekte sondern vielmehr am zu geringen Textvolumen
-und den eingeschränkten Möglichkeiten von \LaTeX{}, diese an geigneten
+und den eingeschränkten Möglichkeiten von \LaTeX{}, diese an geeigneten
Stellen zu platzieren.
\subsection{Abbildungen als Gleitobjekte und das Einbinden von Grafiken}
@@ -286,11 +286,11 @@ In \autoref{fig:example} wird dargestellt, wie eine Grafik im PDF-Format
in ein Dokument eingebunden und auf diese verwiesen werden kann. Ein
Querverweis auf ein Gleitobjekt sollte im Fließtext am besten mit Befehl
\texttt{\textbackslash autoref\{\emph{<Label>}\}} erstellt werden.
-Hierfür ist ein entsprechender Anker am zu referenziereden Objekt nötig,
+Hierfür ist ein entsprechender Anker am zu referenzierenden Objekt nötig,
welcher mit dem Makro \texttt{\textbackslash label} erzeugt wird. Dabei
ist entscheidend, dass dieser Anker erst \emph{nach} der Beschriftung des
-Objektes, welche mit \texttt{\textbackslash caption} erstellt wird,
-gesetzt wird.
+Objektes, welche mit \texttt{\textbackslash caption} zu erstellen ist,
+definiert werden sollte.
\begin{figure}
\centering
@@ -320,7 +320,7 @@ sowohl auf \autoref{fig:logos} als auch auf \autoref{fig:tud} sowie
\subsection{Tabellen als Gleitobjekte}
Tabellen sollten in der \texttt{table}"=Gleitumgebung gesetzt werden.
-Welche Umgebung für die Tabelle selbst dabie genutzt wird ist dabei
+Welche Umgebung für die Tabelle selbst dabei genutzt wird ist dabei
nicht relevant. Es können sowohl die normale \texttt{tabular}"=Umgebung
als auch die Umgebungen \texttt{tabularx}, \texttt{tabulary} sowie
\texttt{tabu} für variable Spaltenbreiten bei einer fest vorgegebenen
@@ -328,7 +328,7 @@ Tabellenbreite oder jede andere Tabellenumgebung genutzt werden.
Nachfolgend wird dies an mehreren Beispielen demonstriert.
\subsubsection{Eine gleitende tabularx-Tabelle}
-Es wird eine Tabelle mithilfe der \texttt{tabularx}-Umgebung erstellt.
+Es wird eine Tabelle mithilfe der \texttt{tabularx}"=Umgebung erstellt.
Zu sehen ist diese in \autoref{tab:tabularx}. Für diese werden zuvor
neue Spaltentypen definiert.
@@ -350,28 +350,26 @@ Ein längerer Blindtext im Blocksatz zur besseren Demonstration
einer Y"~Spalte\tabularnewline
\bottomrule
\end{tabularx}
-\caption{Eine \texttt{tabularx}-Tabelle}\label{tab:tabularx}
+\caption{Eine \texttt{tabularx}"=Tabelle}\label{tab:tabularx}
\end{table}
\subsubsection{Eine gleitende tabulary-Tabelle}
-Es wird eine Tabelle mithilfe der \texttt{tabulary}-Umgebung erstellt.
+Es wird eine Tabelle mithilfe der \texttt{tabulary}"=Umgebung erstellt.
Zu sehen ist diese in \autoref{tab:tabulary}.
\begin{table}
\begin{tabulary}{\textwidth}{@{}LCRJ@{}}
\toprule
\textbf{Linksbündig} & \textbf{Zentriert} &
-\textbf{Rechtsbündig} & \textbf{Blocksatz} \tabularnewline
-\midrule
+\textbf{Rechtsbündig} & \textbf{Blocksatz} \tabularnewline\midrule
Ein linksbündiger Blindtext zur Demonstration einer L"~Spalte &
Ein zentrierter Blindtext zur Demonstration einer C"~Spalte &
Ein rechtsbündiger Blindtext zur Demonstration einer R"~Spalte &
Ein wesentlich längerer und absolut inhaltsleerer Blindtext im
Blocksatz für eine um einiges bessere Demonstration einer J"~Spalte
-\tabularnewline
-\bottomrule
+\tabularnewline\bottomrule
\end{tabulary}
-\caption{Eine \texttt{tabulary}-Tabelle}\label{tab:tabulary}
+\caption{Eine \texttt{tabulary}"=Tabelle}\label{tab:tabulary}
\end{table}
\subsubsection{Eine gleitende tabu-Tabelle}
@@ -384,31 +382,30 @@ die Beschriftung auf die Breite der Tabelle begrenzt.
\makeatletter
\newcolumntype{Z}{}
-\renewcommand*\NC@rewrite@Z[1][]{%
+\renewcommand*{\NC@rewrite@Z}[1][]{%
\NC@find>{\hspace{0pt}}X[#1]<{\@finalstrut\@arstrutbox}%
}
\makeatother
\begin{table}
\ttabbox{%
-\begin{tabu} to .8\textwidth {@{}Z[3,l]Z[3,c]Z[3,r]Z[2,j]@{}}
- \toprule
- \textbf{Linksbündig} & \textbf{Zentriert} &
- \textbf{Rechtsbündig} & \textbf{Blocksatz} \tabularnewline
- \midrule
- Ein linksbündiger Blindtext zur Demonstration einer Z[l]"~Spalte &
- Ein zentrierter Blindtext zur Demonstration einer Z[c]"~Spalte &
- Ein rechtsbündiger Blindtext zur Demonstration einer Z[r]"~Spalte &
- Ein Blindtext im Blocksatz innerhalb einer Z"~Spalte
- \tabularnewline
- \bottomrule
+ \begin{tabu} to .8\textwidth {@{}Z[3,l]Z[3,c]Z[3,r]Z[2,j]@{}}
+ \toprule
+ \textbf{Linksbündig} & \textbf{Zentriert} &
+ \textbf{Rechtsbündig} & \textbf{Blocksatz} \tabularnewline\midrule
+ Ein linksbündiger Blindtext zur Demonstration einer Z[l]"~Spalte &
+ Ein zentrierter Blindtext zur Demonstration einer Z[c]"~Spalte &
+ Ein rechtsbündiger Blindtext zur Demonstration einer Z[r]"~Spalte &
+ Ein Blindtext im Blocksatz innerhalb einer Z"~Spalte
+ \tabularnewline\bottomrule
\end{tabu}%
}{%
- \caption[Eine \texttt{tabu}-Tabelle]{%
- Eine \texttt{tabu}-Tabelle in Verbindung mit dem Befehl
+ \caption[Eine \texttt{tabu}"=Tabelle]{%
+ Eine \texttt{tabu}"=Tabelle in Verbindung mit dem Befehl
\texttt{\textbackslash ttabbox}, welcher vom Paket \texttt{floatrow}
für Beschriftungen in Objektbreite bereitgestellt wird%
- }\label{tab:tabu}%
+ }%
+ \label{tab:tabu}%
}
\end{table}
@@ -418,7 +415,7 @@ gekennzeichnet werden.
\enquote{Dies ist ein zugegebenermaßen nicht sehr sinnvolles Zitat.}
\cite[58]{hanisch14}
Für eine möglichst gut nachvollziehbare Referenz sollte nicht nur
-das Werk selber sondern zumindest die Seitenzahl und gegebenfalls
+das Werk selber sondern zumindest die Seitenzahl und gegebenenfalls
der Absatz der originalen Textstelle angegeben werden.
\begin{quoting}
\enquote{%
@@ -426,17 +423,17 @@ der Absatz der originalen Textstelle angegeben werden.
Wirkung der Umgebung \texttt{quoting} bei der Absatzauszeichnung
deutlich.
- Wie man sieht, ist der zweite Absatz~-- wie jeder weitere~-- aufgrund
- der Einstellung \texttt{parskip=false} eingezogen.
+ Wie zu sehen ist, wird der zweite Absatz~-- wie jeder weitere~--
+ aufgrund der Option \texttt{parskip=false} eingezogen.
}
\cite[sinngemäß nach][\pno{} 12, zweiter Absatz]{hanisch14}
\end{quoting}
Ebenfalls sollten sinngemäße Zitate mit einer möglichst genauen Referenz
-angegeben werden. Dies kann im Laufe der Arbeit acuh für einen selbst von
-Vorteil sein, wenn man beispielsweise die originale Textpassage noch
-einmal analysieren möchte.
+angegeben werden. Dies kann im Laufe der Arbeit auch für einen selbst von
+Vorteil sein, wenn beispielsweise die originale Textpassage noch einmal
+analysiert werden soll.
-\printbibliography[heading=bibintoc]\label{sec:bibliography}
+\printbibliography[heading=bibintoc]\label{sec:bibliography}%
\end{document}
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 7dd02ec71a3..67d05b73534 100644
--- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-additional.tex
+++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-additional.tex
@@ -5,7 +5,7 @@ Pakete. Ein Teil dieser Pakete~-- genauer \Package{tudscrsupervisor} und
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
+allen existierenden \hologo{LaTeXe}"=Dokumentklassen genutzt werden. Sämtliche
Klassen und Pakete aus dem \TUDScript-Bundle enthalten Befehle, welche diese
als Bestandteil identifizieren.
@@ -18,7 +18,20 @@ Teils. Dieser Befehl wird von allen Klassen und Paketen des \TUDScript-Bundles
mit \Macro*{DeclareRobustCommand}.
\end{Declaration}
-\begin{Declaration}[v2.04]{\Macro{TUDVersion}}
+\begin{Declaration}[v2.04]{\Macro{TUDScriptClassName}}
+\printdeclarationlist%
+%
+Die Bezeichnung der im Dokument verwendeten \TUDScript-Klasse ist im Makro
+\Macro{TUDScriptClassName} abgelegt. Soll also in Erfahrung gebracht werden,
+ob~-- und wenn ja, welche~-- \TUDScript-Klasse verwendet wird, so kann einfach
+auf diese Anweisung getestet werden. \KOMAScript{} stellt zusätzlich noch die
+beiden Anweisungen \Macro*{KOMAClassName} und \Macro*{ClassName} bereit, welche
+den Namen der zugrundeliegenden \KOMAScript-Klasse sowie die durch diese
+ersetzte Standardklasse enthalten.
+\end{Declaration}
+
+\begin{Declaration}[v2.04]{\Macro{TUDScriptVersion}}
+\begin{Declaration}[v2.05]{\Macro{TUDScriptVersionNumber}}
\printdeclarationlist%
%
In dieser Anweisung ist die Hauptversion von \TUDScript in der Form
@@ -27,17 +40,13 @@ In dieser Anweisung ist die Hauptversion von \TUDScript in der Form
\end{quoting}
abgelegt. Diese Version ist im \TUDScript-Bundle für alle Klassen und Pakete
gleich und kann daher nach dem Laden einer Klasse oder eines Paketes abgefragt
-werden. Diese Anleitung wurde beispielsweise mit \enquote{\TUDVersion{}}
+werden. Diese Anleitung wurde beispielsweise mit \enquote{\TUDScriptVersion{}}
erstellt.
-\end{Declaration}
-\begin{Declaration}[v2.04]{\Macro{TUDClassName}}
-\printdeclarationlist%
-%
-In \Macro{TUDClassName} ist der Name der aktuell verwendeten \TUDScript-Klasse
-abgelegt. Will man also wissen, ob eine oder welche \TUDScript-Klasse verwendet
-wird, so kann man einfach auf diese Anweisung testen. Von \KOMAScript{} werden
-zusätzlich noch die Anweisungen \Macro*{KOMAClassName} und \Macro*{ClassName}
-definiert, welche den Namen der zugrundeliegenden \KOMAScript-Klasse sowie die
-durch diese ersetzte Standardklasse enthalten.
+Eventuell will der Anwender auf die aktuell verwendete Version von \TUDScript
+prüfen, um gegebenenfalls eigene Anpassungen in Abhängigkeit der verwendeten
+Version vorzunehmen. Hierfür kann \Macro{TUDScriptVersionNumber} verwendet
+werden. Darin ist alleinig die Versionsnummer enthalten. Die für das Handbuch
+verwendete Version lautet \enquote{\TUDScriptVersionNumber{}} .
+\end{Declaration}
\end{Declaration}
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 655c2a37c7a..97a409b8ebc 100644
--- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-bundle.tex
+++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-bundle.tex
@@ -1,418 +1,20 @@
\setchapterpreamble{%
\begin{abstract}
- Zusätzlich zu den eigentlichen Hauptklassen werden im \TUDScript-Bundle
- weitere Paket bereitgestellt. Diese werden im Folgenden vorgestellt.%
+ Zusätzlich zu den bisher im Anwenderhandbuch vorgestellten Klassen und
+ Paketen werden im \TUDScript-Bundle weitere Paket bereitgestellt. Diese
+ sind nicht zwingend an die Verwendung einer der \TUDScript-Klassen
+ angewiesen sondern können prinzipiell mit jeder \hologo{LaTeXe}"=Klasse
+ genutzt werden.%
\end{abstract}
}
\chapter{Zusätzliche Pakete im \TUDScript-Bundle}
-\label{sec:bundle}
-\section{Das Paket \Package*{tudscrsupervisor} -- Studentische Betreuung}
-\begin{Declaration*}{\Package{tudscrsupervisor}}
-Dieses Paket stellt für das Erstellen von Aufgabenstellungen und Gutachten
-wissenschaftlicher Arbeiten sowie offiziellen Aushängen im \CD passende
-Umgebungen und Befehle für den Anwender bereit. Deshalb richtet es sich
-vornehmlich an Mitarbeiter an der \TnUD, kann jedoch natürlich auch von
-Studenten genutzt werden.
-
-
-\subsection{Aufgabenstellung für eine wissenschaftliche Arbeit}
-\begin{Declaration}{\Environment{task}[\OLParameter{Überschrift}]}{%
- \Environment{tudpage}'auto'%
-}
-\begin{Declaration}{\Key{\Environment{task}}{headline}[\PName{Überschrift}]}
-\printdeclarationlist%
-\index{Aufgabenstellung|!(}%
-%
-Mit der \Environment{task}"=Umgebung kann ein Aufgabenstellung für eine
-wissenschaftliche Arbeit ausgegeben werden. Diese basiert auf der Umgebung
-\Environment{tudpage} und akzeptiert deshalb im optionalen Argument alle
-Parameter, welche bei der Beschreibung von \Environment{tudpage}'full'
-erläutert wurden.
-
-Für die Aufgabenstellung wird normalerweise eine Überschrift gesetzt, welche
-sich aus \Term{taskname} und~-- falls der Typ der Abschlussarbeit angegeben
-wurde~-- noch aus \Term{tasktext} und \Macro{thesis} zusammensetzt. Der
-Parameter \Key{\Environment{task}}{headline} kann genutzt werden, um diese
-automatisch generierte Überschrift anzupassen.
-
-Zu Beginn der Aufgabenstellung erscheint eine Tabelle mit den angegebenen
-Informationen zum Autor respektive zu den Autoren der Abschlussarbeit. Zwingend
-anzugeben sind dafür lediglich der Name des oder der Verfasser (\Macro{author})
-sowie der Titel der Arbeit (\Macro{title}), welcher am Ende der Tabelle in
-fetter Schrift aufgeführt wird. Optional werden noch die Felder für den
-Studiengang (\Macro{course}), die Fachrichtung (\Macro{discipline}) sowie die
-Matrikelnummer (\Macro{matriculationnumber}) und das Immatrikulationsjahr
-(\Macro{matriculationyear}) ausgegeben, wobei nicht angegebene Felder bei der
-Ausgabe ignoriert werden. Der eigentliche Inhalt der Umgebung~-- sprich die
-Aufgabenstellung selbst~-- wird nach dem generierten Kopf ausgegeben
-
-Nach der Ausgabe des Inhaltes der Aufgabenstellung werden der oder die mit
-\Macro{supervisor} definierten Betreuer aufgelistet. Dabei wird unter dem
-jeweiligen Namen selbst der sprachabhängige Bezeichner (\Term{supervisorname},
-\Term{supervisorothername}) gesetzt. Darauf folgend erscheint das Ausgabedatum
-(\Macro{issuedate}) und der verpflichtende Abgabetermin (\Macro{duedate}). Zum
-Schluss wird die Unterschriftzeile für den Prüfungsausschussvorsitzenden
-(\Macro{chairman}) und den betreuenden Hochschullehrer (\Macro{professor})
-gesetzt. Für genannte Personen werden unter dem Namen selbst die Bezeichner
-ausgegeben (\Term{chairmanname} und \Term{professorname}).
-\end{Declaration}
-\end{Declaration}
-
-\begin{Declaration}{\Macro{taskform}\LParameter%
- \Parameter{Ziele}\Parameter{Schwerpunkte}%
-}
-\printdeclarationlist%
+\tudhyperdef*{sec:bundle}%
%
-Zusätzlich zur der frei gestaltbaren Umgebung \Environment{task} zur Erstellung
-einer Aufgabenstellung wird ein separater Befehl für eine standardisierte
-Ausgabe zur Verfügung gestellt. Dieser strukturiert die Aufgabenstellung in die
-zwei Bereiche \emph{Ziele} und \emph{Schwerpunkte} der Arbeit mit dazugehörigen
-Überschriften (\Term{objectivesname}, \Term{focusname}).
-
-Im optionalen Argument können alle Parameter der Umgebung \Environment{task}
-verwendet werden. Im ersten obligatorischen Argument sollte ein Text mit einer
-kurzen thematischen Einordnung und dem eigentlichen Ziel der Arbeit erscheinen.
-im zweiten Argument sollen die thematischen Schwerpunkte in Stichpunkten
-benannt werden. Der Inhalt des zweiten notwendigen Argumentes wird in einer
-\Environment{itemize}"=Umgebung gesetzt. Deshalb \emph{muss} jedem Stichpunkt
-\Macro*{item} vorangestellt werden.
-\index{Aufgabenstellung|!)}%
-\end{Declaration}
-%
-\begin{Example}
-Die empfohlene Verwendung des Befehls \Macro{taskform} ist wie folgt:
-\begin{Code}[escapechar=§]
-\taskform{%
- Motivation der Arbeit im ersten Absatz§\dots§
-
- Ziele der Arbeit im zweiten Absatz§\dots§
-}{%
- \item Schwerpunkt 1
- \item Schwerpunkt 2
-}
-\end{Code}
-Hierzu sei auch auf das Minimalbeispiel in \autoref{sec:exmpl:task} verwiesen.
-\end{Example}
-
-\begin{Declaration}{\Macro{course}\Parameter{Studiengang}}
-\begin{Declaration}[v2.02]{\Macro{discipline}\Parameter{Studienrichtung}}
-\printdeclarationlist%
-\index{Kollaboratives Schreiben}%
-%
-Mit diesen beiden Befehlen kann der Studiengang sowie die Studienrichtung für
-den Autor oder die Autoren angegeben werden. Diese Informationen werden zu
-Beginn der \Environment{task}"=Umgebung gesetzten Tabelle ausgegeben. Werden
-diese Befehle innerhalb des Makros \Macro{author} verwendet, können auch
-unterschiedliche Angaben für mehrere Autoren gemacht werden. Dabei sind die
-Autoren mit \Macro{and} voneinander zu trennen.
-\end{Declaration}
-\end{Declaration}
-
-\begin{Declaration}{\Macro{chairman}\Parameter{Prüfungsausschussvorsitzender}}
-\printdeclarationlist%
-%
-Wird dieses Feld genutzt, wird neben dem betreuenden Hochschullehrer
-(\Macro{professor}) auch der Vorsitzende des Prüfungsausschusses am Ende der
-Aufgabenstellung aufgeführt. Dies wird zumeist für Abschlussarbeiten wie
-beispielsweise \masterthesisname{} oder \diplomathesisname{} benötigt.
-\end{Declaration}
-
-\begin{Declaration}{\Macro{issuedate}\Parameter{Ausgabedatum}}
-\begin{Declaration}{\Macro{duedate}\Parameter{Abgabetermin}}
-\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} aus diesem Paket für \Macro{issuedate} und
-\Macro{duedate} verwendet.
-\end{Declaration}
-\end{Declaration}
-
-
-\subsection{Gutachten für wissenschaftliche Arbeiten}
-\begin{Declaration}{\Environment{evaluation}[\OLParameter{Überschrift}]}{%
- \Environment{tudpage}'auto'%
-}
-\begin{Declaration}{%
- \Key{\Environment{evaluation}}{headline}[\PName{Überschrift}]%
-}
-\begin{Declaration}{\Key{\Environment{evaluation}}{grade}[\PName{Note}]}
-\printdeclarationlist%
-\index{Gutachten|!(}%
-%
-Diese Umgebung wird für das Erstellen eines Gutachtens einer wissenschaftlichen
-Arbeit bereitgestellt. Auch diese unterstützt alle Parameter, welche für die
-Umgebung \Environment{tudpage}'full' beschrieben wurden.
-
-Für ein Gutachten wird gewöhnlich eine Überschrift aus \Term{evaluationname}
-und~-- falls der Abschlussarbeitstyp angegeben wurde~-- \Term{evaluationtext}
-sowie \Macro{thesis} generiert. Diese automatisch generierte Überschrift kann
-mit dem Parameter \Key{\Environment{evaluation}}{headline} ersetzt werden. Am
-Ende des Gutachtens wird die mit \Key{\Environment{evaluation}}{grade}
-gegebene Note in fetter Schrift ausgezeichnet.
-
-Am Anfang der \Environment{evaluation}"=Umgebung wird die gleiche Tabelle mit
-Autorenangaben ausgegeben, wie dies bei der \Environment{task}"=Umgebung der
-Fall ist. Nach dem Tabellenkopf folgt auch hier der eigentliche Inhalt, sprich
-das Gutachten der Abschlussarbeit. Abgeschlossen wird die Umgebung mit der
-gegebenen Note~-- welche innerhalb von \Term{gradetext} ausgegeben wird~--
-sowie der Orts- und Datumsangabe (\Macro{place}, \Macro{date}) und der
-darauffolgenden Unterschriftzeile für den oder die Gutachter (\Macro{referee}),
-welche wiederum mit den entsprechenden sprachabhängigen Bezeichner
-(\Term{refereename}, \Term{refereeothername}) ergänzt werden.
-\end{Declaration}
-\end{Declaration}
-\end{Declaration}
-
-\begin{Declaration}{\Macro{evaluationform}\LParameter%
- \Parameter{Aufgabe}\Parameter{Inhalt}\Parameter{Bewertung}\Parameter{Note}%
-}
-\printdeclarationlist%
-%
-Neben der individuell nutzbaren Umgebung \Environment{evaluation} wird ein
-separater Befehl zur Erstellung eines standardisierten Gutachtens
-bereitgestellt. Dieser strukturiert die Ausgabe in die vier Bereiche
-\emph{Aufgabe}, \emph{Inhalt}, \emph{Bewertung} und \emph{Note} und versieht
-diese jeweils mit der dazugehörigen Überschrift beziehungsweise Textausgabe
-(\Term{taskname}, \Term{contentname}, \Term{assessmentname} und
-\Term{gradetext}). Das optionale Argument unterstützt alle Parameter der
-\Environment{evaluation}"=Umgebung.
-\index{Gutachten|!)}%
-\end{Declaration}
-%
-\begin{Example}
-Die empfohlene Verwendung des Befehls \Macro{evaluationform} ist wie folgt:
-\begin{Code}[escapechar=§]
-\evaluationform{%
- Kurzbeschreibung der Aufgabenstellung§\dots§
-}{%
- Zusammenfassung von Inhalt und Struktur§\dots§
-}{%
- Bewertung der schriftlichen Abschlussarbeit§\dots§
-}{%
- Zahl (Note)
-}
-\end{Code}
-Hierzu sei auch auf das Minimalbeispiel in \autoref{sec:exmpl:evaluation}
-verwiesen.
-\end{Example}
-
-\begin{Declaration}{\Macro{grade}\Parameter{Note}}
-\printdeclarationlist%
-%
-Neben der Angabe der Note für ein Gutachten über den Parameter
-\Key{\Environment{evaluation}}{grade} kann dafür auch dieser global wirkende
-Befehl verwendet werden.
-\end{Declaration}
-
-
-\subsection{Aushang}
-\begin{Declaration}{\Environment{notice}[\OLParameter{Überschrift}]}{%
- \Environment{tudpage}'auto'%
-}
-\begin{Declaration}{\Key{\Environment{notice}}{headline}[\PName{Überschrift}]}
-\printdeclarationlist%
-\index{Aushang|!(}%
-%
-Für das Anfertigen eines Aushangs kann diese Umgebung verwendet werden. Diese
-basiert abermals auf der Umgebung \Environment{tudpage} und unterstützt alle
-deren Parameter.
-
-Wurde ein Datum angegeben, wird dieses in der oberen rechten Ecke gesetzt.
-Anschließend wird die Überschrift ausgegeben, welche für gewöhnlich dem Inhalt
-von \Term{noticename} entspricht und mit \Key{\Environment{notice}}{headline}
-geändert werden kann. Nach der Überschrift wird bereits der Inhalt der Umgebung
-ausgegeben. Wurde mit \Macro{contactperson} ein oder mehrere Ansprechpartner
-angegeben, werden diese Informationen am Ende der Umgebung ausgegeben.
-\end{Declaration}
-\end{Declaration}
-
-\begin{Declaration}{\Macro{noticeform}\LParameter%
- \Parameter{Inhalt}\Parameter{Schwerpunkte}%
-}
-\printdeclarationlist%
-%
-Auch für diese Umgebung gibt es einen Befehl für eine normierte Form. Diese
-soll vor allem Verwendung für den Aushang studentischer Arbeitsthemen finden.
-Für das optionale Argument können sämtliche Parameter verwendet werden, die
-auch die \Environment{notice}"=Umgebung unterstützt.
-
-Das erste obligatorische Argument sollte für eine kurze Inhaltsbeschreibung
-verwendet werden. Neben dem textuellen Teil sollte hier wenn möglich eine
-thematisch passende Abbildung eingebunden werden (\Macro{includegraphics}). Das
-zweite Argument wird~--wie schon bei \Macro{taskform}~-- dazu verwendet, einige
-Schwerpunkte aufzuzählen. Auch hier kommt nach der gliedernden Überschrift
-(\Term{focusname}) eine \Environment{itemize}"=Umgebung zum Einsatz, allen
-Schwerpunkten muss ein \Macro*{item} vorangestellt werden.
-\index{Aushang|!)}%
-\end{Declaration}
-%
-\begin{Example}
-Die empfohlene Verwendung des Befehls \Macro{noticeform} ist wie folgt:
-\begin{Code}[escapechar=§]
-\noticeform{%
- Kurzbeschreibung des Inhaltes der studentischen Arbeit§\dots§
-
- Bild (optional), einzubinden mit:
- \includegraphics[§\PName{Optionen}§]{§\PName{Datei}§}
-}{%
- \item Schwerpunkt 1
- \item Schwerpunkt 2
-}
-\end{Code}
-Hierzu sei auch auf das Minimalbeispiel in \autoref{sec:exmpl:notice} verwiesen.
-\end{Example}
-
-\begin{Declaration}[v2.02]{\Macro{contactperson}\Parameter{Kontaktperson(en)}}
-\begin{Declaration}{\Macro{office}\Parameter{Dienstsitz}}
-\begin{Declaration}[v2.02]{\Macro{telephone}\Parameter{Telefonnummer}}
-\begin{Declaration}[v2.02]{\Macro{emailaddress}\Parameter{E-Mail-Adresse}}
-\printdeclarationlist%
-%
-Am Ende eines Aushangs können mit \Macro{contactperson} Kontaktinformationen
-für eine oder mehrere Ansprechpartner angegeben werden. Soll mehr als eine
-Kontaktperson genannt werden, so müssen diese innerhalb des Befehls
-\Macro{contactperson} mit dem Befehl \Macro{and} getrennt werden. Für jede
-Person kann innerhalb des Argumentes von \Macro{contactperson} der Dienstsitz
-(\Macro{office}), die dienstliche Telefonnummer (\Macro{telephone}) sowie 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.
-\end{Declaration}
-\end{Declaration}
-\end{Declaration}
-\end{Declaration}
-
-
-\subsection{Zusätzliche sprachabhängige Bezeichner}
-\index{Bezeichner|!(}
-Für das Paket \Package{tudscrsupervisor} werden für die zusätzlichen Befehle
-und Umgebungen weitere Bezeichner definiert. Für eine etwaige Anpassung dieser
-sei auf \autoref{sec:localization} verwiesen.
-
-\begin{Declaration}{\Term{taskname}}
-\begin{Declaration}{\Term{tasktext}}
-\printdeclarationlist%
-%
-Die Bezeichnung der Aufgabenstellung selbst ist in \Term{taskname} enthalten.
-Für die Generierung einer Überschrift wird dieser verwendet. Wurde außerdem mit
-\Macro{thesis} oder \Macro{subject} der Typ der Abschlussarbeit%
-\footnote{%
- \Option{subjectthesis} oder spezieller Wert aus \autoref{tab:thesis}
-}
-angegeben, wird die Überschrift zusammen mit dem Bezeichner \Term{tasktext}
-um die Typisierung erweitert. Falls gewünscht, kann die automatisch generierte
-Überschrift mit dem Parameter \Key{\Environment{task}}{headline} der Umgebung
-\Environment{task} überschrieben werden.
-\TermTable{taskname,tasktext}
-\end{Declaration}
-\end{Declaration}
-
-\begin{Declaration}[v2.04]{\Term{namesname}}
-\begin{Declaration}{\Term{titlename}}
-\begin{Declaration}{\Term{coursename}}
-\begin{Declaration}[v2.02]{\Term{disciplinename}}
-\printdeclarationlist%
-%
-Diese Bezeichner werden in der Tabelle mit den Autoreninformationen zu Beginn
-der Aufgabenstellung verwendet. Dabei werden \Term{coursename} und
-\Term{disciplinename} nur genutzt, wenn für mindestens einen Autor die Befehle
-\Macro{course} und/oder \Macro{discipline} verwendet wurden.
-\TermTable{namesname,titlename,coursename,disciplinename}
-\end{Declaration}
-\end{Declaration}
-\end{Declaration}
-\end{Declaration}
-
-\begin{Declaration}{\Term{issuedatetext}}
-\begin{Declaration}{\Term{duedatetext}}
-\printdeclarationlist%
-%
-Am Ende der Aufgabenstellung wird nach dem oder der Betreuer das Ausgabe- und
-Abgabedatum (\Macro{issuedate}, \Macro{duedate}) der Abschlussarbeit mit
-folgenden Bezeichner erläutert.
-\TermTable{issuedatetext,duedatetext}
-\end{Declaration}
-\end{Declaration}
-
-\begin{Declaration}{\Term{chairmanname}}
-\printdeclarationlist%
-%
-Wurde der Prüfungsausschussvorsitzende (\Macro{chairman}) angegeben, erfolgt
-unter dem Namen selbst die Ausgabe des Bezeichners.
-\TermTable{chairmanname}
-\end{Declaration}
-
-\begin{Declaration}{\Term{focusname}}
-\begin{Declaration}{\Term{objectivesname}}
-\printdeclarationlist%
-%
-Die Vorlagen für Aufgabenstellung (\Macro{taskform}) beziehungsweise Aushang
-(\Macro{noticeform}) nutzen für die gesetzten Überschriften diese Bezeichner.
-\TermTable{focusname,objectivesname}
-\end{Declaration}
-\end{Declaration}
-
-\begin{Declaration}{\Term{evaluationname}}
-\begin{Declaration}{\Term{evaluationtext}}
-\printdeclarationlist%
-%
-Die Bezeichnung des Gutachten selbst ist in \Term{evaluationname} enthalten.
-Für die Generierung der Überschrift wird der Bezeichner \Term{evaluationtext}
-sowie der mit \Macro{thesis} oder gegebenenfalls mit \Macro{subject} gegebenen
-Typ der Abschlussarbeit verwendet. Diese automatisch generierte Überschrift
-kann mit dem Parameter \Key{\Environment{evaluation}}{headline} der
-Umgebung \Environment{evaluation} durch den Anwender überschrieben werden.
-\TermTable{evaluationname,evaluationtext}
-\end{Declaration}
-\end{Declaration}
-
-\begin{Declaration}{\Term{contentname}}
-\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}
-gesetzt.
-\TermTable{taskname,contentname,assessmentname}
-\end{Declaration}
-\end{Declaration}
-
-\begin{Declaration}{\Term{gradetext}}
-\printdeclarationlist%
-%
-Wird für das Gutachten einer wissenschaftlichen Arbeit die erzielte Note
-entweder mit dem Befehl \Macro{grade}\Parameter{Note} oder alternativ dazu mit
-dem Parameter \Key{\Environment{evaluation}}{grade}[\PName{Note}] angegeben, so
-wird diese innerhalb von \Term{gradetext} verwendet.
-\grade{\PName{Note}}
-\TermTable*{gradetext}{.7\textwidth}
-\end{Declaration}
-
-\begin{Declaration}{\Term{noticename}}
-\begin{Declaration}[v2.02]{\Term{contactpersonname}}
-\printdeclarationlist%
-%
-Die Bezeichnung des Aushangs selbst ist in \Term{noticename} enthalten. Für
-die Generierung einer Überschrift wird dieser verwendet. Falls gewünscht, kann
-diese mit dem Parameter \Key{\Environment{notice}}{headline} der Umgebung
-\Environment{notice} überschrieben werden. Wurde eine Kontaktperson mit dem
-Befehl \Macro{contactperson} angegeben, wird als Überschrift der Kontaktdaten
-der Bezeichner \Term{contactpersonname} verwendet.
-
-\TermTable{noticename,contactpersonname}
-\end{Declaration}
-\end{Declaration}
-\index{Bezeichner|!)}
-\end{Declaration*}
-
-
-\section{Das Paket \Package*{tudscrcolor} -- Farben im \CD}%
-\begin{Declaration*}{\Package{tudscrcolor}}
-\index{Farben|!}%
+\section{Das Paket \Package{tudscrcolor} -- Farben im \CD}%
+\index{Farben|(}%
+\index{Layout!Farben|?(}%
%
+\begin{Bundle*}{\Package{tudscrcolor}}
Zur Verwendung der Farben des \CDs wird das Paket \Package{tudscrcolor}
genutzt. Falls dieses nicht in der Präambel geladen wird~-- um beispielsweise
zusätzliche Optionen aufzurufen~-- binden die \TUDScript"=Klassen dieses
@@ -425,35 +27,39 @@ Hausfarbe \Color{HKS41}, danach folgen die Farben für Auszeichnungen der ersten
Diese Farben dürfen sowohl in ihrer Grundform als auch in helleren Tönen mit
einer Abstufung in 10\,\%"~Schritten verwendet werden. Das ohnehin verwendete
Paket \Package{xcolor} stellt genau diese Funktionalität zur Verfügung. Jede
-der Farben kann sowohl über \Color*{HKS}\PName{Zahl} als auch über ein
-Pseudonym \Color*{cd}\PName{Farbe} genutzt werden.
+der Farben kann sowohl mit \Color*{HKS\PName{Zahl}}() als auch über ein
+Pseudonym \Color*{cd\PName{Farbe}}() genutzt werden.
%
\begin{Example*}
-Die Grundfarbe \Color*{HKS44} soll in der auf 20\% reduzierten, helleren
+Die Grundfarbe \Color{HKS44} soll in der auf 20\% reduzierten, helleren
Abstufung genutzt werden. Innerhalb eines Befehls, der als Argument eine
-gültige Farbe erwartet, muss lediglich \Color*{HKS44}\PValue{!20} angegeben
-werden. Dies wird hier exemplarisch mit dieser \colorbox{HKS44!20}{%
- Box \Macro*{colorbox}\PParameter{HKS44!20}\PParameter{Box}%
-} demonstriert.
+gültige Farbe erwartet, muss lediglich \PValue{HKS44!20} angegeben werden.
+Dies wird hier exemplarisch mit der folgenden \colorbox{HKS44!20}{%
+ Box \Macro{colorbox}[%
+ \PParameter{HKS44!20}\PParameter{Box}%
+ ](\Package{xcolor})'none'%
+}
+demonstriert.
\end{Example*}
%
-Bei der farbigen Gestaltung des \CDs (\Option{cd}[color]) ist der Hintergrund
-von Umschlagseite, Titel sowie Teilen in \Color*{HKS41} und die Schrift auf
-selbigen in \Color*{HKS41}\PValue{!30} gehalten. Der Kapitelseitenhintergrund
-erscheint in \Color*{HKS41}\PValue{!10}, die Schrift in \Color*{HKS41}. Bei
-geringerem Farbeinsatz werden lediglich die Schriften der Gliederungsseiten auf
-\Color*{HKS41} gesetzt.
+Bei der farbigen Gestaltung des \CDs (\Option{cd=color}) ist der Hintergrund
+von Umschlagseite, Titel sowie Teilen in \Color{HKS41} und die Schrift auf
+selbigen in \Color{HKS41}[!30] gehalten. Der Hintergrund von Kapitelseiten
+erscheint in \Color{HKS41}[!10], die Schrift in \Color{HKS41}. Bei geringerem
+Farbeinsatz werden lediglich die Schriften der Gliederungsseiten auf
+\Color{HKS41} gesetzt.
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{Option}\PParameter{xcolor} gefolgt von
- \Macro*{documentclass}\OParameter{Klassenoptionen}\PParameter{tudscr\dots}
-} oder es wird \Package{tudscrcolor} mit der entsprechenden Option geladen.%
-\footnote{
- \Macro*{usepackage}\OParameter{Option}\PParameter{\Package{tudscrcolor}};
- \Package{tudscrcolor} reicht \PName{Option} an \Package{xcolor} weiter
+ \Macro{PassOptionsToPackage}[\Parameter{Paketoptionen}\PParameter{xcolor}] vor
+ \Macro*{documentclass}[\OParameter{Klassenoptionen}\PParameter{tudscr\dots}]%
+}
+oder es wird \Package{tudscrcolor} mit der entsprechenden Option geladen.%
+\footnote{%
+ \Macro*{usepackage}[\OParameter{Paketoptionen}\PParameter{tudscrcolor}];
+ \Package{tudscrcolor} reicht \PName{Paketoptionen} an \Package{xcolor} weiter%
}
\newcommand*\cdcolorcalc{}
\newcommand*\cdcolorname{}
@@ -461,9 +67,11 @@ direkt an \Package{xcolor} übergeben werden%
\newcommand*\cdcolortext{}
\newcommand*\cdcolor[2][0]{%
\noindent%
- \begin{tikzpicture}[every node/.style={%
- rectangle,minimum height=.1\linewidth,minimum width=25mm%
- }]%
+ \begin{tikzpicture}[%
+ every node/.style={%
+ rectangle, minimum height=.1\linewidth, minimum width=7em%
+ }%
+ ]%
\def\cdcolorcalc##1##2{%
\pgfmathparse{100-##1*10}%
\xdef\cdcolorname{HKS##2!\pgfmathresult}%
@@ -479,7 +87,7 @@ direkt an \Package{xcolor} übergeben werden%
\fi%
\node [fill=\cdcolorname,rotate=90] at (.\x\linewidth,0)%
{\textcolor{\cdcolortext}{HKS#2!\pgfmathprintnumber\cdcolorvalue}};%
- };%
+ }%
\end{tikzpicture}%
}
@@ -508,9 +116,9 @@ direkt an \Package{xcolor} übergeben werden%
\begin{Declaration}{\Color{HKS57}[cddarkgreen]}
\begin{Declaration}{\Color{HKS65}[cdgreen]}
\printdeclarationlist%
-\cdcolor[4]{36}\vskip\baselineskipglue
-\cdcolor[4]{33}\vskip\baselineskipglue
-\cdcolor[2]{57}\vskip\baselineskipglue
+\cdcolor[4]{36}\vskip\medskipamount
+\cdcolor[4]{33}\vskip\medskipamount
+\cdcolor[2]{57}\vskip\medskipamount
\cdcolor{65}
\end{Declaration}
\end{Declaration}
@@ -526,27 +134,28 @@ direkt an \Package{xcolor} übergeben werden%
\subsection{Zusätzliche Farbdefinitionen}
Das Paket \Package{tudscrcolor} definiert im Normalfall lediglich die zuvor
-beschriebenen Grundfarben \Color*{HKS41}, \Color*{HKS92}, \Color*{HKS44},
-\Color*{HKS36}, \Color*{HKS33}, \Color*{HKS57}, \Color*{HKS65} sowie
-\Color*{HKS07}. Alle anderen farblichen Abstufungen können mit den beschrieben
-Möglichkeiten des Paketes \Package{xcolor} generiert werden.
+beschriebenen Grundfarben \Color{HKS41}, \Color{HKS92}, \Color{HKS44},
+\Color{HKS36}, \Color{HKS33}, \Color{HKS57}, \Color{HKS65} sowie \Color{HKS07}.
+Alle anderen farblichen Abstufungen können mit den beschrieben Möglichkeiten
+des Paketes \Package{xcolor} generiert werden.
\begin{Declaration}{\Option{oldcolors}}
\printdeclarationlist%
%
-In den letzten Jahren sind viele verschiedene Klassen und Pakete für das \CD
-der \TnUD entstanden. Innerhalb dieser existieren abweichende Farbdefinitionen.
-Um eine Migration von den benannten Klassen und Paketen auf \TUDScript zu
-ermöglichen, existiert die Paketoption \Option{oldcolors}. Wird diese genutzt,
-so werden zusätzliche Farben nach dem Schema \Color*{HKS41K}\PName{Zahl} und
-\Color*{HKS41-}\PName{Zahl} definiert, wobei der hinten angestellte Zahlenwert
-aus der 10er-Reihe kommen muss.
+In den letzten Jahren sind viele verschiedene Klassen und Pakete für das \TUDCD
+entstanden. Innerhalb dieser existieren abweichende Farbdefinitionen. Um eine
+Migration von den benannten Klassen und Paketen auf \TUDScript zu ermöglichen,
+existiert die Paketoption \Option{oldcolors}. Wird diese genutzt, so werden
+zusätzliche Farben nach dem Schema \Color*{HKS41K\PName{Zahl}}() und
+\Color*{HKS41-\PName{Zahl}}() definiert, wobei der hinten angestellte
+Zahlenwert aus der 10er-Reihe kommen muss.
\end{Declaration}
\subsection{Umstellung des Farbmodells}
\index{Farben!Farbmodell}%
+%
Normalerweise verwendet \Package{tudscrcolor} das CMYK"=Farbmodell. Außerdem
wird weiterhin noch der RGB"=Farbraum unterstützt. Eine Umschaltung des
Farbmodells ist beispielsweise für gewisse Funktionen des Paketes
@@ -560,7 +169,7 @@ die Farben nicht nach dem CMYK"=Farbmodell sondern im RGB"=Farbraum global
definiert.
\end{Declaration}
-\begin{Declaration}{\Macro{setcdcolors}\Parameter{Farbmodell}}
+\begin{Declaration}{\Macro{setcdcolors}[\Parameter{Farbmodell}]}
\printdeclarationlist%
%
Mit diesem Befehl kann innerhalb des Dokumentes das verwendete Farbmodell
@@ -577,62 +186,91 @@ CMYK"=Farbmodell in den RGB"=Farbraum zu wechseln. Unterstützte Werte für
(\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 \Color*{HKS}-Farbregister und
- selbst ermittelten Werten sind technisch nicht zu vermeiden.
+ Näherungswerte. Abweichungen vom gedruckten HKS-Farbregister und selbst
+ ermittelten Werten sind technisch nicht zu vermeiden.
}%
-\end{Declaration*}
+\index{Farben|)}%
+\index{Layout!Farben|?)}%
+\end{Bundle*}
-\section{Das Paket \Package*{tudscrfonts} -- Schriften im \CD}
-\begin{Declaration*}[v2.02]{\Package{tudscrfonts}}
-\printchangedatlist
+\section{Das Paket \Package{tudscrfonts} -- Schriften im \CD}
+\begin{Bundle*}[v2.02]{\Package{tudscrfonts}}
+\printchangedatlist%
%
-Dieses Paket stellt die Schriften des \CDs für \hologo{LaTeXe}-Klassen bereit,
+Dieses Paket stellt die Schriften des \CDs für \hologo{LaTeXe}"=Klassen bereit,
welche \emph{nicht} zum \TUDScript-Bundle gehören. Das Paket unterstützt einen
-Großteil der in \fullref{sec:fonts} beschriebenen Optionen und Befehle. Die
-nutzbaren Paketoptionen sind für den Fließtext \Option{cdfont}~-- ohne die
+Großteil der für die \TUDScript-Klassen bereitgestellten Optionen und Befehle
+für die Schriftauswahl. Um Dopplungen in der Dokumentation zu vermeiden, wird
+auf eine abermalige Erläuterung der im Paket \Package{tudscrfonts} verfügbaren
+Optionen und Befehle verzichtet. Diese werden im Folgenden lediglich noch
+einmal genannt, die dazugehörigen Erläuterungen 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}.
-Da von \Package{tudscrfonts} intern das Paket \Package{tudscrbase}() geladen
-wird, können diese entweder als Paketoptionen im optionalen Argument von
-\Macro*{usepackage}\OParameter{Paketoption}\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.
-
-Des Weiteren wird das Paket \Package{textcase} geladen, welches die Befehle
-\Macro{MakeTextUppercase} und \Macro{NoCaseChange} zur Verfügung stellt. Der
-Befehl \Macro{ifdin} wird ebenso wie die in \autoref{sec:fonts} beschriebenen
-Textschalter und "~kommandos sowie die Befehle für die griechischen Buchstaben
-bereitgestellt.
-
-Das Paket \Package{tudscrfonts} ist insbesondere für die Verwendung zusammen
-mit einer der Klassen \Class{tudbook}, \Class{tudbeamer}, \Class{tudletter},
-\Class{tudfax}, \Class{tudhaus} sowie \Class{tudform} vorgesehen. Zusätzlich
-werden seit der Version~v2.04
+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.
+
+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.
+
\ChangedAt{%
- v2.04!\Package{tudscrfonts}: Unterstützung von \Class{tudposter} und
- \Class{tudmathposter}%
+ v2.04:Unterstützung der Klassen \Class{tudposter} und \Class{tudmathposter};%
+ v2.05:Neues Schriftpaket \Package{fix-tudscrfonts} für Dokumentklassen
+ im \CD der \TnUD, welche nicht zu \TUDScript gehören%
}
-auch \Class{tudmathposter} und \Class{tudposter} unterstützt. Das Paket kann
-prinzipiell mit jeder beliebigen \hologo{LaTeXe}-Klasse verwendet werden. Wird
-keine der zuvor genannten Klassen genutzt, muss der Anwender das Setzen der
-Gliederungsüberschriften in Majuskeln der \DIN~-- wie es im \CD vorgesehen
-ist~-- selbst umsetzen. Dafür sei abermals auf die Textauswahlbefehle
-\Macro{textdbn} und \Macro{dinbn} sowie den Befehl \Macro{MakeTextUppercase}
-zur automatisierten Großschreibung hingewiesen.
-
+Ursprünglich war das Paket \Package{tudscrfonts} für die Verwendung zusammen
+mit einer der Klassen \Class{tudbook}, \Class{tudbeamer}, \Class{tudletter},
+\Class{tudfax}, \Class{tudhaus}, \Class{tudform} und seit der Version~v2.04
+auch \Class{tudmathposter} sowie \Class{tudposter} vorgesehen. Allerdings
+traten bei der Verwendung des Paketes mit einer dieser Klassen einige kleinere
+Unzulänglichkeiten auf. Deshalb wird seit der Version~v2.05 empfohlen, für
+diese Klassen das Paket \Package{fix-tudscrfonts} zu verwenden.
+\end{Bundle*}
+
+
+
+\section{Das Paket \Package{fix-tudscrfonts} -- Schriftkompatibilität}
+\begin{Bundle*}[v2.05]{\Package{fix-tudscrfonts}}
+\printchangedatlist%
+%
+Dieses Paket ist für die alleinige Verwendung mit einer der folgenden Klassen
+vorgesehen:
+\begin{itemize}
+\item \Class{tudbook}
+\item \Class{tudbeamer}
+\item \Class{tudletter}
+\item \Class{tudfax}
+\item \Class{tudhaus}
+\item \Class{tudform}
+\item \Class{tudmathposter}
+\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 der letztere der
-entscheidende ist:
+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}-Namensschema}
+ Die bisherige Schriftbenennung entsprach nicht dem offiziellen
+ \hrfn{http://mirrors.ctan.org/info/fontname/fontname.pdf}{\hologo{TeX}"=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
@@ -642,44 +280,48 @@ entscheidende ist:
einen neuen Namen erhalten.
\end{enumerate}
%
-Wird nun das Paket \Package{tudscrfonts} einer der zuvor genannten, älteren
-Klassen verwendet, hat dies den Vorteil, dass auch in diesen das angepasste
-Kerning der Schriften sowie der stark verbesserte Mathematiksatz zum Tragen
-kommen. Außerdem kann bei der Verwendung von \Package{tudscrfonts} auf eine
-Installation der Schriften des \CDs in der alten Variante verzichtet werden.
+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.
\Attention{%
In diesem Fall kann sich das Ausgabeergebnis im Vergleich zu der Varianten
mit den alten Schriften ändern. Alternativ zur Verwendung des Paketes
- \Package{tudscrfonts} können die alten Schriftfamilien auch parallel zu den
- neuen installiert werden. Hierfür werden die Skripte
+ \Package{fix-tudscrfonts} können die alten Schriftfamilien auch parallel zu
+ den neuen installiert werden. Hierfür werden die Skripte
\hrfn{https://github.com/tud-cd/tudscrold/releases/download/fonts/tudfonts_install.bat}{\File{tudfonts\_install.bat}}
beziehungsweise
\hrfn{https://github.com/tud-cd/tudscrold/releases/download/fonts/tudfonts_install.sh}{\File{tudfonts\_install.sh}}
bereitgestellt.
}%
-\end{Declaration*}
-\ToDo[doc,nxt]{%
- Optimale Verwendung des Paketes \Package{tudscrfonts} mit alten Klassen,
- Laden des Paketes \Package{rescalefont} bei \Class{tudmathposter} unterbinden
-% \RequirePackage{scrlfile}\PreventPackageFromLoading{rescalefont}%
-}[v2.05]
-%title: tudmathposter wird unterstützt
-%\sectionfont: tudmathposter wird unterstützt
-%\subsectionfont: tudmathposter wird unterstützt
-%\subtitlefont: tudmathposter wird unterstützt
-%\tudfont: tudmathposter wird unterstützt
-\ToDo[imp,nxt]{%
- Unterstützung für alle Klassen von Klaus Bergmann implementieren%
-}[v2.05]
-
-
-
-\section{Das Paket \Package*{mathswap}}
-\begin{Declaration*}{\Package{mathswap}}
-\index{Trennzeichen}\index{Mathematiksatz}%
-\index{Trennzeichen!Dezimaltrennzeichen}%
-\index{Trennzeichen!Tausendertrennzeichen}%
%
+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
+Paket \Package{tudscrfonts} verwendet werden können:
+%
+\begin{Code}[escapechar=§]
+\RequirePackage§\OParameter{Paketoptionen}§{fix-tudscrfonts}
+\documentclass§\OParameter{Klassenoptionen}§{tudbook}
+§\dots§
+\begin{document}
+§\dots§
+\end{document}
+\end{Code}
+%
+Dabei wird spätestens zum Ende der Präambel das Paket \Package{tudscrfonts}
+geladen. Alternativ kann dies auch durch den Benutzer in der Dokumentpräambel
+erfolgen.
+\end{Bundle*}
+
+
+\section{Das Paket \Package{mathswap}}
+\index{Mathematiksatz|(}%
+\index{Zifferngruppierung|(}%
+%
+\begin{Bundle*}{\Package{mathswap}}
Die Verwendung von Dezimal- und Tausendertrennzeichen im mathematischen Satz
sind regional sehr unterschiedlich. In den meisten englischsprachigen Ländern
wird der Punkt als Dezimaltrennzeichen und das Komma zur Zifferngruppierung
@@ -706,8 +348,8 @@ zwischen Trennzeichen und Ziffer Leerraum befinden, wird dieser als solcher
auch gesetzt. Für ein Beispiel zur Verwendung des Paketes sei auf das Tutorial
\Tutorial{mathswap} in \autoref{sec:exmpl:mathswap} hingewiesen.
-\begin{Declaration}{\Macro{commaswap}\Parameter{Trennzeichen}}
-\begin{Declaration}{\Macro{dotswap}\Parameter{Trennzeichen}}
+\begin{Declaration}{\Macro{commaswap}[\Parameter{Trennzeichen}]}
+\begin{Declaration}{\Macro{dotswap}[\Parameter{Trennzeichen}]}
\printdeclarationlist%
%
Die beiden Befehle \Macro{commaswap} und \Macro{dotswap} sind die zentrale
@@ -724,61 +366,66 @@ genutzt wird, ist hierfür standardmäßig ein halbes geschütztes Leerzeichen
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!\Package{mathswap}: 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.
\end{Declaration}
\end{Declaration}
-\end{Declaration*}
+\index{Mathematiksatz|)}%
+\index{Zifferngruppierung|)}%
+\end{Bundle*}
-\section{Das Paket \Package*{twocolfix}}
-\begin{Declaration*}{\Package{twocolfix}}
-\index{Zweispaltensatz|?}%
+\section{Das Paket \Package{twocolfix}}
+\begin{Bundle*}{\Package{twocolfix}}
+\index{Satzspiegel!zweispaltig|?}%
%
-Der \hologo{LaTeXe}-Kernel enthält einen Fehler, der Kapitelüberschriften im
+Der \hologo{LaTeXe}"=Kernel enthält einen Fehler, der Kapitelüberschriften im
zweispaltigen Layout höher setzt, als im einspaltigen. Der
\hrfn{http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=latex/3126}{Fehler}
ist zwar schon länger bekannt, allerdings bisher noch nicht in den
-\hologo{LaTeXe}-Kernel übernommen worden. Das Paket \Package{twocolfix} behebt
+\hologo{LaTeXe}"=Kernel übernommen worden. Das Paket \Package{twocolfix} behebt
das Problem. Eine Integration dieses Bugfixes in \KOMAScript{} wurde bereits
bei Markus Kohm angefragt, jedoch von ihm bis jetzt
\hrfn{http://www.komascript.de/node/1681}{nicht weiter verfolgt}.
-\end{Declaration*}
+\end{Bundle*}
\addsec*{Zukünftige Arbeiten}
Diese Dinge sollen langfristig in das \TUDScript-Bundle eingearbeitet werden:
%\chapter{Das Paket \Package{tudscrletter} -- Briefe im \CD}
-%\begin{Declaration*}{\Package{tudscrletter}}
-\ToDo[imp,nxt]{Paket \Package*{tudscrletter} für Briefe im \CD}[v2.07]
-Es soll das Paket \Package*{tudscrletter}(tudscr) für Briefe im \CD der \TnUD
-entstehen. Auch Vorlagen für Fax und Hausmitteilungen sollen dabei abfallen.
-%\end{Declaration*}
-%
+%\begin{Bundle*}{\Package{tudscrletter}}
+\ToDo[imp]{Paket \Package*{tudscrletter} für Briefe im \CD}[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*}
+
%\chapter{Das Paket \Package{tudscrbeamer} -- Präsentationen im \CD}
-%\begin{Declaration*}{\Package{tudscrbeamer}}
-\ToDo[imp,nxt]{Paket \Package*{tudscrbeamer} für Präsentationen im \CD}[v2.08]
-Mit \Package*{tudscrbeamer}(tudscr) soll ein Paket entwickelt werden, mit dem
-sich \hologo{LaTeX}-Beamer-Präsentationen im Stil der \TnUD erstellt werden
+%\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.
-%\end{Declaration*}
-%
+%\end{Bundle*}
+
%\chapter{Das Paket \Package{tudscrlayout} -- Seitenstil und Satzspiegel im \CD}
-%\begin{Declaration*}{\Package{tudscrlayout}}
-\ToDo[imp,nxt]{%
+%\begin{Bundle*}{\Package{tudscrlayout}}
+\ToDo[imp]{%
Paket \Package*{tudscrlayout} \url{https://github.com/tud-cd/tud-cd/issues/6}
- % \Option{cdgeometry}[forced] für Satzspiegel
+ für Satzspiegel, evtl. auch für die Klasse über \Option*{cdgeometry=forced}
}[v2.09]
-Außerdem ist ein Paket \Package*{tudscrlayout}(tudscr) vorstellbar, mit dem
-entweder die \PageStyle{tudheadings}-Seitenstile in anderen Klassen genutzt
-werden können oder der durch das \CD vorgegebene Satzspiegel ohne den
-Seitenstil selbst verwendet wird, um vorgedrucktes Papier verwenden zu können.
-%\end{Declaration*}
+Außerdem ist ein Paket \Package*{tudscrlayout}<tudscr> vorstellbar, welches
+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.
+%\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 dc14f23cf73..93390fea8b9 100644
--- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-examples.tex
+++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-examples.tex
@@ -12,37 +12,40 @@
\end{abstract}
}
\chapter{Minimalbeispiele und Tutorials}
-\label{sec:exmpl}
-\index{Minimalbeispiel|(}
-
+\tudhyperdef*{sec:exmpl}%
+\index{Minimalbeispiel|!(}%
+%
\section{Dokument}
-\index{Minimalbeispiel!Dokument}
-Hier wird gezeigt, wie die Präambel eines minimalen \hologo{LaTeXe}-Dokumentes
+\index{Minimalbeispiel!Dokument}%
+%
+Hier wird gezeigt, wie die Präambel eines minimalen \hologo{LaTeXe}"=Dokumentes
gestaltet werden sollte. Dieser Ausschnitt kann prinzipiell als Grundlage für
ein neu zu erstellendes Dokument verwendet werden. Lediglich das Einbinden des
-Paketes \Package{blindtext} mit \Macro*{usepackage}\PParameter{blindtext} und
+Paketes \Package{blindtext} mit \Macro*{usepackage}[\PParameter{blindtext}] und
die Verwendung des daraus stammenden Befehls \Macro*{blinddocument} können
weggelassen werden.
\IncludeExample{document}
\section{Dissertation}
-\label{sec:exmpl:dissertation}
-\index{Minimalbeispiel!Dissertation}
+\tudhyperdef*{sec:exmpl:dissertation}%
+\index{Minimalbeispiel!Dissertation}%
+%
Eine Abschlussarbeit oder ähnliches könnte wie hier gezeigt begonnen werden.
\IncludeExample{dissertation}
\section{Abschlussarbeit (kollaborativ)}
-\label{sec:exmpl:thesis}
-\index{Minimalbeispiel!Abschlussarbeit}
-\index{Minimalbeispiel!Kollaboratives Schreiben}
+\tudhyperdef*{sec:exmpl:thesis}%
+\index{Minimalbeispiel!Abschlussarbeit}%
+\index{Minimalbeispiel!Kollaboratives Schreiben}%
+%
Alle zusätzlichen Angaben außerhalb des Argumentes von \Macro{author} werden
für beide Autoren gleichermaßen übernommen.%
-\footnote{In diesem Beispiel \Macro{matriculationyear}.}
+\footnote{In diesem Beispiel \Macro{matriculationyear}}
Die Angaben innerhalb des Argumentes von \Macro{author} werden den jeweiligen,
mit \Macro{and} getrennten Autoren zugeordnet.%
\footnote{%
In diesem Beispiel \Macro{matriculationnumber}, \Macro{dateofbirth} und
- \Macro{placeofbirth}.
+ \Macro{placeofbirth}%
}
Ohne die Verwendung von \Macro{and} kann natürlich auch nur ein Autor
aufgeführt werden. Außerdem sei auf die Verwendung von \Macro{subject} anstelle
@@ -50,36 +53,52 @@ von \Macro{thesis} mit einem speziellen Wert aus \autoref{tab:thesis}
hingewiesen.
\IncludeExample{thesis}
+\begin{Bundle}{\Package{tudscrsupervisor}}
\section{Aufgabenstellung (kollaborativ)}
-\label{sec:exmpl:task}
-\index{Minimalbeispiel!Aufgabenstellung}
-\index{Minimalbeispiel!Kollaboratives Schreiben}
+\tudhyperdef*{sec:exmpl:task}%
+\index{Minimalbeispiel!Aufgabenstellung}%
+\index{Minimalbeispiel!Kollaboratives Schreiben}%
+%
Eine Aufgabenstellung für eine wissenschaftliche Arbeit ist mithilfe der
-Umgebung \Environment{task} oder dem Befehl \Macro{taskform} aus dem Paket
-\Package{tudscrsupervisor} folgendermaßen dargestellt werden.
+Umgebung \Environment{task}|?| oder dem Befehl \Macro{taskform}|?| aus dem
+Paket \Package{tudscrsupervisor} folgendermaßen dargestellt werden.
\IncludeExample{task}
\section{Gutachten}
-\label{sec:exmpl:evaluation}
-\index{Minimalbeispiel!Gutachten}
+\tudhyperdef*{sec:exmpl:evaluation}%
+\index{Minimalbeispiel!Gutachten}%
+%
Nach dem Laden des Paketes \Package{tudscrsupervisor} kann ein Gutachten für
-eine wissenschaftliche Arbeit mit der \Environment{evaluation}"=Umgebung oder
-dem Befehl \Macro{evaluationform} erstellt werden.
+eine wissenschaftliche Arbeit mit der \Environment{evaluation}|?|"=Umgebung
+oder dem Befehl \Macro{evaluationform}|?| erstellt werden.
\IncludeExample{evaluation}
\section{Aushang}
-\label{sec:exmpl:notice}
-\index{Minimalbeispiel!Aushang}
-Das Paket \Package{tudscrsupervisor} stellt die Umgebung \Environment{notice}
-für das Anfertigen allgemeiner Aushänge sowie den Befehl \Macro{noticeform}
+\tudhyperdef*{sec:exmpl:notice}%
+\index{Minimalbeispiel!Aushang}%
+%
+Das Paket \Package{tudscrsupervisor} stellt die Umgebung \Environment{notice}|?|
+für das Anfertigen allgemeiner Aushänge sowie den Befehl \Macro{noticeform}|?|
für die Ausschreibung wissenschaftlicher Arbeiten bereit.
\IncludeExample{notice}
-\index{Minimalbeispiel|)}
+\end{Bundle}
+
+\begin{Bundle}{\Class{tudscrposter}}
+\section{Poster}
+\tudhyperdef*{sec:exmpl:poster}%
+\index{Minimalbeispiel!Poster}%
+%
+Mit der Klasse \Class{tudscrposter}|?| lässt sich ein Poster im \TUDCD
+erstellen. Dabei ist die Angabe des gewünschten Papierformates sowie der
+passenden Schriftgröße zu beachten.
+\IncludeExample{poster}
+\index{Minimalbeispiel|!)}%
+\end{Bundle}
-\section{Vorlage für eine wissenschaftlichen Arbeit}
-\label{sec:exmpl:treatise}
-\index{Tutorial|(}
-\index{Tutorial!Abschlussarbeit}
+\section{Leitfaden für eine wissenschaftlichen Arbeit}
+\tudhyperdef*{sec:exmpl:treatise}%
+\index{Tutorials|!(}%
+%
Die meisten Anwender der \TUDScript-Klassen sind Studenten oder angehörige der
\TnUD, die ihre ersten Schritte mit \hologo{LaTeXe} beim Verfassen einer
wissenschaftlichen Arbeit oder ähnlichem machen. Während der Einstiegsphase in
@@ -94,16 +113,19 @@ anderen \hologo{LaTeX}"=Veteran~-- als Leitfaden für die Erstellung einer
wissenschaftlichen Arbeit gedacht.
\section{Ein Beitrag zum mathematischen Satz in \NoCaseChange{\hologo{LaTeXe}}}
-\label{sec:exmpl:mathtype}
-\index{Tutorial!Mathematiksatz}
+\tudhyperdef*{sec:exmpl:mathtype}%
+\index{Mathematiksatz}%
+%
Das Tutorial \Tutorial{mathtype}|!| richtet sich an alle Anwender, die in ihrem
\hologo{LaTeX}"=Dokument mathematische Formeln setzen wollen. In diesem wird
ausführlich darauf eingegangen, wie mit wenigen Handgriffen ein typografisch
sauberer Mathematiksatz zu bewerkstelligen ist.
\section{Änderung der Trennzeichen im Mathematikmodus}
-\label{sec:exmpl:mathswap}
-\index{Tutorial!Trennzeichen Mathematikmodus}
+\tudhyperdef*{sec:exmpl:mathswap}%
+\index{Mathematiksatz}%
+\index{Zifferngruppierung}%
+%
Sollen beim Verfassen eines \hologo{LaTeX}"=Dokumentes Daten in einem
Zahlenformat importiert werden, welches nicht den Gepflogenheiten der
Dokumentsprache entspricht, kommt es meist zu unschönen Ergebnissen bei der
@@ -114,4 +136,4 @@ normalerweise allesamt angepasst und das ursprüngliche Dezimaltrennzeichen
durch ein Komma ersetzt werden. Dieser Schritt wird mit dem \TUDScript-Paket
\Package{mathswap} automatisiert. Wie dies genau funktioniert, wird im Tutorial
\Tutorial{mathswap}|!| erläutert.
-\index{Tutorial|)}
+\index{Tutorials|!)}%
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 3dbae620946..4aa650d3c32 100644
--- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-hints.tex
+++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-hints.tex
@@ -1,15 +1,15 @@
-\newcommand*\TaT{\hyperref[sec:tips]{Tipps \& Tricks}}
+\newcommand*\TaT{\hyperref[sec:tips]{Tipps \& Tricks}:\xspace}
\chapter{Praktische Tipps \& Tricks}
-\manualhyperdef{sec:tips}%
+\tudhyperdef*{sec:tips}%
\section{\NoCaseChange{\hologo{LaTeX}}-Editoren}
-\label{sec:tips:editor}
+\tudhyperdef*{sec:tips:editor}%
+%
Hier werden die gängigsten Editoren zum Erzeugen von \hologo{LaTeX}"=Dateien
genannt. Ich persönlich bin mittlerweile sehr überzeugter Nutzer von
\Application{\hologo{TeX}studio}, da dieser viele Unterstützungs- und
Assistenzfunktionen bietet. Neben diesen gibt es noch weitere, gut nutzbare
-\hologo{LaTeX}-Editoren. Egal, für welchen Editor man sich letztendlich
-entscheidet, sollte dieser auf jeden Fall eine Unicode"=Unterstützung~(UTF"~8)
-enthalten:
+\hologo{LaTeX}"=Editoren. Unabhängig von der Auswahl des Editors, sollte dieser
+auf jeden Fall eine Unicode"=Unterstützung~(UTF"~8) enthalten:
%
\begin{itemize}
\item \Application{\hologo{TeX}maker}
@@ -23,20 +23,20 @@ enthalten:
\end{itemize}
%
Für \Application{\hologo{TeX}studio} wird im \GitHubRepo* das Archiv
-\hrfn{https://github.com/tud-cd/tudscr/releases/download/TeXstudio/tudscr4texstudio.zip}%
-{\File{tudscr4texstudio.zip}} bereitgestellt, welches Dateien zur Erweiterung
-der automatischen Befehlsvervollständigung für \TUDScript enthält. Diese müssen
-unter Windows in \Path{\%APPDATA\%\textbackslash texstudio} beziehungsweise
-unter unixoiden Betriebssystemen in \Path{.config/texstudio} eingefügt werden.
+\hrfn{https://github.com/tud-cd/tudscr/releases/download/TeXstudio/tudscr4texstudio.zip}{\File{tudscr4texstudio.zip}}
+bereitgestellt, welches Dateien zur Erweiterung der automatischen
+Befehlsvervollständigung für \TUDScript enthält. Diese müssen unter Windows in
+\Path{\%APPDATA\%\textbackslash texstudio} beziehungsweise unter unixoiden
+Betriebssystemen in \Path{.config/texstudio} eingefügt werden.
-Möchten Sie das grafische \hologo{LaTeX}-Frontend~\Application{\hologo{LyX}}
+Möchten Sie das grafische \hologo{LaTeX}"~Frontend~\Application{\hologo{LyX}}
für das Erstellen eines Dokumentes mit \TUDScript nutzen, so werden dafür
spezielle Layout-Dateien benötigt, um die Klassendateien verwenden zu können.
-Diese sind zusammen mit einem \Application{\hologo{LyX}}-Dokument als Archiv
-\hrfn{https://github.com/tud-cd/tudscr/releases/download/LyX/tudscr4lyx.zip}%
-{\File{tudscr4lyx.zip}} 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
+Diese sind zusammen mit einem \Application{\hologo{LyX}}"~Dokument als Archiv
+\hrfn{https://github.com/tud-cd/tudscr/releases/download/LyX/tudscr4lyx.zip}{\File{tudscr4lyx.zip}}
+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}
beziehungsweise bei unixoiden Betriebssystemen \Path{/usr/share/lyx/layouts}.
Anschließend muss LyX über den Menüpunkt \emph{Werkzeuge} neu konfiguriert
@@ -45,9 +45,9 @@ werden.
\section{Literaturverwaltung in \NoCaseChange{\hologo{LaTeX}}}
-\ChangedAt{v2.02!\TaT: Literaturverwaltung}
+\ChangedAt{v2.02:\TaT Literaturverwaltung}
%
-Die simpelste Variante, eine \hologo{LaTeX}-Literaturdatenbank zu verwalten,
+Die simpelste Variante, eine \hologo{LaTeX}"=Literaturdatenbank zu verwalten,
ist dies mit dem Editor manuell zu erledigen. Wesentlich komfortabler ist es
jedoch, die Referenzverwaltung mit einer darauf spezialisierten Anwendung zu
bewerkstelligen. Dafür gibt es zwei sehr gute Programme:
@@ -61,7 +61,7 @@ Das Programm \Application{Citavi} ermöglicht den Import von bibliografischen
Informationen aus dem Internet. Allerdings sind diese teilweise unvollständig
oder mangelhaft. Mit \Application{JabRef} hingegen muss die Literaturdatenbank
manuell erstellt werden. Allerdings lassen sich einzelne Einträge aus
-.bib-Dateien sehr importieren. Beide Anwendungen unterstützen den Export
+\File*{.bib}"~Dateien importieren. Beide Anwendungen unterstützen den Export
beziehungsweise die Erstellung von Datenbanken im Stil von \Package{biblatex}.
Für \Application{JabRef} muss diese durch den Anwender explizit aktiviert
werden.\footnote{Optionen/Einstellungen/Erweitert/BibLaTeX-Modus}
@@ -72,14 +72,13 @@ Zur Verwendung der beiden Programme in Verbindung mit \Package{biblatex} und
\section{Worttrennungen in deutschsprachigen Texten}
-\manualhyperdef'{sec:tips:hyphenation}
-%
-\ChangedAt{v2.02!\TaT: Worttrennungen}
+\tudhyperdef*{sec:tips:hyphenation}
+\ChangedAt{v2.02:\TaT Worttrennungen}
%
Die möglichen Trennstellen von Wörtern werden von \hologo{LaTeXe} mithilfe
eines Algorithmus berechnet. Dieser ist jedoch in seiner ursprünglichen Form
für die englische Sprache konzipiert worden. Für deutschsprachige Texte wird
-die Worttrennung~-- insbesondere für zusammengeschriebenen Wörtern~-- mit dem
+die Worttrennung~-- insbesondere bei zusammengeschriebenen Wörtern~-- mit dem
Paket \Package{hyphsubst} entscheidend verbessert. Dafür wird ein um vielerlei
Trennungsmuster ergänztes Wörterbuch aus dem Paket \Package{dehyph-exptl}
genutzt.
@@ -116,34 +115,35 @@ nichts anderes eingestellt ist, liegen sowohl Binde- als auch Trennstrich auf
Position~\PValue{45} der Zeichentabelle. In der \PValue{T1}"~Schriftkodierung
befindet sich auf der Position~\PValue{127} glücklicherweise für gewöhnlich das
gleiche Zeichen noch einmal. Dies ist jedoch von der verwendeten Schrift
-abhängig. Wird der Ausdruck \Macro{defaulthyphenchar}\PValue{=127} in der
+abhängig. Wird der Ausdruck \Macro*{defaulthyphenchar}[\PValue{=127}] in der
Dokumentpräambel verwendet, kann dieses Zeichen für den Trennstrich genutzt
-werden. Bei den Schriften des \CDs der \TnUD ist dies bereits automatisch
-eingestellt.
+werden. Bei den Schriften des \TUDCDs ist dies bereits automatisch eingestellt.
Sollte trotz aller Maßnahmen dennoch einmal ein bestimmtes Wort falsch getrennt
werden, so kann die Worttrennung dieses Wortes manuell und global geändert
-werden. Dies wird mit \Macro{hyphenation}\PParameter{Sil-ben-tren-nung}
+werden. Dies wird mit \Macro{hyphenation}[\PParameter{Sil-ben-tren-nung}]
gemacht. Es ist zu beachten, dass dies für alle Flexionsformen des Wortes
erfolgen sollte. Für eine lokale/temporäre Worttrennung kann mit Befehlen aus
dem Paket \Package{babel} gearbeitet werden. Diese sind:
-\vskip\baselineskipglue\noindent
+\vskip\medskipamount\noindent
+\begingroup
+\newcommand*\listhyphens[2]{#1 & \PValue{#2} \tabularnewline}%
\begin{tabular}{@{}ll}
-\textbf{Beschreibung} & \textbf{Befehl}\tabularnewline
-ausschließliche Trennstellen & \PValue{\textbackslash-}\tabularnewline
-zusätzliche Trennstellen & \PValue{"'-}\tabularnewline
-Umbruch ohne Trennstrich & \PValue{"'"'}\tabularnewline
-Bindestrich ohne Umbruch & \PValue{"'\textasciitilde}\tabularnewline
-Bindestrich, der weitere Trennstellen erlaubt & \PValue{"'=}\tabularnewline
+ \textbf{Beschreibung} & \textbf{Befehl} \tabularnewline
+ \listhyphens{ausschließliche Trennstellen}{\textbackslash-}
+ \listhyphens{zusätzliche Trennstellen}{"'-}
+ \listhyphens{Umbruch ohne Trennstrich}{"'"'}
+ \listhyphens{Bindestrich ohne Umbruch}{"'\textasciitilde}
+ \listhyphens{Bindestrich, der weitere Trennstellen erlaubt}{"'=}
\end{tabular}
+\endgroup
\section{Lokale Änderungen von Befehlen und Einstellungen}
-\index{Befehle!Geltungsbereich}\index{Befehle!Deklaration}
-%
-\ChangedAt{v2.02!\TaT: Lokale Änderungen}
+\index{Befehlsdeklaration!Geltungsbereich}%
+\ChangedAt{v2.02:\TaT Lokale Änderungen}
%
Ein zentraler Bestandteil von \hologo{LaTeX} ist die Verwendung von Gruppen
oder Gruppierungen. Innerhalb dieser bleiben alle vorgenommenen Änderungen an
@@ -152,7 +152,7 @@ wenn beispielsweise das Verhalten eines bestimmten Makros einmalig oder
innerhalb von selbst definierten Befehlen oder Umgebungen geändert werden, im
Normalfall jedoch die ursprüngliche Funktionalität behalten soll.
\begin{Example}
-\index{Schriftauszeichnung}
+\index{Schriftauszeichnung}%
Der Befehl \Macro{emph} wird von \hologo{LaTeX} für Hervorhebungen im Text
bereitgestellt und führt normalerweise zu einer kursiven oder~-- falls kein
Schriftschnitt mit echten Kursiven vorhanden ist~-- kursivierten Auszeichnung.
@@ -163,32 +163,33 @@ und verändert werden. Wird diese beendet, verhält sich der Befehl wie gewohnt.
In diesem Text wird ein bestimmtes \emph{Wort} hervorgehoben.
\begingroup
-\renewcommand*\emph[1]{\textbf{#1}}%
-In diesem Text wird ein bestimmtes \emph{Wort} hervorgehoben.
+ \renewcommand*{\emph}[1]{\textbf{#1}}%
+ In diesem Text wird ein bestimmtes \emph{Wort} hervorgehoben.
\endgroup
In diesem Text wird ein bestimmtes \emph{Wort} hervorgehoben.
\end{Code}
\end{Example}
Eine Gruppierung kann entweder mit \Macro*{begingroup} und \Macro*{endgroup}
-oder einfach mit einem geschweiften Klammerpaar \texttt{\{\dots\}} definiert
+oder einfach mit einem geschweiften Klammerpaar \PParameter{\dots} definiert
werden.
-\section{Bezeichnung der Gliederungsebenen durch \Package*{hyperref}}
-\index{Querverweise}
-%
-\ChangedAt{v2.02!\TaT: Bezeichnungen der Gliederungsebenen}
+\section{Bezeichnung der Gliederungsebenen durch \Package{hyperref}}
+\tudhyperdef*{sec:tips:references}
+\index{Querverweise}%
+\ChangedAt{v2.02:\TaT Bezeichnungen der Gliederungsebenen}
%
Das Paket \Package{hyperref} stellt für Querverweise unter anderem den Befehl
-\Macro{autoref}\Parameter{label} 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 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 Elementes geändert werden, muss man den entsprechende Bezeichner anpassen.
+\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
+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
+Elementes geändert werden, muss der entsprechende Bezeichner angepasst werden.
%
\begin{Example}
Bezeichnungen von Gliederungsebenen können folgendermaßen verändert werden.
@@ -201,37 +202,48 @@ Bezeichnungen von Gliederungsebenen können folgendermaßen verändert werden.
-\section{URL-Umbrüche im Literaturverzeichnis mit \Package*{biblatex}}
-\index{Literaturverzeichnis}
-%
-\ChangedAt{v2.02!\TaT: URL-Umbrüche im Literaturverzeichnis}
+\section{URL-Umbrüche im Literaturverzeichnis mit \Package{biblatex}}
+\index{Literaturverzeichnis}%
+\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}, \Counter{biburlucpenalty} und
-\Counter{biburllcpenalty} erhöht werden. Die möglichen Werte liegen zwischen 0
-und 10000, wobei es bei höheren Werte der Zähler zu mehr URL-Umbrüchen an
-Ziffern (\Counter{biburlnumpenalty}), Groß- (\Counter{biburlucpenalty}) und
-Kleinbuchstaben (\Counter{biburllcpenalty}) kommt. Genaueres hierzu ist der
-Dokumentation des \Package{biblatex}"=Paketes zu entnehmen.
+können die Zählern \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,
+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}.
\section{Zeilenabstände in Überschriften}
-\label{sec:tips:headings}
+\tudhyperdef*{sec:tips:headings}%
+%
Mit dem Paket \Package{setspace} kann der Zeilenabstand beziehungsweise der
Durchschuss innerhalb des Dokumentes geändert werden. Sollte dieser erhöht
worden sein, können die Abstände bei mehrzeiligen Überschriften als zu groß
-erscheinen. Um dies zu korrigieren kann mit dem Befehl \Macro{addtokomafont}%
-\PParameter{disposition}\PParameter{\Macro{setstretch}\PParameter{1}} der
-Zeilenabstand aller Überschriften auf einzeilig zurückgeschaltet werden. Soll
-dies nur für eine bestimmte Gliederungsebene erfolgen, so ist der Parameter
-\PValue{disposition} durch das entsprechende Schriftelement zu ersetzen.
+erscheinen. Um dies zu korrigieren kann mit dem Befehl
+\Macro{addtokomafont}[%
+ \PParameter{disposition}\PParameter{%
+ \Macro{setstretch}[\PParameter{1}](\Package{setspace})'none'%
+ }%
+](\Package{koma-script})'none'
+der Zeilenabstand aller Überschriften auf einzeilig zurückgeschaltet werden.
+Soll dies nur für eine bestimmte Gliederungsebene erfolgen, so ist der
+Parameter \PValue{disposition} durch das dazugehörige Schriftelement zu
+ersetzen.
\section{Warnung wegen zu geringer Höhe der Kopf-/Fußzeile}
-\label{sec:tips:headline}
+\tudhyperdef*{sec:tips:headline}%
+%
Wird das Paket \Package{setspace} verwendet, kann es passieren, dass nach der
Änderung des Zeilenabstandes \emph{innerhalb} des Dokumentes eine oder beide
der folgenden Warnungen erscheinen:
@@ -245,23 +257,23 @@ scrlayer-scrpage Warning: \footheight to low.
%
Dies liegt an dem durch den vergrößerten Zeilenabstand erhöhten Bedarf für die
Kopf- und Fußzeile, die Höhen können in diesem Fall direkt mit der Verwendung
-von \Macro{recalctypearea} angepasst werden. Allerdings ändert das den
-Satzspiegel im Dokument, was eine andere und durchaus berechtigte Warnung von
-\Package{typearea} zur Folge hat. Falls die Änderung des Durchschusses wirklich
-nötig ist, sollte dies in der Präambel des Dokumentes einmalig passieren. Dann
-entfallen auch die Warnungen.
+von \Macro{recalctypearea}(\Package{typearea})'none' angepasst werden.
+Allerdings ändert das den Satzspiegel im Dokument, was eine andere und durchaus
+berechtigte Warnung von \Package{typearea} zur Folge hat. Falls die Änderung
+des Durchschusses wirklich nötig ist, sollte dies in der Präambel des
+Dokumentes einmalig passieren. Dann entfallen auch die Warnungen.
\section{Einrückung von Tabellenspalten verhindern}%
-\manualhyperdef'{sec:tips:table}
-\index{Tabellen}
+\tudhyperdef*{sec:tips:table}
+\index{Tabellen}%
%
Normalerweise wird in einer Tabelle vor \emph{und} nach jeder Spalte durch
-\hologo{LaTeXe} etwas horizontaler Raum mit \Macro{hskip}\Macro{tabcolsep}
+\hologo{LaTeXe} etwas horizontaler Raum mit \Macro*{hskip}\Length{tabcolsep}
eingefügt.%
\footnote{%
- Der Abstand zweier Spalten beträgt folglich \PValue{2}\Macro{tabcolsep}.%
+ Der Abstand zweier Spalten beträgt folglich \PValue{2}\Length{tabcolsep}.%
}
Dies geschieht auch \emph{vor} der ersten und \emph{nach} der letzten Spalte.
Diese optische Einrückung an den äußeren Rändern kann unter Umständen stören,
@@ -270,16 +282,16 @@ insbesondere bei Tabellen, die willentlich~-- beispielsweise mit den Paketen
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.
+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.
Bei der Deklaration einer Tabelle kann mit~\PValue{@}\PParameter{\dots} vor und
nach dem Spaltentyp angegeben werden, was anstelle von \Length{tabcolsep} vor
beziehungsweise nach der eigentlichen Spalte eingeführt werden soll. Dies kann
-für das Entfernen der Einrückungen genutzt werden, indem~\PValue{@\{\}} an den
-entsprechenden Stellen bei der Angabe der Spaltentypen vor der ersten und nach
-der letzten Tabellenspalte verwendet wird.
+für das Entfernen der Einrückungen genutzt werden, indem an den entsprechenden
+Stellen~\PValue{@\PParameter{}} bei der Angabe der Spaltentypen vor der ersten
+und nach der letzten Tabellenspalte verwendet wird.
%
\begin{Example}
Eine Tabelle mit zwei Spalten, wobei bei einer die Breite automatisch berechnet
@@ -297,39 +309,45 @@ vor der ersten und nach der letzten entfernt werden.
\section{Unterdrückung des Einzuges eines Absatzes}
-\index{Absatzauszeichnung}
-Verwendet man~-- wie es aus typografischer Sicht zumeist sinnvoll ist~--
-Einzüge und keine vertikalen Abstände zur Auszeichnung von Absätzen im Dokument
-(\Option{parskip}[false]), kann es vorkommen, dass ein bestimmter Absatz~--
-beispielsweise der nach einer gewissen Umgebung folgende~-- ungewollt
-eingerückt ist. Dies kann sehr einfach behoben werden, indem direkt zu Beginn
-des Absatzes das Makro \Macro{noindent} verwendet wird. Möchte man das für
-bestimmte Umgebungen oder Befehle automatisiert gestalten, ist das Paket
-\Package{noindentafter} zu empfehlen.
+\index{Absatzauszeichnung}%
+%
+Werden zur Absatzauszeichnung im Dokument~-- wie es aus typografischer Sicht
+zumeist sinnvoll ist~-- Einzüge und keine vertikalen Abstände verwendet
+(\KOMAScript-Option \Option*{parskip=false}(\Package{koma-script})'none'), kann
+es vorkommen, dass ein ganz bestimmter Absatz~-- beispielsweise der nach einer
+zuvor genutzten Umgebung folgende~-- ungewollt eingerückt ist. Dies kann sehr
+einfach manuell behoben werden, indem direkt zu Beginn des Absatzes das Makro
+\Macro{noindent} aufgerufen wird. Soll das Einrücken von Absätzen nach ganz
+bestimmten Umgebungen oder Befehlen automatisiert unterbunden werden, ist das
+Paket \Package{noindentafter} zu empfehlen.
\section{Unterbinden des Zurücksetzens von Fußnoten}%
-\label{sec:tips:counter}
-\index{Fußnoten}
-Oft taucht die Frage auf, wie man auch über Kapitel fortlaufende Fußnoten
-erhalten kann. Dies ist sehr einfach mit dem Paket \Package{chngcntr} möglich.
-Nach dem Laden des Paketes, kann das Rücksetzen des Zählers nach einem Kapitel
-mit \Macro{counterwithout*}\PParameter{footnote}\PParameter{chapter}
-deaktiviert werden. Auch andere \hologo{LaTeX}-Zähler~-- wie beispielsweise der
-bereits vorgestellte \Counter{symbolheadings}~-- lassen sich mit diesem
-Paket manipulieren.
+\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*}[%
+ \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{Setzen von Einheiten mit \Package*{siunitx}}
-\label{sec:tips:siunitx}
-\index{Einheiten}
+\section{Setzen von Einheiten mit \Package{siunitx}}
+\tudhyperdef*{sec:tips:siunitx}%
+\index{Einheiten}%
+%
Wenn \Package{siunitx} in einem deutschsprachigen Dokument genutzt soll
-werden, muss zumindest mit \Macro{sisetup}\PParameter{locale = DE} die
-richtige Lokalisierung angegeben werden. Sollen auch die Zahlen richtig
-formatiert sein, müssen weitere Einstellungen vorgenommen werden. Die meiner
-Meinung nach besten sind die folgenden.
+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}
@@ -350,12 +368,12 @@ verwendet werden.
\section{Warnung beim Erzeugen des Inhaltsverzeichnisses}
\index{Inhaltsverzeichnis}%
+\ChangedAt{v2.02:\TaT Warnung beim Erzeugen des Inhaltsverzeichnisses}
+\ChangedAt{v2.02:\TaT Hinweis auf Rand bei mehrzeiligen Einträgen ergänzt}
%
-\ChangedAt{v2.02!\TaT: Warnung beim Erzeugen des Inhaltsverzeichnisses}
-%
-Erstellt man ein Inhaltsverzeichnis für ein Dokument mit einer dreistelligen
-Seitenanzahl, so erhält man bei der Verwendung von \Macro{tableofcontents}
-viele Warnungen mit der Meldung:
+Wird mit \Macro{tableofcontents}(\Package{koma-script})'none' das
+Inhaltsverzeichnis für ein Dokument mit einer dreistelligen Seitenanzahl
+erstellt, so erscheinen unter Umständen viele Warnungen mit der Meldung:
%
\begin{quoting}
\begin{Code}
@@ -363,26 +381,26 @@ overfull \hbox
\end{Code}
\end{quoting}
%
-Das liegt daran, dass die Seitenzahl in einer Box mit der Breite
-\Macro*{@pnumwidth} gesetzt wird. Der hierfür standardmäßig verwendete Wert
-von~\PValue{1.55em} ist in diesem Fall zu klein. Dieser kann folgendermaßen
-geändert werden:
+Die Seitenzahlen im Verzeichnis werden in einer Box mit einer festen Breite
+von~\PValue{1.55em} gesetzt, welche im Makro \Macro*{@pnumwidth} hinterlegt ist
+und im Zweifel vergrößert werden sollte. Dabei ist auch der rechte Rand für
+mehrzeilige Einträge im Verzeichnis \Macro*{@tocrmarg} zu vergrößern, welcher
+mit~\PValue{2.55em} voreingestellt ist. Die Werte sollten nur minimal geändert
+werden:
%
\begin{quoting}
\begin{Code}
\makeatletter
-\renewcommand*\@pnumwidth{1.7em}
+\renewcommand*{\@pnumwidth}{1.7em}\renewcommand*{\@tocrmarg}{2.7em}
\makeatother
\end{Code}
\end{quoting}
-%
-Dabei sollte der eingesetzte Wert nicht zu groß ausfallen.
\section{Leer- und Satzzeichen nach \NoCaseChange{\hologo{LaTeX}}-Befehlen}%
-\label{sec:tips:xspace}
-\index{Typografie}
+\tudhyperdef*{sec:tips:xspace}%
+\index{Typografie}%
%
Normalerweise \enquote{schluckt} \hologo{LaTeX} die Leerzeichen nach einem
Makro ohne Argumente. Dies ist jedoch nicht immer~-- genau genommen in den
@@ -390,14 +408,14 @@ seltensten Fällen~-- erwünscht. Für dieses Handbuch ist beispielsweise der
Befehl \Macro*{TUD} definiert worden, um \enquote{\TUD{}} nicht ständig
ausschreiben zu müssen. Um sich bei der Verwendung des Befehl innerhalb eines
Satzes für den Erhalt eines folgenden Leerzeichens das Setzen der geschweiften
-Klammer nach dem Befehl zu sparen (\Macro*{TUD}\PParameter{}), kann
-\Macro{xspace} aus dem Paket \Package{xspace} genutzt werden. Damit wird
-ein folgendes Leerzeichen erhalten. Der Befehl \Macro*{TUD} ist wie folgt
-definiert:
+Klammer nach dem Befehl zu sparen (\Macro*{TUD}[\PParameter{}]), kann
+\Macro{xspace}(\Package{xspace})'none' aus dem Paket \Package{xspace} genutzt
+werden. Damit wird ein folgendes Leerzeichen erhalten. Der Befehl \Macro*{TUD}
+ist wie folgt definiert:
%
\begin{quoting}
\begin{Code}
-\newcommand*\TUD{Technische Universit\"at Dresden\xspace}
+\newcommand*{\TUD}{Technische Universit\"at Dresden\xspace}
\end{Code}
\end{quoting}
%
@@ -407,17 +425,16 @@ ignoriert wird:
%
\begin{quoting}
\begin{Code}
-\newcommand*\zB{z.\,B\xperiod}
+\newcommand*{\zB}{z.\,B\xperiod}
\end{Code}
\end{quoting}
\section{Das Setzen von Auslassungspunkten}
-\manualhyperdef{sec:tips:dots}
-\index{Typografie}
-%
-\ChangedAt{v2.02!\TaT: Das Setzen von Auslassungspunkten}
+\tudhyperdef*{sec:tips:dots}%
+\index{Typografie}%
+\ChangedAt{v2.02:\TaT Das Setzen von Auslassungspunkten}
%
Auslassungspunkte werden mit \hologo{LaTeXe} mit den Befehlen \Macro{dots} oder
\Macro{textellipsis} gesetzt. Für gewöhnlich folgt diesen \emph{immer} ein
@@ -453,40 +470,44 @@ eingefügt werden:
\begin{quoting}
\begin{Code}
\let\ellipsispunctuation\relax
-\newcommand*\qdots{[\dots{}]\xspace}
+\newcommand*{\qdots}{[\dots{}]\xspace}
\end{Code}
\end{quoting}
%
Der Befehl \Macro*{qdots} wird definiert, um Auslassungspunkte in eckigen
-Klammern ([\dots{}]) setzen zu können, wie sie für das Kürzen von wörtlichen
-Zitaten häufig verwendet werden.
+Klammern (\POParameter{\dots}) setzen zu können, wie sie für das Kürzen von
+wörtlichen Zitaten häufig verwendet werden.
\section{Finden von unbekannten \NoCaseChange{\hologo{LaTeX}}-Symbolen}
-\index{Symbole}
+\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 Web-Seite wird das gesuchte Symbol einfach
-gezeichnet, die dazu ähnlichsten werden zurückgegeben.
+\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 Web-Seite wird das gesuchte Symbol einfach gezeichnet, die dazu
+ähnlichsten werden zurückgegeben.
\section{Änderung des Papierformates}
-\index{Papierformat}
-Es kann vorkommen, dass man innerhalb eines Dokumentes kurzzeitig das
-Papierformat ändern möchte, um beispielsweise eine Konstruktionsskizze in der
-digitalen PDF"~Datei einzubinden. Dabei ist es sowohl möglich, lediglich die
-Ausrichtung mit \Option{paper}[landscape] in ein Querformat zu ändern, als
-auch die Größe des Papierformates selber.
+\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 das Papierformat mit den
-Mitteln von \KOMAScript{} geändert werden kann.
+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{selinput}
@@ -513,40 +534,117 @@ Mitteln von \KOMAScript{} geändert werden kann.
\end{Code}
\end{Example}
-\ToDo[doc,nxt]{Schnittmarken mit \Package{crop} dokumentieren}[v2.05]
-%\section{Schnittmarken}
\section{Vermeiden des Skalierens einer PDF-Datei beim Druck}
-%
-\ChangedAt{v2.04!\TaT: 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 \hologo{pdfTeX} erzeugt werden, zu unterdrücken, gibt es
+für Dokumente, die mit \Engine{pdfTeX} erzeugt werden, zu unterdrücken, gibt es
zwei Möglichkeiten:
%
\begin{enumerate}
-\item Es kann \Macro*{hypersetup}\PParameter{pdfprintscaling=None} verwendet
- werden, wenn im Dokument ohnehin das Paket \Package{hyperref} geladen wird.
-\item Mit dem Low-Level-Befehl
- \Macro*{pdfcatalog}\PParameter{/ViewerPreferences<</PrintScaling/None>>}
- lässt sich auch ohne das Paket das gleiche Verhalten erreichen.
+\item Wenn im Dokument ohnehin das Paket \Package{hyperref} verwendet wird,
+ ist der simple Aufruf von
+ \Macro{hypersetup}[%
+ \PParameter{pdfprintscaling=None}%
+ ](\Package{hyperref})'none'
+ 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.
\end{enumerate}
%
Weitere Informationen dazu sind unter \url{http://www.komascript.de/node/1897}
zu finden.
-\section{Warnung bei der Schriftgrößenwahl}
+\section{Beschnittzugabe und Schnittmarken}
+\tudhyperdef*{sec:tips:crop}%
+\index{Beschnittzugabe|!}%
+\index{Schnittmarken|!}%
%
-\ChangedAt{v2.04!\TaT: Warnung bei der Schriftgrößenwahl}
+Beim Plotten von Postern oder anderen farbigen Druckerzeugnissen besteht
+oftmals das Problem, dass ein randloses Drucken nur schwer realisierbar ist.
+Deshalb wird zu oftmals damit beholfen, dass der Druck des fertigen Dokumentes
+auf einem größeren Papierbogen erfolgt und anschließend auf das gewünschte
+Zielformat zugeschnitten wird, womit das Problem des nicht bedruckbaren Randes
+entfällt. Dies kann über zwei verschiedene Wege realisiert werden.
+
+Der einfachste Weg ist die Verwendung des Paketes \Package{crop}. Mit diesem
+kann das Dokument ganz normal im gewünschten Zielformat erstellt werden. Vor
+dem Druck wird dieses Paket geladen und einfach das gewünschte Format des
+Papierbogens angegeben.
+%
+\begin{quoting}
+\begin{Code}[escapechar=§]
+\RequirePackage{fix-cm}
+\documentclass[%
+ paper=a1,
+ fontsize=36pt
+]{tudscrposter}
+\usepackage{selinput}
+\SelectInputMappings{adieresis={ä},germandbls={ß}}
+\usepackage[T1]{fontenc}
+§\dots§
+\usepackage{graphicx}
+\usepackage[b1,center,cam]{crop}
+\begin{document}
+§\dots§
+\end{document}
+\end{Code}
+\end{quoting}
+%
+Alternativ dazu kann für die \TUDScript-Klassen auf die Funktionalität des
+Paketes \Package{geometry} zurückgegriffen werden. Dieses Paket stellt den
+Befehl \Macro{geometry}(\Package{geometry})'none' bereit, in dessen Argument mit
+\Key{\Macro{geometry}(\Package{geometry})}{paper=\PName{Papierformat}}|default|
+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|
+dieser Bereich gegebenenfalls etwas eingerückt werden. Die Angabe von
+\Key{\Macro{geometry}(\Package{geometry})}{showcrop=\PBoolean}|default|
+generiert außerdem noch visuelle Schnittmarken.
+%
+\begin{quoting}
+\begin{Code}[escapechar=§]
+\RequirePackage{fix-cm}
+\documentclass[%
+ paper=a1,
+ fontsize=36pt
+]{tudscrposter}
+\usepackage{selinput}
+\SelectInputMappings{adieresis={ä},germandbls={ß}}
+\usepackage[T1]{fontenc}
+§\dots§
+\geometry{paper=b1,layout=a1,layoutoffset=1in,showcrop}
+\begin{document}
+§\dots§
+\end{document}
+\end{Code}
+\end{quoting}
+%
+Für genauere Erläuterungen sowie weitere Einstellmöglichkeiten sei auf die
+Dokumentation von \Package{crop} beziehungsweise \Package{geometry} verwiesen.
+Mit der \TUDScript-Option \Option{bleedmargin}(\Class{tudscrposter}) können
+zusätzlich ie farbigen Bereiche der \PageStyle{tudheadings}-Seitenstile
+erweitert werden, um ein \enquote{Zuschneiden in die Farbe} zu ermöglichen.
+
+
+
+\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} 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
+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=§]
@@ -559,11 +657,12 @@ 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:
+geladen werden:
+%
\begin{quoting}[rightmargin=0pt]
\begin{Code}[escapechar=§]
\RequirePackage{fix-cm}
-\documentclass[<Optionen>]{<Klasse>}
+\documentclass§\OParameter{Klassenoptionen}\Parameter{Klasse}§
\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage[T1]{fontenc}
§\dots§
@@ -577,79 +676,79 @@ Damit werden die Warnungen behoben.
\section{Platzierung von Gleitobjekten}
-\manualhyperdef'{sec:tips:floats}{}%
-\index{Gleitobjekte|?}\index{Gleitobjekte!Platzierung}%
+\tudhyperdef*{sec:tips:floats}%
+\index{Gleitobjekte!Platzierung|?}%
%
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} sehr
-einfach ändern.
+lassen sich mit \Macro*{renewcommand*}[\Parameter{Befehl}\Parameter{Wert}]
+sehr einfach ändern.
-\begin{Declaration}{\Macro{floatpagefraction}}[0\floatpagefraction]
-\begin{Declaration}{\Macro{dblfloatpagefraction}}[0\dblfloatpagefraction]
-\printdeclarationlist*%
+\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 0.8} liegen.
+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}
-\begin{Declaration}{\Macro{topfraction}}[0\topfraction]
-\begin{Declaration}{\Macro{dbltopfraction}}[0\dbltopfraction]
-\printdeclarationlist*%
+\begin{Declaration}{\Macro*{topfraction}}[0\topfraction]
+\begin{Declaration}{\Macro*{dbltopfraction}}[0\dbltopfraction]
+\printdeclarationlist%
%
Diese Werte geben den maximalen Seitenanteil für Gleitobjekte, die am oberen
Seitenrand platziert werden, für einspaltiges und zweispaltiges Layout an. Er
-sollte im Bereich von \PValue{0.5\dots 0.8} liegen und größer als
-\Macro{floatpagefraction} beziehungsweise \Macro{dblfloatpagefraction} sein.
+sollte im Bereich von \PValue{0.5}\dots\PValue{0.8} liegen und größer als
+\Macro*{floatpagefraction} beziehungsweise \Macro*{dblfloatpagefraction} sein.
\end{Declaration}
\end{Declaration}
-\begin{Declaration}{\Macro{bottomfraction}}[0\bottomfraction]
-\printdeclarationlist*%
+\begin{Declaration}{\Macro*{bottomfraction}}[0\bottomfraction]
+\printdeclarationlist%
%
Dies ist der maximale Seitenanteil für Gleitobjekte, die am unteren Seitenrand
platziert werden. Er sollte zwischen~\PValue{0.2} und~\PValue{0.5} betragen.
\end{Declaration}
-\begin{Declaration}{\Macro{textfraction}}[0\textfraction]
-\printdeclarationlist*%
+\begin{Declaration}{\Macro*{textfraction}}[0\textfraction]
+\printdeclarationlist%
%
Dies ist der Mindestanteil an Text, der auf einer Seite mit Gleitobjekten
vorhanden sein muss, wenn diese nicht auf einer eigenen Seite ausgegeben
-werden. Er sollte im Bereich von~\PValue{0.1\dots 0.3} liegen.
+werden. Er sollte im Bereich von~\PValue{0.1}\dots\PValue{0.3} liegen.
\end{Declaration}
-\begin{Declaration}{\Counter{totalnumber}}[\arabic{totalnumber}]
-\begin{Declaration}{\Counter{topnumber}}[\arabic{topnumber}]
-\begin{Declaration}{\Counter{dbltopnumber}}[\arabic{dbltopnumber}]
-\begin{Declaration}{\Counter{bottomnumber}}[\arabic{bottomnumber}]
-\printdeclarationlist*%
+\begin{Declaration}{\Counter*{totalnumber}}[\arabic{totalnumber}]
+\begin{Declaration}{\Counter*{topnumber}}[\arabic{topnumber}]
+\begin{Declaration}{\Counter*{dbltopnumber}}[\arabic{dbltopnumber}]
+\begin{Declaration}{\Counter*{bottomnumber}}[\arabic{bottomnumber}]
+\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 Zweispaltensatz
-beide Spalten überspannend (\Counter{dbltopnumber}) festlegen. Die Werte
-können mit \Macro*{setcounter}\Parameter{Zähler}\Parameter{Wert} geändert
+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
+können mit \Macro*{setcounter}[\Parameter{Zähler}\Parameter{Wert}] geändert
werden.
\end{Declaration}
\end{Declaration}
\end{Declaration}
\end{Declaration}
-\begin{Declaration}{\Length{@fptop}}
-\begin{Declaration}{\Length{@fpsep}}
-\begin{Declaration}{\Length{@fpbot}}
-\begin{Declaration}{\Length{@dblfptop}}
-\begin{Declaration}{\Length{@dblfpsep}}
-\begin{Declaration}{\Length{@dblfpbot}}
-\printdeclarationlist*%
+\begin{Declaration}{\Length*{@fptop}}
+\begin{Declaration}{\Length*{@fpsep}}
+\begin{Declaration}{\Length*{@fpbot}}
+\begin{Declaration}{\Length*{@dblfptop}}
+\begin{Declaration}{\Length*{@dblfpsep}}
+\begin{Declaration}{\Length*{@dblfpbot}}
+\printdeclarationlist%
%
Sind vor Beginn eines Kapitels noch Gleitobjekte verblieben, so werden diese
durch \hologo{LaTeX} normalerweise auf einer separaten vertikal zentriert Seite
@@ -667,39 +766,79 @@ geschehen, können die Längen durch den Anwender geändert werden.
%
\begin{Example}
Alle Gleitobjekte auf einer dafür speziell gesetzten Seite sollen direkt zu
-Beginn dieser ausgegeben werden. In der Dokumentpräambel kann man dafür
-schreiben:
+Beginn dieser ausgegeben werden. In der Dokumentpräambel lässt sich für dieses
+Unterfangen Folgendes nutzen:
\begin{Code}
\makeatletter
\setlength{\@fptop}{0pt}
-\setlength{\@dblfptop}{0pt} % twocolumn
+\setlength{\@dblfptop}{0pt}% twocolumn
\makeatother
\end{Code}
\end{Example}
-\section{Automatisiertes Einbinden von \Application*{Inkscape}-Grafiken }
-\manualhyperdef'{sec:tips:svg}%
+\section{Automatisiertes Einbinden von \Application{Inkscape}-Grafiken }
+\tudhyperdef*{sec:tips:svg}%
\index{Grafiken}%
%
-In \hrfn{http://www.ctan.org/pkg/svg-inkscape}{\Package{svg-inkscape}} wird das
-automatisierte Einbinden von \Application{Inkscape}-Grafiken in ein
-\hologo{LaTeX}"=Dokument erläutert. Hier wird ein daraus abgeleiteter und
-verbesserter Ansatz vorgestellt. Nutzer von unixartigen Systemen können
-alternativ auch das Paket \Package{svg} nutzen, welches den folgend erläuterten
-Befehl \Macro{includesvg} definiert.
-
-Die mit \Application{Inkscape}|?| erstellte Grafik soll automatisch kompiliert
-und eingebunden werden. Dies soll allerdings nicht bei jeder Kompilierung des
-Hauptdokumentes erfolgen, sondern lediglich, wenn die originale Bilddatei
-geändert beziehungsweise aktualisiert wurde. Hierfür wird \Package{filemod}
-verwendet. Die automatisierte Übersetzung einer Grafik im SVG"~Format in eine
-PDF"~Datei und die daran anschließende Einbindung dieser in das Dokument ist
-mit der Definition von \Macro{includesvg}\OParameter{Breite}\Parameter{Datei}
+Das Einbinden von \Application{Inkscape}"=Grafiken in \hologo{LaTeX}"=Dokumente
+wird auf \CTAN[pkg/svg-inkscape]{\Package*{svg-inkscape}'none'} erläutert. Hier
+wird ein daraus abgeleiteter und verbesserter Ansatz vorgestellt, um den Export
+der \Application{Inkscape}"=Grafiken \textbf{automatisiert} direkt bei der
+Kompilierung durch \Engine{pdfLaTeX} auszuführen und diese in das Dokument
+einzubinden. Nutzer von unixartigen Systemen können alternativ dazu auch das
+Paket \Package{svg} nutzen, welches ebenfalls den folgend erläuterten Befehl
+\Macro{includesvg}~-- in etwas abgewandelter Form~-- definiert.
+
+Die mit \Application{Inkscape}|?| erstellte Grafik soll automatisch exportiert
+und eingebunden werden. Um die benötigte Zeit für die Kompilierung möglichst
+gering zu halten, sollte der Export nicht bei jedem \Engine{pdfLaTeX}"=Lauf
+erfolgen, sondern lediglich, falls die originale Bilddatei geändert respektive
+aktualisiert wurde. Hierfür wird das Paket \Package{filemod} verwendet. Die
+automatisierte Übersetzung einer Grafik im SVG"~Format in eine PDF"~Datei und
+die daran anschließende Einbindung dieser in das Dokument ist mit der
+\ToDo[imp]{Bugfix in \Package{svg} oder in tudscr oder eigenes Paket?}[v2.06]
+%\ChangedAt{%
+% v2.06:\TaT\Macro*{includesvg} Bugfix für \Application{Inkscape} Version~0.91;
+% v2.06:\TaT\Macro*{includesvg} in Funktionalität erweitert%
+%}
+Definition von \Macro{includesvg}[\OParameter{Breite}\Parameter{Datei}]
in der Präambel des Dokumentes wie folgt möglich:
-%
-\manualhyperdef{macros:includesvg}%
+%\usepackage{filemod}
+%\usepackage{kvsetkeys}
+%\usepackage{graphicx}
+%\graphicspath{{bla/}{blubb/}}
+%\DeclareUnicodeCharacter{2212}{\ensuremath{-}}
+%\makeatletter
+%\newcommand*{\includesvg}[2][\textwidth]{%
+% \def\svgwidth{#1}%
+% \filemodCmp{#2.pdf}{#2.svg}{}{%
+% \immediate\write18{%
+% inkscape -z -D --file=#2.svg --export-pdf=#2.pdf --export-latex%
+% }%
+% }%
+% \IfFileExists{#2.pdf}{%
+% \begingroup%
+% \pdfximage{#2.pdf}%
+% \let\saved@includegraphics\includegraphics%
+% \let\includegraphics\patch@includegraphics%
+% \InputIfFileExists{#2.pdf_tex}{}{}%
+% \endgroup%
+% }{}%
+%}
+%\newcommand*\saved@includegraphics{}
+%\newcommand*\patch@includegraphics[2][]{%
+% \define@key{svg}{page}{\@tempcnta=##1\relax}%
+% \kv@set@family@handler{svg}{}%
+% \kvsetkeys{svg}{#1}%
+% \ifnum\@tempcnta>\pdflastximagepages\relax\else%
+% \saved@includegraphics[#1]{#2}%
+% \fi%
+%}
+%\makeatother
+%
+\begin{Declaration*}{\Macro{includesvg}}
\begin{quoting}
\begin{Code}[escapechar=§]
\usepackage{filemod}
@@ -710,35 +849,35 @@ in der Präambel des Dokumentes wie folgt möglich:
inkscape -z -D --file=#2.svg --export-pdf=#2.pdf --export-latex
}%
}%
- \input{#2.pdf_tex}%
+ \InputIfFileExists{#2.pdf_tex}{}{}%
}
\end{Code}
\end{quoting}
+\end{Declaration*}
%
-Mit \Macro*{immediate}\Macro*{write18}\Parameter{externer Aufruf} wird das
+Mit \Macro*{immediate}\Macro*{write18}[\Parameter{externer Aufruf}] wird das
zwischenzeitliche Ausführen eines externen Programms beim Durchlauf von
-\hologo{pdfLaTeX}~-- in diesem Fall von \File{inkscape.exe}~-- möglich. Damit
-der externe Aufruf auch tatsächlich durchgeführt wird, ist die Ausführung von
-\hologo{pdfLaTeX} mit der Option \Path{-{}-shell-escape} beziehungsweise bei
-der Verwendung von \Distribution{\hologo{MiKTeX}} mit \Path{-{}-enable-write18}
-zwingend notwendig. Außerdem muss der Pfad zur Datei \File{inkscape.exe} dem
-System bekannt sein.%
+\Engine{pdfLaTeX}~-- in diesem Fall von \File{inkscape.exe}~-- möglich. Damit
+der externe Aufruf 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.
+ Betriebssystems enthalten sein.%
}
Bei der Verwendung des Befehls \Macro{includesvg} \emph{muss} der Dateiname
\emph{ohne Endung} angegeben werden. Die einzubindende SVG"~Datei sollte sich
hierbei im gleichen Pfad wie das Hauptdokument befinden. Ist die SVG"~Datei in
einem Unterordner relativ zum Pfad des Hauptdokumentes, kann dieser einfach mit
-\Macro{includesvg}\PParameter{\PName{Ordner}/\PName{Datei}} im Argument
+\Macro{includesvg}[\PParameter{\PName{Ordner}/\PName{Datei}}] im Argument
angegeben werden.
\section{Fehlermeldung: ! No room for a new \textbackslash write}
-%
-\ChangedAt{v2.02!\TaT: Fehler beim Schreiben von Hilfsdateien}
+\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
@@ -756,28 +895,50 @@ schreibende Pakete, kann es zur der Fehlermeldung
\end{Code}
\end{quoting}
%
-kommen. Abhilfe schafft hier das Paket \Package{scrwfile}(koma-script), welches
-einige Änderungen am \hologo{LaTeX}-Kern 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 in \scrguide zu
+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{Probleme bei der Verwendung von \Package*{auto-pst-pdf}}
-\manualhyperdef'{sec:tips:auto-pst-pdf}
+
+
+\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:
%
-\ChangedAt{v2.02!\TaT: Hinweise zu \Package{auto-pst-pdf}}
+\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{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 \hologo{pdfLaTeX} liest das 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 \textrightarrow{} dvips \textrightarrow{} ps2pdf} eine PDF-Datei,
-welche lediglich alle in den vorhandenen \Environment{pspicture}"=Umgebungen
-erstellten Grafiken enthält.
-Das Paket \Package{ifpdf}
-stellt das Makro \Macro{ifpdf} bereit, mit welchem unterschieden werden kann,
-ob \hologo{pdfLaTeX} als Dokumentprozessor verwendet wird. Abhängig davon
+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.
%
@@ -790,8 +951,8 @@ nachfolgend beschriebenen Probleme zu beheben.
\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. Anschließend wird dieser
-ausgegeben. In Kombination mit \Package{auto-pst-pdf} führt das zu einer
+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
@@ -799,9 +960,10 @@ 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. Verwendet man folgenden Quelltextauszug in der
-Dokumentpräambel, kann man die \Package{floatrow}-Befehle auch in Verbindung
-mit der \Environment{pspicture}"=Umgebung wie gewohnt verwenden.
+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}
@@ -816,11 +978,11 @@ mit der \Environment{pspicture}"=Umgebung wie gewohnt verwenden.
\end{quoting}
\minisec{Die parallele Nutzung von \Package{tikz} und \Package{todonotes}}
-Mit dem Paket \Package{tikz}(pgf)~-- und auch allen anderen Paketen die
+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. Dies lässt sich lösen, indem man
-diese Pakete lediglich in der Präambel einbindet, wenn \hologo{pdfLaTeX} aktiv
-ist.
+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}
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 a375853b65a..26d26c3187c 100644
--- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-index.tex
+++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-index.tex
@@ -1,54 +1,83 @@
-\Index{Optionen}{options}%
-\Index{Befehle}[Befehle etc.]{macros}%
-\Index{Makro}[Befehle etc.]{macros}%
-\Index{Umgebungen}[Befehle etc.]{macros}%
-\Index{Befehle!Parameter}[Parameter]{keys}%
-\Index{Umgebungen!Parameter}[Parameter]{keys}%
-\Index{Parameter}{keys}%
-\Index{Bezeichner}{terms}%
-\Index{Schriftelemente}{fonts}%
-\Index{Farben}{colors}%
-\Index{Klassen}[Dateien etc.]{files}%
-\Index{Pakete}[Dateien etc.]{files}%
-\Index{Dateien}[Dateien etc.]{files}%
-\Changelog{Änderungen}
-\Changelog{Changelog}
-\Changelog{Version}
+\CrossIndex{Optionen}{options}%
+\CrossIndex*{Befehle}{macros}%
+\CrossIndex{Bezeichner}{terms}%
+\CrossIndex{Seitenstile,Schriftelemente,Farben}{elements}%
+\CrossIndex*{Längen}{misc}%
+\CrossIndex{Zähler}{misc}%
+\CrossIndex*{Klassen,Pakete,Dateien}[Index der Dateien etc.]{files}%
+\CrossIndex*{Änderungen,Changelog,Version}[Änderungsliste]{changelog}%
+%
+\SeeRef*{Distribution}{\Distribution{Mac\hologo{TeX}}}
+\SeeRef*{Distribution}{\Distribution{\hologo{TeX}~Live}}
+\SeeRef*{Distribution}{\Distribution{\hologo{MiKTeX}}}
+%
\index{Abbildungen|see{Grafiken}}%
+\index{Abschlussarbeit|see{Typisierung}}%
\index{Aktualisierung|see{Update}}%
\index{Aufzählungen|see{Listen}}%
+\index{Autorenangaben|see{Titel}}%
+\index{Bindekorrektur|see{Satzspiegel}}%
\index{Cover|see{Umschlagseite}}%
-\index{Dezimaltrennzeichen|see{Trennzeichen}}%
-\index{Distribution!\textsbn{Mac\hologo{TeX}}|see{\textsbn{Mac\hologoRobust{TeX}}~{\idxfont(Distribution)}}}
-\index{Distribution!\textsbn{\hologo{TeX}~Live}|see{\textsbn{\hologoRobust{TeX}~Live}~{\idxfont(Distribution)}}}
-\index{Distribution!\textsbn{\hologo{MiKTeX}}|see{\textsbn{\hologoRobust{MiKTeX}}~{\idxfont(Distribution)}}}
+\index{Dezimaltrennzeichen|see{Zifferngruppierung}}%
+\index{doppelseitiger Satz|see{Satzspiegel}}%
+\index{Dresden-concept-Logo@\DDC-Logo|see{Layout}}%
+\index{Drittlogo|see{Layout}}%
\index{Fachreferent|see{Referent}}%
-\index{Grafiken!Beschriftung|see{Gleitobjekte}}
+\index{Farben|see{Layout}}%
+\index{Fußzeile|see{Layout}}%
+\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}}%
+\index{Layout!Seitenränder|see{Satzspiegel}}%
+\index{Layout!Titel|see{Titel}}%
+\index{Layout!Umschlagseite|see{Umschlagseite}}%
+\index{Leerraum|see{Absatzauszeichnung}}%
\index{Leerseiten|see{Vakatseiten}}%
\index{Lokalisierung|see{Bezeichner}}%
\index{Majuskeln|see{Schriftauszeichnung}}%
-\index{Mathematiksatz!Einheiten|see{Einheiten}}
-\index{Mathematiksatz!Trennzeichen|see{Trennzeichen}}
+\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}}%
\index{Professor|see{Hochschullehrer}}%
-\index{Seitenränder|see{Satzspiegel}}
+\index{Querbalken|see{Layout}}%
+\index{Seitenränder|see{Satzspiegel}}%
+\index{Seitenstile|see{Layout}}%
\index{Silbentrennung|see{Worttrennung}}%
-\index{Sprachunterstützung!Lokalisierung|see{Bezeichner}}%
-\index{Sprachunterstützung!Worttrennung|see{Worttrennung}}%
-\index{Sprungmarken|see{Lesezeichen}}
-\index{Tabellen!Beschriftung|see{Gleitobjekte}}
-\index{Tausendertrennzeichen|see{Trennzeichen}}%
+\index{Sprachunterstützung|see{Bezeichner}}%
+\index{Sprachunterstützung|see{Worttrennung}}%
+\index{Sprungmarken|see{Lesezeichen}}%
+\index{Tabellen|see{Gleitobjekte}}%
+\index{Tausendertrennzeichen|see{Zifferngruppierung}}%
+\index{Teileseiten|see{Layout}}%
+\index{Teileüberschriften|see{Layout}}%
\index{Titel!Umschlagseite|see{Umschlagseite}}%
+\index{Überfüllung|see{Beschnittzugabe}}%
+\index{Umgebungen|see{Befehle}}%
\index{Trennmuster|see{Worttrennung}}%
\index{Vektorgrafiken|see{Grafiken}}%
+\index{Versalien|see{Schriftauszeichnung}}%
+\index{zweiseitiger Satz|see{Satzspiegel}}%
+\index{zweispaltiger Satz|see{Satzspiegel}}%
+\index{Zweitlogo|see{Layout}}%
+
+
\setchapterpreamble{%
+ \addparttocentry{}{\indexname}%
\begin{abstract}
- \noindent Die Formatierung der Einträge in allen aufgeführten Indizes ist
+ \noindent Die Formatierung der Einträge in allen aufgeführten Indexen ist
folgendermaßen aufzufassen: \textbf{Zahlen in fetter Schrift} verweisen auf
die \textbf{Erklärung} zu einem Stichwort, wobei in der digitalen Fassung
dieses Handbuchs dieser Eintrag selbst ein Hyperlink zu seiner Erläuterung
@@ -56,22 +85,17 @@
Informationen, wobei diese für \textit{kursiv hervorgehobene Zahlen} als
besonders \textit{wichtig} erachtet werden.
- Bei Einträgen für \hyperref[idx:options]{Klassen- und Paketoptionen}
- beziehungsweise für \hyperref[idx:macros]{Umgebungen und Befehle}, zu denen
- keine direkte \textbf{Erklärung} gegeben ist sondern lediglich zusätzliche
- Hinweise vorhanden sind, handelt es sich um \KOMAScript"=Optionen. Diese
- sind gegebenenfalls im dazugehörigen Handbuch nachzulesen
- (\scrguide*).
+ Bei Einträgen für \hyperref[idx:options]{Klassen- und Paketoptionen},
+ \hyperref[idx:macros]{Umgebungen und Befehlen} sowie
+ \hyperref[idx:elements]{Seitenstilen, Schriftelementen und Farben}
+ respektive \hyperref[idx:misc]{Längen und Zählern}, zu denen keine direkte
+ \textbf{Erklärung} existiert~-- und diese dementsprechend auch nicht als
+ Hyperlink dargestellt sind~-- handelt es sich um zusätzliche Hinweise für
+ Elemente, die nicht durch \TUDScript sondern von anderen Klassen oder
+ Paketen zur Verfügung gestellt werden, welche im Suffix des entsprechenden
+ Eintrages angegeben werden.
\end{abstract}
}
-\addchap*{\indexname}
-\addxcontentsline{toc}{part}{\indexname}
-\PrintIndexPrologue{%
- Die aufgelisteten Schlagworte sollen sowohl Antworten bei generellen Fragen
- als auch Lösungen für typische Probleme beim Umgang mit \hologo{LaTeXe}
- sowie dem \TUDScript-Bundle liefern.
-% Falls ein gesuchter Begriff hier nicht auftaucht, sollte das \Forum erster
-% Anlaufpunkt sein, um Fragen bei der Nutzung von \TUDScript zu beantworten.
-}
+\chapter*{\indexname}
\PrintIndex
\PrintChangelog
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 5f96164e92b..83e4144b7e8 100644
--- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-installation.tex
+++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-installation.tex
@@ -1,5 +1,5 @@
\chapter{Weiterführende Installationshinweise}
-\label{sec:install:ext}
+\tudhyperdef*{sec:install:ext}%
%
\noindent\Attention{%
Im Folgenden werden unterschiedliche Varianten erläutert, wie die jeweils
@@ -12,7 +12,7 @@
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
+ über CTAN eingespielt werden können. In \autoref{sec:install} wird der
Installationsprozess der PostScript"=Schriften beschrieben.
}
@@ -28,18 +28,17 @@ Fehlerkorrektur respektive eine 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 Anwender, welche das Forum relativ wenig oder gar
-nicht besuchen, den großen Nachteil, dass diese nicht von Aktualisierungen,
+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,
Verbesserungen und Fehlerkorrekturen neuer Versionen profitieren können. Auch
-sämtliche nachfolgenden Bugfixes und Aktualisierungen des \TUDScript-Bundles
-müssen durch den Anwender manuell durchgeführt werden. Daher wird in Zukunft
-die Verbreitung via \hrfn{http://www.ctan.org/pkg/tudscr}{CTAN} präferiert, so
-dass \TUDScript stets in der aktuellen Version verfügbar ist~-- eine durch den
-Anwender aktuell gehaltene \hologo{LaTeX}"=Distribution vorausgesetzt. Der
-einzige Nachteil bei diesem Ansatz ist, dass die Verbreitung eines Bugfixes
-über das \hrfn{http://www.ctan.org/}{Comprehensive TeX Archive Network (CTAN)}
-und die anschließende Bereitstellung durch die verwendete Distribution für
-gewöhnlich mehrere Tage dauert.
+alle nachfolgenden Bugfixes und Aktualisierungen des \TUDScript-Bundles müssen
+durch den Anwender manuell durchgeführt werden. Daher wird die Verbreitung via
+\CTAN[pkg/tudscr] präferiert, sodass \TUDScript stets in der gerade aktuellen
+Version verfügbar ist~-- eine durch den Anwender aktuell gehaltene
+\hologo{LaTeX}"=Distribution vorausgesetzt. Der einzige Nachteil bei diesem
+Ansatz ist, dass die Verbreitung eines Bugfixes und die anschließende
+Bereitstellung durch die verwendete Distribution für gewöhnlich bis zu zwei
+Tagen dauert.
Die gängigen \hologo{LaTeX}"=Distributionen durchsuchen im Regelfall zuerst das
lokale \Path{texmf}"=Nutzerverzeichnis nach Klassen und Paketen und erst daran
@@ -49,7 +48,7 @@ liegt. Sobald im Nutzerverzeichnis die gesuchte Datei gefunden wurde, wird die
Suche beendet.
\Attention{%
In der Konsequenz bedeutet dies, dass sämtliche Aktualisierungen über CTAN
- nicht zum Tragen kommen, falls \TUDScript als lokale Nutzerversion
+ nicht zum Tragen kommen, falls \TUDScript als lokale Nutzerversion
installiert wurde.
}
@@ -68,15 +67,15 @@ selbst verantwortlich ist.
\section{Lokale Deinstallation des \TUDScript-Bundles}
-\label{sec:local:uninstall}
-\index{Deinstallation}
+\tudhyperdef*{sec:local:uninstall}%
+\index{Deinstallation}%
%
Um die lokale Nutzerinstallation zu entfernen, kann für Windows
-\hrfn{https://github.com/tud-cd/tudscr/releases/download/uninstall/tudscr\_uninstall.bat}%
-{\File{tudscr\_uninstall.bat}} sowie für unixartige Betriebssysteme
-\hrfn{https://github.com/tud-cd/tudscr/releases/download/uninstall/tudscr\_uninstall.sh}%
-{\File{tudscr\_uninstall.sh}} verwendet werden. Nach der Ausführung des
-jeweiligen Skriptes kann in der Konsole beziehungsweise im Terminal mit
+\hrfn{https://github.com/tud-cd/tudscr/releases/download/uninstall/tudscr\_uninstall.bat}{\File{tudscr\_uninstall.bat}}
+sowie für unixartige Betriebssysteme
+\hrfn{https://github.com/tud-cd/tudscr/releases/download/uninstall/tudscr\_uninstall.sh}{\File{tudscr\_uninstall.sh}}
+verwendet werden. Nach der Ausführung des jeweiligen Skriptes kann in der
+Konsole beziehungsweise im Terminal mit
%
\begin{quoting}
\Path{kpsewhich --all tudscrbase.sty}
@@ -119,22 +118,22 @@ gefundene~-- zum Ordner der Distribution \emph{zusätzliche}~-- Pfad hat die
folgende Struktur:
%
\begin{quoting}
-\Path{\emph{<Installationspfad>}/tex/latex/tudscr/tudscrbase.sty}
+\Path{\PName{Installationspfad}/tex/latex/tudscr/tudscrbase.sty}
\end{quoting}
%
Um die Nutzerinstallation vollständig zu entfernen, muss als erstes zu
-\Path{\emph{<Installationspfad>}} navigiert werden. Anschließend ist in diesem
+\Path{\PName{Installationspfad}} navigiert werden. Anschließend ist in diesem
Pfad Folgendes durchzuführen:
%
\settowidth\tempdim{\Path{tex/latex/tudscr/}}%
\begin{description}[labelwidth=\tempdim,labelsep=1em]
-\item[\Path{tex/latex/tudscr/}]alle .cls- und .sty-Dateien löschen
+\item[\Path{tex/latex/tudscr/}]\File*{.cls}- und \File*{.sty}"~Dateien löschen
\item[\Path{tex/latex/tudscr/}]Ordner \Path{logo} vollständig löschen
\item[\Path{doc/latex/}] Ordner \Path{tudscr} vollständig löschen
\item[\Path{source/latex/}] Ordner \Path{tudscr} vollständig löschen
\end{description}
%
-Das Verzeichnis \Path{\emph{<Installationspfad>}/tex/latex/tudscr/fonts}
+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
@@ -145,8 +144,8 @@ Distribution bereitgestellt wird.
\section{Lokale Installation des \TUDScript-Bundles}
-\label{sec:local:install}
-\index{Installation!Nutzerinstallation}\index{Nutzerinstallation (lokal)}
+\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
@@ -155,15 +154,13 @@ die genau wissen, aus welchen Gründen dies geschehen soll.
\subsection{Lokale Installation von \TUDScript unter Windows}
-\index{Installation!Nutzerinstallation}\index{Nutzerinstallation (lokal)}
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{https://github.com/tud-cd/tudscr/releases/download/\vTUDScript/TUD-KOMA-Script\_\vTUDScript\_Windows\_full.zip}%
-{\File*{TUD-KOMA-Script\_\vTUDScript\_Windows\_full.zip}} benötigt. Vor der
-Verwendung des Skripts \File{tudscr\_\vTUDScript\_install.bat} sollte
-sichergestellt werden, dass sich \emph{alle} der folgenden Dateien im selben
-Verzeichnis befinden:
+\hrfn{https://github.com/tud-cd/tudscr/releases/download/\vTUDScript/TUD-KOMA-Script\_\vTUDScript\_Windows\_full.zip}{\File*{TUD-KOMA-Script\_\vTUDScript\_Windows\_full.zip}}
+benötigt. Vor der Nutzung des Skripts \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]
@@ -171,7 +168,7 @@ Verzeichnis befinden:
\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{tudscrfonts.zip}]Archiv mit Metriken für die
+ \item[\File{tudscr\_fonts\_install.zip}]Archiv mit Metriken für die
Schriftinstallation via \Package{fontinst}
\end{description}
%
@@ -189,15 +186,13 @@ Schriftinstallation sei auf \autoref{sec:install:win} verwiesen.
\subsection{Lokale Installation von \TUDScript unter Linux und OS~X}
-\index{Installation!Nutzerinstallation}\index{Nutzerinstallation (lokal)}
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{https://github.com/tud-cd/tudscr/releases/download/\vTUDScript/TUD-KOMA-Script\_\vTUDScript\_Unix\_full.zip}%
-{\File*{TUD-KOMA-Script\_\vTUDScript\_Unix\_full.zip}} benötigt. Vor der
-Verwendung des Skripts \File{tudscr\_\vTUDScript\_install.sh} sollte
-sichergestellt werden, dass sich \emph{alle} der folgenden Dateien im selben
-Verzeichnis befinden:
+\hrfn{https://github.com/tud-cd/tudscr/releases/download/\vTUDScript/TUD-KOMA-Script\_\vTUDScript\_Unix\_full.zip}{\File*{TUD-KOMA-Script\_\vTUDScript\_Unix\_full.zip}}
+benötigt. Vor der Verwendung des Skripts \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}}%
@@ -206,7 +201,7 @@ Verzeichnis befinden:
(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{tudscrfonts.zip}]Archiv mit Metriken für die
+ \item[\File{tudscr\_fonts\_install.zip}]Archiv mit Metriken für die
Schriftinstallation via \Package{fontinst}
\end{description}
%
@@ -218,18 +213,15 @@ verwiesen.
\section{Lokales Update des \TUDScript-Bundles}
-\label{sec:local:update}
-\index{Update!Nutzerinstallation}\index{Nutzerinstallation (lokal)}
-
-
-
+\tudhyperdef*{sec:local:update}%
+\index{Update|!}%
+%
\subsection{Update des \TUDScript-Bundles ab Version~\NoCaseChange{v}2.02}
Für eine lokale Aktualisierung von \TUDScript auf \vTUDScript{} muss das Archiv
-\hrfn{https://github.com/tud-cd/tudscr/releases/download/\vTUDScript/TUD-KOMA-Script\_\vTUDScript\_Windows\_update.zip}%
-{TUD-KOMA-Script\_\vTUDScript\_Windows\_update.zip} respektive
-\hrfn{https://github.com/tud-cd/tudscr/releases/download/\vTUDScript/TUD-KOMA-Script\_\vTUDScript\_Unix\_update.zip}%
-{TUD-KOMA-Script\_\vTUDScript\_Unix\_update.zip} entpackt und anschließend
-\File{tudscr\_\vTUDScript\_update.bat} oder
+\hrfn{https://github.com/tud-cd/tudscr/releases/download/\vTUDScript/TUD-KOMA-Script\_\vTUDScript\_Windows\_update.zip}{TUD-KOMA-Script\_\vTUDScript\_Windows\_update.zip}
+respektive
+\hrfn{https://github.com/tud-cd/tudscr/releases/download/\vTUDScript/TUD-KOMA-Script\_\vTUDScript\_Unix\_update.zip}{TUD-KOMA-Script\_\vTUDScript\_Unix\_update.zip}
+entpackt und anschließend \File{tudscr\_\vTUDScript\_update.bat} oder
\File{tudscr\_\vTUDScript\_update.sh} ausgeführt werden.
\Attention{%
Die lokale Aktualisierung funktioniert nur, wenn \TUDScript bereits
@@ -244,11 +236,11 @@ 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{https://github.com/tud-cd/tudscr/releases/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.
+\hrfn{https://github.com/tud-cd/tudscr/releases/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.
+\index{Installation!Nutzerinstallation|)}%
\subsection{Update des \TUDScript-Bundles von Version \NoCaseChange{v}1.0}
@@ -259,7 +251,7 @@ empfohlen.
Ist \TUDScript in der veralteten Version~v1.0 installiert, so wird dringend zu
einer Deinstallation geraten. Andernfalls wird es zu Problemen kommen. Dafür
werden die Skripte
-\hrfn{https://github.com/tud-cd/tudscr/releases/download/uninstall/tudscr\_uninstall.bat}{\File{tudscr\_uninstall.bat}}
+\hrfn{https://github.com/tud-cd/tudscr/releases/download/uninstall/tudscr_uninstall.bat}{\File{tudscr\_uninstall.bat}}
respektive
\hrfn{https://github.com/tud-cd/tudscr/releases/download/uninstall/tudscr_uninstall.sh}{\File{tudscr\_uninstall.sh}}
bereitgestellt. Die aktuelle Version~\vTUDScript{} kann nach der Deinstallation
@@ -268,25 +260,24 @@ wie in \autoref{sec:install} beschrieben installiert werden.
Möchten Sie die obsoleten \TUDScript-Klassen in der Version~v1.0 nach einer
Aktualisierung weiterhin nutzen, so müssen diese nach der Deinstallation neu
installiert werden. Dafür steht das Archiv
-\hrfn{https://github.com/tud-cd/tudscrold/releases/download/v1.0/TUD-KOMA-Script_v1.0old.zip}%
-{\File*{TUD-KOMA-Script\_v1.0old.zip}} bereit, welches sowohl die genannten
-Skripte zur Deinstallation als auch die zur neuerlichen Installation der
-veralteten Klassen benötigten \File{tudscr\_v1.0old\_install.bat} oder
-\File{tudscr\_v1.0old\_install.sh} enthält. Nach Abschluss des Vorgangs sind
-die alten Klassen der Version~v1.0 mit \Class{tudscrbookold},
-\Class{tudscrreprtold} und \Class{tudscrartclold} parallel zur aktuellen
-Version~\vTUDScript{} verwendbar.
+\hrfn{https://github.com/tud-cd/tudscrold/releases/download/v1.0/TUD-KOMA-Script_v1.0old.zip}{\File*{TUD-KOMA-Script\_v1.0old.zip}}
+bereit, welches sowohl die genannten Skripte zur Deinstallation als auch die
+zur neuerlichen Installation der veralteten Klassen benötigten
+\File{tudscr\_v1.0old\_install.bat} oder \File{tudscr\_v1.0old\_install.sh}
+enthält. Nach Abschluss des Vorgangs sind die alten Klassen der Version~v1.0
+mit \Class{tudscrbookold}, \Class{tudscrreprtold} und \Class{tudscrartclold}
+parallel zur aktuellen Version~\vTUDScript{} verwendbar.
Im Vergleich zur Version~v1.0 hat sich an der Benutzerschnittstelle nicht sehr
viel verändert. Treten nach dem Umstieg auf die Version~\vTUDScript{} dennoch
-Probleme auf, sollte der Anwender als erstes in die Beschreibung des Paketes
-\Package{tudscrcomp}'full'(tudscr) sehen, welches eine Schnittstelle zur
-Nutzung alter und ursprünglich nicht mehr vorgesehener Befehle sowie Optionen
-bereitstellt. Allerdings werden einige von diesen auch durch das Paket
-\Package{tudscrcomp}(tudscr) 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.
+Probleme auf, sollte der Anwender als erstes die Beschreibung des Paketes
+\Package{tudscrcomp}'full' lesen, welches eine Schnittstelle zur Nutzung alter
+und ursprünglich nicht mehr 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.
\end{Declaration*}
\end{Declaration*}
\end{Declaration*}
@@ -294,21 +285,20 @@ Meldung im \Forum die beste Möglichkeit, um Hilfe zu erhalten.
\section{Installationshinweise für portable Installationen}
-\label{sec:install:portable}
-
+\tudhyperdef*{sec:install:portable}%
+%
Prinzipiell ist die Installation der PostScript-Schriften bei der Nutzung von
\Distribution{\hologo{TeX}~Live~Portable}|?| beziehungsweise
\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. Darüberhinaus ist bei
+Hinweise sollten sorgfältig berücksichtigt werden. Darüber hinaus ist bei
\Distribution{\hologo{MiKTeX}~Portable} darauf zu achten, den Installationspfad
nicht unbedingt auf der obersten Verzeichnisebene des externen Speichermediums
zu wählen.
Zur Installation der Schriften des \CDs wird das Archiv
-\hrfn{https://github.com/tud-cd/tudscr/releases/download/fonts/TUD-KOMA-Script_fonts_Windows.zip}%
-{\File*{TUD-KOMA-Script\_fonts\_Windows.zip}} benötigt. Dieses kann entweder
-auf der lokalen Festplatte oder auf dem externen Speichermedium entpackt
-werden. Danach wird folgendes Vorgehen empfohlen:
+\hrfn{https://github.com/tud-cd/tudscr/releases/download/fonts/TUD-KOMA-Script_fonts_Windows.zip}{\File*{TUD-KOMA-Script\_fonts\_Windows.zip}}
+benötigt. Dieses kann entweder auf der lokalen Festplatte oder auf dem externen
+Speichermedium entpackt werden. Danach wird folgendes Vorgehen empfohlen:
\minisec{\NoCaseChange{\hologo{TeX}}~Live~Portable}
Das folgende Vorgehen wurde mit Windows getestet. Empfehlungen für die portable
@@ -317,8 +307,8 @@ gesendet werden.
\begin{enumerate}
\item Installation von \Distribution{\hologo{TeX}~Live~Portable} in den Pfad
\Path{\PName{Laufwerk}:\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
+\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 ein
Update entweder über die grafische Oberfläche (\emph{Package Manager}) oder
die Kommandozeile (\emph{Command Prompt}) durchführen
@@ -338,7 +328,7 @@ gesendet werden.
\item Installation von \Distribution{\hologo{MiKTeX}~Portable} in den Pfad
\Path{\PName{Laufwerk}:\textbackslash LaTeX\textbackslash MiKTeXportable}
\item Die Datei \File{miktex-portable.cmd} im Installationspfad öffnen
-\item Im Infobereich der Taskleiste mit einem Rechtsklick auf das Symbol von
+\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 Über das Kontextmenü die Kommandozeile starten und über diese das
@@ -352,10 +342,10 @@ gesendet werden.
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-Dokumentklassen
- werden die Pakete \Package{tudscr}, \Package{koma-script},
- \Package{etoolbox}, \Package{textcase}, \Package{environ},
- \Package{trimspaces}, \Package{xcolor}, \Package{mptopdf}() durch
+\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.
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 edfc805f953..a8dffc2b95c 100644
--- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-introduction.tex
+++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-introduction.tex
@@ -1,5 +1,5 @@
\chapter{Einleitung}
-\index{Distribution}
+%
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
@@ -7,10 +7,11 @@ müssen weitere Pakete durch die genutzte \hologo{LaTeX}"=Distribution
bereitgestellt werden.
Bei den aktuellen Distributionen
-\Distribution{\hologo{TeX}~Live}[2015]|?|,
-\Distribution{Mac\hologo{TeX}}[2015]|?| und
+\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 ältere
+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
@@ -22,7 +23,7 @@ Allerdings beinhaltet dieses weitere Klassen zum Erstellen von Folien
und Briefen.%
\footnote{%
\Class{tudbook}, \Class{tudbeamer}, \Class{tudletter}, \Class{tudfax},
- \Class{tudhaus}, \Class{tudform}
+ \Class{tudhaus}, \Class{tudform}%
}
Das \TUDScript"=Bundle ist hauptsächlich für das Erstellen wissenschaftlicher
Texte und Arbeiten gedacht und soll die ursprünglichen Vorlagen \emph{momentan}
@@ -32,99 +33,104 @@ 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. Dieses
-Bundle ist sowohl bei \hrfn{https://github.com/tud-cd/tud-cd}{GitHub} als
-auch auf der \hrfn{http://tu-dresden.de/service/publizieren/cd/4_latex}
-{\hologo{LaTeX}-Seite der \TnUD} zu finden.
+\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.
\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 Indizes, die das
+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
als Schlüssel"=Wert"=Paare bei der Wahl der Dokumentklasse angegeben werden:
-\Macro*{documentclass}\POParameter{\PName{Schlüssel}\PValue{=}\PName{Wert}}%
-\Parameter{Klasse}.
+\Macro*{documentclass}[%
+ \POParameter{\PName{Schlüssel}\PValue{=}\PName{Wert}}\Parameter{Klasse}%
+]
Des Weiteren eröffnen die \KOMAScript"=Klassen die Möglichkeit der späten
Optionenwahl. Damit können Optionen nicht nur direkt beim Laden als sogenannte
Klassenoptionen angegeben werden, sondern lassen sich auch noch innerhalb des
Dokumentes nach dem Laden der Klasse ändern. Die \KOMAScript"=Klassen sehen
-hierfür zwei Befehle vor. Mit \Macro{KOMAoptions}\Parameter{Optionenliste}
-kann man beliebig vielen Schlüsseln jeweils genau einen Wert zuweisen,
-\Macro{KOMAoption}\Parameter{Option}\Parameter{Werteliste} erlaubt das
-gleichzeitige Setzen mehrere Werte für genau einen Schlüssel. Äquivalent
-dazu werden für die \emph{zusätzlichen} Optionen der \TUDScript-Klassen mit
-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.
-
-Die Voreinstellung einer jeden Option wird durch \PValue{preset:\,}\PName{Wert}
-bei deren Beschreibung angeführt. Einige dieser Standardwerte sind nicht immer
-gleich sondern werden in Abhängigkeit der genutzten Benutzereinstellungen und
-Optionen gesetzt. Diese bedingten Voreinstellungen werden durch
-\PValue{preset:\,}\PName{Wert}\PValue{\,|\,}\PName{Bedingung}\PValue{:\,}%
-\PName{bedingter~Wert} angegeben. Jedem Schlüssel wird normalerweise durch den
-Benutzer ein gewünschter, gültiger Wert zugewiesen. Wird ein Schlüssel jedoch
-ohne Wertzuweisung genutzt, so wird~-- falls vorhanden~-- ein vordefinierter
-Säumniswert gesetzt, welcher in der Beschreibung der einzelnen Optionen durch
-die \PValue{\emph{kursive}} Schreibweise 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.
+hierfür zwei Befehle vor. Mit
+\Macro{KOMAoptions}[\Parameter{Optionenliste}](\Package{koma-script})'none'
+lassen sich beliebig viele Schlüsseln jeweils genau einen Wert zuweisen,
+\Macro{KOMAoption}[%
+ \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}]
+und \Macro{TUDoption}[\Parameter{Option}\Parameter{Werteliste}] definiert.
+Damit kann das Verhalten von Optionen im Dokument~-- innerhalb einer Gruppe
+auch lokal~-- geändert werden.
+
+Die Voreinstellung jeder Option wird mit \enquote{Standardwert:\,\PName{Wert}}
+bei deren Beschreibung angeführt. Einige dieser Voreinstellungen sind nicht
+immer gleich sondern werden in Abhängigkeit der genutzten Benutzereinstellungen
+und Optionen gesetzt. Diese bedingten Voreinstellungen werden durch
+\enquote{%
+ Standardwert:\,\PName{Wert}%
+ \PValue{\,|\,}Bedingung:\,\PName{bedingter~Wert}%
+}
+angegeben. Wird ein Schlüssel durch den Benutzer \emph{ohne} eine Wertzuweisung
+genutzt, so wird~-- falls vorhanden~-- ein vordefinierter Säumniswert gesetzt,
+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}
-\label{sec:install}%
-\index{Installation}\index{Update}%
+\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 robuster und verbessert und für die portablen
- Distributionen \Distribution*{\hologo{TeX}~Live~Portable} sowie
- \Distribution*{\hologo{MiKTeX}~Portable} erweitert
+ 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
-\foreignlanguage{english}{%
- \hrfn{http://www.ctan.org/}{Comprehensive TeX Archive Network (CTAN)}
-} zu finden und kann dadurch die aktuellen \hologo{LaTeX}"=Distributionen wie
-\Distribution{\hologo{TeX}~Live}[2015]|?|,
-\Distribution{Mac\hologo{TeX}}[2015]|?| oder auch
+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{} in
-der Version~\vKOMAScript und den in \autoref{sec:packages:needed} aufgeführten
-\hologo{LaTeX}-Paketen~-- lediglich eine Installation der PostScript"=Schriften
-des \CDs der \TnUD notwendig. Diese müssen über das Universitätsmarketing auf
-\hrfn{http://tu-dresden.de/service/publizieren/cd/1_basiselemente/03_hausschrift/schriftbestellung.html}%
-{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}
+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 \hologo{LuaLaTeX} oder \hologo{XeLaTeX} wird
+ Paket \Package{fontspec} für \Engine{LuaLaTeX} oder \Engine{XeLaTeX} wird
mittlerweile unterstützt, mehr dazu in \autoref{sec:fonts:fontspec}.%
}
@@ -168,17 +174,17 @@ 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.
-Es kann vorkommen, dass die für den Schriftinstallationsprozess notwendigen
+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 sind. 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.
+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
+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
@@ -193,32 +199,31 @@ 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 aller Voraussicht nach manuell durch den
-Benutzer über den \Distribution{\hologo{TeX}~Live}-Paketmanager hinzugefügt
-werden.
-
-Sollte das Installationsskript fehlerfrei durchlaufen, die Schriften dennoch
-nicht verfügbar sein, so kann man mit \Path{updmap-sys -{}-syncwithtrees}
-die Synchronisierung aller Schriftdateien anstoßen. Anschließend sollte man
-\Path{updmap-sys -{}-enable Map=tudscr.map} und \Path{updmap-sys -{}-force}
-aufrufen. Sind die Schriften danach immer noch nicht verfügbar, so wurden auf
-dem System bestimmt schon andere Schriften lokal installiert. In diesem Fall
+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 den Befehl \Path{updmap-sys} allerdings von nun an
-wirkungslos. Erfolgt danach eine systemweite 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.
+\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}()
+ \Package*{fontware} aus \Package*{collection-fontutils}<>
bereitgestellt werden und zwingend installiert sein müssen.
}
@@ -236,30 +241,29 @@ 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}
-repsektive \Distribution{\hologo{MiKTeX}~Portable} sind zusätzliche
+respektive \Distribution{\hologo{MiKTeX}~Portable} sind zusätzliche
Installationshinweise in \autoref{sec:install:portable} zu finden.
\subsection{Installation der PostScript-Schriften unter Windows}
-\label{sec:install:win}
-\index{Installation!Schriften}
+\tudhyperdef*{sec:install:win}%
%
Zur Installation der Schriften des \CDs für das \TUDScript-Bundle ist das Archiv
-\hrfn{https://github.com/tud-cd/tudscr/releases/download/fonts/TUD-KOMA-Script_fonts_Windows.zip}%
-{\File*{TUD-KOMA-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 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{tudscrfonts\_install.bat} sollte sichergestellt werden, dass sich
-\emph{alle} der folgenden Dateien im selben Verzeichnis befinden:
+\hrfn{https://github.com/tud-cd/tudscr/releases/download/fonts/TUD-KOMA-Script_fonts_Windows.zip}{\File*{TUD-KOMA-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{tudscrfonts\_install.bat} sollte sichergestellt
+werden, dass sich \emph{alle} der folgenden Dateien im selben Verzeichnis
+befinden:
%
\settowidth\tempdim{\File{tudscrfonts\_install.bat}}%
\begin{description}[labelwidth=\tempdim,labelsep=1em]
\item[\File{tudscrfonts\_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{tudscrfonts.zip}]Archiv mit Metriken für die
+ \item[\File{tudscr\_fonts\_install.zip}]Archiv mit Metriken für die
Schriftinstallation via \Package{fontinst}
\end{description}
%
@@ -271,20 +275,20 @@ der \emph{für alle Nutzer} gültig und lesbar ist.
\subsection{Installation der PostScript-Schriften unter Linux und OS~X}
-\label{sec:install:unix}
-\index{Installation!Schriften}
+\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{https://github.com/tud-cd/tudscr/releases/download/fonts/TUD-KOMA-Script_fonts_Unix.zip}%
-{\File*{TUD-KOMA-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 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{tudscrfonts\_install.sh} sollte sichergestellt werden, dass sich
-\emph{alle} der folgenden Dateien im selben Verzeichnis befinden:
+\hrfn{https://github.com/tud-cd/tudscr/releases/download/fonts/TUD-KOMA-Script_fonts_Unix.zip}{\File*{TUD-KOMA-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{tudscrfonts\_install.sh} sollte sichergestellt
+werden, dass sich \emph{alle} der folgenden Dateien im selben Verzeichnis
+befinden:
%
\settowidth\tempdim{\File{tudscrfonts\_install.sh}}%
\begin{description}[labelwidth=\tempdim,labelsep=1em]
@@ -292,7 +296,7 @@ Verzeichnis kopiert werden. Vor der Verwendung des Skripts
(Terminal: \Path{bash tudscrfonts\_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{tudscrfonts.zip}]Archiv mit Metriken für die
+ \item[\File{tudscr\_fonts\_install.zip}]Archiv mit Metriken für die
Schriftinstallation via \Package{fontinst}
\end{description}
%
@@ -307,7 +311,18 @@ erfolgt die Installation \emph{für alle Nutzer} in den lokalen Systempfad
-\subsection{Probleme bei der Installation der PostScript-Schriften}
+\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 sollte eine
Logdatei erstellt werden. Unter Windows muss das Skript, welches Probleme
verursacht, aus der Kommandozeile mit
@@ -316,7 +331,7 @@ doppelte Betätigen der Eingabetaste nötig ist. Für unixartige Systeme
ist der Aufruf \Path{bash \PName{Skript}.sh > \PName{Skript}.log} aus dem
Terminal heraus zu verwenden. Die erstellte Logdatei kann mit einer kurzen
Fehlerbeschreibung direkt an \Email{\tudscrmail} gesendet werden.
-
+\index{Installation|!)}%
\section{Schnelleinstieg}
@@ -326,12 +341,12 @@ Umgebungen und Befehle, die über die Funktionalität von \KOMAScript{}
hinausgehen, erläutert. \autoref{part:additional} enthält zum einen einfache
Minimalbeispiele, um den prinzipiellen Umgang und die Funktionalitäten von
\TUDScript zu demonstrieren. Zum anderen werden hier auch ausführliche und
-dokumentierte Tutorials vor allem für \hologo{LaTeX}-Neulinge angeboten.
+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
+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.
@@ -340,6 +355,6 @@ 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 \CD der \TnUD überführt werden. Bei
-Fragestellungen bezüglich Layout, Schriften oder ähnlichem ist in jedem Fall
-ein weiterer Blick in das hier vorliegende Handbuch empfehlenswert.
+der Dokumentklasse einfach in das \TUDCD überführt werden. Bei Fragestellungen
+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 eb3ef15258c..68d2dcd05ab 100644
--- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-mainclasses.tex
+++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-mainclasses.tex
@@ -1,14 +1,18 @@
-\chapter[Die Klassen tudscrbook, tudscrreprt und tudscrartcl]{Die Hauptklassen}
-\label{sec:mainclasses}
+\chapter[%
+ Die Hauptklassen \Class*{tudscrbook}, \Class*{tudscrreprt} und
+ \Class*{tudscrartcl}%
+]{Die Hauptklassen}
+\tudhyperdef*{sec:mainclasses}%
+\index{Hauptklassen|!}%
+%
\ChangedAt*{%
- v2.00!Robustheit vieler Befehle und Optionen erhöht,%
- v2.02!Umbenennung einiger Befehle für Kompatibilität mit anderen Paketen,%
- v2.03!Anpassungen interner Befehle an \KOMAScript-Version~v3.15%
+ v2.02:Umbenennung einiger Befehle für Kompatibilität mit anderen Paketen;%
+ v2.03:Anpassungen interner Befehle an \KOMAScript-Version~v3.15%
}
+%
\begin{Declaration*}{\Class{tudscrbook}}
\begin{Declaration*}{\Class{tudscrreprt}}
\begin{Declaration*}{\Class{tudscrartcl}}
-\index{Hauptklassen|!}
Es werden die drei neuen Hauptklassen
%
\begin{description}
@@ -17,40 +21,46 @@ Es werden die drei neuen Hauptklassen
\item \Class{tudscrartcl}
\end{description}
%
-eingeführt, welche auf den \KOMAScript-Klassen basieren und grundsätzlich alle
-deren Optionen, Umgebungen und Befehle~-- beispielsweise \Option{parskip} für
-die Absatzeinstellungen oder \Option{BCOR} zur Festlegung der Bindekorrektur~--
-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.
-
-Es sei hier abermals auf die Anwenderdokumentation \scrguide von \KOMAScript{}
+eingeführt, welche auf den \KOMAScript-Klassen basieren und grundsätzlich alle
+deren 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.
+
+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.
-\end{Declaration*}
-\end{Declaration*}
-\end{Declaration*}
-\begin{Declaration}{\Macro{TUDoptions}\Parameter{Optionenliste}}
-\begin{Declaration}{\Macro{TUDoption}\Parameter{Option}\Parameter{Werteliste}}
+\begin{Declaration}{\Macro{TUDoptions}[\Parameter{Optionenliste}]}
+\begin{Declaration}{\Macro{TUDoption}[\Parameter{Option}\Parameter{Werteliste}]}
\printdeclarationlist%
\index{Optionen|!}%
%
-Mit diesen Befehlen hat man bei den meisten der neuen Klassenoptionen die
-Möglichkeit, den Wert der Optionen noch nach dem Laden der Klasse zu ändern.
-Man kann wahlweise mit der Anweisung \Macro{TUDoptions} die Werte einer Reihe
-von Optionen ändern. Jede Option der Optionenliste hat dabei die Form
-\PName{Option}\PValue{=}\PName{Wert}. Die meisten Optionen besitzen auch einen
-Säumniswert\footnote{engl.: default value}. Versäumt man die Angabe eines
-Wertes~-- verwendet demzufolge einfach die Form \PName{Option}~-- so wird
-automatisch dieser Säumniswert angenommen.
-
-Manche Optionen können gleichzeitig mehrere Werte besitzen. Für diese besteht
-die Möglichkeit, mit \Macro{TUDoption} der einen Option nacheinander eine
-Reihe von Werten zuzuweisen. Die einzelnen Werte sind dabei in der Werteliste
-durch Komma voneinander getrennt.
+Mit diesen beiden Befehlen besteht für die meisten der neuen Klassen- respektive
+Paketoptionen die Möglichkeit, den Wert der Optionen noch nach dem Laden der
+Klasse beziehungsweise des Paketes zu ändern. Sie sind das Äquivalent zu den
+beiden \KOMAScript-Befehlen \Macro{KOMAoptions}(\Package{koma-script})'none'
+beziehungsweise \Macro{KOMAoption}(\Package{koma-script})'none'.
+
+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.
+
+Manche 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
@@ -62,20 +72,34 @@ innerhalb dieser lokal begrenzt.
\section{Die Schriften des \CDs}
-\label{sec:fonts}
-\index{Schrift|?(}
+\tudhyperdef*{sec:fonts}%
+\index{Schriftart|?(}%
%
\ChangedAt*{%
- v2.00!Schriften~-- insbesondere für den mathematischen Satz~-- verbessert,%
- v2.01!Unterschneidung (Kerning) der Ziffern für \Univers verbessert%
+ v2.00:Schriften~-- insbesondere für den mathematischen Satz~-- verbessert;%
+ v2.01:Unterschneidung (Kerning) der Ziffern für \Univers verbessert%
}
-Das \CD der \TnUD gibt die Verwendung der Schriften \Univers für den Fließtext
+%
+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
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.
+\hologo{LaTeX}"=Standardschriften beziehungsweise ein anderes Schriftpaket zu
+verwenden. Die Erläuterungen dazu sind in \autoref{sec:text} zu finden. Zur
+Verwendung der Schriften mit \hologo{LaTeXe}"=Klassen, welche nicht zum
+\TUDScript-Bundle gehören, lässt sich das Paket \Package{tudscrfonts} laden.
+
+\ChangedAt{%
+ 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
@@ -87,7 +111,7 @@ werden.%
\Package{iwona} für die Schrift \DIN und zusätzlich \Package{cmbright} für
die \Univers"=Schriftfamilie%
}
-Diese Grundeinstellung lässt sich ebenfalls deaktivieren, wodurch die
+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:exmpl:mathtype} sowie
@@ -95,21 +119,74 @@ werden in \autoref{sec:math} erläutert. In \autoref{sec:exmpl:mathtype} sowie
Mathematiksatz 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}%
+\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
+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.
+\index{Schriftart|?)}%
+
+
+
\subsection{Schriften für den Textsatz}
+\tudhyperdef*{sec:text}%
+\index{Schriftstärke}%
+%
\begin{Declaration}[%
- v2.02!Werte für Option \Option{cdhead} ergänzt%
-]{\Option{cdfont}[\PSet]}[true]%
+ v2.02!\Option{cdfont=head};
+ v2.02!\Option{cdfont=heavyhead};
+ v2.03!\Option{cdfont=din};
+ v2.03!\Option{cdfont=nodin};
+ v2.05!\Option{cdfont=normalbold};
+ v2.05!\Option{cdfont=ultrabold};
+]{\Option{cdfont=\PSet}}[true,normalbold,din]%
\printdeclarationlist%
-\label{sec:text}%
-\index{Schrift!Fließtext}\index{Schriftstärke}%
%
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.
+Querbalken der Kopfzeile lässt sich hiermit ebenfalls einstellen.
%
-\begin{values}
+\begin{values}{\Option{cdfont}}
\itemfalse
Es werden die \hologo{LaTeX}"=Standardschriften und nicht die Hausschriften
des \CDs verwendet. Der Anwender kann beliebige Schriftpakete nutzen.%
@@ -117,194 +194,195 @@ Querbalken der Kopfzeile lässt sich hiermit ebenfalls einstellen.
Für die Verwendung der klassischen \hologo{LaTeX}"=Schriften, ist das Paket
\Package{lmodern} sehr empfehlenswert.%
}
- Sollte das Layout des \CDs aktiviert sein (\see*{\Option{cd}}), werden die
+ 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 der \TnUD genutzt. Überschriften
- der obersten Gliederungsebenen bis einschließlich \Macro{subsubsection}
+ Es werden die Hausschriften im Stil des \CDs genutzt. Überschriften der
+ obersten Gliederungsebenen bis einschließlich \Macro*{subsubsection}
verwenden \DIN, darunter liegende%
- \footnote{\Macro{paragraph} und \Macro{subparagraph}}
+ \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 \Package{lmodern} wird die
- \texttt{Schreibmaschinenschrift} verwendet.
+ \textuln{Univers~45~Light} zum Einsatz. Aus dem Paket \Package{lmodern} wird
+ die \texttt{Schreibmaschinenschrift} verwendet.
\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,
+ \Option{cdfont=true}. Die Mathematikschriften werden nicht beeinflusst,
diese lassen sich gegebenenfalls mit \Macro{boldmath} auf den fetten Schnitt
umschalten.
+\end{values}
+%
+Falls die Hausschriften des \TUDCDs verwendet werden, lässt sich die Stärke der
+fetten Schriften mit folgenden Einstellungen anpassen.
+%
+\begin{values}{\Option{cdfont}}
+\item[normalbold]
+ \ChangedAt{v2.05}
+ Für den fetten Schriftschnitt wird \texturn{Univers~55~Regular} respektive
+ bei stärkeren Schriften (\Option{cdfont=heavy}) \textubn{Univers~65~Bold}
+ verwendet. Dies ist die Voreinstellung.
+\item[ultrabold/heavybold]
+ \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.
+\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{cdfont}}
\item[nodin]
- Für die Überschriften wird \DIN nicht verwendet. Für \Option{cdfont}[true]
- wird \Univers genutzt. Die Schriftstärke ist dabei abhängig von der
- Einstellung \Option{cdfont}[light/heavy]. Ist die Verwendung der Schriften
- des \CDs deaktiviert (\Option{cdfont}[false]), kommt die fette Schriftstärke
- der eingestellten serifenlosen Schriftfamilie zum Einsatz.
+ 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.
\end{values}
%
+Weiterhin 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.
+
\ChangedAt{v2.02}
-Für den Text im Querbalken gibt es folgende Einstellmöglichkeiten:
+Für die \TUDScript-Klassen gibt es bei den \PageStyle{tudheadings}-Seitenstilen
+folgende Einstellmöglichkeiten für die Schriftart im Querbalken:
%
-\begin{values}
+\begin{values}{\Option{cdfont}}
+\item[nohead/noheadfont]
+ Bei deaktivierten Hausschriften 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 die Schrift \Univers in normaler Schriftstärke verwendet,
- \see*{\Option{cdhead}[true]}.
+ 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}}.
\item[heavyhead/heavyfonthead]
- Die im Querbalken verwendete Schrift ist \Univers in erhöhter Stärke,
- \see*{\Option{cdhead}[heavy]}.
+ Im Querbalken wird~-- unabhängig von der Dokumentschrift~-- \Univers in
+ erhöhter Stärke genutzt, \seeref{\Option{cdhead=heavy}}.
\end{values}
%
-Die verwendeten Mathematikschriften lassen sich mit folgenden Werte
-beeinflussen:
+Die genutzten Mathematikschriften können mit folgenden Werte beeinflusst werden:
%
-\begin{values}
-\item[nomath/nocdmath]
+\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, \see*{\Option{cdmath}[false]}.
+ Mathematikmodus nutzen, \seeref{\Option{cdmath=false}}.
\item[math/cdmath]
- Es werden serifenlose Mathematikschriften für lateinische und griechische
- Lettern genutzt, \see*{\Option{cdmath}[true]}.
+ Serifenlose Mathematikschriften, \seeref{\Option{cdmath=true}}.
\item[upgreek/uprightgreek]
- Die großen griechischen Buchstaben werden im Mathematikmodus aufrecht gesetzt,
- \see*{\Option{slantedgreek}[false]}.
+ Griechische Großbuchstaben werden aufrecht gesetzt,
+ \seeref{\Option{slantedgreek=false}}.
\item[slgreek/slantedgreek]
- In mathematischen Umgebungen erfolgt die Ausgabe der griechischen Majuskeln
- kursiv, \see*{\Option{slantedgreek}[true]}.
+ Die Ausgabe der griechischen Majuskeln erfolgt kursiv,
+ \seeref{\Option{slantedgreek=true}}.
\end{values}
-%
-\ChangedAt{v2.02,v2.04!Einfachere Verwendung von \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 \hologo{LuaLaTeX} oder \hologo{XeLaTeX} als Dokumentprozessor
-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.
\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{Überschriften}\index{Schrift!Überschriften}\index{Schriftauszeichnung}%
-\index{Kolumnentitel}\index{Layout!Kolumnentitel}
+\subsubsection{Auszeichnungen im Text}
+\index{Schriftstärke}%
+\index{Schriftauszeichnung}%
%
-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.
-\end{Declaration}
-
-\begin{Declaration}{\Macro{MakeTextUppercase}\Parameter{Text}}%
-\begin{Declaration}{\Macro{NoCaseChange}\Parameter{Text}}%
-\printdeclarationlist%
-\index{Überschriften}\index{Schrift!Überschriften}\index{Schriftauszeichnung}%
+Unabhängig davon, welche Schriftfamilie im Dokument verwendet wird, können die
+Schriften des \CDs jederzeit mit einem der hier aufgeführten Textschalter oder
+Textkommandos innerhalb des Dokumentes genutzt werden. Ein Textschalter wirkt
+sich~-- wenn er nicht lokal durch eine Gruppe oder Umgebung begrenzt wird~--
+global auf das Dokument aus, wie etwa beispielsweise \Macro*{bfseries}. Bei
+einem Textkommando hingegen kommt die Schriftart nur für das nachfolgend
+angegebene Argument zum Einsatz, wie bei \Macro*{textbf}[\Parameter{Text}].
%
-Der Befehl \Macro{MakeTextUppercase} stammt aus dem Paket \Package{textcase}
-und setzt den Text seines Argumentes in Majuskeln. Die Überschriften der
-Gliederungsebenen bis einschließlich \Macro{subsubsection} werden damit in
-Großbuchstaben der Schrift \DIN gesetzt, wenn das Layout des \CDs nicht
-deaktiviert wurde (\Option{cd}[false]). Sollen in einer Überschrift bestimmte
-Kleinbuchstaben erhalten bleiben, ist der Befehl \Macro{NoCaseChange} zu
-nutzen, welcher ebenfalls von besagtem Paket bereitgestellt wird.
+\begin{Declaration}[v2.04]{\Macro{cdfont}[\Parameter{Schriftart}]}
+\begin{Declaration}[v2.04]{%
+ \Macro{textcdfont}[\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
+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 Schriftschnitte möglich. Zur
+Auswahl von \DIN ist \PValue{din} als Argument hinreichend.
\end{Declaration}
\end{Declaration}
-%
-\begin{Example}
-In einer Kapitelüberschrift wird ein einzelnes Wort in Kleinbuchstaben
-geschrieben:
-\begin{Code}[escapechar=§]
-\chapter{§Ü§berschrift mit \NoCaseChange{kleinem} Wort}
-\end{Code}
-\end{Example}
-\subsubsection{Auszeichnungen im Text}
-\index{Schrift!Fließtext}\index{Schriftstärke}%
-\index{Schrift!Befehle}\index{Schrift!Schalter}%
-%
-Unabhängig davon, welche Schriftfamilie verwendet wird, können die Schriften
-des \CDs jederzeit entweder mit einem der hier aufgeführten Textschalter oder
-Textkommandos innerhalb des Dokumentes genutzt werden. Ein Textschalter wirkt
-sich~-- wenn er nicht in einer Gruppe oder einer Umgebung verwendet und damit
-lokal begrenzt wird~-- global auf das Dokument aus, wie etwa beispielsweise
-\Macro*{bfseries}. Bei einem Textkommando hingegen erfolgt die Änderung der
-Schriftart nur für das nachfolgend angegebene Argument, wie zum Beispiel bei
-\Macro*{textbf}\Parameter{Text}. Darauf ist bei der Nutzung zu achten.
-%
\begin{Declaration}{\Macro{univln}}
-\begin{Declaration}{\Macro{textuln}\Parameter{Text}}
+\begin{Declaration}{\Macro{textuln}[\Parameter{Text}]}
\begin{Declaration}{\Macro{univrn}}
-\begin{Declaration}{\Macro{texturn}\Parameter{Text}}
+\begin{Declaration}{\Macro{texturn}[\Parameter{Text}]}
\begin{Declaration}{\Macro{univbn}}
-\begin{Declaration}{\Macro{textubn}\Parameter{Text}}
+\begin{Declaration}{\Macro{textubn}[\Parameter{Text}]}
\begin{Declaration}{\Macro{univxn}}
-\begin{Declaration}{\Macro{textuxn}\Parameter{Text}}
+\begin{Declaration}{\Macro{textuxn}[\Parameter{Text}]}
\begin{Declaration}{\Macro{univls}}
-\begin{Declaration}{\Macro{textuls}\Parameter{Text}}
+\begin{Declaration}{\Macro{textuls}[\Parameter{Text}]}
\begin{Declaration}{\Macro{univrs}}
-\begin{Declaration}{\Macro{texturs}\Parameter{Text}}
+\begin{Declaration}{\Macro{texturs}[\Parameter{Text}]}
\begin{Declaration}{\Macro{univbs}}
-\begin{Declaration}{\Macro{textubs}\Parameter{Text}}
+\begin{Declaration}{\Macro{textubs}[\Parameter{Text}]}
\begin{Declaration}{\Macro{univxs}}
-\begin{Declaration}{\Macro{textuxs}\Parameter{Text}}
+\begin{Declaration}{\Macro{textuxs}[\Parameter{Text}]}
\begin{Declaration}{\Macro{dinbn}}
-\begin{Declaration}{\Macro{textdbn}\Parameter{Text}}
-\settowidth\tempdim{\Macro{textuln}\Parameter{Text}}%
+\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
+ }%
\centering%
\begin{tabularm}{3}%
\toprule%
- \textbf{Schriftart} & \textbf{Schalter}
- & \textbf{Textkommando}\tabularnewline
+ \textbf{Schriftart} & \textbf{Schalter} & \textbf{Textkommando}
+ \tabularnewline
\midrule
- \textuln{Univers 45 Light} & \Macro{univln}{}
- & \Macro{textuln}\Parameter{Text}\tabularnewline
- \texturn{Univers 55 Regular} & \Macro{univrn}{}
- & \Macro{texturn}\Parameter{Text}\tabularnewline
- \textubn{Univers 65 Bold} & \Macro{univbn}{}
- & \Macro{textubn}\Parameter{Text}\tabularnewline
- \textuxn{Univers 75 Black} & \Macro{univxn}{}
- & \Macro{textuxn}\Parameter{Text}\tabularnewline
- \textuls{Univers 45 Light Oblique} & \Macro{univls}{}
- & \Macro{textuls}\Parameter{Text}\tabularnewline
- \texturs{Univers 55 Regular Oblique} & \Macro{univrs}{}
- & \Macro{texturs}\Parameter{Text}\tabularnewline
- \textubs{Univers 65 Bold Oblique} & \Macro{univbs}{}
- & \Macro{textubs}\Parameter{Text}\tabularnewline
- \textuxs{Univers 75 Black Oblique} & \Macro{univxs}{}
- & \Macro{textuxs}\Parameter{Text}\tabularnewline
- \DIN & \Macro{dinbn}{}
- & \Macro{textdbn}\Parameter{Text}\tabularnewline
+ \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}
\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}}
- geschehen. Sollen dabei im Argument einzelne Teile zwingend klein
- geschrieben werden, wird der Befehl \Macro{NoCaseChange} benötigt.
+ 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
+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.
@@ -327,50 +405,76 @@ bereitstellen.
\end{Declaration}
\end{Declaration}
-\begin{Declaration}[v2.04]{\Macro{cdfont}\Parameter{Schriftart}}
-\begin{Declaration}[v2.04]{%
- \Macro{textcdfont}\Parameter{Schriftart}\Parameter{Text}%
-}
-\printdeclarationlist
-Diese beiden Befehle dienen ebenfalls zu gezielten Aktivierung einer Schriftart
-des \CDs in Stärke und Schnitt. Hierbei entspricht \Macro{cdfont} einem
-Textschalter und ändert die aktuell verwendete Schriftart 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 dabei die Dokumentschriftart selbst zu ändern.
-
-Für die Schriftauswahl muss im ersten Argument der Name der zu verwendenden
-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 Schriftschnitte möglich. Zur
-Auswahl von \DIN ist \PValue{din} als Argument hinreichend.
+\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}%
+%
+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.
\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}
-\begin{Declaration}[v2.03]{\Option{cdmath}[\PBoolean]}%
- [true][\Option{cdfont}[false]:false]
+\tudhyperdef*{sec:math}%
+\index{Mathematiksatz|?(}%
+\index{Griechische Buchstaben|(}%
+%
+\begin{Declaration}[v2.03]{\Option{cdmath=\PBoolean}}%
+ [true][\Option{cdfont=false}:false]
\printdeclarationlist%
-\label{sec:math}
-\index{Schrift!Mathematiksatz}\index{Mathematiksatz|!}
-\index{Schrift!Griechische Buchstaben}\index{Griechische Buchstaben}
%
Diese Option dient zur Anpassung der Mathematikschriften. Wird diese aktiviert,
-so werden zu den Hausschriften passende im Mathematikmodus genutzt, mit
-\Option{cdmath}[false] wird auf die Standardschriften zurückgeschaltet. Ein
+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/false]}
-möglich. Mit \Macro{boldmath} kann auf fette Mathematikschriften umgeschaltet
-werden. Gültige Werte für die Option \Option{cdmath} sind:
+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:
%
-\begin{values}
+\begin{values}{\Option{cdmath}}
\itemfalse
Es werden die normalen \hologo{LaTeX}"=Serifenschriften beziehungsweise die
Schriften beliebig nutzbarer Pakete für den Mathematiksatz verwendet.
@@ -380,17 +484,16 @@ werden. Gültige Werte für die Option \Option{cdmath} sind:
\Package{iwona} zum Einsatz.
\item[upgreek/uprightgreek]
Die griechischen Majuskeln werden aufrecht gesetzt,
- \see*{\Option{slantedgreek}[false]}.
+ \seeref{\Option{slantedgreek=false}}.
\item[slgreek/slantedgreek]
Die Ausgabe der griechischen Großbuchstaben erfolgt kursiv,
- \see*{\Option{slantedgreek}[true]}.
+ \seeref{\Option{slantedgreek=true}}.
\end{values}
\end{Declaration}
+
\subsubsection{Griechischen Buchstaben}
-\vskip-\lastskip%
-\label{sec:greek}%
-\index{Schrift!Griechische Buchstaben}\index{Griechische Buchstaben}%
+\tudhyperdef*{sec:greek}%
%
\begin{Declaration}{\Macro{varDelta}}
\begin{Declaration}{\Macro{varTheta}}
@@ -412,7 +515,6 @@ werden. Gültige Werte für die Option \Option{cdmath} sind:
\begin{Declaration}{\Macro{upPhi}}
\begin{Declaration}{\Macro{upPsi}}
\begin{Declaration}{\Macro{upOmega}}
-\index{Schrift!Griechische Buchstaben}\index{Griechische Buchstaben}%
\settowidth\tempdim{\Macro{varUpsilon}}%
\addtolength\tempdim{\dimexpr 2\tabcolsep+2\arrayrulewidth-\textwidth\relax}%
\printdeclarationlist(%
@@ -421,10 +523,12 @@ werden. Gültige Werte für die Option \Option{cdmath} sind:
\newcommand*\greekLetters{%
Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega%
}%
- \def\do#1{\appto\tablecontent{%
- \Macro*{var#1} & $\csuse{var#1}$ & &
- \Macro*{up#1} & $\csuse{up#1}$\tabularnewline
- }}%
+ \def\do#1{%
+ \appto\tablecontent{%
+ \Macro*{var#1} & $\csuse{var#1}$ & &
+ \Macro*{up#1} & $\csuse{up#1}$\tabularnewline
+ }%
+ }%
\expandafter\docsvlist\expandafter{\greekLetters}%
\centering%
\vspace{\intextsep}\noindent
@@ -434,7 +538,7 @@ werden. Gültige Werte für die Option \Option{cdmath} sind:
\textbf{Befehl (aufrecht)} & \textbf{Symbol}
\tabularnewline\midrule\tablecontent\bottomrule%
\allcolumnpar{\footnotesize\vskip0pt%
- Die Befehle \Macro*{up}\PName{Name} und \Macro*{var}\PName{Name}
+ 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.
}
@@ -468,96 +572,289 @@ griechischen Minuskeln sind leider nur in der kursiven Variante verfügbar.
\end{Declaration}
\end{Declaration}
-\begin{Declaration}{\Option{slantedgreek}[\PBoolean]}[false]
+\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}. Wie unabhängig von der Option
-\Option{slantedgreek} gezielt kursive und aufrechte Buchstaben gesetzt werden
-können, wird \vpageref{sec:greek} beschrieben.
+\Macro*{Phi}, \Macro*{Psi} und \Macro*{Omega}.
%
-\begin{values}
+\begin{values}{\Option{slantedgreek}}
\itemfalse
- Die griechischen Majuskeln werden wie bei den Standardklassen aufrecht
- gesetzt.
+ Die griechischen Majuskeln werden in Umgebungen für den Mathematiksatz wie
+ bei den Standardklassen aufrecht gesetzt.
\itemtrue*
- Die Ausgabe der griechischen Großbuchstaben erfolgt kursiv.
+ 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}
\subsubsection{Zusätzliche Hinweise zum Mathematiksatz}
Weitere Hinweise zum typografisch guten Mathematiksatz sind außerdem in
-\autoref{sec:exmpl:mathswap} sowie \autoref{sec:exmpl:mathtype} zu finden.
+\autoref{sec:exmpl:mathtype} sowie \autoref{sec:exmpl:mathswap} zu finden.
+\index{Mathematiksatz|?)}%
+
+
+\subsection{Vertikaler Leerraum in Abhängigkeit der Schriftgröße}
+\index{Leerraum}%
+\index{Schriftgröße}%
+%
+Bei den \TUDScript-Klassen sind im Normalfall mehrere Längen von der für das
+Dokument gewählten Schriftgröße abhängig~-- im Gegensatz zu \KOMAScript. Dies
+hat den großen Vorteil, dass bei einer Änderung der Schriftgröße die folgend
+genannten Befehle respektive Längen nicht separat durch den Anwender angepasst
+werden müssen, um weiterhin sinnvoll verwendet werden zu können.
+
+Die Anpassung an die Schriftgröße erfolgt sowohl die dehnbaren Längen
+\Length{bigskipamount}, \Length{medskipamount} und \Length{smallskipamount},
+welche von den Befehlen \Macro{bigskip}, \Macro{medskip} beziehungsweise
+\Macro{smallskip} für das Einfügen vertikaler Abstände genutzt werden, als auch
+die beiden Längen \Length{abovecaptionskip}(\Package{koma-script})'none' und
+\Length{belowcaptionskip}(\Package{koma-script})'none' für den Abstand zwischen
+einem Gleitobjekt~-- beispielsweise eine Abbildung oder eine Tabelle~-- und
+dessen mit \Macro{caption}(\Package{koma-script},\Package{caption})'none'
+gesetzten Beschreibung. Außerdem wird die Länge \Length{columnsep} als Maß für
+den horizontalen Abstand der einzelnen Textspalten im zwei- oder mehrspaltigen
+Layout, wie es beispielsweise mit dem Paket \Package{multicol} erzeugt werden
+kann, in Relation zur Schriftgröße sinnvoll festgelegt.
+
+Die verwendete Schriftgröße kann durch den Anwender über die \KOMAScript-Option
+\Option{fontsize=\PName{Schriftgröße}}(\Package{koma-script})'none' festgelegt
+werden.
+\Attention{%
+ Dabei ist zu beachten, dass diese immer als Klassenoption angegeben werden
+ sollte.%
+}
+Weitere Hinweise zur Wahl der passenden Schriftgröße sind außerdem in
+\autoref{sec:fontsize} zu finden.
+
+\begin{Declaration}[v2.05]{\Option{relspacing=\PBoolean}}[true]%
+\printdeclarationlist%
+%
+Mit der Option \Option{relspacing=\PBoolean} lässt sich die zuvor beschriebene
+Schriftgrößenabhängigkeit sowohl für vertikalen Leerraum zwischen zwei Absätzen
+oder bei Beschriftungen als auch für den horizontalen Abstand zwischen den
+Textspalten im mehrspaltigen Layout anpassen.
+%
+\begin{values}{\Option{relspacing}}
+\itemfalse[absolute/standard]
+ Die besagten Längen werden nicht angepasst, passende Werte sollten bei einer
+ Änderung der Schriftgröße durch den Anwender gewählt werden.
+\itemtrue*[relative/fontsize]
+ In Abhängigkeit von der gewählten Schriftgröße werden die zuvor genannten
+ Längen automatisch festgelegt.
+\end{values}
+\end{Declaration}
-\subsection{Die Schriften des \CDs im OpenType-Format}
-\label{sec:fonts:fontspec}
-\index{OpenType-Schriften}
+
+\section{Das Layout des \CDs}
+\index{Layout|(}%
+\subsection{Der Satzspiegel}
+\index{Satzspiegel|(}%
%
-\ChangedAt{v2.02!OpenType-Schriften mit \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{http://tu-dresden.de/service/publizieren/cd/1_basiselemente/03_hausschrift/schriftbestellung.html}%
-{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
-für das Betriebssystem installiert werden und lassen sich anschließend mit dem
-Paket \Package{fontspec} verwenden.
+\begin{Declaration}[%
+ v2.03;
+ v2.05!\Option{cdgeometry=restricted};%
+ v2.05!\Option{cdgeometry=adapted};%
+ v2.05!\Option{cdgeometry=calculated};%
+ v2.05!\Option{cdgeometry=custom};%
+]{\Option{cdgeometry=\PSet}}[true,restricted]%
+\printdeclarationlist%
+\index{Layout!Seitenstil}%
+\index{Satzspiegel!doppelseitig}%
+%
+Diese Option ist für die Aufteilung beziehungsweise die Berechnung des
+Satzspiegels verantwortlich. Das Maß der Seitenränder ist im \CD fest
+vorgegeben und wird standardmäßig von den \TUDScript-Klassen eingehalten.
+Allerdings lassen sich die Seitenränder anpassen, um beispielsweise einen
+vernünftigen doppelseitigen Satz zu ermöglichen.%
+\footnote{Hierbei sollte der innere Rand schmaler als der äußere sein}
+Des Weiteren besteht die Möglichkeit, auf das \KOMAScript"=Standardverhalten
+zurückzufallen und die Satzspiegelberechnung durch das Paket \Package{typearea}
+vornehmen zu lassen. Hier hat insbesondere die Klassenoption
+\Option{DIV=\PSet}(\Package{typearea})'none'|declare| maßgeblichen Einfluss auf
+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.
+%
+\begin{values}{\Option{cdgeometry}}
+\itemfalse
+ Die Satzspiegelberechnung erfolgt via \Package{typearea}, die Vorgaben des
+ \CDs bezüglich der Seitenränder werden ignoriert.
+\itemtrue*[asymmetric/cd]
+ 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}
+\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}
+\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}
+ \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.
+ }
+ Diesem 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
+ unüblich ist.
+\end{values}
+%
+\ChangedAt{v2.05:Neue Möglichkeiten bei der Satzspiegelberechnung im \CD}
+Mit den folgenden Werten lässt sich einstellen, in welcher Variante der
+Satzspiegel nach dem \TUDCD erstellt werden soll.
+%
+\begin{values}{\Option{cdgeometry}}
+\item[restricted]
+ Der Satzspiegel entspricht den expliziten Vorgaben des \CDs (Voreinstellung).
+\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.
+\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
+ diskreten Maße bei unterschiedlichen Gestaltungshöhen werden ignoriert.
+\end{values}
+%
+\ChangedAt{v2.05}
+Da es häufig sehr restriktive~-- wenn auch meistens völlig willkürliche~--
+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 durch die \TUDScript-Klassen das
+ Paket \Package{geometry} genutzt. Der Anwender kann mit den durch dieses
+ 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
+ von \Package{geometry} genutzt werden.
+\end{values}
+\end{Declaration}
-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
-beispielsweise für die Erstellung von Grafiken mit \Package{pstricks} notwendig
-ist~-- nötig. Andererseits liefern die Schriftfamilien des \CDs keinerlei
-mathematische Glyphen, sodass diese bei der PostScript"=Schriftinstallation aus
-den Schriftpaketen \Package{cmbright} und \Package{iwona} entnommen werden. Bei
-der Nutzung der 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. Weiterhin kommt es auch beim Kerning der Schriften
-zu Problemen.
+\begin{Declaration}[v2.03]{\Option{extrabottommargin=\PName{Höhe}}}[0pt]%
+\printdeclarationlist%
+%
+Mit dieser Option kann die Größe des unteren Seitenrandes angepasst werden,
+wenn der Satzspiegel des \CDs verwendet wird (\seeref{\Option{cdgeometry}}).
+Insbesondere für den Fall, dass bei Seiten im Stil \PageStyle{tudheadings}
+im Fußbereich entweder mit \Macro{footlogo} Drittlogos verwendet werden und
+diese über das optionale Argument oder via \Option{footlogoheight} über die
+Standardhöhe hinaus vergrößert wurden oder mit \Macro{footcontent} ein
+übergroßer Inhalt angegeben wurde, kann dieser unter Umständen etwas zu klein
+sein. Mit der Option \Option{extrabottommargin} wird der Fußbereich durch
+positive Werte vergrößert, negative Werte verkleinern diesen entsprechend.
-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 \hologo{LuaLaTeX} oder \hologo{XeLaTeX} zwingend
-genutzt werden müssen. Hierfür ist es~-- nach der systemweiten Installation der
-OpenType"=Schriften~-- ausreichend, das Paket \Package{fontspec} zu laden.
-\index{Schrift|?)}%
+Alternativ zur Option \Option{extrabottommargin} kann auch die Einstellung
+\Option{cdfoot=\PValueName{Höhe}} mit einem Längenwert verwendet werden.
+Dabei spielt es für beide Optionen keine Rolle, ob eine \hologo{LaTeX}"=Länge,
+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|!}%
+%
+Im Zusammenhang mit den Seitenrändern oder besser dem Satzspiegel ist die durch
+das Paket \Package{typearea} zur Verfügung gesellte \KOMAScript-Option
+\Option{BCOR=\PName{Längenwert}}(\Package{typearea})'none'|declare| zu
+erwähnen. Mit dieser kann bei der Satzspiegelberechnung ein Heftrand respektive
+eine Bindekorrektur berücksichtigt werden. Durch die \TUDScript-Klassen wird
+der mit dieser Option angegebene Wert auch an das Paket \Package{geometry}
+weitergereicht, sodass der Benutzer unabhängig von der Satzspiegelgestaltung
+(\Option{cdgeometry}) die Option \Option{BCOR}(\Package{typearea})'none' nutzen
+kann. So lässt sich eine Bindekorrektur von beispielsweise \unit[5]{mm} mit der
+\emph{Klassenoption} \Option*{BCOR=5mm} festlegen.
+
+Eine Anpassung der Bindekorrektur hat natürlich \emph{immer} eine Änderung der
+verfügbaren Breite des Textbereichs zur Folge hat und führt somit zwingend zu
+einer Anpassung des Satzspiegels. Da die Bindekorrektur jedoch abhängig von der
+Höhe des Buchblocks gewählt werden sollte, welche letztendlich erst mit dem
+Druck des fertiggestellten Dokumentes bestimmt werden kann, muss diese zu
+Beginn abgeschätzt werden.
+%
+\begin{Example}
+Als Faustregel gilt, dass die erforderliche Bindekorrektur in etwa der halben
+Höhe des Buchblocks entsprechen sollte. Dessen Höhe wiederum ist abhängig von
+der Anzahl der Seiten sowie der Dichte des verwendeten Papiers. Wird normales
+Papier mit einer Dichte von \unit[80]{g/m²} verwendet, so entsprechen 100~Blatt
+in etwa einer Höhe von \unit[10]{mm}, bei \unit[100]{g/m²} ca. \unit[12]{mm}.
+Dementsprechend wäre eine Bindekorrektur von \Option*{BCOR=5mm} beziehungsweise
+\Option*{BCOR=6mm} bei diesem Beispiel zu wählen.
+\index{Satzspiegel|)}%
+\end{Example}
-\section{Das Layout des \CDs}
-Das Hauptaugenmerk der neuen Klassen liegt auf der Umsetzung des \CDs der
-\TnUD für \hologo{LaTeX}. Ein großer Teil der definierten Optionen und Befehle
-dient genau dazu und wird nachfolgend beschrieben.
-Einige spezielle Seiten werden im prägnanten Stil mit dem Logo der \TnUD und
+\subsection{Die Gestalt von Titel, Umschlagseite, Teilen sowie Kapiteln \& Co.}
+\index{Layout!Farben|(}%
+\index{Layout!Seitenstil|(}%
+\index{Layout!Überschriften|(}%
+%
+Falls die nachfolgend beschriebene Option \Option{cd=\PSet} aktiviert ist,
+werden einige, spezielle Seiten im prägnanten Stil mit dem Logo der \TnUD und
der dazugehörigen Kopfzeile mit Querbalken gesetzt. Dies betrifft insbesondere
\hyperref[sec:title]{die Umschlagseite und den Titel aus \autoref{sec:title}},
die \hyperref[sec:part]{Teileseiten in \autoref{sec:part}} sowie die
\hyperref[sec:chapter]{Kapitelseiten in \autoref{sec:chapter}}. Mit den
-\PageStyle{tudheadings}"=Seitenstilen oder der \Environment{tudpage}-Umgebung
+\PageStyle{tudheadings}"=Seitenstilen oder der \Environment{tudpage}"=Umgebung
können weitere Seiten in diesem Stil erzeugt werden. Wird das Paket
\Package{tudscrsupervisor} verwendet und mit den bereitgestellten Befehlen oder
Umgebungen eine Aufgabenstellung, ein Gutachten oder ein Aushang erstellt, so
erscheinen auch diese in besagtem Seitenstil.
-
-
-\subsection{Die Gestalt von Titel, Umschlagseite, Teilen und Kapiteln}
+%
\begin{Declaration}[%
- v2.03!neue Farbvarianten
- (\protect\PValue{bicolor} und \protect\PValue{fullcolor}),%
- v2.04!farbiger Querbalken möglich (\protect\PValue{barcolor})%
-]{\Option{cd}[\PSet]}[true]
+ v2.03!\Option{cd=bicolor}:%
+ Farbeinsatz nur im Kopf mit farbig abgesetztem Querbalken;
+ v2.03!\Option{cd=fullcolor}:%
+ voller Farbeinsatz mit farbig abgesetztem Querbalken;%
+ v2.04!\Option{cd=barcolor}:nur farbig abgesetzter Querbalken;%
+]{\Option{cd=\PSet}}[true]
\printdeclarationlist%
-\index{Layout}%
%
-Mit dieser Option wird festgelegt, ob und wie das \CD der \TnUD verwendet wird.
-Sie hat Einfluss auf die Ausprägung von Titel"~, Teil"~, und Kapitelseiten.
+Mit dieser Option wird festgelegt, ob und wie das \TUDCD im gesamten Dokument
+verwendet wird. Sie hat Einfluss auf die Ausprägung von Titel"~, Teil"~, und
+Kapitelseiten sowie die Überschriften der weiteren Gliederungsebenen.
%
-\begin{values}
+\begin{values}{\Option{cd}}
\itemfalse
Diese Einstellung erzeugt das Standard"=Verhalten der \KOMAScript"=Klassen,
es wird kein \CD genutzt.
@@ -566,60 +863,87 @@ Sie hat Einfluss auf die Ausprägung von Titel"~, Teil"~, und Kapitelseiten.
schwarze Schrift für Titel, Teil"~ und Kapitelüberschriften verwendet. Die
Ausprägung des Seitenkopfes ist abhängig von der Option \Option{cdhead}.
\item[lightcolor/pale]
- Die Einstellung entspricht weitestgehend der Option \Option{cd}[true],
+ 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 Schrift genutzt.
+ \PageStyle{tudheadings}"=Seitenstils und die Überschriften genutzt.
\item[barcolor]
\ChangedAt{v2.04} Zusätzlich zur vorherigen Einstellung wird außerdem der
- Querbalken mit einem farbigen Hintergrund gesetzt.
+ Querbalken farbig abgesetzt.
\item[bicolor/bichrome]
\ChangedAt{v2.03} Der Kopf wird mit einem farbigen Hintergrund in der
- Hausfarbe gesetzt, auch der Querbalken wird farbig hinterlegt. Die Schrift
- wird in der primären Hausfarbe gesetzt.
+ Hausfarbe gesetzt, auch 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.
-\item[full/fullcolor]
+\item[fullcolor/full]
\ChangedAt{v2.03} Entspricht der vorherigen Einstellung, allerdings wird der
Querbalken nicht durch Linien begrenzt sondern farbig hinterlegt.
\end{values}
\end{Declaration}
-\subsubsection{Einstellungen für Titel, Umschlagseite, Teile und Kapitel}
+\subsubsection{Individuelle Einstellungen für einzelne Elemente des Layouts}
Das Verhalten aller für das Layout relevanten Elemente wird von der eben zuvor
-erläuterten Option \Option{cd}[\PSet] bestimmt. Dies betrifft zum einen sowohl
+erläuterten Option \Option{cd=\PSet} bestimmt. Dies betrifft zum einen sowohl
den Titel~(\Macro{maketitle}) als auch die Umschlagseite~(\Macro{makecover})
-und zum anderen alle Teileseiten~(\Macro{part}, \Macro{addpart}) und
-Kapitelseiten~(\Macro{chapter}, \Macro{addchap}).
+und zum anderen alle Teileseiten
+(%
+ \Macro{part}(\Package{koma-script})'none',
+ \Macro{addpart}(\Package{koma-script})'none'%
+)
+und Kapitelseiten
+(%
+ \Macro{chapter}(\Package{koma-script})'none',
+ \Macro{addchap}(\Package{koma-script})'none'%
+)
+sowie alle darunter liegenden Gliederungsebenen.
+
+Soll ein bestimmtes Element des Layouts abweichend von der allgemeinen
+Einstellung für das gesamte Dokument erscheinen, so kann eine der folgenden
+Optionen genutzt werden, um dieses individuell anzupassen und die mit
+\Option{cd=\PSet} eingestellten Vorgaben für das jeweilige Element zu
+überschreiben.%
+\footnote{%
+ \Option{cdtitle} für den Titel, \Option{cdcover} für die Umschlagseite,
+ \Option{cdpart} für Teile, \Option{cdchapter} für Kapitel sowie
+ \Option{cdsection} für alle darunter liegenden Gliederungsebenen%
+}
+Die gültigen Wertzuweisungen für die einzelnen Elemente entsprechend dabei den
+möglichen Werten für die Option \Option{cd=\PSet}.
-Soll ein bestimmtes Element des Layouts abweichend erscheinen, so kann eine der
-folgenden Optionen genutzt werden, um dieses individuell anzupassen. Die
-gültigen Wertzuweisungen für die einzelnen Elemente entsprechend dabei den
-möglichen Werten für die Option \Option{cd}.
+Zu beachten ist dabei, dass die verwendete Schrift für die Elemente des Layouts
+abhängig von der Option \Option{cdfont=\PSet} ist. Für Titel- und Umschlagseite
+kann diese direkt über das optionale Argument von \Macro{maketitle} respektive
+\Macro{makecover} geändert werden.
\begin{Declaration}[%
- v2.03!neue Farbvarianten
- (\protect\PValue{bicolor} und \protect\PValue{fullcolor}),%
- v2.04!farbiger Querbalken möglich (\protect\PValue{barcolor})%
-]{\Option{cdtitle}[\PSet]}
+ v2.03!\Option{cdtitle=bicolor}:%
+ Farbeinsatz nur im Kopf mit farbig abgesetztem Querbalken;
+ v2.03!\Option{cdtitle=fullcolor}:%
+ voller Farbeinsatz mit farbig abgesetztem Querbalken;
+ v2.04!\Option{cdtitle=barcolor}:nur farbig abgesetzter Querbalken;%
+]{\Option{cdtitle=\PSet}}
\printdeclarationlist%
-\index{Titel}\index{Layout!Titel}%
+\index{Titel|?}%
%
Mit der Option \Option{cdtitle} kann die allgemeine Einstellung für den Titel
-überschrieben werden. Es kann zwischen dem normalen (\Option{cdtitle}[false])
+überschrieben werden. Es kann zwischen dem normalen (\Option*{cdtitle=false})
und dem im \CD umgeschaltet werden. Die neue Titelseite unterstützt alle durch
\KOMAScript{} definierten Befehle für den Titel.%
-\footnote{\raggedright%
- \Macro{extratitle}\Parameter{Schmutztitel},\Macro{titlehead}\Parameter{Kopf},
- \Macro{subject}\Parameter{Typisierung},\Macro{title}\Parameter{Titel},
- \Macro{subtitle}\Parameter{Untertitel},\Macro{author}\Parameter{Autor},
- \Macro{date}\Parameter{Datum},\Macro{publishers}\Parameter{Verlag},
- \Macro{and} und \Macro{thanks}\Parameter{Fußnote} sowie
- \Macro{uppertitleback}\Parameter{Titelrückseitenkopf},
- \Macro{lowertitleback}\Parameter{Titelrückseitenfuß}
- und \Macro{dedication}\Parameter{Widmung}
+\footnote{%
+ \Macro{extratitle}[\Parameter{Schmutztitel}](\Package{koma-script}),
+ \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{uppertitleback}[\Parameter{Titelrückseitenkopf}](\Package{koma-script})
+ und
+ \Macro{lowertitleback}[\Parameter{Titelrückseitenfuß}](\Package{koma-script})%
}
Zusätzlich werden viele neue Felder definiert, welche vor allem für eine
wissenschaftliche Arbeit von Relevanz sind. Genaueres dazu
@@ -628,51 +952,77 @@ der Titelseite wird diese immer mit \Macro{maketitle} erzeugt.
\end{Declaration}
\begin{Declaration}[%
- v2.02,%
- v2.03!neue Farbvarianten
- (\protect\PValue{bicolor} und \protect\PValue{fullcolor}),%
- v2.04!farbiger Querbalken möglich (\protect\PValue{barcolor})%
-]{\Option{cdcover}[\PSet]}
+ v2.02;%
+ v2.03!\Option{cdcover=bicolor}:%
+ Farbeinsatz nur im Kopf mit farbig abgesetztem Querbalken;
+ v2.03!\Option{cdcover=fullcolor}:%
+ voller Farbeinsatz mit farbig abgesetztem Querbalken;
+ v2.04!\Option{cdcover=barcolor}:nur farbig abgesetzter Querbalken;%
+]{\Option{cdcover=\PSet}}
\printdeclarationlist%
-\index{Umschlagseite|!}\index{Titel!Umschlagseite}\index{Layout!Umschlagseite}%
+\index{Umschlagseite|?}%
%
Die \TUDScript-Klassen führen zusätzlich den Befehl \Macro{makecover} ein, mit
dem sich neben dem Titel eine separate Umschlagseite erzeugen lässt. Diese ist
in ihrer Gestalt der Titelseite sehr ähnlich, wird normalerweise jedoch in
einem anderen Satzspiegel als dem des Buchblocks gesetzt. Mit der Option
-\Option{cdcover} kann~-- unabhängig von \Option{cd}~-- das Erscheinungsbild
-der Umschlagseite geändert werden. Wird \Option{cdcover}[false] gewählt,
-entspricht die Umschlagseite dem originalen \KOMAScript-Titel. Die Verwendung
-des Befehls \Macro{makecover} sowie die dazugehörigen Parameter werden
-detailliert in \autoref{sec:title} erläutert.
+\Option{cdcover} kann~-- unabhängig von \Option{cd=\PSet}~-- das Aussehen der
+Umschlagseite geändert werden. Wird \Option*{cdcover=false} gewählt, entspricht
+die Umschlagseite dem originalen \KOMAScript-Titel. Die Verwendung des Befehls
+\Macro{makecover} sowie die dazugehörigen Parameter werden detailliert in
+\autoref{sec:title} erläutert.
\end{Declaration}
\begin{Declaration}[%
- v2.03!neue Farbvarianten
- (\protect\PValue{bicolor} und \protect\PValue{fullcolor}),%
- v2.04!farbiger Querbalken möglich (\protect\PValue{barcolor})%
-]{\Option{cdpart}[\PSet]}
+ v2.03!\Option{cdpart=bicolor}:%
+ Farbeinsatz nur im Kopf mit farbig abgesetztem Querbalken;
+ v2.03!\Option{cdpart=fullcolor}:%
+ voller Farbeinsatz mit farbig abgesetztem Querbalken;
+ v2.04!\Option{cdpart=barcolor}:nur farbig abgesetzter Querbalken;%
+]{\Option{cdpart=\PSet}}
\printdeclarationlist%
-\index{Teileseiten}\index{Layout!Teileseiten}%
+\index{Layout!Teileseiten|?}%
%
-Für die Teileseiten kann der Wert des Schlüssels \Option{cd} separat
+Für die Teileseiten kann der Wert des Schlüssels \Option{cd=\PSet} separat
überschrieben und somit deren Layout respektive Erscheinungsbild beeinflusst
-werden, welches bei der Benutzung der Befehle \Macro{part} beziehungsweise
-\Macro{addpart} und deren Sternversionen genutzt wird.
+werden, welches bei der Benutzung der Befehle
+\Macro{part}(\Package{koma-script})'none' und
+\Macro{addpart}(\Package{koma-script})'none' sowie deren Sternversionen
+verwendet wird. In \autoref{sec:part} sind weitere Hinweise zur Teileseite im
+\CD zu finden.
\end{Declaration}
\begin{Declaration}[%
- v2.03!neue Farbvarianten
- (\protect\PValue{bicolor} und \protect\PValue{fullcolor}),%
- v2.04!farbiger Querbalken möglich (\protect\PValue{barcolor})%
-]{\Option{cdchapter}[\PSet]}
+ v2.03!\Option{cdchapter=bicolor}:%
+ Farbeinsatz nur im Kopf mit farbig abgesetztem Querbalken;
+ v2.03!\Option{cdchapter=fullcolor}:%
+ voller Farbeinsatz mit farbig abgesetztem Querbalken;
+ v2.04!\Option{cdchapter=barcolor}:nur farbig abgesetzter Querbalken;%
+]{\Option{cdchapter=\PSet}}
+\printdeclarationlist%
+\index{Layout!Kapitelseiten|?}%
+%
+Für Kapitelseiten kann der Schlüsselwert \Option{cd=\PSet} ebenfalls angepasst
+und damit das Layout respektive Erscheinungsbild geändert werden, das bei der
+Verwendung von \Macro{chapter}(\Package{koma-script})'none' beziehungsweise
+\Macro{addchap}(\Package{koma-script})'none' und den dazugehörigen
+Sternversionen genutzt wird. Weitere Hinweise zur Kapitelseite im \CD sind in
+\autoref{sec:chapter} zu finden.
+\end{Declaration}
+
+\begin{Declaration}[v2.05]{\Option{cdsection=\PSet}}
\printdeclarationlist%
-\index{Kapitelseiten}\index{Layout!Kapitelseiten}%
%
-Für Kapitelseiten kann der Schlüsselwert \Option{cd} ebenfalls angepasst und
-damit das Layout respektive Erscheinungsbild geändert werden, das bei der
-Verwendung von \Macro{chapter} beziehungsweise \Macro{addchap} und den
-dazugehörigen Sternversionen genutzt wird.
+Für Überschriften der weiteren Gliederungsebenen
+\Macro{section}(\Package{koma-script})'none',
+\Macro{subsection}(\Package{koma-script})'none',
+\Macro{subsubsection}(\Package{koma-script})'none' sowie
+\Macro{paragraph}(\Package{koma-script})'none' und
+\Macro{subparagraph}(\Package{koma-script})'none'
+werden in der primären Hausfarbe \Color{HKS41} ausgegeben, falls über die
+Option \Option{cd=\PSet} eine farbige Ausprägung des Layouts eingestellt wurde.
+Mit der Angabe von \Option*{cdsection=true} erscheinen die Überschriften der
+genannten Gliederungsebenen ohne Farbeinsatz.
\end{Declaration}
%
\begin{Example}
@@ -681,53 +1031,92 @@ Schrift gesetzt werden, so kann dies folgendermaßen erreicht werden:
\begin{Code}[escapechar=§]
\documentclass[cd=true,cdtitle=color]{§\PName{Dokumentklasse}§}
\end{Code}
+\index{Layout!Farben|)}%
+\index{Layout!Seitenstil|)}%
\end{Example}
-\subsubsection{Position von Überschriften}
-\begin{Declaration}[v2.02]{\Length{pageheadingsvskip}}
-\begin{Declaration}[v2.02]{\Length{headingsvskip}}
-\printdeclarationlist%
-\index{Überschriften!Position}\index{Titel!Position}%
-\index{Teileüberschriften}\index{Kapitelüberschriften}%
-\index{Kapitelseiten}\index{Layout!Kapitelseiten}\index{Layout!Überschriften}%
-%
-Diese beiden Längen haben Auswirkung auf die vertikale Position bestimmter
-Überschriften. Mit \Length{pageheadingsvskip} lassen sich sowohl der Titel auf
-der Titelseite (\Option{titlepage}[true]) als auch die Überschriften von Teilen
-und Kapiteln, welche als einzelne Kapitelseite (\Option{chapterpage}[true])
-gesetzt werden, verschieben. Demgegenüber erlaubt es \Length{headingsvskip},
-sowohl den Titel innerhalb eines Titelkopfes (\Option{titlepage}[false]) als
-auch die Überschrift eines Kapitels bei deaktivierter Kapitelseite
-(\Option{chapterpage}[false]) in ihrer vertikalen Position anzupassen.
+\subsubsection{Die vertikale Position der Überschriften}
+\begin{Declaration}[v2.05]{\Option{pageheadingsvskip=\PName{Längenwert}}}
+\begin{Declaration}[v2.05]{\Option{headingsvskip=\PName{Längenwert}}}
+\printdeclarationlist%
+\index{Layout!Teileseiten|?}%
+\index{Layout!Kapitelseiten|?}%
+%
+\ToDo[doc]{Attention raus, sobald neue Gliederungsbefehle umgesetzt}[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
+(\KOMAScript-Option \Option{titlepage=true}(\Package{koma-script})'none') als
+auch die Überschriften von separaten Kapitelseiten (\Option{chapterpage=true})
+und Teilen vertikal verschieben. Demgegenüber kann mit der zweiten Option
+\Option{headingsvskip}, sowohl den Titel des Titelkopfes
+(\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
verschoben, wobei darauf geachtet werden sollte, dass diese sich danach noch
innerhalb des Satzspiegels befinden. Positive Werte setzen die Überschriften
dementsprechend tiefer.
+\index{Layout!Überschriften|)}%
\end{Declaration}
\end{Declaration}
\subsection{Seiten im Stil des \CDs}
+\tudhyperdef*{sec:tudheadings}%
+\index{Layout!Seitenstil|?(}%
+%
+\begin{Declaration}{\Macro{faculty}[\Parameter{Fakultät}]}
+\begin{Declaration}{\Macro{department}[\Parameter{Einrichtung}]}
+\begin{Declaration}{\Macro{institute}[\Parameter{Institut}]}
+\begin{Declaration}{\Macro{chair}[\Parameter{Lehrstuhl}]}
+\begin{Declaration}{\Macro{extraheadline}[\Parameter{Textzeile}]}
+\printdeclarationlist%
+\index{Layout!Kopfzeile}%
+\index{Layout!Querbalken}%
+%
+Für den Seitenstil des \TUDCDs charakteristisch ist die Kopfzeile mit dem
+prägnanten Querbalken. In dieser wird~-- falls angegeben~-- in fetter Schrift
+die Fakultät ausgegeben, danach folgen durch Kommas getrennt die Einrichtung,
+das Institut und der Lehrstuhl beziehungsweise die Professur. Sollte der Platz
+in der ersten Zeile nicht ausreichen, erfolgt ein automatischer Zeilenumbruch.
+
+In besonderen Ausnahmefällen erlaubt das \CD die Angabe einer zusätzlichen
+zweiten beziehungsweise dritten Zeile unterhalb der Angaben des Bereichs an der
+\TnUD, welche weitere, frei wählbare Angaben enthält. Diese kann mit dem Befehl
+\Macro{extraheadline}[\Parameter{Textzeile}] definiert werden.
+\end{Declaration}
+\end{Declaration}
+\end{Declaration}
+\end{Declaration}
+\end{Declaration}
+%
\begin{Declaration}[v2.02]{\PageStyle{tudheadings}}
\begin{Declaration}[v2.02]{\PageStyle{plain.tudheadings}}
\begin{Declaration}[v2.02]{\PageStyle{empty.tudheadings}}
\printdeclarationlist%
-\label{sec:tudheadings}
%
\ChangedAt*{%
- v2.03!Seitenstile um zweifarbigen Kopf und farbigen Fuß erweitert%
-}%
-Ein zentrales Element des \CDs der \TnUD ist der prägnante Seitenkopf mit der
-Angabe von Fakultät~(\Macro{faculty}), Einrichtung~(\Macro{department}),
+ v2.03:Seitenstile um zweifarbigen Kopf und farbigen Fuß erweitert%
+}
+Ein zentrales Element des \TUDCDs ist der prägnante Seitenkopf mit der Angabe
+von Fakultät~(\Macro{faculty}), Einrichtung~(\Macro{department}),
Institut~(\Macro{institute}) und Lehrstuhl~(\Macro{chair}) im dazugehörigen
Querbalken. Durch die Nutzung des Paketes \Package{scrlayer-scrpage} lassen
sich entweder einzelne Seiten oder auch ganze Dokumente sehr einfach in diesem
-Stil setzen. Hierzu muss lediglich mit \Macro{pagestyle}\Parameter{Seitenstil}
-einer der Seitenstile geladen werden.
+Stil setzen. Dazu muss lediglich mit
+\Macro{pagestyle}[\Parameter{Seitenstil}](\Package{koma-script})'none' einer
+der Seitenstile geladen werden.
Allen Seitenstilen gemein ist der typische Kopf mit dem charakteristischen
Querbalken, dessen Gestalt für \emph{alle} Seitenstile gleichermaßen über die
@@ -736,7 +1125,7 @@ lässt sich ein zusätzliches Zweitlogo im Kopfbereich ausgegeben.
\Attention{%
Für die speziellen Layout-Elemente Titel und Umschlagseite sowie Teile- und
Kapitelseiten wird die Einstellung von \Option{cdhead} durch die Nutzung der
- Option~\Option{cd} überschrieben.
+ Option~\Option{cd=\PSet} überschrieben.
}
Die Ausprägung des Fußes unterscheidet sich bei den einzelnen Seitenstilen.
@@ -745,103 +1134,71 @@ Stile~-- oder vielmehr das Seitenstil-Paar~-- \PageStyle{tudheadings} und
\PageStyle{plain.tudheadings} übernehmen die Einstellungen für die Fußzeile aus
der Anwenderschnittstelle von \Package{scrlayer-scrpage}.%
\footnote{%
- Es können die Befehle \Macro{lefoot}, \Macro{cefoot} und \Macro{refoot} sowie
- \Macro{lofoot}, \Macro{cofoot} und \Macro{rofoot} respektive \Macro{ofoot},
- \Macro{cfoot} und \Macro{ifoot} genutzt werden.
-}
-Wie diese zu verwenden ist, kann der \KOMAScript"=Anleitung entnommen werden.
-Alternativ zu einer eigenen Definition der Fußzeile lässt sich außerdem die
-Option \Option{cdfoot} verwenden. Zusätzlich kann über \Macro{footcontent} ein
-freier Inhalt für den Fußbereich definiert werden, mit \Macro{footlogo} ist die
+ Es können die Befehle
+ \Macro{lefoot}(\Package{scrlayer-scrpage})'none',
+ \Macro{cefoot}(\Package{scrlayer-scrpage})'none' und
+ \Macro{refoot}(\Package{scrlayer-scrpage})'none' sowie
+ \Macro{lofoot}(\Package{scrlayer-scrpage})'none',
+ \Macro{cofoot}(\Package{scrlayer-scrpage})'none' und
+ \Macro{rofoot}(\Package{scrlayer-scrpage})'none' respektive
+ \Macro{ofoot}(\Package{scrlayer-scrpage})'none',
+ \Macro{cfoot}(\Package{scrlayer-scrpage})'none' und
+ \Macro{ifoot}(\Package{scrlayer-scrpage})'none'
+ genutzt werden.%
+}
+Wie die einzelnen Befehle zur Individualisierung der Fußzeile zu verwenden
+sind, kann der \scrguide[\KOMAScript-Anleitung] entnommen werden. Alternativ
+zu einer eigenen Definition der Fußzeile lässt sich außerdem die Option
+\Option{cdfoot} verwenden. Zusätzlich kann über \Macro{footcontent} ein freier
+Inhalt für den Fußbereich definiert werden, mit \Macro{footlogo} ist die
Ausgabe von einem oder mehreren Logos in diesem möglich. Die verwendete Schrift
im Fußbereich wird durch das Schriftelement~\Font{tudheadings} festgelegt.
-Sobald einer der definierten Stile mit \Macro{pagestyle}\Parameter{Seitentil}
-aktiviert wurde, sind die beiden Seitenstile \PageStyle{tudheadings} sowie
+Sobald einer der definierten Stile mit
+\Macro{pagestyle}[\Parameter{Seitentil}](\Package{koma-script})'none' aktiviert
+wurde, sind die beiden Seitenstile \PageStyle{tudheadings} sowie
\PageStyle{plain.tudheadings} zusätzlich unter den Namen \PageStyle{headings}
respektive \PageStyle{plain} verwendbar. Dies hat den Vorteil, dass bei
Optionen oder Befehlen, welche automatisch zwischen den beiden Seitenstilen
\PageStyle{headings} und \PageStyle{plain} umschalten, durch die einmalige
-Auswahl von einem der \PageStyle{tudheadings}-Stilen nun zwischen diesen
+Auswahl von einem der \PageStyle{tudheadings}"=Stilen nun zwischen diesen
umgeschaltet wird.
Der Seitenstil \PageStyle{empty} erzeugt allerdings weiterhin eine komplett
leere Seite. Soll eine Seite mit der prägnanten Kopfzeile der \TnUD und leerem
-Seitenfuß erschienen, so muss \Macro{pagestyle}\PParameter{empty.tudheadings}
+Seitenfuß erschienen, so muss \Macro*{pagestyle}[\PParameter{empty.tudheadings}]
manuell aufgerufen werden. Um auf das normale Verhalten von \KOMAScript{}
-zurückzuschalten, muss einer der beiden Stile \PageStyle{scrheadings}
-beziehungsweise \PageStyle{plain.scrheadings} aktiviert werden.
-
-\Attention{%
- Die beschriebenen Seitenstile werden erst \emph{nach} dem Laden des Paketes
- \Package{scrlayer-scrpage} definiert. Wird dieses nicht durch den Anwender
- geladen, sollte \Macro{pagestyle}\Parameter{Seitenstil} erst nach
- \Macro*{begin}\PParameter{document} verwendet werden.
-}%
-\end{Declaration}
-\end{Declaration}
-\end{Declaration}
-
-\begin{Declaration}[v2.04]{\Font{tudheadings}}
-\printdeclarationlist%
-\index{Schriftelemente}
-%
-Im Fußbereich der Seiten im \PageStyle{tudheadings}-Seitenstil wird das
-Schriftelement~\Font{tudheadings} verwendet. Dieses wirkt sich auf die
-Seitenzahlen, den Kolumnentitel und die mit \Macro{footcontent} angegebenen
-Inhalte aus. Hierüber wird die Wahl der richtigen Schriftfarbe in Abhängigkeit
-vom Seitenhintergrund und den Einstellungen für die Optionen \Option{cdhead}
-sowie \Option{cdfoot} realisiert. Wie \Font{tudheadings} angepasst werden kann,
-ist in \autoref{sec:fonts:elements} zu finden.
-\end{Declaration}
-
-\begin{Declaration}{\Macro{faculty}\Parameter{Fakultät}}
-\begin{Declaration}{\Macro{department}\Parameter{Einrichtung}}
-\begin{Declaration}{\Macro{institute}\Parameter{Institut}}
-\begin{Declaration}{\Macro{chair}\Parameter{Lehrstuhl}}
-\begin{Declaration}{\Macro{extraheadline}\Parameter{Textzeile}}
-\printdeclarationlist%
-\index{Kopfzeile}\index{Layout!Kopfzeile}%
-\index{Querbalken}\index{Layout!Querbalken}%
-%
-Für den Seitenstil des \CDs der \TnUD typisch ist die Kopfzeile mit dem
-charakteristischen Querbalken. In dieser wird~-- falls angegeben~-- in fetter
-Schrift die Fakultät ausgegeben, danach folgen durch Kommas getrennt die
-Einrichtung, das Institut und der Lehrstuhl beziehungsweise die Professur.
-Sollte der Platz in der ersten Zeile nicht ausreichen, erfolgt ein
-automatischer Zeilenumbruch.
-
-In besonderen Ausnahmefällen erlaubt das \CD die Angabe einer zusätzlichen
-zweiten beziehungsweise dritten Zeile unterhalb der Angaben des Bereichs an der
-\TnUD, welche weitere, frei wählbare Angaben enthält. Diese kann mit dem Befehl
-\Macro{extraheadline}\Parameter{Textzeile} definiert werden.
-\end{Declaration}
-\end{Declaration}
+zurückzuschalten, muss mit \Macro*{pagestyle}[\Parameter{Seitentil}] einer der
+beiden Seitenstile \PageStyle{scrheadings}(\Package{scrlayer-scrpage})'none'
+oder \PageStyle{plain.scrheadings}(\Package{scrlayer-scrpage})'none' aktiviert
+werden.
+\index{Layout!Seitenstil|?)}%
\end{Declaration}
\end{Declaration}
\end{Declaration}
\begin{Declaration}[%
- v2.03,%
- v2.04!farbiger Querbalken möglich (\PValue{barcolor})%
-]{\Option{cdhead}[\PSet]}[true][%
- \Option{cdfont}[false]:false%
-]
+ 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]
\printdeclarationlist%
-\index{Kopfzeile}\index{Layout!Kopfzeile}%
-\index{Querbalken}\index{Layout!Querbalken}%
+\index{Layout!Seitenstil|(}%
+\index{Layout!Kopfzeile}%
+\index{Layout!Querbalken}%
+\index{Datum}%
%
Mit dieser Option lassen sich für die \PageStyle{tudheadings}"=Seitenstile
sowohl die Gestalt des Logos sowie des Querbalkens als auch die darin
verwendete Schrift beeinflussen. Die folgenden Werte können für eine Anpassung
der Schriftart im Balken verwendet werden:
%
-\begin{values}
+\begin{values}{\Option{cdhead}}
\itemfalse
- Sollte mit \Option{cdfont}[false] die Verwendung der Hausschrift im Stil des
- \CDs der \TnUD deaktiviert worden sein, wird die Kopfzeile im Querbalken in
- den Serifenlosen der genutzten Schrift gesetzt. Sind die Hausschriften
- aktiviert, hat diese Einstellung keinen Einfluss.
+ 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,
+ 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
@@ -854,7 +1211,7 @@ der Schriftart im Balken verwendet werden:
Bei der Ausprägung des Kopfes und des Querbalkens gibt es mehrere Varianten.
Einerseits kann der Querbalken mit zwei Außenlinien dargestellt werden:
%
-\begin{values}
+\begin{values}{\Option{cdhead}}
\item[nocolor/monochrome]
Der Kopf und die Linien des Querbalkens erscheinen in schwarzer Farbe.
\item[lightcolor/pale]
@@ -862,15 +1219,15 @@ Einerseits kann der Querbalken mit zwei Außenlinien dargestellt werden:
\end{values}
%
Andererseits ist auch eine Darstellung mit mehr Farbeinsatz möglich, bei
-welcher der Querbalken und gegebenenfalls der ganze Seitenkopf farblich
+welcher der Querbalken und gegebenenfalls der ganze Seitenkopf farbig
abgesetzt wird.
%
-\begin{values}
+\begin{values}{\Option{cdhead}}
\item[barcolor]
\ChangedAt{v2.04} Im Gegensatz zur vorherigen Einstellung wird der
Querbalken mit farbigem Hintergrund verwendet.
\item[bicolor/bichrome]
- \ChangedAt{v2.03} Die Kopfzeile wird farblich abgesetzt, wobei der
+ \ChangedAt{v2.03} Die Kopfzeile wird farbig abgesetzt, wobei der
Hintergrund des Logos und der Querbalken unterschiedlich ausfallen. Die
Außenlinien der Querbalkens entfallen.
\end{values}
@@ -878,83 +1235,117 @@ abgesetzt wird.
Für den Fall, dass der Querbalken lediglich mit zwei Außenlinien dargestellt
wird, kann zusätzlich dessen Laufweite festgelegt werden:
%
-\begin{values}
+\begin{values}{\Option{cdhead}}
\item[textwidth/slim]
Der Querbalken im Kopf erstreckt sich nur über den Textbereich. Diese
Einstellung ist insbesondere sinnvoll, wenn ein randloser Ausdruck technisch
- nicht möglich ist.
+ 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.
\end{values}
+%
+\ChangedAt{v2.05}
+Neben den zuvor beschriebenen Möglichkeiten zur Gestaltung des Kopfbereiches
+kann auf allen Seiten mit aktiviertem \PageStyle{tudheadings}"=Seitenstil
+unterhalb des Querbalkens das mit \Macro{date} angegebene Datum rechtsbündig
+eingeblendet werden.
+%
+\begin{values}{\Option{cdhead}}
+\item[date/showdate]
+ Das eingestellte Datum wird rechts oberhalb vom Textbereich eingeblendet.
+\item[nodate/hidedate]
+ Es erscheint kein Datum zwischen Kopf- und Textbereich.
+\end{values}
\end{Declaration}
\begin{Declaration}[%
- v2.03!farbiger Hintergrund der Fußzeile möglich%
-]{\Option{cdfoot}[\PSet]}[false]%
+ v2.03!\Option{cdfoot=color}:farbiger Hintergrund der Fußzeile;%
+ v2.03!\Option{cdfoot=\PValueName{Höhe}};%
+]{\Option{cdfoot=\PSet}}[false]%
\printdeclarationlist%
-\index{Kolumnentitel}\index{Layout!Kolumnentitel}
+\index{Layout!Fußzeile}%
+\index{Layout!Kolumnentitel}%
\index{Satzspiegel!doppelseitig}%
Die \TUDScript-Klassen sind~-- insbesondere aufgrund der Möglichkeit zur
Verwendung des Paketes \Package{scrlayer-scrpage}~-- bei der Gestaltung der
Kopf"~ und Fußzeilen sehr flexibel und individuell anpassbar. Die Ausprägung
und der Inhalt dieser ist nicht explizit durch das \CD vorgegeben und können
-durch den Anwender beliebig gewählt und geändert werden. Wird die Klassenoption
-\Option{automark} angegeben, werden für das automatische Setzen der Marken die
-Titel der Gliederungsebenen verwendet. Genaueres hierzu sowie der Möglichkeit,
-die Kolumnentitel manuell festzulegen, ist dem Handbuch von \KOMAScript{} zu
-entnehmen.
+durch den Anwender beliebig gewählt und geändert werden.
-Eine Möglichkeit für deren Gestaltung zeigt das Handbuch für das \CD der \TnUD.
-Dieses wird ohne Kopf"~ und mit einer einfachen Fußzeile gesetzt, welche den
-aktuellen Kolumnentitel sowie die Paginierung enthält. Mit \Option{cdfoot} kann
-diese Ausprägung aktiviert werden, was auch für dieses Anwenderhandbuch
-geschehen ist.
+Eine Möglichkeit für deren Gestaltung zeigt das Handbuch für das \TUDCD. Dieses
+wird ohne Kopf"~ und mit einer einfachen Fußzeile gesetzt, welche den aktuellen
+Kolumnentitel sowie die Paginierung enthält. Mit \Option{cdfoot} kann diese
+Ausprägung aktiviert werden, was auch für dieses Anwenderhandbuch geschehen ist.
%
-\begin{values}
+\begin{values}{\Option{cdfoot}}
\itemfalse
Die Kopf"~ und Fußzeilen zeigen Standardverhalten, zur manuellen Änderung
- dieser sollte unbedingt das \KOMAScript"=Paket \Package{scrlayer-scrpage}
- verwendet werden.
+ sollte unbedingt das \KOMAScript"=Paket \Package{scrlayer-scrpage} verwendet
+ werden.
\itemtrue*
- Die Fußzeilen des Dokumentes werden wie im Handbuch des \CDs der \TnUD
- mit Kolumnentitel und Seitenzahl gesetzt. Im doppelseitigen Satz
- (\Option{twoside}[true]) wird die Paginierung außen platziert.
+ Die Fußzeilen des Dokumentes werden äquivalent zum Handbuch des \TUDCDs mit
+ lebenden Kolumnentitel und Seitenzahl gesetzt, wobei im doppelseitigen Satz
+ (Klassenoption \Option{twoside=true}(\Package{typearea})'none') die
+ Paginierung außen platziert wird.
\end{values}
%
-\ChangedAt{v2.03}
-Sollte einer der \PageStyle{tudheadings}-Seitenstil aktiviert sein und es wird
+Wird beim Laden der Klasse respektive des Paketes \Package{scrlayer-scrpage}
+die Option \Option{manualmark}(\Package{scrlayer-scrpage})'none'|declare| nicht
+explizit angegeben, so werden mit \Option{cdfoot=true} über die
+\KOMAScript-Option \Option{automark}(\Package{scrlayer-scrpage})'none'|declare|
+auch gleichzeitig die automatischen Kolumnentitel aktiviert, welche als Marken
+die Titel der Gliederungsebenen verwendet. Genaueres dazu und der Möglichkeit,
+die Kolumnentitel manuell festzulegen, ist dem \scrguide zu entnehmen.
+
+\ChangedAt{v2.03}
+Sollte einer der \PageStyle{tudheadings}"=Seitenstil aktiviert sein und es wird
auf der erzeugten Seite ein farbiges Layout~-- beispielsweise der zweifarbige
-Kopf (\Option{cdhead}[bicolor]) oder ein farbiger Seitenhintergrund~-- genutzt,
+Kopf (\Option{cdhead=bicolor}) oder ein farbiger Seitenhintergrund~-- genutzt,
so kann auch die Fußzeile einen farbigen Hintergrund erhalten.
%
-\begin{values}
+\begin{values}{\Option{cdfoot}}
\item[nocolor/monochrome]
Der Fuß wird immer ohne farbigen Hintergrund gesetzt.
\item[color/bicolor/bichrome]
- Die Fußzeile wird farblich abgesetzt, falls entweder der zweifarbige Kopf
- (\Option{cdhead}[bicolor]) oder zumindest eine Seite mit einem farbigen
- Hintergrund in der Hausfarbe (Titel oder Kapitelseite) verwendet wurde.
+ 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.
+\item[\PValueName{Höhe}]
+ Wird der Option ein Längenwert übergeben, entspricht dies exakt der
+ Verwendung von Option \Option{extrabottommargin=\PName{Höhe}}.
\end{values}
+\end{Declaration}
+
+\begin{Declaration}[v2.04]{\Font{tudheadings}}
+\printdeclarationlist%
+\index{Schriftelemente}%
%
-Wird der Option \Option{cdfoot} eine Längenmaß übergeben, entspricht dies der
-Verwendung von \Option{extrabottommargin}.
+Im Fußbereich der Seiten im \PageStyle{tudheadings}"=Seitenstil wird das
+Schriftelement~\Font{tudheadings} verwendet. Dieses wirkt sich auf die
+Seitenzahlen, den Kolumnentitel und die mit \Macro{footcontent} angegebenen
+Inhalte aus. Hierüber wird die Wahl der richtigen Schriftfarbe in Abhängigkeit
+vom Seitenhintergrund und den Einstellungen für die Optionen \Option{cdhead}
+sowie \Option{cdfoot} realisiert. Wie \Font{tudheadings} angepasst werden
+kann, ist in \autoref{sec:fonts:elements} zu finden.
\end{Declaration}
-\begin{Declaration}{\Macro{headlogo}\LParameter\Parameter{Dateiname}}
+\begin{Declaration}{\Macro{headlogo}[\LParameter\Parameter{Dateiname}]}
\printdeclarationlist%
-\index{Kopfzeile}\index{Layout!Kopfzeile}%
-\index{Zweitlogo|?}\index{Layout!Zweitlogo}\index{\DDC-Logo}%
+\index{Layout!Kopfzeile}%
+\index{Layout!Zweitlogo|?}%
+\index{Layout!Dresden-concept-Logo@\DDC-Logo}%
%
Neben dem Logo der \TnUD darf zusätzlich ein Zweitlogo im Kopf verwendet
werden. Dieses lässt sich mit diesem Befehl einbinden. Normalerweise wird es
auf die Höhe der Erstlogos skaliert. Über das optionale Argument können weitere
-Formatierungsbefehle an den verwendeten Befehl \Macro{includegraphics}
-durchgereicht werden, um beispielsweise die Größe des Zweitlogos anzupassen.
-Welche Parameter angepasst werden können, ist der Dokumentation des
-\Package{graphicx}-Paketes zu entnehmen.
+Formatierungsbefehle an den im Hintergrund verwendeten Befehl
+\Macro{includegraphics}(\Package{graphicx})'none' durchgereicht werden, um
+beispielsweise die Größe des Zweitlogos anzupassen. Welche Parameter angepasst
+werden können, ist der Dokumentation des \Package{graphicx}"=Paketes zu
+entnehmen.
Sollte die Option \Option{ddc} aktiviert sein, wird das \DDC-Logo nicht im Kopf
sondern automatisch im Fuß gesetzt. Die Option \Option{ddchead} setzt dieses
@@ -963,13 +1354,13 @@ angegebene Zweitlogo.
\end{Declaration}
\begin{Declaration}[v2.03]{%
- \Macro{footlogo}\LParameter\Parameter{Dateinamenliste}%
+ \Macro{footlogo}[\LParameter\Parameter{Dateinamenliste}]%
}
\begin{Declaration}[v2.03]{\Macro{footlogosep}}%
-\begin{Declaration}[v2.03]{\Length{footlogoheight}}%
\printdeclarationlist%
-\index{Drittlogo|?}\index{Layout!Drittlogo}\index{\DDC-Logo}%
-\index{Fußzeile}\index{Layout!Fußzeile}%
+\index{Layout!Fußzeile}%
+\index{Layout!Drittlogo}%
+\index{Layout!Dresden-concept-Logo@\DDC-Logo}%
Laut den Richtlinien des \CDs dürfen im Fußbereich weitere Logos erscheinen,
beispielsweise von kooperierenden Unternehmen oder Sponsoren. Die Dateinamen
@@ -977,95 +1368,132 @@ der gewünschten Logos können als kommaseparierte Liste im obligatorischen
Argument des Befehls \Macro{footlogo} angegeben werden. Sollte tatsächlich
nicht nur ein Dateiname sondern eine Liste übergeben worden sein, so wird bei
der Ausgabe der Logos zwischen diesen jeweils der in \Macro{footlogosep}
-gespeicherte Separator gesetzt. Die Voreinstellung dieses Befehls lautet
-\Macro*{newcommand*}\Macro{footlogosep}\PParameter{\Macro*{hfill}} und kann
-beliebig angepasst werden. Der Separator wird auch gesetzt, wenn in der
-\Parameter{Dateinamenliste} lediglich ein Komma verwendet wurde. So kann man
-beispielsweise ein Logo mit \Macro{footlogo}\PParameter{,\PName{Dateiname},}
-zentriert im Fuß setzen.
-
-Das optionale Argument von \Macro{footlogo} wird an \Macro{includegraphics}
-weitergereicht. Dies geschieht für alle angegeben Dateien aus der Liste
-gleichermaßen. Sollen für einzelne Logos individuelle Einstellungen vorgenommen
-werden, so sind die entsprechenden Parameter im obligatorischen Argument nach
-dem jeweiligen Dateinamen mit einem Doppelpunkt~\enquote{\PValue{:}} als
-Separator (\Macro{footlogo}\PParameter{\PName{Dateiname}:\PName{Parameter}}) zu
+gespeicherte Separator~-- standardmäßig \Macro*{hfill}~-- gesetzt. Dieser kann
+mit \Macro*{renewcommand*}[\PParameter{\Macro{footlogosep}}\PParameter{\dots}]
+beliebig durch den Anwender angepasst werden. Der Separator wird auch gesetzt,
+falls in \PName{Dateinamenliste} lediglich ein Komma verwendet wurde. Mit
+\Macro{footlogo}[\PParameter{,\PName{Dateiname},}] kann so beispielsweise ein
+Logo zentriert im Fuß gesetzt werden.
+\Attention{%
+ Dabei ist zu beachten, dass ein mit der Option \Option{ddc} beziehungsweise
+ \Option{ddcfoot} gesetztes \DDC-Logo im Fußbereich~-- im Gegensatz zur
+ Verwendung von \Macro{footcontent}~-- überlagert werden könnte. Hier muss der
+ Anwender im Zweifel durch das Einfügen von Separatoren~-- sprich Kommas~-- im
+ Argument von \Macro{footlogo} etwas Formatierungsarbeit leisten.
+}
+
+Das optionale Argument von \Macro{footlogo} wird an
+\Macro{includegraphics}(\Package{graphicx})'none' weitergereicht. Dies
+geschieht für alle angegeben Dateien aus der Liste gleichermaßen. Sollen für
+einzelne Logos individuelle Einstellungen vorgenommen werden, so sind die
+entsprechenden Parameter im obligatorischen Argument nach dem jeweiligen
+Dateinamen mit einem Doppelpunkt~\enquote{\PValue{:}} als Separator
+(\Macro{footlogo}[\PParameter{\PName{Dateiname}:\PName{Parameter}}]) zu
übergeben, wobei diese \emph{nach} den allgemeinen Einstellungen für alle Logos
angewendet werden. Die möglichen Parameter und Werte für die optionalen
-Argumente sind der Dokumentation des \Package{graphicx}-Paketes zu entnehmen.
-
-Ohne die Angabe eines optionalen Argumentes für die Größe werden alle Logos im
-Fuß auf die auf die Höhe des Logos der \TnUD skaliert. Der Anwender kann dies
-ändern, indem der Wert der Länge \Length{footlogoheight} mit \Macro*{setlength}
-auf einen von \PValue{0pt} verschiedenen 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 die Option \Option{extrabottommargin}
-beziehungsweise \Option{cdfoot} angepasst werden.
+Argumente sind der Dokumentation des \Package{graphicx}"=Paketes zu entnehmen.
\end{Declaration}
\end{Declaration}
+
+\begin{Declaration}[v2.05]{\Option{footlogoheight=\PName{Längenwert}}}%
+\printdeclarationlist%
+%
+Ohne die Angabe eines optionalen Argumentes bei \Macro{footlogo} für die Größe
+werden alle Logos im Fuß auf die auf die Höhe des Logos der \TnUD skaliert.
+Dies kann global für alle Logos geändert werden, indem vom Anwender 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}}
+beziehungsweise \Option{cdfoot=\PValueName{Höhe}} angepasst werden.
\end{Declaration}
-\begin{Declaration}[v2.04]{\Macro{footcontent}%
- \OParameter{Anweisungen}\Parameter{Inhalt}\OParameter{Inhalt}%
+\begin{Declaration}[%
+ v2.04;
+ v2.05:Änderung des Inhaltes nur einer Spalte möglich
+]{%
+ \Macro{footcontent}[%
+ \OParameter{Anweisungen}\Parameter{Inhalt}\OParameter{Inhalt}%
+ ]%
}
-\begin{Declaration}[v2.04]{\Macro*{footcontent*}
+\begin{Declaration}[v2.04]{%
+ \Macro{footcontent*}[%
\OParameter{Anweisungen}\Parameter{Inhalt}\OParameter{Inhalt}%
+ ]%
}
\printdeclarationlist%
-\index{Fußzeile}\index{Layout!Fußzeile}%
+\index{Layout!Fußzeile}%
%
Mit diesem Befehl kann beliebiger Inhalt entweder einspaltig oder zweispaltig
im Fußbereich der \PageStyle{tudheadings}"=Seitenstile gesetzt werden. In der
-Form \Macro{footcontent}\Parameter{Inhalt} wird der Inhalt über die komplette
+Form \Macro{footcontent}[\Parameter{Inhalt}] wird der Inhalt über die komplette
Textbreite im Fuß ausgegeben. Wird der Befehl jedoch in der zweiten Variante
-\Macro{footcontent}\Parameter{linker Inhalt}\OParameter{rechter Inhalt} mit
+\Macro{footcontent}[\Parameter{linker Inhalt}\OParameter{rechter Inhalt}] mit
einem optionalen \emph{nach} dem obligatorischen Argument verwendet, so
erscheint der Fußbereich zweispaltig, wobei der Inhalt aus dem ersten,
obligatorischen Argument in der linken und der Inhalt aus dem zweiten,
-optionalen Argument entsprechend in der rechten Fußspalte gesetzt wird.
-
-Im Normalfall wird das Schriftelement \Font{tudheadings} für die Schrift im
-Fußbereich verwendet. Mit dem ersten optionalen Argument können weitere
-Schrifteinstellungen respektive Anweisungen vor der eigentlichen Ausgabe des
-Inhaltes erfolgen. Soll die Definition des Inhalts für den Fußbereich gänzlich
-ohne die automatische Schriftformatierungen erfolgen, so kann die Sternversion
-\Macro{footcontent*} genutzt und gegebenenfalls die Schriftformatierung über
-das optionale Argument vorgenommen werden.
+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.
+
+\ChangedAt{v2.05}
+Wird an das Argument für die linke oder die rechte Spalte lediglich ein Stern
+\PValue{*} übergeben, so bleibt der bis dahin definierte Inhalt in dieser
+Spalte erhalten. Beispielsweise kann die linke Fußbereichsspalte mit
+\Macro{footcontent}[\Parameter{Inhalt}\POParameter{*}] angepasst werden ohne
+dabei den Inhalt der rechten Spalte zu verändern oder es ließe sich lediglich
+die verwendete Schrift des Fußbereichs bei gleichbleibendem Inhalt mit
+\Macro{footcontent}[\OParameter{Anweisungen}\PParameter{*}\POParameter{*}]%
+anpassen.
+
+Im Fußbereich wird für die Schrift das Schriftelement \Font{tudheadings}
+verwendet. Dabei wird auch die Schriftgröße angepasst, wobei diese sich an der
+Kopfzeile orientiert. Zusätzlich können mit dem ersten optionalen Argument von
+\Macro{footcontent}~-- vor der eigentlichen Ausgabe des Inhaltes~-- zusätzliche
+Schrifteinstellungen respektive \PName{Anweisungen} ausgeführt werden. Soll die
+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.
\end{Declaration}
\end{Declaration}
\begin{Declaration}[%
- v2.02!\protect\DDC-Logo automatisch in Kopf oder Fuß%
-]{\Option{ddc}[\PSet]}[false]
-\begin{Declaration}[v2.02]{\Option{ddchead}[\PSet]}[false]
-\begin{Declaration}[%
- v2.02!neue Werte für die Farbwahl des Logos von \protect\DDC%
-]{\Option{ddcfoot}[\PSet]}[false]
-\printdeclarationlist%
-\index{Zweitlogo}\index{Layout!Zweitlogo}\index{\DDC-Logo}%
-%
-Diese Optionen fügen das Logo von \DDC entweder im Kopf oder im Fuß der Seiten
-mit dem Stil \PageStyle{tudheadings} ein. Mit \Option{ddc} wird dieses
-automatisch entweder im Kopf oder~-- falls ein Zweitlogo mit \Macro{headlogo}
-angegeben wurde~-- im Fuß gesetzt. Die anderen beiden Optionen setzen das Logo
-zwingend entweder im Kopf (\Option{ddchead}) oder im Fuß (\Option{ddcfoot}),
-wobei erstgenannte ein optionales Zweitlogo dabei unterdrückt. 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:
-%
-\begin{values}
+ v2.02:Logo von \DDC automatisch in Kopf/Fuß;%
+ v2.02!\Option{ddc=colorblack};
+ v2.02!\Option{ddc=gray};
+ v2.02!\Option{ddc=black};
+ v2.02!\Option{ddc=blue};
+ v2.02!\Option{ddc=white};
+]{\Option{ddc=\PSet}}[false]
+\printdeclarationlist%
+\index{Layout!Fußzeile}%
+\index{Layout!Kopfzeile}%
+\index{Layout!Zweitlogo}%
+\index{Layout!Dresden-concept-Logo@\DDC-Logo}%
+%
+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:
+%
+\begin{values}{\Option{ddc}}
\itemfalse
- Bei den \PageStyle{tudheadings}-Seitenstile erscheint kein Logo von \DDC.
+ Bei den \PageStyle{tudheadings}"=Seitenstile erscheint kein Logo von \DDC.
\itemtrue*
Das Logo von \DDC wird im Kopf beziehungsweise im Fuß verwendet. Die Wahl der
Farbe des Logos geschieht passend zur farblichen Ausprägung der Seite selbst.
\end{values}
%
-Soll die Farbe des \DDC-Logos manuell erfolgen, können folgende Werte verwendet
-werden:
+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:
%
-\begin{values}
+\begin{values}{\Option{ddc}}
\item[color]
Im Kopf oder Fuß wird die achtfarbige 4C"~Variante des \DDC-Logos genutzt.
\item[colorblack]
@@ -1084,67 +1512,88 @@ werden:
Das \DDC-Logo sowie der dazugehörige Schriftzug sind vollständig weiß.
\end{values}
%
-Die Größe des \DDC-Logos ist vorgegeben. Es wird sowohl im Kopf als auch im Fuß
-in der gleichen Höhe gesetzt, wie das Logo der \TnUD. Wird es im Fuß gesetzt,
-lässt sich die Größe allerdings über die Länge \Length{footlogoheight} ändern.
-Sollte nach einer Vergrößerung der Darstellung die Höhe des Fußbereiches nicht
-ausreichen, so kann diese über die Option \Option{cdfoot} beziehungsweise
-\Option{extrabottommargin} angepasst werden.
-\end{Declaration}
-\end{Declaration}
+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}
-\ToDo[imp,nxt]{%
- Spezialseite zur freien Gestaltung mit Hintergrundebene für Bilder und Texte
- (CD-Handbuch S. 80 ff.); Seitenstil: \PageStyle{special.tudheadings}
+\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]
-\begin{Declaration}[%
- v2.02!\Key{\Environment{tudpage}}{head} \emph{entfällt},
- v2.02!\Key{\Environment{tudpage}}{foot} \emph{entfällt},
- v2.03!\Key{\Environment{tudpage}}{color} \emph{entfällt}
-]{\Environment{tudpage}[\OLParameter{Sprache}]}
-\begin{Declaration}{\Key{\Environment{tudpage}}{language}[\PName{Sprache}]}
-\begin{Declaration}{\Key{\Environment{tudpage}}{columns}[\PName{Anzahl}]}
-\begin{Declaration}[v2.02]{\Key{\Environment{tudpage}}{pagestyle}[\PSet]}
-\begin{Declaration}{\Key{\Environment{tudpage}}{cdfont}[\PSet]}{%
- \see*{\Option{cdfont}'ppage'}%
+\begin{Declaration}{\Environment{tudpage}[\OLParameter{Sprache}]}
+\begin{Declaration}{\Key{\Environment{tudpage}}{language=\PName{Sprache}}}
+\begin{Declaration}{\Key{\Environment{tudpage}}{columns=\PName{Anzahl}}}
+\begin{Declaration}[v2.02]{\Key{\Environment{tudpage}}{pagestyle=\PSet}}
+\begin{Declaration}{\Key{\Environment{tudpage}}{cdfont=\PSet}}{%
+ \seeref{\Option{cdfont}'ppage'}%
}
-\begin{Declaration}[v2.03]{\Key{\Environment{tudpage}}{cdhead}[\PSet]}{%
- \see*{\Option{cdhead}'ppage'}%
+\begin{Declaration}[v2.03]{\Key{\Environment{tudpage}}{cdhead=\PSet}}{%
+ \seeref{\Option{cdhead}'ppage'}%
}
-\begin{Declaration}[v2.03]{\Key{\Environment{tudpage}}{cdfoot}[\PSet]}{%
- \see*{\Option{cdfoot}'ppage'}%
+\begin{Declaration}[v2.03]{\Key{\Environment{tudpage}}{cdfoot=\PSet}}{%
+ \seeref{\Option{cdfoot}'ppage'}%
}
-\begin{Declaration}{\Key{\Environment{tudpage}}{headlogo}[\PName{Dateiname}]}{%
- \see*{\Macro{headlogo}'ppage'}%
+\begin{Declaration}{\Key{\Environment{tudpage}}{headlogo=\PName{Dateiname}}}{%
+ \seeref{\Macro{headlogo}'ppage'}%
}
\begin{Declaration}[v2.03]{%
- \Key{\Environment{tudpage}}{footlogo}[\PName{Dateinamenliste}]
-}{\see*{\Macro{footlogo}'ppage'}}
-\begin{Declaration}[v2.02]{\Key{\Environment{tudpage}}{ddc}[\PSet]}{%
- \see*{\Option{ddc}'ppage'}%
+ \Key{\Environment{tudpage}}{footlogo=\PName{Dateinamenliste}}
+}{\seeref{\Macro{footlogo}'ppage'}}
+\begin{Declaration}[v2.02]{\Key{\Environment{tudpage}}{ddc=\PSet}}{%
+ \seeref{\Option{ddc}'ppage'}%
}
-\begin{Declaration}[v2.02]{\Key{\Environment{tudpage}}{ddchead}[\PSet]}{%
- \see*{\Option{ddchead}'ppage'}%
+\begin{Declaration}[v2.02]{\Key{\Environment{tudpage}}{ddchead=\PSet}}{%
+ \seeref{\Option{ddchead}'ppage'}%
}
-\begin{Declaration}[v2.02]{\Key{\Environment{tudpage}}{ddcfoot}[\PSet]}{%
- \see*{\Option{ddcfoot}'ppage'}%
+\begin{Declaration}[v2.02]{\Key{\Environment{tudpage}}{ddcfoot=\PSet}}{%
+ \seeref{\Option{ddcfoot}'ppage'}%
}
\printdeclarationlist%
-\index{Layout}\index{Layout!Seitenstil}%
-\index{Kopfzeile}\index{Layout!Kopfzeile}%
-\index{Fußzeile}\index{Layout!Fußzeile}%
+\index{Layout!Kopfzeile}%
+\index{Layout!Fußzeile}%
+\index{Layout!Seitenstil}%
%
Die \Environment{tudpage}"=Umgebung hat ihren Ursprung in einer früheren
Version, als die \PageStyle{tudheadings}"=Seitenstile noch nicht verfügbar
waren, welche mittlerweile anstelle dieser Umgebung verwendet werden können.
Für die \Environment{tudpage}"=Umgebung lassen sich verschiedene Parameter als
optionales Argument angegeben. Wird das Paket \Package{babel} genutzt, kann die
-verwendete Sprache mit \Key{\Environment{tudpage}}{language}[\PName{Sprache}]
+genutzte Sprache mit \Key{\Environment{tudpage}}{language=\PName{Sprache}}
geändert werden, was zur Anpassung der sprachspezifischen Trennungsmuster und
Bezeichner führt. Wurde das Paket \Package{multicol} geladen, wird mit dem
-Parameter \Key{\Environment{tudpage}}{columns}[\PName{Anzahl}] der Inhalt der
+Parameter \Key{\Environment{tudpage}}{columns=\PName{Anzahl}} der Inhalt der
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.
@@ -1168,35 +1617,60 @@ Handbuchs nachgelesen werden.
\end{Declaration}
-
\subsection{Der Titel und die Umschlagseite}
-\label{sec:title}%\label{sec:cover}%
-\index{Titel|!(}\index{Umschlagseite|!}\index{Layout!Umschlagseite}%
+\tudhyperdef*{sec:title}%
+\index{Titel}%
+\index{Umschlagseite}%
%
\ChangedAt*{%
- v2.03!Bugfix für Umschlagseite und Titel beim Satzspiegel%
+ v2.03:Bugfix für Umschlagseite und Titel beim Satzspiegel%
}
-Für den Titel werden alle Felder unterstützt, die bereits durch \KOMAScript{}
-bereitgestellt werden. Darüber hinaus werden für die \TUDScript-Klassen weitere
-Felder definiert, die Auswirkungen auf die Gestalt des Titels haben. Diese
-werden nachfolgend in diesem \autorefname erläutert. Der Titel~-- bestehend aus
-möglichem Schmutztitel, der eigentlichen Titelseite und der nachgelagerten
-Elementen~-- kann mit dem Befehl \Macro{maketitle} ausgegeben werden. Außerdem
-kann im zweispaltigen Satz der \Macro{maketitleonecolumn} verwendet werden,
-welcher einen einspaltigen Einfügung nach dem Titel selbst ermöglicht.
+%
+Für das Erstellen eines Titels mit dem Befehl \Macro{maketitle} wird mit der
+\KOMAScript-Option
+\Option{titlepage=\PBoolean}(\Package{koma-script})'none'|declare|
+festgelegt, ob dieser in Gestalt einer ganzen Titelseite oder nur als Titelkopf
+erscheinen soll. Für den Titel im \TUDCD werden alle Felder unterstützt, welche
+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.
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 lässt sich die verwendete
-Schrift anpassen. Dabei werden sowohl die bereits durch \KOMAScript{}
-bereitgestellten Schriftelemente \Font{titlehead}, \Font{subject},
-\Font{title}, \Font{subtitle}, \Font{author}, \Font{date}, \Font{publishers}
-und \Font{dedication} als auch die neuen \Font{titlepage} und \Font{thesis}
-unterstützt.
+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
@@ -1205,69 +1679,75 @@ standardmäßig in \DIN sondern in \textubn{Univers~65~Bold} ausgegeben wird.
\addtokomafont{subtitle}{\univbn}
\end{Code}
\end{Example}
+\end{Declaration}
+\end{Declaration}
\begin{Declaration}[%
- v2.01!Bugfix für Schriftstärke auf Titelseite,%
- v2.02!Unterstützung der Schriftelemente \Font*{titlehead}{,}
- \Font*{subject}{,} \Font*{title}{,} \Font*{subtitle}{,} \Font*{author}{,}
- \Font*{date}{,} \Font*{publishers}{,} \Font*{dedication}{,}
+ v2.01:Bugfix für Schriftstärke auf Titelseite;%
+ v2.02:Unterstützung der Schriftelemente \Font*{titlehead},
+ \Font*{subject}, \Font*{title}, \Font*{subtitle}, \Font*{author},
+ \Font*{date}, \Font*{publishers}, \Font*{dedication},
\Font*{titlepage} und \Font*{thesis}%
-]{\Macro{maketitle}\OLParameter{Seitenzahl}}
+]{\Macro{maketitle}[\OLParameter{Seitenzahl}]}
\begin{Declaration}[v2.02]{%
- \Key{\Macro{maketitle}}{pagenumber}[\PName{Seitenzahl}]%
+ \Key{\Macro{maketitle}}{pagenumber=\PName{Seitenzahl}}%
}
-\begin{Declaration}[v2.02]{\Key{\Macro{maketitle}}{cdfont}[\PSet]}{%
- \see*{\Option{cdfont}'ppage'}%
+\begin{Declaration}[v2.02]{\Key{\Macro{maketitle}}{cdfont=\PSet}}{%
+ \seeref{\Option{cdfont}'ppage'}%
}
-\begin{Declaration}[v2.03]{\Key{\Macro{maketitle}}{cdhead}[\PSet]}{%
- \see*{\Option{cdhead}'ppage'}%
+\begin{Declaration}[v2.03]{\Key{\Macro{maketitle}}{cdhead=\PSet}}{%
+ \seeref{\Option{cdhead}'ppage'}%
}
-\begin{Declaration}[v2.03]{\Key{\Macro{maketitle}}{cdfoot}[\PSet]}{%
- \see*{\Option{cdfoot}'ppage'}%
+\begin{Declaration}[v2.03]{\Key{\Macro{maketitle}}{cdfoot=\PSet}}{%
+ \seeref{\Option{cdfoot}'ppage'}%
}
\begin{Declaration}[v2.03]{%
- \Key{\Macro{maketitle}}{headlogo}[\PName{Dateiname}]%
-}{\see*{\Macro{headlogo}'ppage'}}
+ \Key{\Macro{maketitle}}{headlogo=\PName{Dateiname}}%
+}{\seeref{\Macro{headlogo}'ppage'}}
\begin{Declaration}[v2.03]{%
- \Key{\Macro{maketitle}}{footlogo}[\PName{Dateinamenliste}]
-}{\see*{\Macro{footlogo}'ppage'}}
-\begin{Declaration}[v2.03]{\Key{\Macro{maketitle}}{ddc}[\PSet]}{%
- \see*{\Option{ddc}'ppage'}%
+ \Key{\Macro{maketitle}}{footlogo=\PName{Dateinamenliste}}
+}{\seeref{\Macro{footlogo}'ppage'}}
+\begin{Declaration}[v2.03]{\Key{\Macro{maketitle}}{ddc=\PSet}}{%
+ \seeref{\Option{ddc}'ppage'}%
}
-\begin{Declaration}[v2.03]{\Key{\Macro{maketitle}}{ddchead}[\PSet]}{%
- \see*{\Option{ddchead}'ppage'}%
+\begin{Declaration}[v2.03]{\Key{\Macro{maketitle}}{ddchead=\PSet}}{%
+ \seeref{\Option{ddchead}'ppage'}%
}
-\begin{Declaration}[v2.03]{\Key{\Macro{maketitle}}{ddcfoot}[\PSet]}{%
- \see*{\Option{ddcfoot}'ppage'}%
+\begin{Declaration}[v2.03]{\Key{\Macro{maketitle}}{ddcfoot=\PSet}}{%
+ \seeref{\Option{ddcfoot}'ppage'}%
}
\printdeclarationlist%
-\index{Layout!Titel}%
+\index{Titel|!(}%
\index{Satzspiegel!doppelseitig}%
%
-Der Befehl \Macro{maketitle} setzt für \Option{cdtitle}[false] den normalen
-\KOMAScript"=Titel{}, ansonsten wird die Titelseite im \CD der \TnUD erzeugt.
-Die letztere Variante ist im Vergleich zum Standardtitel um eine Vielzahl von
+Der Befehl \Macro{maketitle} setzt für \Option{cdtitle=false} den normalen
+\KOMAScript"=Titel{}, ansonsten wird die Titelseite im \TUDCD erzeugt. Die
+letztere Variante ist im Vergleich zum Standardtitel um eine Vielzahl von
Feldern erweitert worden und erlaubt insbesondere die Angabe von Daten für das
Deckblatt einer akademischen Abschlussarbeit. Die einzelnen Felder werden
später in diesem \autorefname erläutert. Wird das Dokument doppelseitig und mit
rechts öffnenden Kapiteln gesetzt,%
\footnote{%
- \Option{twoside} und \Option{open}[right], Standard für \Class{tudscrbook}
+ \KOMAScript-Optionen \Option{twoside=true}(\Package{typearea})'none' und
+ \Option{open=right}(\Package{koma-script})'none', Standard für
+ \Class{tudscrbook}%
}
-so wird zusätzlich die Option \Option{clearcolor} beachtet. Dies gilt es
-insbesondere bei der Verwendung der Befehle \Macro{uppertitleback} respektive
-\Macro{lowertitleback} für die Titelrückseite zu beachten.
+so wird zusätzlich die Option \Option{clearcolor} einbezogen. Dies gilt es
+insbesondere bei den Befehlen \Macro{uppertitleback}(\Package{koma-script})
+respektive \Macro{lowertitleback}(\Package{koma-script}) für die Titelrückseite
+zu beachten.
Das optionale Argument erlaubt~-- ebenso wie bei den \KOMAScript"=Klassen~--
die Änderung der Seitenzahl der Titelseite. Diese wird jedoch nicht ausgegeben,
sondern beeinflusst lediglich die Zählung. Sie sollten hier unbedingt eine
ungerade Zahl wählen, da sonst die gesamte Zählung durcheinander gerät.
-Wird eine Titelseite (\Option{titlepage}[true]) im \CD der \TnUD gesetzt
-(\Option{cdtitle}[true]), können auch die weiterhin aufgeführten Parameter im
-optionalen Argument verwendet werden. Diese entsprechen in ihrem Verhalten den
-gleichnamigen Optionen respektive Befehlen, wirken sich jedoch nur lokal und
-einzig auf die Titelseite aus. So kann beispielsweise die Nutzung eines
-\DDC-Logos auf den Titel beschränkt bleiben.
+Wird eine Titelseite
+(\KOMAScript-Option \Option{titlepage=true}(\Package{koma-script})'none') im
+\TUDCD gesetzt (\Option{cdtitle=true}), können auch die weiterhin aufgeführten
+Parameter im optionalen Argument verwendet werden. Diese entsprechen in ihrem
+Verhalten den gleichnamigen Optionen respektive Befehlen, wirken sich jedoch
+nur lokal und einzig auf die Titelseite aus. So kann beispielsweise die Nutzung
+eines \DDC-Logos auf den Titel beschränkt bleiben.
\end{Declaration}
\end{Declaration}
\end{Declaration}
@@ -1280,99 +1760,108 @@ einzig auf die Titelseite aus. So kann beispielsweise die Nutzung eines
\end{Declaration}
\begin{Declaration}{%
- \Macro{maketitleonecolumn}\OLParameter{Seitenzahl}\Parameter{Einspaltentext}%
+ \Macro{maketitleonecolumn}[%
+ \OLParameter{Seitenzahl}\Parameter{Einspaltentext}%
+ ]%
}
\printdeclarationlist%
-\index{Layout!Titel}%
\index{Satzspiegel!doppelseitig}%
-\index{Zweispaltensatz}%
-%
-Im zweispaltigen Satz (\Option{twocolumn}) wird mit \Macro{maketitle} die
-Titelseite selbst immer einspaltig gesetzt. Direkt nach dem Titel folgt
-normalerweise der zweispaltige Fließtext. Mit dem \TUDScript-Befehl
-\Macro{maketitleonecolumn} kann nach dem Titel zusätzlich noch weiterer
-Inhalt~-- beispielsweise eine Zusammenfassung beziehungsweise eine
-Kurfassung~-- einspaltig gesetzt werden.
-
-Wird der Befehl bei einer Titelseite (\Option{titlepage}[true]) verwendet, wird
-der Inhalt des Argumentes (\PName{Einspaltentext}) direkt nach dieser auf einer
-oder gegebenenfalls mehreren neuen Seiten ebenfalls einspaltig ausgegeben.
-Kommt jedoch ein Titelkopf (\Option{titlepage}[false]) 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 \PName{Einspaltentext} des
-obligatorischen Argumentes wird direkt danach und ohne zusätzlichen Umbruch auf
-das zweispaltige Layout umgeschaltet.
+\index{Satzspiegel!zweispaltig}%
+%
+Im zweispaltigen Satz
+(Klassenoption~\Option{twocolumn}(\Package{typearea})'none'|declare|) wird mit
+\Macro{maketitle} die Titelseite selbst immer einspaltig gesetzt. Direkt nach
+dem Titel folgt normalerweise der zweispaltige Fließtext. Mit dem Befehl
+\Macro{maketitleonecolumn} kann nach dem Titel zusätzlich weiterer Inhalt~--
+zum Beispiel eine Zusammenfassung respektive eine Kurzfassung~-- einspaltig
+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
+(\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.
Der optionale Parameter von \Macro{maketitleonecolumn} kann äquivalent zu
\Macro{maketitle} für die Änderung der Seitenzahl, der verwendeten Schrift
sowie zur Anpassung von Kopf und Fuß verwendet werden. Dabei ist zu beachten,
dass ein Großteil der Parameter nur Auswirkungen haben, falls eine Titelseite
-(\Option{titlepage}[true]) verwendet wird.
+(\KOMAScript-Option \Option{titlepage=true}(\Package{koma-script})'none')
+verwendet wird.
\end{Declaration}
\begin{Declaration}[%
- v2.02!Umschlagseite für Layout ohne \noexpand\CD hinzugefügt,%
- v2.02!Unterstützung der Schriftelemente \Font*{titlehead}{,}
- \Font*{subject}{,} \Font*{title}{,} \Font*{subtitle}{,} \Font*{author}{,}
- \Font*{publishers}{,} \Font*{titlepage} und \Font*{thesis}%
-]{\Macro{makecover}\OLParameter{Seitenzahl}}
+ v2.02:Umschlagseite für Layout ohne \noexpand\CD hinzugefügt;%
+ v2.02:Unterstützung der Schriftelemente \Font*{titlehead},
+ \Font*{subject}, \Font*{title}, \Font*{subtitle}, \Font*{author},
+ \Font*{publishers}, \Font*{titlepage} und \Font*{thesis}%
+]{\Macro{makecover}[\OLParameter{Seitenzahl}]}
\begin{Declaration}[v2.02]{%
- \Key{\Macro{makecover}}{pagenumber}[\PName{Seitenzahl}]%
+ \Key{\Macro{makecover}}{pagenumber=\PName{Seitenzahl}}%
}
-\begin{Declaration}{\Key{\Macro{makecover}}{cdgeometry}[\PBoolean]}
-\begin{Declaration}[v2.02]{\Key{\Macro{makecover}}{cdfont}[\PSet]}{%
- \see*{\Option{cdfont}'ppage'}%
+\begin{Declaration}{\Key{\Macro{makecover}}{cdgeometry=\PBoolean}}
+\begin{Declaration}[v2.02]{\Key{\Macro{makecover}}{cdfont=\PSet}}{%
+ \seeref{\Option{cdfont}'ppage'}%
}
-\begin{Declaration}[v2.03]{\Key{\Macro{makecover}}{cdhead}[\PSet]}{%
- \see*{\Option{cdhead}'ppage'}%
+\begin{Declaration}[v2.03]{\Key{\Macro{makecover}}{cdhead=\PSet}}{%
+ \seeref{\Option{cdhead}'ppage'}%
}
-\begin{Declaration}[v2.03]{\Key{\Macro{makecover}}{cdfoot}[\PSet]}{%
- \see*{\Option{cdfoot}'ppage'}%
+\begin{Declaration}[v2.03]{\Key{\Macro{makecover}}{cdfoot=\PSet}}{%
+ \seeref{\Option{cdfoot}'ppage'}%
}
\begin{Declaration}[v2.03]{%
- \Key{\Macro{makecover}}{headlogo}[\PName{Dateiname}]%
-}{\see*{\Macro{headlogo}'ppage'}}
+ \Key{\Macro{makecover}}{headlogo=\PName{Dateiname}}%
+}{\seeref{\Macro{headlogo}'ppage'}}
\begin{Declaration}[v2.03]{%
- \Key{\Macro{makecover}}{footlogo}[\PName{Dateinamenliste}]
-}{\see*{\Macro{footlogo}'ppage'}}
-\begin{Declaration}[v2.03]{\Key{\Macro{makecover}}{ddc}[\PSet]}{%
- \see*{\Option{ddc}'ppage'}%
+ \Key{\Macro{makecover}}{footlogo=\PName{Dateinamenliste}}
+}{\seeref{\Macro{footlogo}'ppage'}}
+\begin{Declaration}[v2.03]{\Key{\Macro{makecover}}{ddc=\PSet}}{%
+ \seeref{\Option{ddc}'ppage'}%
}
-\begin{Declaration}[v2.03]{\Key{\Macro{makecover}}{ddchead}[\PSet]}{%
- \see*{\Option{ddchead}'ppage'}%
+\begin{Declaration}[v2.03]{\Key{\Macro{makecover}}{ddchead=\PSet}}{%
+ \seeref{\Option{ddchead}'ppage'}%
}
-\begin{Declaration}[v2.03]{\Key{\Macro{makecover}}{ddcfoot}[\PSet]}{%
- \see*{\Option{ddcfoot}'ppage'}%
+\begin{Declaration}[v2.03]{\Key{\Macro{makecover}}{ddcfoot=\PSet}}{%
+ \seeref{\Option{ddcfoot}'ppage'}%
}
\printdeclarationlist%
+\index{Umschlagseite|!(}%
%
Eine Umschlagseite wird zumeist für gebundene Abschlussarbeiten verlangt, um
diese beispielsweise für einen Prägedruck auf dem Buchdeckel zu verwenden.
Deshalb ist die farbige Ausprägung der Umschlagseite auch deaktiviert, wenn
-diese für das restliche Dokument aktiv ist (\Option{cd}[color]). Dies kann
-jedoch jederzeit mit \Option{cdcover}[\PSet] überschrieben werden.
+diese für das restliche Dokument aktiv ist (\Option{cd=color}). Dies kann
+jedoch jederzeit mit \Option{cdcover=\PSet} überschrieben werden.
-Wird \Option{cdcover}[true] gewählt, so wird die Umschlagseite im \CD der
-\TnUD gesetzt. Auf dieser werden der Titel des Dokumentes, die Typisierung
+Wird \Option{cdcover=true} gewählt, so wird die Umschlagseite im \TUDCD
+gesetzt. Auf dieser werden der Titel des Dokumentes, die Typisierung
durch \Macro{thesis} und/oder \Macro{subject} sowie der Autor oder respektive
-die Autoren und gegebenenfalls der mit \Macro{publishers} angegebene Verlag
-ausgegeben.
+die Autoren und gegebenenfalls der mit \Macro{publishers}(\Package{koma-script})
+angegebene Verlag ausgegeben.
\ChangedAt{v2.02}
-Für die Einstellung \Option{cdcover}[false] wird lediglich der normale
+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
+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},
-\Macro{coverpageleftmargin}, \Macro{coverpagerightmargin} sowie
-\Macro{coverpagebottommargin} durch den Nutzer frei angepasst werden. Mehr dazu
-ist im \KOMAScript"=Handbuch \scrguide zu finden.
+diese Einstellung die Seitenränder mit den Befehlen
+\Macro{coverpagetopmargin}(\Package{koma-script})'none',
+\Macro{coverpageleftmargin}(\Package{koma-script})'none',
+\Macro{coverpagerightmargin}(\Package{koma-script})'none' sowie
+\Macro{coverpagebottommargin}(\Package{koma-script})'none'
+durch den Nutzer frei angepasst werden. Mehr dazu ist im \scrguide zu finden.
Außerdem kann mit dem optionalen Argument die Seitenzahl der Umschlagseite
geändert werden. Diese wird jedoch nicht ausgegeben, sondern beeinflusst
@@ -1381,7 +1870,7 @@ sonst die gesamte Zählung durcheinander gerät. Die weiterhin aufgeführten
Parameter entsprechen in ihrem Verhalten beziehungsweise ihrer Funktion den
gleichnamigen Optionen respektive Befehlen, wirken sich jedoch nur lokal und
einzig auf die Umschlagseite aus.
-
+\index{Umschlagseite|!)}%
\end{Declaration}
\end{Declaration}
\end{Declaration}
@@ -1394,27 +1883,48 @@ einzig auf die Umschlagseite aus.
\end{Declaration}
\end{Declaration}
-\begin{Declaration}{\Macro{titledelimiter}\Parameter{Trennzeichen}}
+\begin{Declaration}{\Macro{title}[\Parameter{Titel}]}
+\begin{Declaration}[%
+ v2.01:Bugfix für Schriftstärke bei Verwendung des Untertitels%
+]{\Macro{subtitle}[\Parameter{Untertitel}]}
\printdeclarationlist%
-\index{Titel!Felder}\index{Titel!Trennzeichen}%%
+\index{Titel!Felder|(}%
%
-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 (\see*{\autoref{sec:localization}}) vorangestellt. Dazwischen
+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.
+\end{Declaration}
+\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.
\end{Declaration}
-\begin{Declaration}{\Macro{author}\Parameter{Autor(en)}}
-\begin{Declaration}{\Macro{authormore}\Parameter{Autorenzusatz}}
-\begin{Declaration}{\Macro{dateofbirth}\Parameter{Geburtsdatum}}
-\begin{Declaration}{\Macro{placeofbirth}\Parameter{Geburtsort}}
-\begin{Declaration}{\Macro{matriculationnumber}\Parameter{Matrikelnummer}}
-\begin{Declaration}{\Macro{matriculationyear}\Parameter{Immatrikulationsjahr}}
+\begin{Declaration}{\Macro{author}[\Parameter{Autor(en)}]}
+\begin{Declaration}{\Macro{authormore}[\Parameter{Autorenzusatz}]}
+\begin{Declaration}{\Macro{dateofbirth}[\Parameter{Geburtsdatum}]}
+\begin{Declaration}{\Macro{placeofbirth}[\Parameter{Geburtsort}]}
+\begin{Declaration}{\Macro{matriculationnumber}[\Parameter{Matrikelnummer}]}
+\begin{Declaration}{\Macro{matriculationyear}[\Parameter{Immatrikulationsjahr}]}
+\begin{Declaration}[%
+ v2.05:Für Titel verwendbar%
+]{\Macro{course}[\Parameter{Studiengang}]}
+\begin{Declaration}[%
+ v2.02;%
+ v2.05:Für Titel verwendbar%
+]{\Macro{discipline}[\Parameter{Studienrichtung}]}
\printdeclarationlist%
-\index{Titel!Felder}\index{Autorenangaben|?}%
+\index{Autorenangaben|?}%
+\index{Kollaboratives Schreiben}%
\index{Datum!Geburtsdatum|?}%
%
Mit dem Befehl \Macro{author} wird der Autor angegeben. Innerhalb des
@@ -1427,9 +1937,15 @@ 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. Dafür der Befehl \Macro{printdate} aus
-diesem Paket verwendet. Die weiteren Befehle als zusätzliche Angabe erklären
-sich von selbst.
+\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.
+\end{Declaration}
+\end{Declaration}
\end{Declaration}
\end{Declaration}
\end{Declaration}
@@ -1439,8 +1955,7 @@ sich von selbst.
\begin{Declaration}{\Macro{and}}
\printdeclarationlist%
-\index{Kollaboratives Schreiben|?}\index{Titel!Kollaboratives Schreiben}%
-\index{Autorenangaben!kollaborativ}
+\index{Kollaboratives Schreiben|?}%
%
Dieser Befehl wird sowohl bei den \hologo{LaTeX}"=Standardklassen als auch bei
den \KOMAScript"=Klassen lediglich auf der Titelseite dazu verwendet, mehrere
@@ -1452,25 +1967,29 @@ Abschlussarbeiten innerhalb des Befehls \Macro{author} möglich ist. Außerdem
kann er noch im Argument von \Macro{supervisor}, \Macro{referee} sowie
\Macro{advisor} verwendet werden, um mehrere Betreuer beziehungsweise Gutachter
und Fachreferenten anzugeben. Er ist dabei nicht auf die Verwendung für den
-Titel allein beschränkt. Auch bei den Umgebungen \Environment{task},
-\Environment{evaluation} und \Environment{notice} kann er eingesetzt werden.
+Titel allein beschränkt sondern kann auch bei der Angabe von Personen in den
+entsprechenden Feldern der Umgebungen
+\begin{Bundle}{\Package{tudscrsupervisor}}
+\Environment{task}, \Environment{evaluation} und \Environment{notice}
+\end{Bundle}
+aus dem Paket \Package{tudscrsupervisor} eingesetzt werden.
\end{Declaration}
%
\begin{Example}
-Angenommen, es soll eine Abschussarbeit von zwei unterschiedlichen Autoren in
-kollaborativer Gemeinschaft erstellt werden, so könnte man die Autorenangaben
+Angenommen, es soll eine Abschlussarbeit von zwei unterschiedlichen Autoren in
+kollaborativer Gemeinschaft erstellt werden, so lässt sich die Autorenangaben
folgendermaßen gestalten:
\begin{Code}
\author{%
- Mickey Mouse
- \matriculationnumber{12345678}
- \dateofbirth{2.1.1990}
- \placeofbirth{Dresden}
+ Mickey Mouse%
+ \matriculationnumber{12345678}%
+ \dateofbirth{2.1.1990}%
+ \placeofbirth{Dresden}%
\and%
- Donald Duck
- \matriculationnumber{87654321}
- \dateofbirth{1.2.1990}
- \placeofbirth{Berlin}
+ Donald Duck%
+ \matriculationnumber{87654321}%
+ \dateofbirth{1.2.1990}%
+ \placeofbirth{Berlin}%
}
\matriculationyear{2010}
\end{Code}
@@ -1480,11 +1999,59 @@ von \Macro{author} werden den jeweiligen, mit \Macro{and} getrennten Autoren
zugeordnet. Mehr dazu ist im Minimalbeispiel in \autoref{sec:exmpl:thesis}.
\end{Example}
-\begin{Declaration}{\Macro{thesis}\Parameter{Typisierung}}
-\begin{Declaration}{\Macro{subject}\Parameter{Typisierung}}
+\begin{Declaration}[%
+ v2.05:Angabe von Parametern für Prä- und Suffix bei Datumsausgabe möglich;
+]{\Macro{date}[\OLParameter{Suffix}\Parameter{Datum}]}
+\begin{Declaration}[v2.05]{%
+ \Macro{date*}[\OLParameter{Suffix}\Parameter{Datum}]%
+}
+\begin{Declaration}[v2.05]{%
+ \Key{\Macro{date}}{before=\PName{Präfix}}%
+}
+\begin{Declaration}[v2.05]{%
+ \Key{\Macro{date}}{after=\PName{Suffix}}%
+}
+\begin{Declaration}[v2.05]{%
+ \Key{\Macro{date}}{place=\PName{Ort}}%
+}
+\begin{Declaration}{\Macro{defensedate}[\Parameter{Verteidigungsdatum}]}
+\printdeclarationlist%
+\index{Datum|?}%
+\index{Datum!Abgabedatum|?}%
+\index{Datum!Verteidigungsdatum|?}%
+%
+Mit dem Befehl \Macro{date} kann das Datum angegeben werden.
+\ChangedAt{v2.05} Über das optionale Argument können die beiden Parameter
+\Key{\Macro{date}}{before} und \Key{\Macro{date}}{after} genutzt werden, um
+ergänzende Angaben vor beziehungsweise nach dem eigentlichen Datum auszugeben.
+Die Sternversion \Macro{date*} setzt den mit \Macro{place} angegebenen Ort vor
+das Datum. Dies geschieht auch für die normale Version von \Macro{date}, wenn
+der Parameter \Key{\Macro{date}}{place} verwendet wird.
+
+Das Datum wird bei normalen Dokumenten direkt nach dem Autor respektive den
+Autoren ausgegeben. Bei Abschlussarbeiten~-- aktiviert durch die Verwendung von
+\Macro{thesis} oder \Option{subjectthesis} in Verbindung mit \Macro{subject}~--
+erscheint dieses am Ende der Titelseite als Abgabedatum. Außerdem kann in
+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.
+\end{Declaration}
+\end{Declaration}
+\end{Declaration}
+\end{Declaration}
+\end{Declaration}
+\end{Declaration}
+
+\begin{Declaration}{\Macro{thesis}[\Parameter{Typisierung}]}
+\begin{Declaration}{\Macro{subject}[\Parameter{Typisierung}]}
\printdeclarationlist%
-\index{Titel!Felder}%
-\index{Abschlussarbeit|!}\index{Typisierung}%
+\index{Abschlussarbeit|!}%
+\index{Typisierung}%
%
Mit diesen beiden Befehlen kann der Typ der Dokumentes beziehungsweise der
Abschlussarbeit angegeben werden. Während der Befehl \Macro{thesis} den Inhalt
@@ -1506,50 +2073,51 @@ der genannten Werte führt immer dazu, dass das Dokument als Abschlussarbeiten
erkannt und die erweiterte Titelseite aktiviert wird. Gleichzeitig wird damit
die Option \Option{subjectthesis} beeinflusst. Sollte vom Anwender kein
explizites Verhalten für \Option{subjectthesis} definiert sein, so führt die
-Verwendung von \Macro{thesis}\Parameter{Wert} zu \Option{subjectthesis}[false]
-und \Macro{subject}\Parameter{Wert} zu \Option{subjectthesis}[true].
+Verwendung von \Macro{thesis}[\Parameter{Wert}] zu \Option{subjectthesis=false}
+und \Macro{subject}[\Parameter{Wert}] zu \Option{subjectthesis=true}.
%
\begin{table}
-\index{Bezeichner}\index{Bezeichner!Typisierung}%\\
-\index{Abschlussarbeit!Typisierung}%
+\index{Bezeichner}%
+\index{Typisierung}%
\caption{%
Spezielle Werte zur Typisierung des Dokumentes für
\Macro{thesis} und \Macro{subject}%
-}
-\label{tab:thesis}%
+}%
+\tudhyperdef{tab:thesis}%
+%
\centering%
-\makeatletter%
-\def\@tempa#1{%
- \Term{#1} & \@nameuse{#1} & \selectlanguage{english}\@nameuse{#1}%
+\newcommand*\typecast[2]{%
+ \PValue{#1} & \Term{#2} & \csuse{#2} & \selectlanguage{english}\csuse{#2}
\tabularnewline%
}%
\begin{tabular}{llll}
\toprule
- \textbf{Wert} & \textbf{Bezeichner}
- & \textbf{Deutsch} & \textbf{Englisch} \tabularnewline
+ \textbf{Wert} & \textbf{Bezeichner} & \textbf{Deutsch} & \textbf{Englisch}
+ \tabularnewline
\midrule
- diss & \@tempa{dissertationname}
- doctoral & \@tempa{dissertationname}
- phd & \@tempa{dissertationname}
- diploma & \@tempa{diplomathesisname}
- master & \@tempa{masterthesisname}
- bachelor & \@tempa{bachelorthesisname}
- student & \@tempa{studentresearchname}
- project & \@tempa{projectpapername}
- seminar & \@tempa{seminarpapername}
- research & \@tempa{researchname}
- log & \@tempa{logname}
- report & \@tempa{reportname}
- internship & \@tempa{internshipname}
+ \typecast{diss}{dissertationname}
+ \typecast{doctoral}{dissertationname}
+ \typecast{phd}{dissertationname}
+ \typecast{diploma}{diplomathesisname}
+ \typecast{master}{masterthesisname}
+ \typecast{bachelor}{bachelorthesisname}
+ \typecast{student}{studentthesisname}
+ \typecast{evidence}{studentresearchname}
+ \typecast{project}{projectpapername}
+ \typecast{seminar}{seminarpapername}
+ \typecast{term}{termpapername}
+ \typecast{research}{researchname}
+ \typecast{log}{logname}
+ \typecast{report}{reportname}
+ \typecast{internship}{internshipname}
\bottomrule
\end{tabular}
-\makeatother%
\end{table}
\end{Declaration}
\end{Declaration}
-\begin{Declaration}{\Option{subjectthesis}[\PBoolean]}%
- [false][\Macro{subject}\Parameter{\autoref{tab:thesis}}:true]
+\begin{Declaration}{\Option{subjectthesis=\PBoolean}}%
+ [false][\Macro{subject}[\Parameter{\autoref{tab:thesis}}]:true]
\printdeclarationlist%
%
Der Befehl \Macro{thesis} dient den \TUDScript"=Hauptklassen zur Unterscheidung
@@ -1557,22 +2125,22 @@ zwei unterschiedlicher Ausprägungen der Titelseite und ist speziell für
Abschlussarbeiten gedacht. Außerdem kann bei der Nutzung spezieller Werte
aus \autoref{tab:thesis} innerhalb des Argumentes von \Macro{subject} ebenfalls
das Verhalten für Abschlussarbeiten aktiviert werden, wobei hierdurch die
-Einstellung \Option{subjectthesis}[true] automatisch vorgenommen wird.
+Einstellung \Option{subjectthesis=true} automatisch vorgenommen wird.
-Für den Standardfall~-- bekanntlich \Option{subjectthesis}[false]~-- wird der
+Für den Standardfall~-- bekanntlich \Option{subjectthesis=false}~-- wird der
durch \Macro{thesis} gegebene Typ der Abschlussarbeit sowie der gegebenenfalls
durch \Macro{graduation} gesetzte angestrebte Abschluss in großen Lettern und
sehr zentral auf der Titelseite gesetzt. Die Verwendung von \Macro{subject} ist
hierbei weiterhin möglich.
%
-Wird die Option mit \Option{subjectthesis}[true] aktiviert, so wird die mit
+Wird die Option mit \Option{subjectthesis=true} aktiviert, so wird die mit
\Macro{thesis} gesetzte Bezeichnung nicht unterhalb sondern oberhalb des Titels
an der Stelle von \Macro{subject} ausgegeben. Der mit \Macro{graduation}
angegebene Abschluss wird weiterhin unter dem Titel, allerdings in schlankerer
Schrift gesetzt. Eine etwaige Verwendung des Befehls \Macro{subject} wird in
diesem Fall ignoriert.
%
-\begin{values}
+\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
@@ -1580,13 +2148,14 @@ diesem Fall ignoriert.
\itemtrue*
Der Typ der Abschlussarbeit (\Macro{thesis}) wird oberhalb des Titels in der
Betreffzeile gesetzt. Der angestrebte Abschluss (\Macro{graduation}) wird
- zentral in der schlankeren \Univers ausgegeben.
+ zentral in \Univers ausgegeben.
\end{values}
\end{Declaration}
-\begin{Declaration}[v2.02]{\Macro{graduation}\OParameter{Kurzform}\Parameter{Grad}}
+\begin{Declaration}[v2.02]{%
+ \Macro{graduation}[\OParameter{Kurzform}\Parameter{Grad}]%
+}
\printdeclarationlist%
-\index{Titel!Felder}%
%
Mit diesem Befehl wird der angestrebte akademische Grad auf der Titelseite
ausgegeben. Da dies nur mit einer Abschlussarbeit erreicht werden kann erfolgt
@@ -1594,21 +2163,21 @@ die Ausgabe nur, wenn entweder \Macro{thesis} oder \Macro{subject} verwendet
wurde, wobei bei letzterem Befehl im Argument zwingend ein Wert aus
\autoref{tab:thesis} verwendet werden muss.
-Die Option \Option{subjectthesis} hat Einfluss auf die Ausgabe auf der
-Titelseite. Für die Einstellung \Option{subjectthesis}[false] wird der
-Abschuss~-- ähnlich wie
-der Typ der Abschlussarbeit~-- zentral und in relativ großen Lettern gesetzt.
-Für \Option{subjectthesis}[true] erfolgt die Ausgabe kleiner und in weniger
-starken Buchstaben.
+Bei der Ausgabe des akademischen Grades hat die Option \Option{subjectthesis}
+Einfluss auf die Ausgabe auf der Titelseite. Bei \Option{subjectthesis=false}
+wird der Abschluss~-- ähnlich wie der Typ der Abschlussarbeit~-- zentral und in
+relativ großen Lettern gesetzt. Für \Option{subjectthesis=true} erfolgt die
+Ausgabe kleiner und in weniger starken Buchstaben.
\end{Declaration}
-\begin{Declaration}{\Macro{supervisor}\Parameter{Name(n)}}
-\begin{Declaration}{\Macro{referee}\Parameter{Name(n)}}
-\begin{Declaration}{\Macro{advisor}\Parameter{Name(n)}}
-\begin{Declaration}{\Macro{professor}\Parameter{Name}}
+\begin{Declaration}{\Macro{supervisor}[\Parameter{Name(n)}]}
+\begin{Declaration}{\Macro{referee}[\Parameter{Name(n)}]}
+\begin{Declaration}{\Macro{advisor}[\Parameter{Name(n)}]}
+\begin{Declaration}{\Macro{professor}[\Parameter{Name}]}
\printdeclarationlist%
-\index{Titel!Felder}%
-\index{Betreuer|?}\index{Gutachter|?}\index{Referent|?}%
+\index{Betreuer|?}%
+\index{Gutachter|?}%
+\index{Referent|?}%
%
Mit \Macro{supervisor}, \Macro{referee} und \Macro{advisor} werden die Betreuer
einer Abschlussarbeit beziehungsweise die Gutachter und Fachreferenten einer
@@ -1616,50 +2185,24 @@ 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}{\Macro{date}\OParameter{Ergänzung}\Parameter{Datum}}
-\begin{Declaration}{\Macro{defensedate}\Parameter{Verteidigungsdatum}}
+\begin{Bundle}{\Package{koma-script}}
+\begin{Declaration}{\Macro{extratitle}[\Parameter{Schmutztitel}]}
+\begin{Declaration}{\Macro{titlehead}[\Parameter{Kopf}]}
+\begin{Declaration}{\Macro{publishers}[\Parameter{Verlag}]}
+\begin{Declaration}{\Macro{thanks}[\Parameter{Fußnote}]}
+\begin{Declaration}{\Macro{uppertitleback}[\Parameter{Titelrückseitenkopf}]}
+\begin{Declaration}{\Macro{lowertitleback}[\Parameter{Titelrückseitenfuß}]}
+\begin{Declaration}{\Macro{dedication}[\Parameter{Widmung}]}
\printdeclarationlist%
-\index{Titel!Felder}
-\index{Datum|?}\index{Datum!Verteidigungsdatum|?}%
-%
-Mit \Macro{date} kann das Datum angegeben werden. Das optionale Argument
-erlaubt eine zusätzliche Anmerkung, welche nach dem Datum ausgegeben wird. Das
-Datum wird bei normalen Dokumenten direkt nach dem Autor beziehungsweise den
-Autoren ausgegeben. Bei Abschlussarbeiten~-- aktiviert durch die Verwendung von
-\Macro{thesis} oder \Option{subjectthesis}~-- erscheint dieses am Ende der
-Titelseite als Abgabedatum. Außerdem kann in 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 den Befehl \Macro{printdate} aus diesem Paket für
-alle Datumsfelder des Dokumentes und folglich auch für die beiden Felder
-\Macro{date} und \Macro{defensedate} verwendet.
-\end{Declaration}
-\end{Declaration}
-
-\begin{Declaration}{\Macro{extratitle}\Parameter{Schmutztitel}}
-\begin{Declaration}{\Macro{titlehead}\Parameter{Kopf}}
-\begin{Declaration}{\Macro{title}\Parameter{Titel}}
-\begin{Declaration}[%
- v2.01!Bugfix für Schriftstärke bei Verwendung des Untertitels%
-]{\Macro{subtitle}\Parameter{Untertitel}}
-\begin{Declaration}{\Macro{publishers}\Parameter{Verlag}}
-\begin{Declaration}{\Macro{thanks}\Parameter{Fußnote}}
-\begin{Declaration}{\Macro{uppertitleback}\Parameter{Titelrückseitenkopf}}
-\begin{Declaration}{\Macro{lowertitleback}\Parameter{Titelrückseitenfuß}}
-\begin{Declaration}{\Macro{dedication}\Parameter{Widmung}}
-\printdeclarationlist%
-\index{Titel!Felder}%
%
Diese Befehle entsprechen den in ihrem Verhalten den originalen Pendants der
-\KOMAScript"=Klassen{} und sollen hier der Vollständigkeit halber erwähnt
-werden.
+\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
@@ -1669,20 +2212,17 @@ der Typisierung und des Titels ausgegeben werden. Da die vertikale Position des
Dokumenttitels durch das \CD fest vorgegeben ist, kann es~-- im Gegensatz zu
den \KOMAScript"=Klassen~-- passieren, dass der Kopf des Haupttitels selbst in
die Kopfzeile ragt. Dies wird durch die \TUDScript-Klassen nicht geprüft und
-muss gegebenenfalls vom Anwender kontrolliert werden.
-
-Die Befehle \Macro{title} und \Macro{subtitle} bedürfen keiner weiteren
-Erklärung. Anzumerken ist, dass sowohl Titel als auch Untertitel normalerweise
-in Majuskeln und \DIN gesetzt werden. Der mit dem Befehl \Macro{publishers}
-definierte Inhalt muss nicht zwingende einen Verlag bezeichnen sondern kann
-auch andere Informationen beinhalten, welche am Ende der Titelseite ausgegeben
-werden sollen.
-
-Fußnoten werden auf dem Titel nicht mit \Macro{footnote}, sondern mit der
-Anweisung \Macro{thanks} erzeugt. Diese dienen in der Regel für Anmerkungen bei
-Titel oder den Autoren. Als Fußnotenzeichen werden dabei Symbole statt Zahlen
-verwendet. Der Befehl \Macro{thanks} kann nur innerhalb des Arguments einer
-der Anweisungen für die Titelseite wie beispielsweise \Macro{author} oder
+muss gegebenenfalls vom Anwender kontrolliert werden. Der mit dem Befehl
+\Macro{publishers} definierte Inhalt muss nicht zwingende einen Verlag
+bezeichnen sondern kann auch andere Informationen beinhalten, welche am Ende
+der Titelseite ausgegeben werden sollen.
+
+Fußnoten werden auf dem Titel nicht mit
+\Macro{footnote}(\Package{koma-script})'none', sondern mit der Anweisung
+\Macro{thanks} erzeugt. Diese dienen in der Regel für Anmerkungen bei Titel
+oder den Autoren. Als Fußnotenzeichen werden dabei Symbole statt Zahlen
+verwendet. Der Befehl \Macro{thanks} kann nur innerhalb des Arguments einer der
+Anweisungen für die Titelseite wie beispielsweise \Macro{author} oder
\Macro{title} verwendet werden.
\index{Satzspiegel!doppelseitig}%
@@ -1695,6 +2235,7 @@ Mit \Macro{dedication} lässt eine separate Widmungsseite zentriert und in etwas
größerer Schrift setzen. Die Rückseite ist~-- wie auch die des Schmutztitels~--
grundsätzlich leer. Die Widmung wird mit der restlichen Titelei ausgegeben und
muss daher vor der Nutzung von \Macro{maketitle} angegeben werden.
+\index{Titel|!)}%
\end{Declaration}
\end{Declaration}
\end{Declaration}
@@ -1702,49 +2243,37 @@ muss daher vor der Nutzung von \Macro{maketitle} angegeben werden.
\end{Declaration}
\end{Declaration}
\end{Declaration}
-\end{Declaration}
-\end{Declaration}
-
-\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}.
-Wie diese Elemente angepasst werden können, ist in \autoref{sec:fonts:elements}
-zu finden.
-\end{Declaration}
-\end{Declaration}
-\index{Titel|!)}
-
+\end{Bundle}
\subsection{Die Teileseite}
-\label{sec:part}
+\tudhyperdef*{sec:part}%
%
-\ChangedAt{%
- v2.02!\PageStyle{plain.tudheadings} wird genutzt!\Macro{partpagestyle}%
-}[Implementierung]
+\ChangedAt[\Macro{partpagestyle}(\Package{koma-script})]{%
+ v2.02:Seitenstil \PageStyle{plain.tudheadings} wird genutzt%
+}
Wird für die Teileseiten das Layout des \CDs verwendet, so wird der Seitenstil
-dieser (\Macro{partpagestyle}) auf \PageStyle{plain.tudheadings} gesetzt.
-Möchten Sie stattdessen einen anderen Seitenstil nutzen, so kann dieser mit
-\Macro*{renewcommand*}\PParameter{\Macro{partpagestyle}}\Parameter{Seitenstil}
+dieser (\Macro{partpagestyle}(\Package{koma-script})'none') auf
+\PageStyle{plain.tudheadings} gesetzt. Möchten Sie stattdessen einen anderen
+Seitenstil nutzen, so kann dieser mit
+\Macro*{renewcommand*}[%
+ \PParameter{\Macro{partpagestyle}(\Package{koma-script})'none'}%
+ \Parameter{Seitenstil}%
+]
angepasst werden.
-\begin{Declaration}{\Option{parttitle}[\PBoolean]}[false]%
+\begin{Declaration}{\Option{parttitle=\PBoolean}}[false]%
\printdeclarationlist%
-\index{Teileseiten|?}\index{Layout!Teileseiten}%
+\index{Layout!Teileseiten|?}%
+\index{Layout!Überschriften}%
%
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} erzeugten Teils wird
-in diesem Fall in kleiner Schrift direkt darunter gesetzt. Diese
-Layout"=Variante findet sich im Handbuch für das \CD der \TnUD. \notudscrartcl
+Bezeichnung des mit
+\Macro{part}[\Parameter{Bezeichnung}](\Package{koma-script})'none' erzeugten
+Teils wird in diesem Fall in kleiner Schrift direkt darunter gesetzt. Diese
+Layout"=Variante findet sich im Handbuch für das \TUDCD. \notudscrartcl
%
-\begin{values}
+\begin{values}{\Option{parttitle}}
\itemfalse
Die Bezeichnung des Teils erscheint in großer Schrift auf der Seite, der
Titel des Dokumentes gar nicht.
@@ -1756,326 +2285,232 @@ Layout"=Variante findet sich im Handbuch für das \CD der \TnUD. \notudscrartcl
\begin{Declaration}[v2.02]{\Font{parttitle}}
\printdeclarationlist%
-\index{Schriftelemente}
+\index{Schriftelemente}%
%
-Mit dem Schriftelement~\Font{parttitle} lässt sich~-- bei aktivierter
-\Option{parttitle}-Option~-- die Schrift für die Bezeichnung des Teils
-beeinflussen. In \autoref{sec:fonts:elements} ist zu finden, wie dieses
-angepasst werden kann.
+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}
-\begin{Declaration}{\Option{chapterpage}[\PBoolean]}%
- [false][\Option{cd}[color]:true]%
+\begin{Declaration}{\Option{chapterpage=\PBoolean}}%
+ [false][\Option{cd=color}:true]%
\printdeclarationlist%
-\label{sec:chapter}%
-\index{Kapitelseiten|?}\index{Layout!Kapitelseiten|?}%
-\index{Satzspiegel!doppelseitig}\index{Vakatseiten}%
+\tudhyperdef*{sec:chapter}%
+\index{Layout!Kapitelseiten|?}%
+\index{Layout!Überschriften}%
+\index{Satzspiegel!doppelseitig}%
+\index{Vakatseiten}%
%
Mit dieser Einstellung kann die Überschrift eines Kapitels separat auf einer
Seite ausgegeben werden. Der nachfolgende Text wird auf der nächsten
beziehungsweise bei doppelseitigem Satz und rechts öffnenden Kapiteln%
\footnote{%
- \Option{twoside} und \Option{open}[right], Standard für \Class{tudscrbook}
+ \KOMAScript-Optionen \Option{twoside=true}(\Package{typearea})'none' und
+ \Option{open=right}(\Package{koma-script})'none', Standard für
+ \Class{tudscrbook}%
}
auf der übernächsten Seite ausgegeben. Die in diesem Fall erzeugte Rückseite
wird in ihrer Ausprägung~-- wie auch Teileseiten~-- durch die Einstellung von
\Option{cleardoublespecialpage} bestimmt. Beim farbigen Layout ist diese Option
standardmäßig aktiviert. \notudscrartcl
%
-\begin{values}
+\begin{values}{\Option{chapterpage}}
\itemfalse
Es gibt keine Sonderstellung von Kapiteln, der nachfolgende Text wird direkt
- unter der Überschrift respektive nach der mit \Macro{setchapterpreamble}
- erzeugten Kapitelpräambel auf der gleichen Seite ausgegeben.
+ unter der Überschrift respektive nach der mit
+ \Macro{setchapterpreamble}(\Package{koma-script})'none' erzeugten
+ Kapitelpräambel auf der gleichen Seite ausgegeben.
\itemtrue*
Die Kapitelüberschrift und gegebenenfalls die Kapitelpräambel werden auf
- einer separaten Seite gesetzt. Der folgende Text erscheint auf der nächsten
- respektive übernächsten Seite, \seealso*{\Option{cleardoublespecialpage}}.
+ einer separaten Seite gesetzt. Der folgende Text erscheint auf der nächsten
+ respektive übernächsten Seite, \seeref*{\Option{cleardoublespecialpage}}.
\end{values}
%
-\ChangedAt{%
- v2.02!nicht mehr abhängig von \Macro{partpagestyle}!\Macro{chapterpagestyle}
-}[Implementierung]
-Mit \Macro*{renewcommand*}\PParameter{\Macro{chapterpagestyle}}%
-\Parameter{Seitenstil} lässt sich übrigens~-- unabhängig von der Option
-\Option{chapterpage}~-- der Seitenstil von Kapiteln anpassen. Bei der
-Verwendung von separaten Kapitelseiten ist außerdem das Aktivieren der
-\KOMAScript-Option \Option{chapterprefix} empfehlenswert. Damit werden die
-Kapitelüberschriften mit einer Vorsatzzeile gesetzt. Falls ein nummeriertes
-Kapitel erzeugt wird, so wird zunächst in einer Zeile \enquote{Kapitel} gefolgt
-von der aktuellen Kapitelnummer ausgegeben, in der nächsten Zeile wird
-anschließend die eigentliche Überschrift in linksbündigem Flattersatz
-ausgegeben. Genaueres hierzu ist in der \KOMAScript"=Dokumentation
-nachzulesen.
+\ChangedAt[\Macro{chapterpagestyle}(\Package{koma-script})]{%
+ v2.02:nicht mehr abhängig von \Macro{partpagestyle}(\Package{koma-script})
+}
+Mit \Macro*{renewcommand*}[%
+ \PParameter{\Macro{chapterpagestyle}(\Package{koma-script})'none'}%
+ \Parameter{Seitenstil}%
+]
+lässt sich übrigens~-- unabhängig von der Option \Option{chapterpage}~-- der
+Seitenstil von Kapiteln anpassen. Bei der Verwendung von Kapitelseiten mit
+\Option{chapterpage=true} ist außerdem das Aktivieren der \KOMAScript-Option
+\Option{chapterprefix=\PBoolean}(\Package{koma-script})'none'|declare|
+empfehlenswert. Damit werden die Kapitelüberschriften mit einer Vorsatzzeile
+gesetzt. Wird ein nummeriertes Kapitel erzeugt, so wird zunächst in einer Zeile
+\enquote{Kapitel} gefolgt von der aktuellen Kapitelnummer ausgegeben, in der
+nächsten Zeile wird anschließend die eigentliche Überschrift in linksbündigem
+Flattersatz ausgegeben. Mehr dazu ist der \scrguide[\KOMAScript-Dokumentation]
+zu entnehmen.
\end{Declaration}
-
\subsection{Vakatseiten}
-\index{Vakatseiten}%
+\index{Vakatseiten|(}%
+%
Automatisch erzeugte Vakatseiten~-- auch absichtliche Leerseiten genannt~--
-findet man in Dokumenten mit den aktivierten Optionen \Option{twoside} und
-\Option{open}[right]\footnote{Standard bei \Class{tudscrbook}} beziehungsweise
-\Option{open}[left] beim Beginn von Teilen und Kapiteln. Für diese kann der
-Seitenstil mit der \KOMAScript"=Option \Option{cleardoublepage} eingestellt
-werden.
-
-\ToDo[doc,imp,nxt]{%
- Rückseite bei Kapitelseiten (auch bei Teilen?) im zweiseitigen Satz per
- Option nicht als Vakatseite setzen. Implementierung von farbigen Seiten davor
- (\Option*{open}[right]) sowie danach (\Option*{open}[left]). Setzen von
+sind in Abhängigkeit der
+\KOMAScript-Optionen \Option{twoside=\PSet}(\Package{typearea})'none'|declare|
+und \Option{open=\PName{Methode}}(\Package{koma-script})'none'|declare| am
+Beginn von Teilen und Kapiteln in Dokumenten zu finden.%
+\footnote{%
+ Voreinstellungen
+ \Class{tudscrbook}:
+ \Option{twoside=true}(\Package{typearea})'none',
+ \Option{open=right}(\Package{koma-script})'none';
+ \Class{tudscrartcl}, \Class{tudscrreprt}:
+ \Option{open=any}(\Package{koma-script})'none',
+ \Option{twoside=false}(\Package{typearea})'none'%
+}
+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}{\Option{cleardoublespecialpage=\PSet}}[true]%
\printdeclarationlist%
-\index{Teileseiten}\index{Layout!Teileseiten}%
-\index{Kapitelseiten}\index{Layout!Kapitelseiten}%
-\index{Satzspiegel!doppelseitig}\index{Layout!Rückseiten}%
+\index{Layout!Teileseiten}%
+\index{Layout!Kapitelseiten}%
+\index{Layout!Rückseiten}%
+\index{Satzspiegel!doppelseitig}%
%
Diese Option wirkt sich lediglich bei aktiviertem doppelseitigem Satz und
ausschließlich rechts eröffnenden Seiten für Teile beziehungsweise Kapitel
aus.%
-\footnote{\Option{twoside} und \Option{open}[right]}
+\footnote{%
+ \KOMAScript"=Option \Option{twoside=true}(\Package{typearea})'none' und
+ \Option{open=right}(\Package{koma-script})'none'%
+}
In diesem Fall kann der Stil der darauffolgenden, linken Seite~-- sprich der
Rückseite~-- beeinflusst werden. Das Normalverhalten sieht vor, dass nach einem
-Teil die Rückseite unabhängig von der Einstellung für \Option{cleardoublepage}
-immer als vollständig leere Seite ohne Kopf"~ oder Fußzeilen gesetzt wird.
+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} 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
+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
%
-\begin{values}
+\begin{values}{\Option{cleardoublespecialpage}}
\itemfalse
Die Rückseiten sind vollständig leere Seiten, unabhängig von Option
- \Option{cleardoublepage}.
+ \Option{cleardoublepage}(\Package{koma-script})'none'.
\itemtrue*
- Der Seitenstil der Rückseite von Teilen und gegebenenfalls Kapiteln
- entspricht der Einstellung von \Option{cleardoublepage} für Vakatseiten.
+ Der Seitenstil der Rückseite von Teilen und gegebenenfalls Kapiteln entspricht
+ der Einstellung von \Option{cleardoublepage}(\Package{koma-script})'none' für
+ Vakatseiten.
\item[current]
- Es wird der aktuell definierte Seitenstil (\Macro{pagestyle}) für die
- erzeugte Rückseite verwendet.
-\itemvalues[\PName{Seitenstil}:]
- Mit der Angabe von \Option{cleardoublespecialpage}[\PName{Seitenstil}]
+ Für die erzeugte Rückseite wird der aktuell definierte Seitenstil
+ (\Macro{pagestyle}(\Package{koma-script})'none') verwendet.
+\item[\PValueName{Seitenstil}]
+ Mit der Angabe von \Option{cleardoublespecialpage=\PName{Seitenstil}}
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,
- \see*{\Option{clearcolor}}.
-\ToDo[imp,nxt]{\PValue{nocolor}}[v2.06]
+ \seeref{\Option{clearcolor}}.
\end{values}
+\ToDo[imp]{\PValue{nocolor}}[v2.06]
\end{Declaration}
-\ToDo[doc,imp,nxt]{%
- \Option{clearcolor} in \Option{cleardoublespecialpage}%
+\ToDo[doc,imp]{%
+ \Option*{clearcolor} in \Option*{cleardoublespecialpage}%
}[v2.06]
-\begin{Declaration}{\Option{clearcolor}[\PBoolean]}[false]%
+\begin{Declaration}{\Option{clearcolor=\PBoolean}}[false]%
\printdeclarationlist%
-\index{Titel}\index{Layout!Titel}%
-\index{Teileseiten}\index{Layout!Teileseiten}%
-\index{Kapitelseiten}\index{Layout!Kapitelseiten}%
-\index{Satzspiegel!doppelseitig}\index{Vakatseiten}%
+\index{Titel}%
+\index{Layout!Teileseiten}%
+\index{Layout!Kapitelseiten}%
+\index{Satzspiegel!doppelseitig}%
%
-Sollten beim farbigen Layout die Optionen \Option{twoside} sowie auch
-\Option{open}[right] 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.%
-\footnote{%
- Dies führt bei der Ausgabe zu farbigen Blättern (Vorder- und Rückseite) der
- entsprechenden Elemente des Layouts.
-}
+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{%
- \see*{\Macro{uppertitleback} und \Macro{lowertitleback}} der
- \KOMAScript"=Dokumentation (\scrguide*)
+ \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}
+\begin{values}{\Option{clearcolor}}
\itemfalse
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}
-
-\subsection{Der Satzspiegel}
-\begin{Declaration}[v2.03]{\Option{cdgeometry}[\PSet]}[true]%
-\printdeclarationlist%
-\index{Satzspiegel|(}\index{Layout!Satzspiegel|(}%
-\index{Seitenstil}\index{Layout!Seitenstil}%
-\index{Satzspiegel!doppelseitig}%
-\index{Layout!Seitenränder}%
-%
-Diese Option ist für die Aufteilung beziehungsweise die Berechnung des
-Satzspiegels verantwortlich. Das Maß der Seitenränder ist im \CD fest
-vorgegeben und wird standardmäßig von den \TUDScript-Klassen eingehalten.
-Allerdings lassen sich die Seitenränder anpassen, um beispielsweise einen
-vernünftigen doppelseitigen Satz zu ermöglichen.%
-\footnote{Hierbei sollte der innere Rand schmaler als der äußere sein}
-Des Weiteren besteht die Möglichkeit, auf das Standardverhalten von
-\KOMAScript{} zurückzufallen und die Satzspiegelberechnung durch das Paket
-\Package{typearea} vornehmen zu lassen. Hier hat insbesondere die Klassenoption
-\Option{DIV}[\PSet] maßgeblichen Einfluss auf den Satzspiegel. Mehr dazu ist in
-der Dokumentation von \KOMAScript{} zu finden.
-%
-\begin{values}
-\itemfalse
- Die Satzspiegelberechnung erfolgt via \Package{typearea}, die Vorgaben des
- \CDs bezüglich der Seitenränder werden ignoriert.
-\itemtrue*[asymmetric/cd]
- Die Seitenränder werden im asymmetrischen Stil des \CDs fest definiert und
- auch für den doppelseitigen Satz (\Option{twoside}[true]) genutzt.%
- \footnote{links: 30\,mm, rechts: 20\,mm, oben: 25\,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}
-\item[balanced/twoside]
- Im einseitigen Layout ist diese Einstellung zu \Option{cdgeometry}[symmetric]
- identisch. Beim doppelseitigen Satz wird der Satzspiegel derart verändert,
- 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}
- \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.
- }%
-\end{values}
-%
-Für die Festlegung der Seitenränder wird das Paket \Package{geometry} genutzt.
-Ist \Option{cdgeometry}[false] gewählt, erfolgt die Berechnung des Satzspiegels
-durch \Package{typearea}. Die damit berechneten Werte werden anschließend an
-\Package{geometry} weitergereicht und durch dieses umgesetzt.
-\end{Declaration}
-
-\begin{Declaration}[v2.03]{\Option{extrabottommargin}[\PName{Höhe}]}[0pt]%
-\printdeclarationlist%
-\index{Fußzeile|?}
-%
-Mit dieser Option kann die Größe des unteren Seitenrandes angepasst werden,
-wenn der Satzspiegel des \CDs (\Option{cdgeometry}[true/symmetric/balanced])
-verwendet wird. Insbesondere für den Fall, dass im Fußbereich der Seiten im
-Stil \PageStyle{tudheadings} entweder mit \Macro{footlogo} Drittlogos verwendet
-werden und diese über das optionale Argument oder via \Length{footlogoheight}
-über die Standardhöhe hinaus vergrößert wurden oder mit \Macro{footcontent} ein
-übergroßer Inhalt angegeben wurde, kann dieser unter Umständen etwas zu klein
-sein. Mit der Option \Option{extrabottommargin} wird der Fußbereich durch
-positive Werte vergrößert, negative Werte verkleinern diesen entsprechend.
-
-Alternativ zu \Option{extrabottommargin} kann auch die Option \Option{cdfoot}
-mit einer Längenangabe verwendet werden. Dabei spielt es für beide Optionen
-keine Rolle, ob eine \hologo{LaTeX}-Länge, 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{Kopfzeile|?}\index{Layout!Kopfzeile}%
-\index{Fußzeile|?}\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] sowie
-\Option{footinclude}[\PBoolean]. Diese können~-- unabhängig von der gewählten
-Einstellung zur Satzspiegelgestaltung für die Option \Option{cdgeometry}~--
-verwendet werden.
-
-\minisec{Bindekorrektur}
-\index{Bindekorrektur|!}\index{Layout!Bindekorrektur}%
-%
-Zu erwähnen im Zusammenhang mit Seitenrändern und Satzspiegel ist die durch
-\Package{typearea} angebotene Option \Option{BCOR}[\PName{Länge}], mit der bei
-der Satzspiegelberechnung ein Heftrand beziehungsweise eine Bindekorrektur
-berücksichtigt wird. Die \TUDScript-Klassen reichen diesen Wert auch an
-\Package{geometry} weiter, so dass der Benutzer unabhängig von der Auswahl zur
-Satzspiegelgestaltung diese Option nutzen kann. So kann beispielsweise eine
-Bindekorrektur von \unit[5]{mm} mit der Klassenoption \Option{BCOR}[5mm]
-gesetzt werden.
-
-Eine Anpassung der Bindekorrektur hat natürlich \emph{immer} eine Änderung der
-verfügbaren Breite des Textbereichs zur Folge hat und führt somit zwingend zu
-einer Anpassung des Satzspiegels. Da die Bindekorrektur jedoch abhängig von der
-Höhe des Buchblocks gewählt werden sollte, welche letztendlich erst mit dem
-Druck des fertiggestellten Dokumentes bestimmt werden kann, muss diese zu
-Beginn abgeschätzt werden.
-%
-\begin{Example}
-Als Faustregel gilt, dass die erforderliche Bindekorrektur in etwa der halben
-Höhe des Buchblocks entsprechen sollte. Dessen Höhe wiederum ist abhängig von
-der Anzahl der Seiten sowie der Dichte des verwendeten Papiers. Wird normales
-Papier mit einer Dichte von \unit[80]{g/m²} verwendet, so entsprechen 100~Blatt
-in etwa einer Höhe von \unit[10]{mm}, bei \unit[100]{g/m²} ca. \unit[12]{mm}.
-Dementsprechend wäre eine Bindekorrektur von \Option{BCOR}[5mm] beziehungsweise
-\Option{BCOR}[6mm] bei diesem Beispiel zu wählen.
-\end{Example}
-\index{Satzspiegel|)}\index{Layout!Satzspiegel|)}%
-
-
\subsection{Verwendung von Schriftelementen}
-\label{sec:fonts:elements}%
-\index{Schriftelemente|!}
+\tudhyperdef*{sec:fonts:elements}%
+\index{Schriftelemente|!}%
+%
Von \TUDScript 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 Schriftelemente
-und später erläuterten sollten im Bedarfsfall durch den Anwender über den
-Befehl \Macro{addtokomafont}\Parameter{Schriftelement}\Parameter{Einstellungen}
-angepasst werden. Mehr dazu ist im \KOMAScript"=Handbuch \scrguide im
-Abschnitt \emph{Textauszeichnungen} zu finden.
+durch \KOMAScript{} definierten als auch alle hier genannten und folgend
+erläuterten Schriftelemente sollten im Bedarfsfall vom Anwender ü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.
\subsection{Die Farben des \CDs}
-\index{Farben}%
-%
+\index{Layout!Farben}%
+%
Zur Verwendung der Farben des \CDs wird das Paket \Package{tudscrcolor}
genutzt. Falls dieses nicht in der Präambel geladen wird~-- um beispielsweise
zusätzliche Optionen aufzurufen~-- binden die \TUDScript"=Klassen dieses
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{}
- bei Seitenstil und Kolumnentitel%
+ v2.03:Bugfix für \abstractname, \confirmationname{} und \blockingname{}
+ bei der Festlegung von Seitenstil und Kolumnentitel%
}%
-Neben den Befehlen für die Anpassung des Layouts an das \CD der \TnUD stellen
-die \TUDScript-Klassen weitere Befehle und Umgebungen zur Verfügung, um die
+Neben den Befehlen für die Anpassung des Layouts an das \TUDCD stellen die
+\TUDScript-Klassen weitere Befehle und Umgebungen zur Verfügung, um die
Anwendung insbesondere für wissenschaftliche Arbeiten zu erleichtern.
\subsection{Zusammenfassung/Kurzfassung}
+\index{Zusammenfassung|!(}%
+%
\begin{Declaration}[%
- v2.02!Wert \PValue{double} mit \PValue{multi} ersetzt,%
- v2.02!Wert \PValue{tocleveldown} neu,%
- v2.02!Wert \PValue{markboth} neu,%
- v2.04!Wert \PValue{tocmultiple} neu%
-]{\Option{abstract}[\PSet]}%
+ v2.02!\Option{abstract=multiple}:ersetzt \Option{abstract=double};%
+ v2.02!\Option{abstract=tocleveldown};%
+ v2.02!\Option{abstract=markboth};%
+ v2.04!\Option{abstract=tocmultiple}%
+]{\Option{abstract=\PSet}}%
\printdeclarationlist%
-\index{Zusammenfassung|!(}%
-\index{Zweispaltensatz}%
+\index{Satzspiegel!zweispaltig}%
%
Diese Option wird bereits durch \KOMAScript{} für die Klassen \Class{scrartcl}
und \Class{scrreprt} standardmäßig bereitgestellt. Für die Klasse
@@ -2083,7 +2518,7 @@ und \Class{scrreprt} standardmäßig bereitgestellt. Für die Klasse
%
\begin{quoting}
Bei Büchern wird in der Regel eine andere Art der Zusammenfassung verwendet.
-Dort setzt man ein entsprechendes Kapitel an den Anfang oder Ende des Werks.
+Dort wird ein entsprechendes Kapitel an den Anfang oder Ende des Werks gesetzt.
Oft wird diese Zusammenfassung entweder mit der Einleitung oder einem weiteren
Ausblick verknüpft. Daher gibt es bei \Class{scrbook} generell keine
\Environment{abstract}"=Umgebung. Bei Berichten im weiteren Sinne, etwa einer
@@ -2098,25 +2533,24 @@ die Zusammenfassung außerdem in Gestalt eines \sectionautorefname{}s oder für
\Class{tudscrreprt} und \Class{tudscrbook} in der Form eines
\chapterautorefname{}s ausgegeben werden.
%
-\begin{values}
-\itemfalse[][nur für \Class{tudscrartcl} und \Class{tudscrreprt} verfügbar]
+\begin{values}{\Option{abstract}}
+\itemfalse(nur \Class{tudscrartcl} und \Class{tudscrreprt})
Es wird keine Überschrift für die \Environment{abstract}"=Umgebung ausgegeben.
-\itemtrue*[][nur für \Class{tudscrartcl} und \Class{tudscrreprt} verfügbar]
+\itemtrue*(nur \Class{tudscrartcl} und \Class{tudscrreprt})
Wie bei den \KOMAScript"=Klassen wird eine zentrierte Überschrift mit dem
Bezeichner \Term{abstractname} vor der eigentlichen Zusammenfassung gesetzt.
\item[section/addsec]
Die Überschrift (\Term{abstractname}) verwendet den Gliederungsbefehl
- \Macro{section}.
-\item[chapter/addchap][%
- (Säumniswert für \Class{tudscrbook})
- nur für \Class{tudscrreprt} und \Class{tudscrbook} verfügbar%
- ]
- Es wird der Befehl \Macro{chapter} für das Setzen der Überschrift
- (\Term{abstractname}) genutzt.
+ \Macro{section}(\Package{koma-script})'none'.
+\item[chapter/addchap][\Class{tudscrbook}](%
+ nur \Class{tudscrreprt} und \Class{tudscrbook}%
+ )
+ Es wird der Befehl \Macro{chapter}(\Package{koma-script})'none' für das
+ Setzen der Überschrift (\Term{abstractname}) genutzt.
\item[heading]
Es wird die höchstmögliche Gliederungsebene verwendet. Für
- \Class{tudscrartcl} entspricht dies \Option{abstract}[section], bei
- \Class{tudscrreprt} und \Class{tudscrbook} \Option{abstract}[chapter].
+ \Class{tudscrartcl} entspricht dies \Option{abstract=section}, bei
+ \Class{tudscrreprt} und \Class{tudscrbook} \Option{abstract=chapter}.
\end{values}
%
Abhängig von der gewählten Gliederungsebene der Überschrift wird das Verhalten
@@ -2127,14 +2561,14 @@ Zusammenfassung für gewöhnlich im Inhaltsverzeichnis auf der obersten Ebene.
Das voreingestellte Verhalten für die Einträge ins Inhaltsverzeichnis kann
jederzeit mit folgenden Werten durch den Anwender überschrieben werden.
%
-\begin{values}
+\begin{values}{\Option{abstract}}
\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.
-\item[leveldown/tocleveldown/totocleveldown]
+\item[tocleveldown/leveldown/totocleveldown]
\ChangedAt{v2.02}
Der Inhaltsverzeichniseintrag wird eine Gliederungsebene unterhalb der
obersten erzeugt.
@@ -2146,13 +2580,16 @@ jederzeit mit folgenden Werten durch den Anwender überschrieben werden.
%
\ChangedAt{v2.02}
Außerdem kann das Verhalten für die Kolumnentitel durch den Nutzer beeinflusst
-werden. Normalerweise werden diese nur gesetzt, wenn automatische Kolumnentitel
-aktiviert sind (\Option{automark}) und sind von der Gliederungsebene der
-Überschrift abhängig. Werden manuelle Kolumnentitel genutzt, müssen diese auch
-für die Zusammenfassung manuell gesetzt werden. Mit \Option{abstract}[markboth]
-lässt sich das Setzen der Kolumnentitel jedoch forcieren.
-%
-\begin{values}
+werden. Diese werden normalerweise automatisch gesetzt, wenn diese über die
+\KOMAScript-Option \Option{automark}(\Package{scrlayer-scrpage})'none'
+aktiviert wurden und sind von der aktuellen Gliederungsebene der Überschrift
+abhängig. Werden jedoch mit Hilfe der \KOMAScript-Option
+\Option{manualmark}(\Package{scrlayer-scrpage})'none' manuelle Kolumnentitel
+genutzt, müssen diese normalerweise auch für die Zusammenfassung durch den
+Anwender gesetzt werden. Mit \Option{abstract=markboth} lässt sich allerdings
+das Setzen der Kolumnentitel unabhängig davon forcieren.
+%
+\begin{values}{\Option{abstract}}
\item[markboth]
Unabhängig von der Verwendung manueller oder automatischer Kolumnentitel
werden diese auf rechten sowie linken Seiten mit \Term{abstractname} gesetzt.
@@ -2167,16 +2604,17 @@ Inhalt gesetzt werden.
Häufig wird für Abschlussarbeiten verlangt, neben der deutschsprachigen auch
noch eine englischsprachige Zusammenfassung zu verfassen. Mit der Einstellung
-\Option{abstract}[multiple] lassen sich mehrere Zusammenfassungen auf einer
+\Option{abstract=multiple} lassen sich mehrere Zusammenfassungen auf einer
Seite ausgeben~-- sofern genügend Platz vorhanden ist. Außerdem kann die
standardmäßige vertikale Zentrierung der \Environment{abstract}"=Umgebung
auf einer Seite unterdrückt werden. Diese Einstellungen zur Positionierung der
Zusammenfassungen innerhalb der \Environment{abstract}"=Umgebung werden nur
-wirksam, wenn eine Titelseite (\Option{titlepage}[true]) und \emph{keine}
-Überschriften in Form von Kapiteln (\Option{abstract}[chapter]) verwendet
-werden.
+wirksam, wenn eine Titelseite
+(\KOMAScript-Option \Option{titlepage=true}(\Package{koma-script})'none') und
+\emph{keine} Überschriften in Form von Kapiteln (\Option{abstract=chapter})
+verwendet werden.
%
-\begin{values}
+\begin{values}{\Option{abstract}}
\item[single/one/simple]
Jede Zusammenfassung wird auf einer eigenen Seite
beziehungsweise im zweispaltigen Satz in einer neuen Spalte ausgegeben.
@@ -2184,45 +2622,47 @@ werden.
\ChangedAt{v2.02}
Zusammenfassungen, welche mit \Macro{nextabstract} getrennt wurden, werden
direkt nacheinander auf der gleichen Seite ausgegeben, wenn ausreichend Platz
- auf dieser vorhanden sein sollte. Ist die Option \Option{twocolumn} aktiviert,
- erfolgt die Ausgabe aller Zusammenfassungen ohne Spaltenumbruch.
-\item[fil/fill/vfil/vfill]
- Alle Zusammenfassungen auf einer Ausgabeseite werden vertikal zentriert. Für
- den zweispaltigen Satz mit \Option{twocolumn} steht diese Einstellung nicht
- zur Verfügung.
-\item[nofil/nofill/novfil/novfill]
+ auf dieser vorhanden sein sollte. Ist die Klassenoption
+ \Option{twocolumn}(\Package{typearea})'none' aktiviert, erfolgt die Ausgabe
+ aller Zusammenfassungen ohne Spaltenumbruch.
+\item[fill/fil/vfil/vfill]
+ Alle Zusammenfassungen werden bei der Ausgabe auf einer Seite vertikal
+ zentriert. Diese Einstellung steht für den zweispaltigen Satz
+ (Klassenoption \Option{twocolumn}(\Package{typearea})'none') nicht zur
+ Verfügung.
+\item[nofill/nofil/novfil/novfill]
Die Ausgabe erfolgt wie im normalen Fließtext auch.
\end{values}
\end{Declaration}
\begin{Declaration}[%
- v2.02!\Macro{nextabstract} zur Trennung der einzelnen Teile%
+ v2.02:Trennung einzelner Abschnitte mit \Macro{nextabstract};%
]{\Environment{abstract}[\OLParameter{Sprache}]}
-\begin{Declaration}[v2.02]{\Macro{nextabstract}\OLParameter{Sprache}}
-\begin{Declaration}{\Key{\Environment{abstract}}{language}[\PName{Sprache}]}
-\begin{Declaration}[v2.02]{%
- \Key{\Environment{abstract}}{markboth}[\PBName{Kolumnentitel}]%
-}
+\begin{Declaration}{\Macro{nextabstract}[\OLParameter{Sprache}]}
+\begin{Declaration}{\Key{\Environment{abstract}}{language=\PName{Sprache}}}
+\begin{Declaration}[v2.02]{\Key{\Environment{abstract}}{markboth=\PSet}}
\begin{Declaration}[v2.02]{%
- \Key{\Environment{abstract}}{pagestyle}[\PName{Seitenstil}]%
+ \Key{\Environment{abstract}}{pagestyle=\PName{Seitenstil}}%
}
-\begin{Declaration}{\Key{\Environment{abstract}}{columns}[\PName{Anzahl}]}
-\begin{Declaration}{\Key{\Environment{abstract}}{option}[\PSet]}{%
- \see*{\Option{abstract}'ppage'}%
+\begin{Declaration}{\Key{\Environment{abstract}}{columns=\PName{Anzahl}}}
+\begin{Declaration}{\Key{\Environment{abstract}}{option=\PSet}}{%
+ \seeref{\Option{abstract}'ppage'}%
}
\printdeclarationlist%
-\index{Zweispaltensatz}%
+\index{Satzspiegel!zweispaltig}%
%
-Die \Environment{abstract}-Umgebung dient speziell für die Ausgabe einer
+Die \Environment{abstract}"=Umgebung dient speziell für die Ausgabe einer
Zusammenfassung, entweder zu Beginn eines Dokumentes oder beispielsweise vor
-einem Teil oder Kapitel. Wird ein Titelkopf (\Option{titlepage}[false]) und
-keine Titelseite verwendet, so wird für den Fall, dass die Zusammenfassung
-\emph{nicht} mit der Überschrift einer Gliederungsebene gesetzt wird, diese wie
-bei den \KOMAScript"=Klassen in einer \Environment{quotation}"=Umgebung
-gesetzt, um diese vom restlichen Fließtext abzuheben. Diese hat jedoch den
-Nachteil, dass in besagter Umgebung die Option \Option{parskip} nicht beachtet
-wird. Um dieses Problem zu beheben, kann das Paket \Package{quoting} geladen
-werden, wodurch stattdessen die Umgebung \Environment{quoting} verwendet wird.
+einem Teil oder Kapitel. Wird ein Titelkopf und keine Titelseite verwendet
+(\KOMAScript-Option \Option{titlepage=false}(\Package{koma-script})'none'), so
+wird eine Zusammenfassung~-- identisch zu den \KOMAScript"=Klassen~-- in einer
+\Environment{quotation}(\Package{koma-script})'none'"=Umgebung ausgegeben,
+wobei die Überschrift \emph{nicht} in der Form einer Gliederungsebene gesetzt
+wird. Diese Umgebung hat jedoch den Nachteil, dass die \KOMAScript-Option
+\Option{parskip=\PName{Methode}}(\Package{koma-script})'none' nicht beachtet
+wird. Um dies zu beheben, kann das Paket \Package{quoting} geladen werden,
+wodurch stattdessen die Umgebung \Environment{quoting}(\Package{quoting})'none'
+verwendet wird.
Mit der zuvor erläuterten Option \Option{abstract} kann eingestellt werden, in
welcher Gestalt die Zusammenfassung ausgegeben werden soll. Des Weiteren lässt
@@ -2232,56 +2672,61 @@ bestimmte \Environment{abstract}"=Umgebung die globalen Einstellungen
der Option \Option{abstract} lokal ändern und gezielt anpassen.
Wird das Paket \Package{babel} durch den Anwender geladen, kann mit dem
-optionalen Parameter \Key{\Environment{abstract}}{language}[\PName{Sprache}]
-die Sprache innerhalb der \Environment{abstract}"=Umgebung geändert werden.
-Dafür muss die gewünschte Sprache bereits mit dem Laden von \Package{babel}
-entweder als Paketoption oder besser noch als Klassenoption angegeben worden
-sein. Dadurch werden innerhalb der Umgebung die Bezeichnung \Term{abstractname}
-und die Trennungsmuster sprachspezifisch angepasst. Die gewünschte Sprache kann
+optionalen Parameter \Key{\Environment{abstract}}{language=\PName{Sprache}}die
+Sprache innerhalb der \Environment{abstract}"=Umgebung geändert werden. Dafür
+muss die gewünschte Sprache bereits mit dem Laden von \Package{babel} entweder
+als Paketoption oder besser noch als Klassenoption angegeben worden sein.
+Dadurch werden innerhalb der Umgebung die Bezeichnung \Term{abstractname} und
+die Trennungsmuster sprachspezifisch angepasst. Die gewünschte Sprache kann
auch ohne die Verwendung des Parameters \Key{\Environment{abstract}}{language}
direkt als optionales Argument übergeben werden.
\ChangedAt{v2.02}
Mit \Key{\Environment{abstract}}{markboth} können die gesetzten Kolumnentitel
-beeinflusst werden. Wird \Key{\Environment{abstract}}{markboth}[false]
+beeinflusst werden. Wird \Key{\Environment{abstract}}{markboth=false}
angegeben, werden automatische respektive manuelle Kolumnentitel verwendet. Die
-Einstellung \Key{\Environment{abstract}}{markboth}[true] wiederum setzt diese
-für linke und rechte Seiten auf \Term{abstractname}. Außerdem lässt sich der
-Kolumnentitel mit \Key{\Environment{abstract}}{markboth}[\PName{Kolumnentitel}]
-auch direkt festlegen. So können die Kolumnen beispielsweise mit der Verwendung
-von \Key{\Environment{abstract}}{markboth}[\PParameter{}] auch gelöscht werden.
-Sollte \Key{\Environment{abstract}}{markboth} aktiviert werden, so wird in der
-Umgebung automatisch der Seitenstil \PageStyle{headings} genutzt~-- falls eine
-Titelseite und kein Titelkopf (\Option{titlepage}[true]) verwendet wird. Mit
-dem Parameter \Key{\Environment{abstract}}{pagestyle} kann dieser auch manuell
-angegeben werden, wobei die \PageStyle{tudheadings}"=Seitenstile ebenfalls
-unterstützt werden.
+Einstellung \Key{\Environment{abstract}}{markboth=true} wiederum setzt diese
+für linke und rechte Seiten auf \Term{abstractname}. Zusätzlich lässt sich mit
+\Key{\Environment{abstract}}{markboth=\PValueName{Kolumnentitel}} der
+Kolumnentitel direkt festlegen. So können die Kolumnen beispielsweise mit der
+Verwendung von \Key{\Environment{abstract}}{markboth=\PParameter{}} auch
+gelöscht werden. Sollte \Key{\Environment{abstract}}{markboth} aktiviert
+werden, so wird in der Umgebung automatisch der Seitenstil \PageStyle{headings}
+genutzt~-- falls eine Titelseite
+(\KOMAScript-Option \Option{titlepage=true}(\Package{koma-script})'none')
+verwendet wird. Mit dem Parameter \Key{\Environment{abstract}}{pagestyle} kann
+dieser auch manuell angegeben werden, die \PageStyle{tudheadings}"=Seitenstile
+werden dabei ebenfalls unterstützt werden.
Wurde das Paket \Package{multicol} geladen, kann mit dem Parameter
-\Key{\Environment{abstract}}{columns}[\PName{Anzahl}] die Zusammenfassung
+\Key{\Environment{abstract}}{columns=\PName{Anzahl}} die Zusammenfassung
mehrspaltig gesetzt werden. Dem Parameter \Key{\Environment{abstract}}{option}
können alle gültigen, bereits erläuterten Werte der Option \Option{abstract}
übergeben werden. Die damit gemachten Einstellungen wirken sich~-- im Gegensatz
-zur Angabe als Klassenoption oder über die Variante der späten Optionenwahl%
+zur Variante der späten Optionenwahl%
\footnote{%
- \Macro{TUDoption}\PParameter{abstract}\Parameter{Einstellung} oder
- \Macro{TUDoptions}\PParameter{abstract=\PName{Einstellung}}
-}~-- lediglich lokal auf die verwendete \Environment{abstract}"=Umgebung aus.
+ \Macro{TUDoption}[\PParameter{abstract}\Parameter{Einstellung}] oder
+ \Macro{TUDoptions}[\PParameter{abstract=\PName{Einstellung}}]%
+}
+respektive als Angabe einer Klassenoption~-- lediglich lokal auf die verwendete
+\Environment{abstract}"=Umgebung aus.
\ChangedAt{v2.02}
-Sollen mehrere Zusammenfassungen im gleichen Stil erzeugt und die Einstellungen
-der Option \Option{abstract}[simple/multiple/fill/nofill] beachtet werden, so
+Sollen mehrere Zusammenfassungen erzeugt und dabei die Einstellungen
+\Option{abstract=single} beziehungsweise \Option{abstract=multiple} sowie
+\Option{abstract=fill} respektive \Option{abstract=nofill} beachtet werden, so
ist die \Environment{abstract}"=Umgebung nur einmal zu verwenden. Innerhalb
-dieser müssen die einzelnen Zusammenfassungen mit \Macro{nextabstract}
+dieser müssen die einzelnen Zusammenfassungen jeweils mit \Macro{nextabstract}
voneinander getrennt werden. Der Befehl akzeptiert dabei im optionalen Argument
-alle Parameter, die auch von der \Environment{abstract}"=Umgebung selbst
+alle Parameter, welche auch von der \Environment{abstract}"=Umgebung selbst
unterstützt werden. Das Minimalbeispiel in \fullref{sec:exmpl:dissertation}
zeigt hierfür das notwendige Vorgehen.
Wird die \Environment{abstract}"=Umgebung innerhalb des Argumentes der Befehle
-\Macro{setpartpreamble} beziehungsweise \Macro{setchapterpreamble} verwendet,
-so wird die Überschrift~-- im Fall, dass nicht \Option{abstract}[false] gewählt
-ist~-- \emph{immer} in Textgröße und zentriert gesetzt.
+\Macro{setpartpreamble}(\Package{koma-script})'none' beziehungsweise
+\Macro{setchapterpreamble}(\Package{koma-script})'none' verwendet, so wird die
+Überschrift~-- im Fall, dass nicht \Option{abstract=false} gewählt ist~--
+\emph{immer} in Textgröße und zentriert gesetzt.
\end{Declaration}
\end{Declaration}
\end{Declaration}
@@ -2291,33 +2736,35 @@ ist~-- \emph{immer} in Textgröße und zentriert gesetzt.
\end{Declaration}
\minisec{Umbenennung der \abstractname}
-Mit dem \KOMAScript-Befehl \Macro{renewcaptionname} kann der Bezeichner~--
-sprich der Wortlaut~-- der für die \Environment{abstract}-Umgebung verwendeten
-Überschrift verändert werden. Mehr dazu ist in \autoref{sec:localization} zu
-finden.
+Mit dem \KOMAScript-Befehl \Macro{renewcaptionname}(\Package{koma-script})'none'
+kann der Bezeichner~-- sprich der Wortlaut~-- der für die
+\Environment{abstract}"=Umgebung verwendeten Überschrift verändert werden. Mehr
+dazu ist in \autoref{sec:localization} zu finden.
%
\begin{Example}
-Die Überschrift der \Environment{abstract}-Umgebung soll für die Sprache
+Die Überschrift der \Environment{abstract}"=Umgebung soll für die Sprache
\PValue{ngerman} von \enquote{\abstractname} in \enquote{Kurzfassung} umbenannt
-werden. Der Befehl \Macro{renewcaptionname} erwartet die drei obligatorischen
-Argumente \Parameter{Sprache}\Parameter{Makro}\Parameter{Inhalt}:
+werden. Das Makro \Macro{renewcaptionname}(\Package{koma-script})'none'
+erwartet die drei obligatorischen Argumente
+\Parameter{Sprache}\Parameter{Makro}\Parameter{Inhalt}:
\begin{Code}[escapechar=§]
\renewcaptionname{ngerman}{\abstractname}{Kurzfassung}
\end{Code}
-\end{Example}
-%
\index{Zusammenfassung|!)}%
+\end{Example}
\subsection{Selbstständigkeitserklärung und Sperrvermerk}
+\index{Selbstständigkeitserklärung|!(}%
+\index{Sperrvermerk|!(}%
+%
\begin{Declaration}[%
- v2.02!Wert \PValue{double} mit \PValue{multi} ersetzt,%
- v2.02!Wert \PValue{tocleveldown} neu,%
- v2.02!Wert \PValue{markboth} neu,%
- v2.04!Wert \PValue{tocmultiple} neu%
-]{\Option{declaration}[\PSet]}[true]%
+ v2.02!\Option{declaration=multiple}:ersetzt \Option{declaration=double};%
+ v2.02!\Option{declaration=tocleveldown};%
+ v2.02!\Option{declaration=markboth};%
+ v2.04!\Option{declaration=tocmultiple}%
+]{\Option{declaration=\PSet}}[true]%
\printdeclarationlist%
-\index{Selbstständigkeitserklärung|!}\index{Sperrvermerk|!}%
%
Mit \Option{declaration} kann äquivalent zur Option \Option{abstract} die
Gestaltung von Selbstständigkeitserklärung und Sperrvermerk angepasst werden.
@@ -2332,12 +2779,12 @@ 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 nachfolgend
-genannt. Im Gegensatz zur Option \Option{abstract} stehen die Einstellungen
-\Option{declaration}[true/false] auch für die Klasse \Class{tudscrbook} zur
-Verfügung.
+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.
%
-\begin{values}
+\begin{values}{\Option{declaration}}
\itemfalse
Es wird keine Überschrift über den Erklärungen selbst ausgegeben.
\itemtrue*
@@ -2345,33 +2792,34 @@ Verfügung.
der Selbstständigkeitserklärung beziehungsweise \Term{blockingname} vor dem
Sperrvermerk wird gesetzt.
\item[section/addsec]
- Die Überschrift verwendet den Gliederungsbefehl \Macro{section}.
-\item[chapter/addchap][%
- (Säumniswert für \Class{tudscrbook})
- nur für \Class{tudscrreprt} und \Class{tudscrbook} verfügbar%
- ]
- Es wird der Befehl \Macro{chapter} für das Setzen der Überschrift genutzt.
+ Die Überschrift verwendet den Gliederungsbefehl
+ \Macro{section}(\Package{koma-script})'none'.
+\item[chapter/addchap][\Class{tudscrbook}](%
+ nur \Class{tudscrreprt} und \Class{tudscrbook}%
+ )
+ Es wird der Befehl \Macro{chapter}(\Package{koma-script})'none' für das
+ Setzen der Überschrift genutzt.
\item[heading]
Es wird die höchstmögliche Gliederungsebene verwendet. Für
- \Class{tudscrartcl} entspricht dies \Option{declaration}[section], bei
- \Class{tudscrreprt} und \Class{tudscrbook} \Option{declaration}[chapter].
+ \Class{tudscrartcl} entspricht dies \Option{declaration=section}, bei
+ \Class{tudscrreprt} und \Class{tudscrbook} \Option{declaration=chapter}.
\end{values}
%
Abhängig von der gewählten Gliederungsebene der Überschrift wird das Verhalten
für das Setzen eines Eintrages ins Inhaltsverzeichnis festgelegt. Normalerweise
wird nur für Überschriften in Form einer Gliederungsebene ein Eintrag der
-Erklärung ins Inhaltsverzeichnis erstellt, für \Option{declaration}[true/false]
-geschieht dies standardmäßig nicht. Das voreingestellte Verhalten kann mit
-folgenden Werten überschrieben werden.
+Erklärung ins Inhaltsverzeichnis erstellt, für \Option{declaration=true} und
+\Option{declaration=false} geschieht dies standardmäßig nicht. Mit folgenden
+Werten kann das voreingestellte Verhalten überschrieben werden.
%
-\begin{values}
+\begin{values}{\Option{declaration}}
\item[notoc/nottotoc]
Die Erklärung wird definitiv nicht ins Inhaltsverzeichnis eingetragen.
\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
+ nummerierten Eintrag im Inhaltsverzeichnis auf der obersten Gliederungsebene
der aktuell gerade verwendeten Dokumentklasse.
-\item[leveldown/tocleveldown/totocleveldown]
+\item[tocleveldown/leveldown/totocleveldown]
\ChangedAt{v2.02}
Der Inhaltsverzeichniseintrag wird eine Gliederungsebene unterhalb der
obersten erzeugt.
@@ -2383,13 +2831,14 @@ folgenden Werten überschrieben werden.
%
\ChangedAt{v2.02}
Normalerweise werden die automatischen Kolumnentitel in Abhängigkeit von der
-Gliederungsebene der Überschrift gesetzt, falls diese denn aktiviert sind
-(\Option{automark}). Werden manuelle Kolumnentitel genutzt, müssen diese auch
-für die Erklärungen manuell gesetzt werden. Mit \Option{declaration}[markboth]
-lässt sich außerdem das Setzen der Kolumnentitel auf linken und rechten Seiten
-forcieren, wobei hierfür der Titel der Überschrift genutzt wird.
-%
-\begin{values}
+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.
+%
+\begin{values}{\Option{declaration}}
\item[markboth]
Unabhängig von der Verwendung manueller oder automatischer Kolumnentitel
werden diese auf rechten sowie linken Seiten mit den Bezeichnern
@@ -2399,15 +2848,16 @@ forcieren, wobei hierfür der Titel der Überschrift genutzt wird.
\end{values}
%
Für \Macro{declaration} respektive \Macro{confirmation} und \Macro{blocking}
-sowie die \Environment{declaration}"=Umgebung lässt sich mit dem Parameter
-\Key{\Environment{declaration}}{markboth} ein beliebiger Kolumnentitel setzen.
+sowie die \Environment{declarations}"=Umgebung lässt sich mit dem Parameter
+\Key{\Environment{declarations}}{markboth} ein beliebiger Kolumnentitel setzen.
Die folgenden Einstellungen zur Positionierung der Erklärungen haben lediglich
Auswirkungen, wenn die Überschrift der Erklärung \emph{nicht} im Form eines
-Kapitels ausgegeben und eine Titelseite (\Option{titlepage}[true]) verwendet
+Kapitels ausgegeben und mit der \KOMAScript-Option
+\Option{titlepage=true}(\Package{koma-script})'none' eine Titelseite verwendet
wird.
%
-\begin{values}
+\begin{values}{\Option{declaration}}
\item[single/one/simple]
Jede Erklärung wird auf einer separaten Seite
beziehungsweise im zweispaltigen Satz in einer neuen Spalte ausgegeben.
@@ -2417,48 +2867,51 @@ wird.
Befehlen \Macro{confirmation}, \Macro{blocking} und \Macro{declaration} oder
außerhalb dieser mit \Macro{declaration} gesetzt wurden, werden direkt
nacheinander auf der gleichen Seite ausgegeben, wenn ausreichend Platz auf
- dieser vorhanden sein sollte. Ist die Option \Option{twocolumn} aktiviert,
- erfolgt die Ausgabe aller Erklärungen ohne Spaltenumbruch.
-\item[fil/fill/vfil/vfill]
+ dieser vorhanden sein sollte. Ist die Klassenoption
+ \Option{twocolumn}(\Package{typearea})'none' aktiviert, erfolgt die Ausgabe
+ aller Erklärungen ohne Spaltenumbruch.
+\item[fill/fil/vfil/vfill]
Alle Erklärungen auf einer Ausgabeseite werden vertikal zentriert. Für
- den zweispaltigen Satz mit \Option{twocolumn} steht diese Einstellung nicht
- zur Verfügung.
-\item[nofil/nofill/novfil/novfill]
+ den zweispaltigen Satz
+ (Klassenoption \Option{twocolumn}(\Package{typearea})'none') steht diese
+ Einstellung nicht zur Verfügung.
+\item[nofill/nofil/novfil/novfill]
Die Ausgabe erfolgt wie im normalen Fließtext auch.
\end{values}
\end{Declaration}
-\begin{Declaration}[v2.02]{\Environment{declarations}[\OLParameter{Sprache}]}
-\begin{Declaration}[v2.04]{%
- \Macro{nextdeclaration}%
- \OLParameter{Sprache}\Parameter{Überschrift}\Parameter{Erklärung}
-}
-\begin{Declaration}{\Key{\Environment{declarations}}{language}[\PName{Sprache}]}
-\begin{Declaration}[v2.02]{%
- \Key{\Environment{declarations}}{markboth}[\PBName{Kolumnentitel}]%
+\begin{Declaration}[%
+ v2.02;%
+ v2.04:Trennung einzelner Abschnitte mit \Macro{nextdeclaration};%
+]{\Environment{declarations}[\OLParameter{Sprache}]}
+\begin{Declaration}{%
+ \Macro{nextdeclaration}[%
+ \OLParameter{Sprache}\Parameter{Überschrift}\Parameter{Erklärung}%
+ ]%
}
-\begin{Declaration}[v2.02]{%
- \Key{\Environment{declarations}}{pagestyle}[\PName{Seitenstil}]%
+\begin{Declaration}{\Key{\Environment{declarations}}{language=\PName{Sprache}}}
+\begin{Declaration}{\Key{\Environment{declarations}}{markboth=\PSet}}
+\begin{Declaration}{%
+ \Key{\Environment{declarations}}{pagestyle=\PName{Seitenstil}}%
}
-\begin{Declaration}[v2.02]{%
- \Key{\Environment{declarations}}{columns}[\PName{Anzahl}]%
+\begin{Declaration}{%
+ \Key{\Environment{declarations}}{columns=\PName{Anzahl}}%
}
-\begin{Declaration}{\Key{\Environment{declarations}}{option}[\PSet]}
+\begin{Declaration}{\Key{\Environment{declarations}}{option=\PSet}}
\begin{Declaration}{%
- \Key{\Environment{declarations}}{supporter}[\PName{Unterstützer}]
+ \Key{\Environment{declarations}}{supporter=\PName{Unterstützer}}
}
-\begin{Declaration}{\Key{\Environment{declarations}}{place}[\PName{Ort}]}
-\begin{Declaration}{\Key{\Environment{declarations}}{closing}[\PName{Ende}]}
-\begin{Declaration}{\Key{\Environment{declarations}}{company}[\PName{Firma}]}
+\begin{Declaration}{\Key{\Environment{declarations}}{place=\PName{Ort}}}
+\begin{Declaration}{\Key{\Environment{declarations}}{closing=\PName{Ende}}}
+\begin{Declaration}{\Key{\Environment{declarations}}{company=\PName{Firma}}}
\printdeclarationlist%
-\index{Selbstständigkeitserklärung}\index{Sperrvermerk}%
%
-Für Selbstständigkeitserklärung und Sperrvermerk sollten im einfachsten Fall
-die Befehle \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.
+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.
Innerhalb dieser Umgebung können Selbstständigkeitserklärung und Sperrvermerk
mit dem Befehl \Macro{declaration} direkt nacheinander folgend beziehungsweise
@@ -2474,35 +2927,37 @@ zweiten der Inhalt respektive Text der Erklärung selbst angegeben werden muss.
Die im Folgenden 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{declaration}
+sind auch die Umgebungen \Environment{abstract} und \Environment{declarations}
sehr ähnlich zueinander. Deshalb werden die Erläuterungen relativ kurz
gehalten. Ist ein Erklärung für einen Parameter etwas unverständlich, kann
diese bei der Umgebung \Environment{abstract}'full' nachgelesen werden.
Wurde das Paket \Package{babel} geladen, kann die Sprache~-- sofern diese als
Paketoption oder besser noch als Klassenoption angegeben wurde~-- mit dem
-Parameter \Key{\Environment{declarations}}{language}[\PName{Sprache}] für die
+Parameter \Key{\Environment{declarations}}{language=\PName{Sprache}} für die
\Environment{declarations}"=Umgebung geändert werden. Dadurch werden die
Bezeichner~-- unter anderem \Term{confirmationname} und \Term{blockingname}~--
sowie die Trennungsmuster innerhalb der Umgebung sprachspezifisch angepasst.
\ChangedAt{v2.02}
Die Kolumnentitel können mit \Key{\Environment{declarations}}{markboth}
-beeinflusst werden. Mit \Key{\Environment{abstract}}{markboth}[true] werden
-für diese auf linker und rechter Seite \Term{confirmationname} respektive
-\Term{blockingname} verwendet. Außerdem kann der Anwender selbige mit
-\Key{\Environment{declarations}}{markboth}[\PName{Kolumnentitel}] auch direkt
-festlegen. Sollte \Key{\Environment{declarations}}{markboth} verwendet werden,
-wird der Seitenstil automatisch auf \PageStyle{headings} gesetzt. Mit dem
-Parameter \Key{\Environment{declarations}}{pagestyle} lässt sich dieser für die
-Umgebung auch manuell angegeben. Wurde das Paket \Package{multicol} geladen,
-wird mit \Key{\Environment{declarations}}{columns}[\PName{Anzahl}] der Inhalt
-der Umgebung mehrspaltig gesetzt. Für \Key{\Environment{declarations}}{option}
-können alle gültigen Werte der Option \Option{declaration} angegeben werden.
-Die Verwendung der Parameter \Key{\Macro{confirmation}}{supporter} sowie
+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
+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}
+in irgendeiner Form genutzt, wird der Seitenstil \PageStyle{headings}
+automatisch gesetzt. Dieser lässt sich für die Umgebung mit dem Parameter
+\Key{\Environment{declarations}}{pagestyle} auch manuell angegeben. Wurde das
+Paket \Package{multicol} geladen, wird der Inhalt der Umgebung mit
+\Key{\Environment{declarations}}{columns=\PName{Anzahl}} mehrspaltig gesetzt.
+Für \Key{\Environment{declarations}}{option} können alle gültigen Werte der
+Option \Option{declaration} angegeben werden. Die Verwendung der weiteren
+Parameter \Key{\Macro{confirmation}}{supporter} sowie
\Key{\Macro{confirmation}}{place} und \Key{\Macro{confirmation}}{closing} ist
in der Dokumentation des Befehls \Macro{confirmation} zu finden, der Parameter
-\Key{\Macro{blocking}}{company} ist für \Macro{blocking} erläutert.
+\Key{\Macro{blocking}}{company} ist für \Macro{blocking} erläutert.
\end{Declaration}
\end{Declaration}
\end{Declaration}
@@ -2515,23 +2970,22 @@ in der Dokumentation des Befehls \Macro{confirmation} zu finden, der Parameter
\end{Declaration}
\end{Declaration}
-\begin{Declaration}{\Macro{confirmation}\OLParameter{Unterstützer}}
-\begin{Declaration}{\Key{\Macro{confirmation}}{supporter}[\PName{Unterstützer}]}
-\begin{Declaration}{\Key{\Macro{confirmation}}{place}[\PName{Ort}]}
-\begin{Declaration}{\Key{\Macro{confirmation}}{closing}[\PName{Ende}]}
-\begin{Declaration}{\Key{\Macro{confirmation}}{language}[\PName{Sprache}]}
+\begin{Declaration}{\Macro{confirmation}[\OLParameter{Unterstützer}]}
+\begin{Declaration}[v2.05]{\Macro{confirmation*}[\LParameter]}
+\begin{Declaration}{\Key{\Macro{confirmation}}{supporter=\PName{Unterstützer}}}
+\begin{Declaration}{\Key{\Macro{confirmation}}{place=\PName{Ort}}}
+\begin{Declaration}{\Key{\Macro{confirmation}}{closing=\PName{Ende}}}
+\begin{Declaration}{\Key{\Macro{confirmation}}{language=\PName{Sprache}}}
+\begin{Declaration}[v2.02]{\Key{\Macro{confirmation}}{markboth=\PSet}}
\begin{Declaration}[v2.02]{%
- \Key{\Macro{confirmation}}{markboth}[\PBName{Kolumnentitel}]%
+ \Key{\Macro{confirmation}}{pagestyle=\PName{Seitenstil}}%
}
\begin{Declaration}[v2.02]{%
- \Key{\Macro{confirmation}}{pagestyle}[\PName{Seitenstil}]%
+ \Key{\Macro{confirmation}}{columns=\PName{Anzahl}}%
}
-\begin{Declaration}[v2.02]{%
- \Key{\Macro{confirmation}}{columns}[\PName{Anzahl}]%
-}
-\begin{Declaration}{\Key{\Macro{confirmation}}{option}[\PSet]}
+\begin{Declaration}{\Key{\Macro{confirmation}}{option=\PSet}}
\printdeclarationlist%
-\index{Selbstständigkeitserklärung}\index{Datum}%
+\index{Datum}%
%
Mit diesem Befehl wird ein sprachspezifischer Standardtext für eine
Selbstständigkeitserklärung ausgegeben, welcher in \Term{confirmationtext}
@@ -2544,19 +2998,23 @@ Wird \Term{confirmationtext} nicht geändert, kann dieser über das optionale
Argument von \Macro{confirmation} und die deklarierten Parameter angepasst
werden. Im Standardtext der Selbstständigkeitserklärung werden sowohl der Titel
als auch der Typ der Abschlussarbeit~-- falls dieser mit \Macro{thesis},
-\Macro{subject}\Parameter{\autoref{tab:thesis}} beziehungsweise mit der Option
-\Option{subjectthesis} angegeben wurde~-- aufgeführt. Über den Parameter
+\Macro{subject}[\Parameter{\autoref{tab:thesis}}] beziehungsweise mit der
+Option \Option{subjectthesis} angegeben wurde~-- aufgeführt. Über den Parameter
\Key{\Macro{confirmation}}{supporter} oder \emph{zuvor} mit dem Befehl
\Macro{supporter} können weitere an der Arbeit beteiligte Personen angegeben
werden. Mehrere zu nennende Personen sind auch hier durch \Macro{and} zu
trennen. Das Feld der Unterstützer kann auch mit dem bloßen optionalen Argument
-ohne die Angabe eines Parameters angepasst werden.
+ohne die Angabe eines Parameters angepasst werden.
+\ChangedAt{v2.05}
+Mit der Sternversion \Macro{confirmation*} werden als Unterstützer die mit
+\Macro{supervisor}[\Parameter{Name(n)}] definierten Betreuer der Arbeit
+angegeben.
Nach dem eigentlichen Text der Selbstständigkeitserklärung wird der mit
\Key{\Macro{confirmation}}{place} beziehungsweise \Macro{place} angegebene Ort
sowie das mit \Macro{date} eingestellte Datum ausgegeben. Als Voreinstellung
ist für den Ort \enquote{Dresden} gewählt. Danach folgen~-- mit etwas
-vertikalem Freiraum für die notwendige Unterschrift~-- der Autor oder die
+vertikalem Leerraum für die notwendige Unterschrift~-- der Autor oder die
Autoren, angegeben durch den Befehl \Macro{author}. Soll anstelle dessen etwas
anderes nach dem Text der Selbstständigkeitserklärung gesetzt werden, kann dies
mit dem Parameter \Key{\Macro{confirmation}}{closing} oder zuvor mit dem
@@ -2576,18 +3034,16 @@ der \Environment{declarations}"=Umgebung.
\end{Declaration}
\end{Declaration}
\end{Declaration}
+\end{Declaration}
-\begin{Declaration}[v2.02]{\Macro{blocking}\OLParameter{Firma}}
-\begin{Declaration}{\Key{\Macro{blocking}}{company}[\PName{Firma}]}
-\begin{Declaration}{\Key{\Macro{blocking}}{language}[\PName{Sprache}]}
-\begin{Declaration}[v2.02]{%
- \Key{\Macro{blocking}}{markboth}[\PBName{Kolumnentitel}]%
-}
-\begin{Declaration}[v2.02]{\Key{\Macro{blocking}}{pagestyle}[\PName{Seitenstil}]}
-\begin{Declaration}[v2.02]{\Key{\Macro{blocking}}{columns}[\PName{Anzahl}]}
-\begin{Declaration}{\Key{\Macro{blocking}}{option}[\PSet]}
+\begin{Declaration}[v2.02]{\Macro{blocking}[\OLParameter{Firma}]}
+\begin{Declaration}{\Key{\Macro{blocking}}{company=\PName{Firma}}}
+\begin{Declaration}{\Key{\Macro{blocking}}{language=\PName{Sprache}}}
+\begin{Declaration}{\Key{\Macro{blocking}}{markboth=\PSet}}
+\begin{Declaration}{\Key{\Macro{blocking}}{pagestyle=\PName{Seitenstil}}}
+\begin{Declaration}{\Key{\Macro{blocking}}{columns=\PName{Anzahl}}}
+\begin{Declaration}{\Key{\Macro{blocking}}{option=\PSet}}
\printdeclarationlist%
-\index{Sperrvermerk}%
%
Beim Sperrvermerk verhält es sich äquivalent zur Selbstständigkeitserklärung.
Es wird der in \Term{blockingtext} hinterlegte Standardtext in der gewählten
@@ -2599,9 +3055,9 @@ außerhalb 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
werden sowohl der Titel als auch der Typ der Abschlussarbeit~-- falls dieser
-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
+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
@@ -2619,30 +3075,33 @@ der \Environment{declarations}"=Umgebung.
\end{Declaration}
\end{Declaration}
-\begin{Declaration}{\Macro{declaration}\LParameter}
-\begin{Declaration}{\Key{\Macro{declaration}}{language}[\PName{Sprache}]}
+\begin{Declaration}{\Macro{declaration}[\LParameter]}
+\begin{Declaration}[v2.05]{\Macro{declaration*}[\LParameter]}
+\begin{Declaration}{\Key{\Macro{declaration}}{language=\PName{Sprache}}}
+\begin{Declaration}[v2.02]{\Key{\Macro{declaration}}{markboth=\PSet}}
\begin{Declaration}[v2.02]{%
- \Key{\Macro{declaration}}{markboth}[\PBName{Kolumnentitel}]%
+ \Key{\Macro{declaration}}{pagestyle=\PName{Seitenstil}}%
}
-\begin{Declaration}[v2.02]{%
- \Key{\Macro{declaration}}{pagestyle}[\PName{Seitenstil}]%
-}
-\begin{Declaration}[v2.02]{\Key{\Macro{declaration}}{columns}[\PName{Anzahl}]}
-\begin{Declaration}{\Key{\Macro{declaration}}{option}[\PSet]}
-\begin{Declaration}{\Key{\Macro{declaration}}{supporter}[\PName{Unterstützer}]}
-\begin{Declaration}{\Key{\Macro{declaration}}{place}[\PName{Ort}]}
-\begin{Declaration}{\Key{\Macro{declaration}}{closing}[\PName{Ende}]}
-\begin{Declaration}{\Key{\Macro{declaration}}{company}[\PName{Firma}]}
+\begin{Declaration}[v2.02]{\Key{\Macro{declaration}}{columns=\PName{Anzahl}}}
+\begin{Declaration}{\Key{\Macro{declaration}}{option=\PSet}}
+\begin{Declaration}{\Key{\Macro{declaration}}{supporter=\PName{Unterstützer}}}
+\begin{Declaration}{\Key{\Macro{declaration}}{place=\PName{Ort}}}
+\begin{Declaration}{\Key{\Macro{declaration}}{closing=\PName{Ende}}}
+\begin{Declaration}{\Key{\Macro{declaration}}{company=\PName{Firma}}}
\printdeclarationlist%
-\index{Selbstständigkeitserklärung}\index{Sperrvermerk}%
%
Dieser Befehl gibt die Selbstständigkeitserklärung und den Sperrvermerk direkt
aufeinanderfolgend aus. Dabei werden die Einstellungen zur Positionierung der
-einzelnen Erklärungen, welche über die Wertzuweisungen an die Option
-\Option{declaration}[simple/multiple/fill/nofill] erfolgen, beachtet. Er kann
-sowohl innerhalb der \Environment{declarations}"=Umgebung als auch außerhalb
+einzelnen Erklärungen, welche über die Zuweisungen \Option{declaration=single}
+beziehungsweise \Option{declaration=multiple} sowie \Option{declaration=fill}
+respektive \Option{declaration=nofill} erfolgen, beachtet. Er kann sowohl
+innerhalb der \Environment{declarations}"=Umgebung als auch außerhalb dieser
direkt im Dokument verwendet werden und akzeptiert im optionalen Argument dabei
-alle für die \Environment{declarations}"=Umgebung beschriebenen Parameter.
+alle für die \Environment{declarations}"=Umgebung beschriebenen Parameter.
+\ChangedAt{v2.05}
+Die Sternversion erzwingt für die Selbstständigkeitserklärung eine Angabe der
+mit \Macro{supervisor}[\Parameter{Name(n)}] definierten Betreuer in dieser.
+\end{Declaration}
\end{Declaration}
\end{Declaration}
\end{Declaration}
@@ -2654,65 +3113,86 @@ alle für die \Environment{declarations}"=Umgebung beschriebenen Parameter.
\end{Declaration}
\end{Declaration}
-\begin{Declaration}{\Macro{supporter}\Parameter{Unterstützer}}
-\begin{Declaration}{\Macro{place}\Parameter{Ort}}
-\begin{Declaration}{\Macro{confirmationclosing}\Parameter{Ende}}
-\begin{Declaration}{\Macro{company}\Parameter{Firma}}
+\begin{Declaration}{\Macro{supporter}[\Parameter{Unterstützer}]}
+\begin{Declaration}{\Macro{place}[\Parameter{Ort}]}
+\begin{Declaration}{\Macro{confirmationclosing}[\Parameter{Ende}]}
+\begin{Declaration}{\Macro{company}[\Parameter{Firma}]}
\printdeclarationlist%
-\index{Selbstständigkeitserklärung}\index{Sperrvermerk}%
%
-Diese Makros ändern~-- im Gegensatz zu den Parametern der bereits vorgestellten
-Befehle \Macro{confirmation} und \Macro{blocking}~-- die entsprechenden
-Feldwerte für das gesamte Dokument. Genutzt werden kann dies beispielsweise
-wenn ein Erklärungstyp in unterschiedlichen Sprachen ausgegeben wird. Hiermit
-kann man sich die mehrfache Angabe eines Parameters sparen.
+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
+.
+\index{Selbstständigkeitserklärung|!)}%
+\index{Sperrvermerk|!)}%
\end{Declaration}
\end{Declaration}
\end{Declaration}
\end{Declaration}
-
-\subsection{Fußnoten in Überschriften}
-\begin{Declaration}[%
- v2.02!Fußnoten in Überschriften können mit Symbolen gesetzt werden%
-]{\Option{footnotes}[\PSet]}[nosymbolheadings]%
-\begin{Declaration}[v2.02]{\Counter{symbolheadings}}%
-\printdeclarationlist%
-\index{Überschriften}\index{Überschriften!Fußnoten}\index{Fußnoten}%
-%
-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.
-%
-\begin{values}
-\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}
+\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}
-\begin{Declaration}{\Option{tudbookmarks}[\PBoolean]}[true]%
-\printdeclarationlist%
\index{Lesezeichen}%
-\index{Titel}\index{Umschlagseite}\index{Inhaltsverzeichnis}%
-\index{Aufgabenstellung}\index{Gutachten}\index{Aushang}%
+%
+\begin{Declaration}{\Option{tudbookmarks=\PBoolean}}[true]%
+\printdeclarationlist%
+\index{Titel}%
+\index{Umschlagseite}%
+\index{Inhaltsverzeichnis}%
+\index{Aufgabenstellung}%
+\index{Gutachten}%
+\index{Aushang}%
%
Diese Option wird wirksam, wenn \Package{hyperref} geladen wurde. Es werden für
die Umschlag- und Titelseite, das Inhaltsverzeichnis sowie~-- bei der
Verwendung des Paketes \Package{tudscrsupervisor}~-- die Aufgabenstellung
Lesezeichen oder auch Outline"=Einträge im PDF-Dokument erzeugt.
%
-\begin{values}
+\begin{values}{\Option{tudbookmarks}}
\itemfalse
Es erfolgt kein Eintrag von ergänzenden Lesezeichen.
\itemtrue*
@@ -2721,58 +3201,69 @@ Lesezeichen oder auch Outline"=Einträge im PDF-Dokument erzeugt.
\end{Declaration}
\begin{Declaration}{%
- \Macro{tudbookmark}\OParameter{Ebene}\Parameter{Text}\Parameter{Ankername}%
+ \Macro{tudbookmark}[\OParameter{Ebene}\Parameter{Text}\Parameter{Ankername}]%
}%
\printdeclarationlist%
%
-Der Befehl \Macro{tudbookmark} arbeitet wie \Macro{pdfbookmark} aus
-\Package{hyperref} mit dem Unterschied, dass die Lesezeichen nur generiert
-werden, wenn die Option \Option{tudbookmarks} aktiviert ist.
+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}
+generiert.
\end{Declaration}
\section{Sprachabhängige Bezeichner}
-\label{sec:localization}
+\tudhyperdef*{sec:localization}%
\index{Bezeichner|!(}%
-%
-Durch \KOMAScript{} werden Befehle, mit denen sprachabhängige Bezeichner
-erzeugt oder geändert werden können, zur Verfügung gestellt. Diese werden durch
-\TUDScript genutzt, um lokalisierte Begriffe für die Sprachen Englisch und
-Deutsch bereitzustellen. Ein Großteil davon betrifft Bezeichnungen für Felder
-auf der Titelseite (\autoref{sec:title}). Hierfür wird
-\Macro{providecaptionname}\Parameter{Sprache}\Parameter{Makro}\Parameter{Inhalt}
+\index{Titel!Felder|(}%
+%
+Durch \KOMAScript{} werden Befehle, mit denen sich sprachabhängige Bezeichner
+erzeugen oder ändern lassen, zur Verfügung gestellt. Diese werden durch
+\TUDScript genutzt, um lokalisierte Begriffe für die Sprachen \emph{Englisch}
+und \emph{Deutsch} bereitzustellen. Ein Großteil davon betrifft Bezeichnungen
+für Felder auf der Titelseite (\autoref{sec:title}). Hierfür wird
+\Macro{providecaptionname}[%
+ \Parameter{Sprache}\Parameter{Makro}\Parameter{Inhalt}%
+](\Package{koma-script})'none'
verwendet, wobei \PName{Sprache} dem geladenen Sprachpaket~-- normalerweise das
Paket \Package{babel}~-- bekannt sein muss.
Sollte der Anwender die im Folgenden erläuterten oder auch andere Bezeichner,
welche von einem beliebigen (Sprach"~)Paket bereitgestellt werden, ändern
wollen, ist hierfür der Befehl
-\Macro{renewcaptionname}\Parameter{Sprache}\Parameter{Makro}\Parameter{Inhalt}
+\Macro{renewcaptionname}[%
+ \Parameter{Sprache}\Parameter{Makro}\Parameter{Inhalt}%
+](\Package{koma-script})'none'
zu verwenden. Es sollte natürlich dabei eine \PName{Sprache} angegeben werden,
welche im Dokument durch \Package{babel} oder ein anderes Sprachpaket verwendet
wird, beispielsweise \PValue{ngerman} oder \PValue{english}.
Die Makros der Bezeichner und deren Verwendung werden folgend kurz beschrieben
und tabellarisch aufgeführt. Dabei wurde versucht, alle Befehle der Bezeichner
-für bestimmte Begriffe auf \PValue{\dots{}name} und beschreibende Texte auf
-\PValue{\dots{}text} enden zu lassen.
+für bestimmte Begriffe auf \Term*{\noexpand\dots{}name} und beschreibende
+Texte auf \Term*{\noexpand\dots{}text} enden zu lassen.
-\begin{Declaration}{\Term{supervisorname}}
-\begin{Declaration}{\Term{supervisorothername}}
\begin{Declaration}[%
- v2.02!Unterscheidung von einem und mehreren Gutachtern%
+ v2.02:Unterscheidung von einem und mehreren Gutachtern%
]{\Term{refereename}}
\begin{Declaration}{\Term{refereeothername}}
-\begin{Declaration}{\Term{advisorname}}
+\begin{Declaration}[%
+ v2.05:Unterscheidung von einem und mehreren Fachreferenten%
+]{\Term{advisorname}}
\begin{Declaration}{\Term{advisorothername}}
\begin{Declaration}[%
- v2.02!Unterscheidung von einem und mehreren Professoren%
+ v2.05:Unterscheidung von einem und mehreren Betreuern%
+]{\Term{supervisorname}}
+\begin{Declaration}{\Term{supervisorothername}}
+\begin{Declaration}[%
+ v2.02:Unterscheidung von einem und mehreren Professoren%
]{\Term{professorname}}
\begin{Declaration}[v2.02]{\Term{professorothername}}
\printdeclarationlist%
-\index{Titel}%
-\index{Betreuer}\index{Gutachter}\index{Hochschullehrer}%
+\index{Betreuer}%
+\index{Gutachter}%
+\index{Hochschullehrer}%
\index{Referent}%
%
Diese sprachabhängigen Begriffe sind die Bezeichner für die Titelseitenfelder
@@ -2780,20 +3271,28 @@ von Betreuer (\Macro{supervisor}), Gutachter (\Macro{referee}) und Fachreferent
(\Macro{advisor}). Soll innerhalb eines dieser Felder mehr als eine Person
angegeben werden, so sind die Einzelpersonen jeweils mit dem Befehl \Macro{and}
voneinander zu trennen. In diesem Fall werden alle nach der erstgenannten
-folgenden Personen durch den Bezeichner \PValue{\textbackslash\dots{}othername}
+folgenden Personen durch den Bezeichner \Term*{\noexpand\dots{}othername}
ergänzt.
-\ChangedAt{v2.02}
-Bei der Bezeichnung des Gutachters wird unterschieden, ob einer oder mehrere
-angegeben wurden. Wird lediglich einer genannt, so ist eine Unterscheidung
-nicht notwendig. Werden jedoch zwei Gutachter angegeben, so werden diese auch
-mit Erst- und Zweitgutachter betitelt. Für den betreuenden Hochschullehrer
-(\Macro{professor}) wird ähnlich verfahren. Hier wird allerdings lediglich
-die Bezeichnung vom Singular in den Plural gegebenenfalls automatisch geändert.
-
-
-\renewcaptionname{ngerman}{\refereename}{Gutachter/Erstgutachter}
-\renewcaptionname{english}{\refereename}{Referee/First referee}
+\ChangedAt{v2.02,v2.05}
+Bei den Bezeichnung wird unterschieden, ob eine oder mehrere Personen angegeben
+wurden. Wird lediglich eine Person genannt, so ist eine Unterscheidung nicht
+notwendig und es wird der Singular genutzt. Werden jedoch zwei oder mehr
+Personen angegeben, so wird geprüft, ob der dazugehörige Bezeichner für die
+Zweitperson (\Term*{\noexpand\dots{}othername}) definiert ist. Falls dies so
+ist, wird die alternative Bezeichnung für die erstgenannte Person verwendet,
+andernfalls wird der Plural des Bezeichners verwendet. Dies betrifft alle
+Felder, die über \Macro{referee}, \Macro{advisor}, \Macro{supervisor} oder
+\Macro{professor} angegeben wurden.
+
+\renewcaptionname{ngerman}{\refereename}{(Erst-)Gutachter}
+\renewcaptionname{english}{\refereename}{(First) Referee(s)}
+\renewcaptionname{ngerman}{\advisorname}{(Erster) Fachreferent(en)}
+\renewcaptionname{english}{\advisorname}{(First) Advisor(s)}
+\renewcaptionname{ngerman}{\supervisorname}{(Erst-)Betreuer}
+\renewcaptionname{english}{\supervisorname}{(First) Supervisors(s)}
+\renewcaptionname{ngerman}{\professorname}{Betreuende(r) Hochschullehrer}
+\renewcaptionname{english}{\professorname}{Supervising professor(s)}
\TermTable{%
supervisorname,supervisorothername,refereename,refereeothername,%
advisorname,advisorothername,professorname,professorothername%
@@ -2811,15 +3310,18 @@ die Bezeichnung vom Singular in den Plural gegebenenfalls automatisch geändert.
\begin{Declaration}{\Term{diplomathesisname}}
\begin{Declaration}{\Term{masterthesisname}}
\begin{Declaration}{\Term{bachelorthesisname}}
+\begin{Declaration}{\Term{studentthesisname}}
\begin{Declaration}{\Term{studentresearchname}}
\begin{Declaration}{\Term{projectpapername}}
\begin{Declaration}{\Term{seminarpapername}}
+\begin{Declaration}{\Term{termpapername}}
\begin{Declaration}{\Term{researchname}}
\begin{Declaration}{\Term{logname}}
\begin{Declaration}{\Term{internshipname}}
\begin{Declaration}{\Term{reportname}}
\printdeclarationlist%
-\index{Titel}\index{Abschlussarbeit}\index{Typisierung}%
+\index{Abschlussarbeit}%
+\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
@@ -2840,39 +3342,49 @@ diese genutzt werden können, ist bei der Erläuterung von \Macro{thesis} und
\end{Declaration}
\end{Declaration}
\end{Declaration}
+\end{Declaration}
+\end{Declaration}
\begin{Declaration}{\Term{dateofbirthtext}}
\begin{Declaration}{\Term{placeofbirthtext}}
\begin{Declaration}{\Term{matriculationnumbername}}
\begin{Declaration}{\Term{matriculationyearname}}
-\printdeclarationlist%
-\index{Titel}\index{Autorenangaben}\index{Datum!Geburtsdatum}%
-%
-Werden für den Autor oder die Autoren das Geburtsdatum (\Macro{dateofbirth}),
-der Geburtsort (\Macro{placeofbirth}) sowie 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 Trennzeichen
-vom eigentlichen Feld abgegrenzt.
+\begin{Declaration}{\Term{coursename}}
+\begin{Declaration}[v2.02]{\Term{disciplinename}}
+\printdeclarationlist%
+\index{Autorenangaben}%
+\index{Datum!Geburtsdatum}%
+%
+Werden für den Autor oder die Autoren mit dem entsprechenden Befehl das
+Geburtsdatum (\Macro{dateofbirth}), der Geburtsort (\Macro{placeofbirth}), der
+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
+Trennzeichen vom eigentlichen Feld abgegrenzt.
\TermTable{%
dateofbirthtext,placeofbirthtext,matriculationnumbername,%
- matriculationyearname%
+ matriculationyearname,coursename,disciplinename%
}
\end{Declaration}
\end{Declaration}
\end{Declaration}
\end{Declaration}
+\end{Declaration}
+\end{Declaration}
\begin{Declaration}[v2.02]{\Term{graduationtext}}
\printdeclarationlist%
-\index{Titel}\index{Abschlussarbeit}\index{Typisierung}%
+\index{Abschlussarbeit}%
+\index{Typisierung}%
%
-Wurde erkannt, dass das Dokument eine Abschlussarbeit ist,%
+Wurde erkannt, dass das aktuelle Dokument eine Abschlussarbeit ist,%
\footnote{%
Entweder wurde \Macro{thesis} oder \Macro{subject} mit einem speziellen Wert
- oder der Option \Option{subjectthesis} verwendet.
+ (\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
@@ -2883,28 +3395,24 @@ Text dazu angegeben.
\begin{Declaration}{\Term{datetext}}
\begin{Declaration}{\Term{defensedatetext}}
\printdeclarationlist%
-\index{Titel}\index{Abschlussarbeit}%
-\index{Datum}\index{Datum!Verteidigungsdatum}%
+\index{Abschlussarbeit}%
+\index{Datum}%
+\index{Datum!Abgabedatum}%
+\index{Datum!Verteidigungsdatum}%
%
-Wird mit \Macro{date} das Datum und mit \Macro{defensedate} ein Datum der
-Verteidigung für eine Abschlussarbeit angegeben, so werden auch diese Felder
-durch einen einleitenden Text beschrieben.
+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}
\end{Declaration}
-\begin{Declaration}{\Term{abstractname}}
-\printdeclarationlist%
-%
-Dieser Bezeichner wird lediglich für \Class{tudscrbook} definiert, da dieser
-von \KOMAScript{} für die Buchklasse nicht vorgesehen wird.
-\TermTable{abstractname}
-\end{Declaration}
-
\begin{Declaration}{\Term{confirmationname}}
\begin{Declaration}[v2.02]{\Term{blockingname}}
\printdeclarationlist%
-\index{Selbstständigkeitserklärung}\index{Sperrvermerk}%
+\index{Selbstständigkeitserklärung|(}%
+\index{Sperrvermerk|(}%
%
Es werden die Bezeichnungen für Selbstständigkeitserklärung und Sperrvermerk
für die dazugehörigen Überschriften definiert.
@@ -2920,21 +3428,20 @@ 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%
+Abschlussarbeit\footref{fn:thesis} sowie die angegebenen Unterstützer%
\footnote{%
- entweder \Macro{thesis} oder \Macro{subject}\Parameter{\autoref{tab:thesis}}
- beziehungsweise Option \Option{subjectthesis}[true]
-}
-sowie die angegebenen Unterstützer%
-\footnote{%
- \Macro{confirmation}\POParameter{\Key{\Macro{confirmation}}{supporter}=\dots}
- oder \Macro{supporter}\PParameter{\dots}%
+ \Macro{confirmation}[\POParameter{%
+ \Key{\Macro{confirmation}}{supporter=\PName{Unterstützer}}%
+ }]
+ oder \Macro{supporter}[\Parameter{Unterstützer}]%
}
beachtet. Für den Sperrvermerk (\Macro{blocking}) wird neben dem Titel
(\Macro{title}) optional außerdem noch das Feld der externen Firma%
\footnote{%
- \Macro{blocking}\POParameter{\Key{\Macro{blocking}}{company}=\dots} oder
- \Macro{company}\PParameter{\dots}%
+ \Macro{blocking}[%
+ \POParameter{\Key{\Macro{blocking}}{company=\PName{Firma}}}%
+ ]
+ oder \Macro{company}[\Parameter{Firma}]%
}
verwendet. Der Vollständigkeit halber werden im Folgenden noch die Texte für
die Selbstständigkeitserklärung und den Sperrvermerk aufgeführt~-- allerdings
@@ -2948,23 +3455,54 @@ angezeigt.
\def\@supporter{\PName{Vorname Nachname} \and \PName{Vorname Nachname}}
\def\@company{\PName{Firma}}
\makeatother
- \vskip\baselineskipglue\noindent
- \textbf{Bezeichner}\quad\Term*{confirmationtext}%
+ \vskip\medskipamount\noindent
+ \textbf{Bezeichner}\quad\Term{confirmationtext}%
\begin{quoting}
\confirmationtext
\end{quoting}
- \textbf{Bezeichner}\quad\Term*{blockingtext}%
+ \textbf{Bezeichner}\quad\Term{blockingtext}%
\begin{quoting}
\blockingtext
\end{quoting}
+
+ \makeatletter
+ \def\@@author{\PName{Vorname Nachname}}%
+ \def\@supporter{\PName{Vorname Nachname}}%
+ \makeatother
+ \newcommand*\showfield[1]{%
+ \Macro*{csuse}[\PParameter{#1}]~\textrightarrow~\csuse{#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.%
+ \footnote{%
+ Titel: \showfield{@@title}, Autor: \showfield{@@author}, Art der
+ Abschlussarbeit: \showfield{@@thesis}, Unterstützer: \showfield{@supporter}
+ und Firma: \showfield{@company}%
+ }
+ Gegebenenfalls ist zusätzlich 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}\index{Titel}\index{Umschlagseite}%
+\index{Lesezeichen}%
%
Diese beiden Bezeichner werden bei aktivierter \Option{tudbookmarks} für das
Eintragen von Lesezeichen in ein PDF"=Dokument genutzt.
@@ -2980,9 +3518,9 @@ Sollte ein Paket zur Einbindung von externem Quelltext~-- beispielsweise
das Paket \Package{listings}~-- verwendet werden, so werden diese Bezeichnungen
für Quelltextausschnitte und das Quelltextverzeichnis verwendet.
\TermTable{listingname,listlistingname}
+\index{Bezeichner|!)}%
\end{Declaration}
\end{Declaration}
-\index{Bezeichner|!)}
\section{Kompatibilitätseinstellungen zu früheren Versionen}
Bei der Entwicklung von \TUDScript lässt es sich nicht immer vermeiden, dass
@@ -2991,9 +3529,7 @@ Ergebnis der Ausgabe führen, insbesondere bei Umbruch und Layout. Für bereits
archivierte Dokumente, welche mit einer früheren Version erstellt wurden ist
dies jedoch bei einer erneuten Kompilierung unter Umständen eher unerwünscht.
-\begin{Declaration}[v2.03]{\Option{tudscrver}[%
- \PName{Version}\textOR\PValue{first}\textOR\PValue{last}%
-]}[last]
+\begin{Declaration}[v2.03]{\Option{tudscrver=\PName{Version}}}[last]
\printdeclarationlist%
\index{Kompatibilität|!}%
%
@@ -3005,49 +3541,57 @@ verfügbar, dass per Option die Kompatibilität zu einer älteren Version
ausgewählt wurde.
Bei der Angabe einer unbekannten Version als Wert wird eine Warnung ausgegeben
-und \Option{tudscrver}[first] angenommen. Mit \Option{tudscrver}[last] wird die
+und \Option{tudscrver=first} angenommen. Mit \Option{tudscrver=last} wird die
jeweils aktuell verfügbare Version ausgewählt und folglich auf die zukünftige
Kompatibilität des Dokumentes zu der aktuell genutzten Version verzichtet.
Dieses Verhalten entspricht der Voreinstellung. Es ist zu beachten, dass die
Nutzung von \Option{tudscrver} nur als Klassenoption möglich ist.
%
-\begin{values}
-\item[\PValue{2.02}\textOR\PValue{first}]
+\begin{values}{\Option{tudscrver}}
+\item[\PValue{first}/\PValue{2.02}]
\ChangedAt{%
- v2.03!Satzspiegel im \CD geändert{,} das \protect\DDC-Logo im Fußbereich
+ v2.03:Satzspiegel im \CD geändert, Logo von \DDC im Fußbereich
wird ohne vergrößerten Seitenrand verwendet
}
- Der Satzspiegel im Layout des \CDs (\see*{\Option{cdgeometry}}) wurde in der
- Version~v2.03 leicht geändert. Der obere Seitenrand wurde verkleinert, der
- untere im gleichen Maße vergrößert. Der verfügbare Textbereich ist folglich
- identisch. Bei der Aktivierung des \DDC-Logos im Fußbereich der Seite
- (\see*{\Option{ddcfoot}}) wird im Gegensatz zur Version~v2.02 der gleiche
- Satzspiegel genutzt. Mit \Option{tudscrver}[2.02] kann dieses Verhalten
- deaktiviert werden.
+ Der Satzspiegel im Layout des \CDs (\seeref{\Option{cdgeometry}}) wurde in
+ der Version~v2.03 leicht geändert. Der obere Seitenrand wurde verkleinert,
+ der untere im gleichen Maße vergrößert. Der verfügbare Textbereich ist
+ folglich identisch. Bei der Aktivierung des \DDC-Logos im Fußbereich der
+ Seite (\seeref{\Option{ddcfoot}}) wird im Gegensatz zur Version~v2.02 der
+ gleiche Satzspiegel genutzt. Mit \Option{tudscrver=first} kann dieses
+ Verhalten deaktiviert werden.
\item[\PValue{2.03}]
- \ChangedAt{%
- v2.04!Werte bestimmter Längen abhängig von der verwendeten Schriftgröße%
- }\index{Schriftgröße}%
+ \index{Leerraum}%
+ \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 (Option \Option{fontsize}) definiert. Dies betrifft sowohl die
- dehnbaren Längen \Length{smallskipamount}, \Length{medskipamount} und
- \Length{bigskipamount}, die von den Befehlen \Macro{smallskip},
- \Macro{medskip} sowie \Macro{bigskip} für das Einfügen vertikaler Abstände
- genutzt werden, als auch die beiden Längen \Length{abovecaptionskip} und
- \Length{belowcaptionskip} für den Abstand zwischen einem Gleitobjekt und
- dessen mit \Macro{caption} gesetzten Beschreibung sowie \Length{columnsep}
- als Maß für den Abstand der einzelnen Textspalten im zwei- oder mehrspaltigen
- Layout. Mit der Wahl \Option{tudscrver}[2.03] lässt sich diese Funktionalität
- deaktivieren.
+ 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.
\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%
+ }
+ Mit der Version~v2.05 werden die vorgegebenen Einstellungen zum Satzspiegel
+ anhand der B-ISO/DIN-Reihe vorgenommen. Damit sind für alle Papierformate
+ einer spezifischen ISO/DIN-Klasse die Seitenränder identisch. Mit der Wahl
+ \Option{tudscrver=2.04} ist der Satzspiegel von der A-ISO/DIN-Reihe
+ 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}]
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.04] angegeben werden.
+ \TUDScript nach einem \hologo{LaTeX}"=Lauf das gleiche Ausgabeergebnis
+ liefern, muss dies mit \Option{tudscrver=2.05} 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
innerhalb des Dokumentes auftreten. Dies ist die Standardeinstellung.
\end{values}
\end{Declaration}
+\end{Declaration*}
+\end{Declaration*}
+\end{Declaration*} \ No newline at end of file
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 c88cd1a4f51..0adc4f3e180 100644
--- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-obsolete.tex
+++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-obsolete.tex
@@ -1,5 +1,5 @@
\chapter{Obsolete sowie vollständig entfernte Optionen und Befehle}
-\label{sec:obsolete}%
+\tudhyperdef*{sec:obsolete}%
%
\section{Veraltete Optionen und Befehle in \TUDScript}
Einige Optionen und Befehle waren während der Weiterentwicklung von \TUDScript
@@ -11,482 +11,452 @@ Funktionalität ohne größere Aufwände mit \TUDScript in der aktuellen Version
darauf hingewiesen.
-\subsection{Änderungen für \TUDScript~v2.00}
-\vskip-\lastskip
-\ChangedAt*{v2.00!Änderungen gegenüber der vorhergehenden Version}%
-\begin{Declaration}[v2.00]{\Option*{cd}[alternative]}
-\begin{Declaration}[v2.00]{\Option*{cdtitle}[alternative]}
-\begin{Declaration}[v2.00]{\Length{titlecolwidth}}
-\begin{Declaration}[v2.00]{\Term{authortext}}
-\printdeclarationlist*[\emph{entfällt}]%
-\index{Titel}%
+\ChangedAt*{v2.00:Änderungen gegenüber der vorhergehenden Version}%
+\subsection{Änderungen für \TUDScript~\NoCaseChange{v}2.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}}
+\begin{Obsolete}{v2.00}{\Term{authortext}}
+\printobsoletelist%
%
Die alternative Titelseite ist komplett aus dem \TUDScript-Bundle entfernt
worden. Dementsprechend entfallen auch die dazugehörigen Optionen sowie Länge
und Bezeichner.
-\end{Declaration}
-\end{Declaration}
-\end{Declaration}
-\end{Declaration}
+\end{Obsolete}
+\end{Obsolete}
+\end{Obsolete}
+\end{Obsolete}
-\Replace{v2.00}{\Option{cd}}{\Option{color}}
-\begin{Declaration}[v2.00]{\Option{color}[\PBoolean]}
-\printdeclarationlist*[\see*{\Option*{cd}'page'}]%
+\begin{Obsolete}{v2.00:\Option{cd}}{\Option{color=\PBoolean}}
+\printobsoletelist%
%
Die Einstellungen der farbigen Ausprägung des Dokumentes erfolgt über die
Option \Option*{cd}.
-\end{Declaration}
+\end{Obsolete}
-\Replace{v2.00}{\Option{cdfont}}{\Option{tudfonts}}
-\begin{Declaration}[v2.00]{\Option{tudfonts}[\PBoolean]}
-\begin{Declaration}[v2.00]{\Option*{cdfonts}[\PBoolean]}
-\printdeclarationlist*[\see*{\Option*{cdfont}'page'}]%
+\begin{Obsolete}{v2.00:\Option{cdfont}}{\Option{tudfonts=\PBoolean}}
+\printobsoletelist%
%
Die Option zur Schrifteinstellung ist wesentlich erweitert worden. Aus Gründen
der Konsistenz wurde diese umbenannt.
-\end{Declaration}
-\end{Declaration}
+\end{Obsolete}
-\Replace{v2.00}{\Option{cdfoot}}{\Option{tudfoot}}
-\begin{Declaration}[v2.00]{\Option{tudfoot}[\PBoolean]}
-\printdeclarationlist*[\see*{\Option*{cdfoot}'page'}]%
+\begin{Obsolete}{v2.00:\Option{cdfoot}}{\Option{tudfoot=\PBoolean}}
+\printobsoletelist%
%
Ebenso wurde die Option \Option*{tudfoot} umbenannt, um dem Namensschema der
restlichen Optionen von \TUDScript zu entsprechen.
-\end{Declaration}
+\end{Obsolete}
-\begin{Declaration}[v2.00]{\Option{headfoot}[\PSet]}
-\printdeclarationlist*[\emph{entfällt},
- \KOMAScript-Optionen \Option*{headinclude} und \Option*{footinclude}%
-]%
+\begin{Obsolete}{v2.00}{\Option{headfoot=\PSet}}{%
+ \seeref{\KOMAScript-Optionen \Option*{headinclude} und \Option*{footinclude}}%
+}
+\printobsoletelist%
%
Diese Option war für \TUDScript in der Version~v1.0 notwendig, um die parallele
Verwendung der beiden Pakete \Package*{typearea} und \Package*{geometry} zu
ermöglichen. Die Erstellung des Satzspiegels wurde komplett überarbeitet.
Mittlerweile werden an das Paket \Package*{geometry} die Einstellungen für die
\KOMAScript"=Optionen \Option*{headinclude} und \Option*{footinclude} direkt
-weitergereicht, so dass die Option \Option*{headfoot} nicht mehr notwendig ist
+weitergereicht, sodass die Option \Option*{headfoot} nicht mehr notwendig ist
und deshalb entfernt wurde.
-\end{Declaration}
+\end{Obsolete}
-\Replace{v2.00}{\Option{cleardoublespecialpage}}{%
- \Option{partclear},\Option{chapterclear}%
+\begin{Obsolete}{v2.00:\Option{cleardoublespecialpage}}{%
+ \Option{partclear=\PBoolean}%
+}
+\begin{Obsolete}{v2.00:\Option{cleardoublespecialpage}}{%
+ \Option{chapterclear=\PBoolean}%
}
-\begin{Declaration}[v2.00]{\Option{partclear}[\PBoolean]}
-\begin{Declaration}[v2.00]{\Option{chapterclear}[\PBoolean]}
-\printdeclarationlist*[%
- \emph{entfällt}, \see*{\Option*{cleardoublespecialpage}'page'}%
-]%
+\printobsoletelist%
+%
Beide Optionen sind in der neuen Option \Option*{cleardoublespecialpage}
aufgegangen, womit ein konsistentes Layout erreicht wird. Die ursprünglichen
Optionen entfallen.
-\end{Declaration}
-\end{Declaration}
+\end{Obsolete}
+\end{Obsolete}
-\Replace{v2.00}{\Option{abstract}}{%
- \Option{abstracttotoc},\Option{abstractdouble}%
-}
-\begin{Declaration}[v2.00]{\Option{abstracttotoc}[\PBoolean]}
-\begin{Declaration}[v2.00]{\Option{abstractdouble}[\PBoolean]}
-\printdeclarationlist*[\emph{entfällt}, \see*{\Option*{abstract}'page'}]%
+\begin{Obsolete}{v2.00:\Option{abstract}}{\Option{abstracttotoc=\PBoolean}}
+\begin{Obsolete}{v2.00:\Option{abstract}}{\Option{abstractdouble=\PBoolean}}
+\printobsoletelist%
%
Beide Optionen wurden in die Option \Option*{abstract} integriert und sind
deshalb überflüssig.
-\end{Declaration}
-\end{Declaration}
+\end{Obsolete}
+\end{Obsolete}
-\Replace{v2.00}{\Macro{headlogo}}{\Macro{logofile}}
-\begin{Declaration}[v2.00]{\Macro{logofile}\Parameter{Dateiname}}
-\printdeclarationlist*[\see*{\Macro*{headlogo}'page'}]%
+\begin{Obsolete}{v2.00:\Macro{headlogo}}{%
+ \Macro{logofile}[\Parameter{Dateiname}]%
+}
+\printobsoletelist%
%
-Der Befehl \Macro*{logofile} wurde in \Macro*{headlogo} umbenannt. wobei die
+Der Befehl \Macro*{logofile} wurde in \Macro*{headlogo} umbenannt, wobei die
Funktionalität weiterhin bestehen bleibt.
-\end{Declaration}
+\end{Obsolete}
-\Replace{v2.00}{\Option{tudbookmarks}}{\Option{bookmarks}}
-\begin{Declaration}[v2.00]{\Option{bookmarks}[\PBoolean]}
-\printdeclarationlist*[\see*{\Option*{tudbookmarks}'page'}]%
+\begin{Obsolete}{v2.00:\Option{tudbookmarks}}{\Option{bookmarks=\PBoolean}}
+\printobsoletelist%
%
-Umbenannt, um Überschneidungen mit \Package*{hyperref} zu vermeiden.
-\end{Declaration}
+Die Option wurde umbenannt, um Überschneidungen mit \Package*{hyperref} zu
+vermeiden.
+\end{Obsolete}
-\begin{Declaration}[v2.00]{\Length{signatureheight}}
-\printdeclarationlist*[\emph{entfällt}]%
+\begin{Obsolete}{v2.00}{\Length{signatureheight}}
+\printobsoletelist%
%
Die Höhe für die Zeile der Unterschriften wurde dehnbar gestaltet, eine etwaige
Anpassung durch den Anwender ist nicht vonnöten.
-\end{Declaration}
+\end{Obsolete}
-\Replace{v2.00}{\Macro{titledelimiter}}{\Term{titlecoldelim}}
-\begin{Declaration}[v2.00]{\Term{titlecoldelim}}%
-\printdeclarationlist*[\emph{entfällt}, \see*{\Macro*{titledelimiter}'page'}]%
+\begin{Obsolete}{v2.00:\Macro{titledelimiter}}{\Term{titlecoldelim}}%
+\printobsoletelist%
%
Das Trennzeichen für Bezeichnungen beziehungsweise beschreibende Texte und dem
eigentlichen Feld auf der Titelseite ist nicht mehr sprachabhängig und wurde
umbenannt.
-\end{Declaration}
+\end{Obsolete}
-\Replace{v2.00}{\Macro{declaration}}{%
- \Macro{confirmationandrestriction},\Macro{restrictionandconfirmation}%
-}
-\begin{Declaration}[v2.00]{\Macro{confirmationandrestriction}}
-\begin{Declaration}[v2.00]{\Macro{restrictionandconfirmation}}
-\printdeclarationlist*[\emph{entfällt}, \see*{\Macro*{declaration}'page'}]%
+\begin{Obsolete}{v2.00:\Macro{declaration}}{\Macro{confirmationandrestriction}}
+\begin{Obsolete}{v2.00:\Macro{declaration}}{\Macro{restrictionandconfirmation}}
+\printobsoletelist%
%
Die beiden Befehle entfallen, stattdessen sollte entweder der Befehl
\Macro*{declaration} oder die Umgebung \Environment*{declarations} zusammen mit
den Befehlen \Macro*{confirmation} und \Macro*{blocking} verwendet werden,
wobei sich diese in der Umgebung in beliebiger Reihenfolge anordnen lassen.
-\end{Declaration}
-\end{Declaration}
+\end{Obsolete}
+\end{Obsolete}
-\Replace{v2.00}{\Macro{place}}{\Macro{location}}
-\begin{Declaration}[v2.00]{\Macro{location}\Parameter{Ort}}{%
- \see*{\Macro*{place}'page'}%
-}
-\printdeclarationlist*%
-In Anlehnung an andere \hologo{LaTeX}-Pakete und "~Klassen wurde
+\begin{Obsolete}{v2.00:\Macro{place}}{\Macro{location}[\Parameter{Ort}]}
+\printobsoletelist%
+%
+In Anlehnung an andere \hologo{LaTeX}"=Pakete und "~Klassen wurde
\Macro*{location} in \Macro*{place} umbenannt.
-\end{Declaration}
+\end{Obsolete}
\minisec{\taskname}
+\begin{Bundle}{\Package{tudscrsupervisor}}
Die Umgebung für die Erstellung einer Aufgabenstellung für eine
wissenschaftliche Arbeit wurde in das Paket \Package{tudscrsupervisor}
ausgelagert. Dieses muss für die Verwendung der Umgebung \Environment*{task}
und der daraus abgeleiteten standardisierten Form zwingend geladen werden.
-\Replace{v2.00}{\Environment*{task}}{\Option{cdtask}}
-\begin{Declaration}[v2.00]{\Option{cdtask}[\PSet]}
-\begin{Declaration}[v2.00]{\Option{taskcompact}[\PBoolean]}
-\begin{Declaration}[v2.00]{\Length{taskcolwidth}}
-\printdeclarationlist*[\emph{entfällt}, \see*{\Environment*{task}'page'}]%
+\begin{Obsolete}{v2.00:\Environment{task}}{\Option{cdtask=\PSet}}
+\begin{Obsolete}{v2.00}{\Option{taskcompact=\PBoolean}}
+\begin{Obsolete}{v2.00}{\Length{taskcolwidth}}
+\printobsoletelist%
%
Die Klassenoption \Option*{cdtask} ist komplett entfernt worden, alle
-Einstellungen, welche \Environment*{task} betreffen erfolgen direkt über das
-optionale Argument der Umgebung. Die Variante eines kompakten Kopfes mit der
-Option \Option*{taskcompact} wird nicht mehr bereitgestellt. Die manuelle
-Einstellmöglichkeit der Spaltenbreite für den Kopf der Aufgabenstellung mit
+Einstellungen, erfolgen direkt über das optionale Argument der Umgebung
+\Environment*{task}. Die Variante eines kompakten Kopfes mit der Option
+\Option*{taskcompact} wird nicht mehr bereitgestellt. Die Möglichkeit zur
+manuellen Festlegung der Spaltenbreite für den Kopf der Aufgabenstellung mit
\Length*{taskcolwidth} wurde aufgrund der verbesserten automatischen Berechnung
entfernt.
-\end{Declaration}
-\end{Declaration}
-\end{Declaration}
+\end{Obsolete}
+\end{Obsolete}
+\end{Obsolete}
-\Replace{v2.00}{\Macro{taskform}}{\Macro{tasks}}
-\begin{Declaration}[v2.00]{%
- \Macro{tasks}\Parameter{Ziele}\Parameter{Schwerpunkte}%
-}{\emph{entfällt}, \see*{\Macro*{taskform}'page'}}
-\Replace{v2.00}{\Term{focusname}}{\Term{focustext}}
-\begin{Declaration}[v2.00]{\Term{focustext}}{%
- \emph{entfällt}, \see*{\Term*{focusname}'page'}%
-}
-\Replace{v2.00}{\Term{objectivesname}}{\Term{objectivestext}}
-\begin{Declaration}[v2.00]{\Term{objectivestext}}{%
- \emph{entfällt}, \see*{\Term*{objectivesname}'page'}%
+\begin{Obsolete}{v2.00:\Macro{taskform}}{%
+ \Macro{tasks}[\Parameter{Ziele}\Parameter{Schwerpunkte}]%
}
-\printdeclarationlist*%
+\begin{Obsolete}{v2.00:\Term{focusname}}{\Term{focustext}}
+\begin{Obsolete}{v2.00:\Term{objectivesname}}{\Term{objectivestext}}
+\printobsoletelist%
%
Der Befehl \Macro*{tasks} wurde in \Macro*{taskform} umbenannt und in der
Funktionalität erweitert. Die darin verendeten Bezeichner wurden ebenfalls
leicht abgewandelt.
-\end{Declaration}
-\end{Declaration}
-\end{Declaration}
+\end{Obsolete}
+\end{Obsolete}
+\end{Obsolete}
-\Replace{v2.00}{\Macro{matriculationnumber}}{\Macro{studentid}}
-\begin{Declaration}[v2.00]{\Macro{studentid}\Parameter{Matrikelnummer}}{%
- \see*{\Macro*{matriculationnumber}'page'}%
+\begin{Obsolete}{v2.00:\Macro{matriculationnumber}}{%
+ \Macro{studentid}[\Parameter{Matrikelnummer}]%
}
-\Replace{v2.00}{\Macro{matriculationyear}}{\Macro{enrolmentyear}}
-\begin{Declaration}{\Macro{enrolmentyear}\Parameter{Immatrikulationsjahr}}{%
- \see*{\Macro*{matriculationyear}'page'}%
+\begin{Obsolete}{v2.00:\Macro{matriculationyear}}{%
+ \Macro{enrolmentyear}[\Parameter{Immatrikulationsjahr}]%
}
-\Replace{v2.00}{\Macro{date}}{\Macro{submissiondate}}
-\begin{Declaration}[v2.00]{\Macro{submissiondate}\Parameter{Datum}}{%
- \see*{\Macro*{date}'page'}%
+\begin{Obsolete}{v2.00:\Macro{date}}{\Macro{submissiondate}[\Parameter{Datum}]}
+\begin{Obsolete}{v2.00:\Macro{dateofbirth}}{%
+ \Macro{birthday}[\Parameter{Geburtsdatum}]%
}
-\Replace{v2.00}{\Macro{dateofbirth}}{\Macro{birthday}}
-\begin{Declaration}[v2.00]{\Macro{birthday}\Parameter{Geburtsdatum}}{%
- \see*{\Macro*{dateofbirth}'page'}%
+\begin{Obsolete}{v2.00:\Macro{placeofbirth}}{%
+ \Macro{birthplace}[\Parameter{Geburtsort}]%
}
-\Replace{v2.00}{\Macro{placeofbirth}}{\Macro{birthplace}}
-\begin{Declaration}[v2.00]{\Macro{birthplace}\Parameter{Geburtsort}}{%
- \see*{\Macro*{placeofbirth}'page'}%
+\begin{Obsolete}{v2.00:\Macro{issuedate}}{%
+ \Macro{startdate}[\Parameter{Ausgabedatum}]%
}
-\Replace{v2.00}{\Macro{issuedate}}{\Macro{startdate}}
-\begin{Declaration}[v2.00]{\Macro{startdate}\Parameter{Ausgabedatum}}{%
- \emph{entfällt}, \see*{\Macro*{issuedate}'page'}%
-}
-\printdeclarationlist*%
+\printobsoletelist%
%
Alle Befehle wurden umbenannt und sind jetzt neben der \taskname{} auch für die
Titelseite im \CD nutzbar.
-\end{Declaration}
-\end{Declaration}
-\end{Declaration}
-\end{Declaration}
-\end{Declaration}
-\end{Declaration}
-
-\Replace{v2.00}{\Term{matriculationnumbername}}{\Term{studentidname}}
-\begin{Declaration}[v2.00]{\Term{studentidname}}{%
- \emph{entfällt}, \see*{\Term*{matriculationnumbername}'page'}%
-}
-\Replace{v2.00}{\Term{matriculationyearname}}{\Term{enrolmentname}}
-\begin{Declaration}[v2.00]{\Term{enrolmentname}}{%
- \emph{entfällt}, \see*{\Term*{matriculationyearname}'page'}%
-}
-\Replace{v2.00}{\Term{datetext}}{\Term{submissiontext}}
-\begin{Declaration}[v2.00]{\Term{submissiontext}}{%
- \emph{entfällt}, \see*{\Term*{datetext}'page'}%
-}
-\Replace{v2.00}{\Term{dateofbirthtext}}{\Term{birthdaytext}}
-\begin{Declaration}[v2.00]{\Term{birthdaytext}}{%
- \emph{entfällt}, \see*{\Term*{dateofbirthtext}'page'}%
-}
-\Replace{v2.00}{\Term{placeofbirthtext}}{\Term{birthplacetext}}
-\begin{Declaration}[v2.00]{\Term{birthplacetext}}{%
- \emph{entfällt}, \see*{\Term*{placeofbirthtext}'page'}%
-}
-\Replace{v2.00}{\Term{supervisorothername}}{\Macro{supervisorIIname}}
-\begin{Declaration}[v2.00]{\Macro{supervisorIIname}}{%
- \emph{entfällt}, \see*{\Term*{supervisorothername}'page'}%
-}
-\Replace{v2.00}{\Term{defensedatetext}}{\Term{defensetext}}
-\begin{Declaration}[v2.00]{\Term{defensetext}}{%
- \emph{entfällt}, \see*{\Term*{defensedatetext}'page'}%
-}
-\Replace{v2.00}{\Term{issuedatetext}}{\Term{starttext}}
-\begin{Declaration}[v2.00]{\Term{starttext}}{%
- \emph{entfällt}, \see*{\Term*{issuedatetext}'page'}
-}
-\Replace{v2.00}{\Term{duedatetext}}{\Term{duetext}}
-\begin{Declaration}[v2.00]{\Term{duetext}}{%
- \emph{entfällt}, \see*{\Term*{duedatetext}'page'}%
-}
-\printdeclarationlist*%
+\end{Obsolete}
+\end{Obsolete}
+\end{Obsolete}
+\end{Obsolete}
+\end{Obsolete}
+\end{Obsolete}
+
+\begin{Obsolete}{v2.00:\Term{matriculationnumbername}}{\Term{studentidname}}
+\begin{Obsolete}{v2.00:\Term{matriculationyearname}}{\Term{enrolmentname}}
+\begin{Obsolete}{v2.00:\Term{datetext}}{\Term{submissiontext}}
+\begin{Obsolete}{v2.00:\Term{dateofbirthtext}}{\Term{birthdaytext}}
+\begin{Obsolete}{v2.00:\Term{placeofbirthtext}}{\Term{birthplacetext}}
+\begin{Obsolete}{v2.00:\Term{supervisorothername}}{\Term{supervisorIIname}}
+\begin{Obsolete}{v2.00:\Term{defensedatetext}}{\Term{defensetext}}
+\begin{Obsolete}{v2.00:\Term{issuedatetext}}{\Term{starttext}}
+\begin{Obsolete}{v2.00:\Term{duedatetext}}{\Term{duetext}}
+\printobsoletelist%
%
Die Bezeichner wurden in Anlehnung an die dazugehörigen Befehlsnamen umbenannt.
-\end{Declaration}
-\end{Declaration}
-\end{Declaration}
-\end{Declaration}
-\end{Declaration}
-\end{Declaration}
-\end{Declaration}
-\end{Declaration}
-\end{Declaration}
-
-
-\subsection{Änderungen für \TUDScript~v2.02}
-\vskip-\lastskip
-\ChangedAt*{v2.02!Änderungen gegenüber der vorhergehenden Version}%
-\Replace[macros]{v2.02}{\Length{pageheadingsvskip}}{%
- \Length{chapterheadingvskip}%
-}
-\begin{Declaration}[v2.02]{\Length{chapterheadingvskip}}
-\printdeclarationlist*[%
- \emph{entfällt}, \see*{\Length*{pageheadingsvskip}'page'}%
-]%
+\end{Obsolete}
+\end{Obsolete}
+\end{Obsolete}
+\end{Obsolete}
+\end{Obsolete}
+\end{Obsolete}
+\end{Obsolete}
+\end{Obsolete}
+\end{Obsolete}
+\end{Bundle}
+
+
+\ChangedAt*{v2.02:Änderungen gegenüber der vorhergehenden Version}%
+\subsection{Änderungen für \TUDScript~\NoCaseChange{v}2.02}
+\begin{Obsolete}{v2.02:\Option{pageheadingsvskip}}{\Length{chapterheadingvskip}}
+\printobsoletelist%
+%
Die vertikale Positionierung von Überschriften wurde aufgeteilt. Zum einen kann
-diese für Titel-, Teile- und Kapitelseiten (\Option*{chapterpage}[true]) über
-die Länge \Length*{pageheadingsvskip} geändert werden. Für Kapitelüberschriften
-(\Option*{chapterpage}[false]) sowie den Titelkopf (\Option*{titlepage}[false])
-kann dies unabhängig davon mit \Length*{headingsvskip} erfolgen.
-\end{Declaration}
+diese für Titel"~, Teile- und Kapitelseiten (\Option*{chapterpage=true}) über
+die Option \Option*{pageheadingsvskip} geändert werden. Für Kapitelüberschriften
+(\Option*{chapterpage=false}) sowie den Titelkopf (\Option*{titlepage=false})
+kann dies unabhängig davon mit \Option*{headingsvskip} erfolgen.
+\end{Obsolete}
-\Replace[macros]{v2.02}{\Macro{graduation}}{\Macro{degree}}
-\begin{Declaration}[v2.02]{\Macro{degree}\OParameter{Abk.}\Parameter{Grad}}{%
- \see*{\Macro*{graduation}'page'}%
-}
-\Replace[terms]{v2.02}{\Term{graduationtext}}{\Term{degreetext}}
-\begin{Declaration}[v2.02]{\Term{degreetext}}{%
- \see*{\Term*{graduationtext}'page'}%
+\begin{Obsolete}{v2.02:\Macro{graduation}}{%
+ \Macro{degree}[\OParameter{Abk.}\Parameter{Grad}]%
}
-\printdeclarationlist*%
+\begin{Obsolete}{v2.02:\Term{graduationtext}}{\Term{degreetext}}
+\printobsoletelist%
%
Der Befehl wurde zur Erhöhung der Kompatibilität mit anderen Paketen umbenannt,
der dazugehörige Bezeichner dahingehend angepasst.
-\end{Declaration}
-\end{Declaration}
+\end{Obsolete}
+\end{Obsolete}
-\Replace[macros]{v2.02}{\Macro{blocking}}{\Macro{restriction}}
-\begin{Declaration}[v2.02]{\Macro{restriction}\OLParameter{Firma}}{%
- \see*{\Macro*{blocking}'page'}%
+\begin{Obsolete}{v2.02:\Macro{blocking}}{%
+ \Macro{restriction}[\OLParameter{Firma}]%
}
-\Replace[terms]{v2.02}{\Term{blockingname}}{\Term{restrictionname}}
-\begin{Declaration}[v2.02]{\Term{restrictionname}}{%
- \see*{\Term*{blockingname}'page'}%
-}
-\Replace[terms]{v2.02}{\Term{blockingtext}}{\Term{restrictiontext}}
-\begin{Declaration}[v2.02]{\Term{restrictiontext}}{%
- \see*{\Term*{blockingtext}'page'}%
-}
-\printdeclarationlist*%
+\begin{Obsolete}{v2.02:\Term{blockingname}}{\Term{restrictionname}}
+\begin{Obsolete}{v2.02:\Term{blockingtext}}{\Term{restrictiontext}}
+\printobsoletelist%
%
Der Befehl wurde zur Erhöhung der Kompatibilität mit anderen Paketen umbenannt,
die dazugehörigen Bezeichner dahingehend angepasst.
-\end{Declaration}
-\end{Declaration}
-\end{Declaration}
+\end{Obsolete}
+\end{Obsolete}
+\end{Obsolete}
-\minisec{Änderungen im Paket \Package*{tudscrsupervisor}}
-\vskip-\lastskip
-\Replace[macros]{v2.02}{\Macro{discipline}}{\Macro{branch}}
-\begin{Declaration}[v2.02]{\Macro{branch}\Parameter{Studienrichtung}}{%
- \emph{entfällt}, \see*{\Macro*{discipline}'page'}%
+\begin{Obsolete}{}{\Environment{tudpage}[\OLParameter{Sprache}]}
+\begin{Obsolete}{v2.02:\Key{\Environment{tudpage}}{pagestyle}}{%
+ \Key{\Environment{tudpage}}{head=\PSet}
+}
+\begin{Obsolete}{v2.02:\Key{\Environment{tudpage}}{pagestyle}}{%
+ \Key{\Environment{tudpage}}{foot=\PSet}
}
-\Replace[terms]{v2.02}{\Term{disciplinename}}{\Term{branchname}}
-\begin{Declaration}[v2.02]{\Term{branchname}}{%
- \emph{entfällt}, \see*{\Term*{disciplinename}'page'}%
+\printobsoletelist%
+%
+Diese beiden Parameter der Umgebung \Environment*{tudpage} wurden in ihrer
+Funktionalität durch den Parameter \Key*{\Environment{tudpage}}{pagestyle}
+ersetzt.
+\end{Obsolete}
+\end{Obsolete}
+\end{Obsolete}
+
+
+
+\minisec{Änderungen im Paket \Package{tudscrsupervisor}}
+Im Paket \Package{tudscrsupervisor} gab es ein paar kleinere Anpassungen.
+\begin{Bundle}{\Package{tudscrsupervisor}}
+\begin{Obsolete}{v2.02:\Macro{discipline}}{%
+ \Macro{branch}[\Parameter{Studienrichtung}]%
}
-\printdeclarationlist*%
+\begin{Obsolete}{v2.02:\Term{disciplinename}}{\Term{branchname}}
+\printobsoletelist%
%
Für die \taskname{} wurden der Befehl sowie der dazugehörige Bezeichner
umbenannt.
-\end{Declaration}
-\end{Declaration}
+\end{Obsolete}
+\end{Obsolete}
-\Replace[macros]{v2.02}{\Macro{contactperson}}{\Macro{contact}}
-\begin{Declaration}[v2.02]{\Macro{contact}\Parameter{Kontaktperson(en)}}{%
- \emph{entfällt}, \see*{\Macro*{contactperson}'page'}%
+\begin{Obsolete}{v2.02:\Macro{contactperson}}{%
+ \Macro{contact}[\Parameter{Kontaktperson(en)}]%
}
-\Replace[terms]{v2.02}{\Term{contactpersonname}}{\Term{contactname}}
-\begin{Declaration}[v2.02]{\Term{contactname}}{%
- \emph{entfällt}, \see*{\Term*{contactpersonname}'page'}%
+\begin{Obsolete}{v2.02:\Term{contactpersonname}}{\Term{contactname}}
+\begin{Obsolete}{v2.02:\Macro{telephone}}{%
+ \Macro{phone}[\Parameter{Telefonnummer}]%
}
-\Replace[macros]{v2.02}{\Macro{telephone}}{\Macro{phone}}
-\begin{Declaration}[v2.02]{\Macro{phone}\Parameter{Telefonnummer}}{%
- \emph{entfällt}, \see*{\Macro*{telephone}'page'}%
+\begin{Obsolete}{v2.02:\Macro{emailaddress}}{%
+ \Macro{email}[\Parameter{E-Mail-Adresse}]%
}
-\Replace[macros]{v2.02}{\Macro{emailaddress}}{\Macro{email}}
-\begin{Declaration}[v2.02]{\Macro{email}\Parameter{E-Mail-Adresse}}{%
- \emph{entfällt}, \see*{\Macro*{emailaddress}'page'}%
-}
-\printdeclarationlist*%
+\printobsoletelist%
%
Alle genannten Befehle und Bezeichner wurden für den \noticename{} umbenannt.
-\end{Declaration}
-\end{Declaration}
-\end{Declaration}
-\end{Declaration}
+\end{Obsolete}
+\end{Obsolete}
+\end{Obsolete}
+\end{Obsolete}
+\end{Bundle}
+
-\subsection{Änderungen für \TUDScript~v2.03}
-\vskip-\lastskip
-\ChangedAt*{v2.03!Änderungen gegenüber der vorhergehenden Version}%
-\Replace[options]{v2.03}{\Option{cdgeometry}}{\Option{geometry}}%
-\begin{Declaration}[v2.03]{\Option{geometry}[\PBoolean]}
-\printdeclarationlist*[\see*{\Option*{cdgeometry}'page'}]%
+\ChangedAt*{v2.03:Änderungen gegenüber der vorhergehenden Version}%
+\subsection{Änderungen für \TUDScript~\NoCaseChange{v}2.03}
+\begin{Obsolete}{v2.03:\Option{cdgeometry}}{\Option{geometry=\PBoolean}}
+\printobsoletelist%
%
-Die Option \Option*{geometry} wurde aus Gründen der Konsistenz und dem
-Vermeiden eines möglichen Konfliktes mit einer späteren \KOMAScript-Version
-umbenannt. An der Funktionalität wurde nichts geändert.
-\end{Declaration}
+Die Option \Option*{geometry} wurde zur Konsistenz sowie dem Vermeiden
+eines möglichen Konfliktes mit einer späteren \KOMAScript-Version umbenannt.
+Die Funktionalität bleibt bestehen.
+\end{Obsolete}
+
+\begin{Obsolete}{v2.03:\Option{cdfont}}{\Option{cdfonts=\PBoolean}}
+\begin{Obsolete}{v2.03:\Option{cdfont}}{\Option{din=\PBoolean}}
+\printobsoletelist%
+%
+Die Option \Option*{cdfont} wurde erweitert und fungiert als zentrale
+Schnittstelle zur Schrifteinstellung.
+\end{Obsolete}
+\end{Obsolete}
-\Replace[options]{v2.03}{\Option{cdmath}}{\Option{sansmath}}%
-\begin{Declaration}[v2.03]{\Option{sansmath}[\PBoolean]}
-\printdeclarationlist*[\see*{\Option*{cdmath}'page'}]%
+\begin{Obsolete}{v2.03:\Option{cdmath}}{\Option{sansmath=\PBoolean}}
+\printobsoletelist%
%
Die Option \Option*{sansmath} wurde aus Gründen der Konsistenz umbenannt.
Zusätzlich wurde die Funktionalität erweitert.
-\end{Declaration}
+\end{Obsolete}
-\Replace[options]{v2.03}{\Option{cdhead}}{\Option{barfont},\Option{widehead}}
-\begin{Declaration}[v2.03]{\Option{barfont}[\PSet]}
-\begin{Declaration}[v2.03]{\Option{widehead}[\PBoolean]}
-\printdeclarationlist*[\see*{\Option*{cdhead}'page'}]%
-%
-Die Funktionalitäten der Optionen \Option*{barfont} und \Option*{widehead}
-wurden in der Option \Option*{cdhead} zusammengefasst und erweitert.
-\end{Declaration}
-\end{Declaration}
-
-\subsection{Änderungen für \TUDScript~v2.04}
-\vskip-\lastskip
-\ChangedAt*{v2.04!Änderungen gegenüber der vorhergehenden Version}%
-\begin{Declaration}[v2.04]{\Option{fontspec}[\PBoolean]}[false]%
-\printdeclarationlist*%
-%
-Anstatt die Option zu aktivieren, kann einfach das Paket \Package{fontspec} in
-der Dokumentpräambel geladen werden. Damit lassen sich anschließend weitere
-Pakete nutzen, die auf die Verwendung von \Package{fontspec} angewiesen sind.
-Sollte die Option \Option{fontspec} dennoch genutzt werden, müssen alle auf das
-Paket \Package{fontspec} aufbauende Einstellungen durch den Anwender mit
-\Macro*{AfterPackge}\PParameter{fontspec}\PParameter{\dots} verzögert werden.
-Mehr zur Verwendung ist in \fullref{sec:fonts:fontspec} nachzulesen.
-\begin{values}
-\itemfalse*
- Die Hausschriften im Stil des \CDs der \TnUD werden im PostScript"=Format
- eingebunden. Sowohl Kerning als auch der mathematische Satz funktionieren
- problemlos.
-\itemtrue*
- Es werden die OpenType"=Varianten der Hausschriften verwendet. Dazu wird das
- Paket \Package{fontspec} geladen, welches lediglich mit \hologo{LuaLaTeX}
- oder \hologo{XeLaTeX} jedoch nicht mit \hologo{pdfLaTeX} als genutzt werden
- kann. Sowohl beim mathematischen Satz als auch beim Kerning der Schriften
- kann es zu Problemen kommen. Hierfür müssen die OpenType"=Schriften auf dem
- Betriebssystem installiert sein. Die Verwendung dieser Einstellung sollte
- nur für den Fall erfolgen, dass eine Installation der PostScript"=Schriften
- nicht möglich ist.
-\end{values}
-\end{Declaration}
-
-
-\section{Das Paket \Package*{tudscrcomp} -- Umstieg von anderen Klassen}
-\begin{Declaration*}{\Package{tudscrcomp}}
-\index{Kompatibilität!\Class{tudbook}|(}%
-%\index{Kompatibilität!\Class{tudmathposter}|(}%
-\ToDo[nxt]{Unterstützung für \Class{tudmathposter}}[v2.05]
-\ToDo[nxt]{Unterstützung für alle Klassen von Klaus Bergmann prüfen}[v2.05]
+\begin{Obsolete}{v2.03:\Option{cdhead}}{\Option{barfont=\PSet}}
+\begin{Obsolete}{v2.03:\Option{cdhead}}{\Option{widehead=\PBoolean}}
+\printobsoletelist%
%
+Die Optionen \Option*{barfont} und \Option*{widehead} wurden in der Option
+\Option*{cdhead} zusammengefasst.
+\end{Obsolete}
+\end{Obsolete}
+
+\begin{Obsolete}{}{\Environment{tudpage}[\OLParameter{Sprache}]}
+\begin{Obsolete}{v2.03}{\Key{\Environment{tudpage}}{color=\PName{Farbe}}}
+\printobsoletelist%
+%
+Der Parameter \Key*{\Environment{tudpage}}{color=\PValueName{Farbe}} der
+\Environment*{tudpage}"=Umgebung wurde ersatzlos entfernt.
+\end{Obsolete}
+\end{Obsolete}
+
+
+\ChangedAt*{v2.04:Änderungen gegenüber der vorhergehenden Version}%
+\subsection{Änderungen für \TUDScript~\NoCaseChange{v}2.04}
+\begin{Obsolete}{v2.04}{\Option{fontspec=\PBoolean}}%
+\printobsoletelist%
+%
+Anstatt die Option \Option*{fontspec} zu aktivieren, kann einfach das Paket
+\Package{fontspec} in der Dokumentpräambel geladen werden. Dadurch können
+anschließend zusätzliche Pakete genutzt werden, welche auf die Verwendung von
+\Package{fontspec} angewiesen sind. Sollte die Option \Option*{fontspec}
+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.
+\end{Obsolete}
+
+
+\ChangedAt*{v2.05:Änderungen gegenüber der vorhergehenden Version}%
+\subsection{Änderungen für \TUDScript~\NoCaseChange{v}2.05}
+\begin{Obsolete}{v2.05:\Option{pageheadingsvskip}}{\Length{pageheadingsvskip}}
+\begin{Obsolete}{v2.05:\Option{headingsvskip}}{\Length{headingsvskip}}
+\printobsoletelist%
+%
+Die vertikale Positionierung von speziellen Überschriften erfolgt nicht mehr
+über die Längen \Length*{headingsvskip} und \Length*{pageheadingsvskip} sondern
+über die Optionen \Option*{headingsvskip} sowie \Option*{pageheadingsvskip}.
+\end{Obsolete}
+\end{Obsolete}
+
+
+\begin{Obsolete}{v2.05:\Option{footlogoheight}}{\Length{footlogoheight}}%
+\printobsoletelist%
+%
+Auch die Höhe der Logos im Fußbereich der \PageStyle*{tudheadings}"=Seitenstile
+wird von nun an mit der Option \Option*{footlogoheight} und nicht mehr mit der
+Länge \Length*{footlogoheight} festgelegt.
+\end{Obsolete}
+
+
+
+\section{Das Paket \Package{tudscrcomp} -- Umstieg von anderen Klassen}
+\begin{Bundle*}{\Package{tudscrcomp}}
+\index{Kompatibilität!\Class{tudbook}|(}%
+\index{Kompatibilität!\Class{tudmathposter}|(}%
+
\noindent\Attention{%
- Sollten Sie eine der Klassen \Class{tudbook}, \Class{tudbeamer},
- \Class{tudletter}, \Class{tudfax}, \Class{tudhaus} und \Class{tudform} %sowie
-% \Class{tudmathposter}
- oder \TUDScript in der Version~v1.0 nie genutzt haben,
- können Sie dieses \autorefname ohne Weiteres überspringen. Sämtliche hier
- vorgestellten Optionen und Befehle sind in der aktuellen Version von
- \TUDScript obsolet.
+ Sollten Sie \Class{tudbook}|?|, \Class{tudletter}|?|, \Class{tudfax}|?|,
+ \Class{tudhaus}|?|, \Class{tudform}|?| oder auch \Class{tudmathposter}|?|
+ beziehungsweise eine der veralteten \TUDScript-Klassen in der Version~v1.0
+ mit den Klassen \Class{tudscrbookold}|?|, \Class{tudscrreprtold}|?| und
+ \Class{tudscrartclold}|?| nie genutzt haben, können Sie dieses \autorefname
+ ohne Weiteres überspringen. Sämtliche hier vorgestellten Optionen und Befehle
+ sind in der aktuellen Version von \TUDScript obsolet.
}
\bigskip\noindent
-Zu Beginn der Entwicklung von \TUDScript bildete die Klasse \Class{tudbook}
-die Basis. Ziel war es, sämtliche Funktionalitäten dieser beizubehalten und
-zusätzlich den vollen Funktionsumfang der \KOMAScript-Klassen nutzbar zu
-machen. Bei der kompletten Neuimplementierung der \TUDScript-Klassen wurde sehr
-viel verändert und verbessert. Einige der Optionen und Befehle waren jedoch
-bereits in der \TUDScript-Version~v1.0 Relikte, um die Kompatibilität zur
-\Class{tudbook}-Klasse und ihren Derivaten zu gewährleisten. Mit \TUDScript in
-der Version~v2.00 wurden einige aus Gründen der Konsistenz lediglich umbenannt,
-andere wiederum wurden vollständig entfernt oder über neue Befehle und Optionen
-in ihrer Funktionalität ersetzt und erweitert.
-
-Das Paket \Package{tudscrcomp} dient der Überführung von alten Dokumenten, die
-entweder mit der \Class{tudbook}-Klasse, ihren Derivaten oder mit \TUDScript in
-der Version~v1.0 erstellt wurden, auf \TUDScript~\vTUDScript. Es werden einige
-Optionen und Befehle bereitgestellt, welche von den alten Klassen definiert
-wurden und das entsprechende Verhalten nachahmen. Damit soll die Kompatibilität
-bei der Änderung der Dokumentklasse sichergestellt werden. Die Intention ist,
-alte Dokumente möglichst schnell und einfach auf die \TUDScript-Klassen
-portieren zu können. Des Weiteren ist beschrieben, wie sich die Funktionalität
-ohne die Verwendung des Paketes \Package{tudscrcomp} mit den Mitteln von
-\TUDScript umsetzen lassen. Für den Satz neuer Dokumente wird empfohlen, auf
-den Einsatz dieses Paketes komplett zu verzichten und stattdessen die neuen
-Befehle zu nutzen.
-
-\begin{Declaration}{\Macro{einrichtung}\Parameter{Fakultät}}{%
- identisch zu \Macro*{faculty}
-}
-\begin{Declaration}{\Macro{fachrichtung}\Parameter{Einrichtung}}{%
- identisch zu \Macro*{department}
-}
-\begin{Declaration}{\Macro{institut}\Parameter{Institut}}{%
- identisch zu \Macro*{institute}
-}
-\begin{Declaration}{\Macro{professur}\Parameter{Lehrstuhl}}{%
- identisch zu \Macro*{chair}
-}
-\printdeclarationlist*%
+Zu Beginn der Entwicklung von \TUDScript diente die Klasse \Class{tudbook} als
+grundlegende Basis zur Orientierung. Ziel war es, sämtliche Funktionalitäten
+dieser Klasse beizubehalten und zusätzlich den vollen Funktionsumfang der
+\KOMAScript-Klassen nutzbar zu machen. Bei der kompletten Neuimplementierung
+der \TUDScript-Klassen wurde sehr viel verändert und verbessert. Ein Teil der
+implementierten Optionen und Befehle war jedoch bereits in der Version~v1.0 von
+\TUDScript unerwünschte Relikte, mit denen lediglich die Kompatibilität zur
+\Class{tudbook}"=Klasse und ihren Derivaten gewährleistet werden sollte. Mit
+der Version~v2.00 wurden einige der unnötigen Befehle und Optionen aus Gründen
+der Konsistenz nur umbenannt, andere wiederum wurden vollständig entfernt oder
+über neue Befehle und Optionen in ihrer Funktionalität ersetzt und erweitert.
+
+\ChangedAt{v2.05:Unterstützung von \Class{tudmathposter}}
+Das Paket \Package{tudscrcomp} dient der Überführung von Dokumenten, welche
+entweder mit der \Class{tudbook}"=Klasse, ihren Derivaten,
+der Klasse \Class{tudmathposter} oder mit \TUDScript in der Version~v1.0
+erstellt wurden, auf \TUDScript~\vTUDScript.
+\Attention{%
+ Falls Sie das Paket verwenden wollen, sollte es \textbf{direkt} nach der
+ Dokumentklasse geladen werden. Andernfalls kann es im Zusammenhang mit
+ anderen Paketen zu Problemen kommen.
+}
+
+Es werden einige Optionen und Befehle bereitgestellt, welche von den zuvor
+genannten Klassen definiert werden, um das entsprechende Verhalten nachzuahmen.
+Damit soll vor allem die Kompatibilität bei einer Änderung der Dokumentklasse
+sichergestellt werden. Die Intention ist, Dokumente möglichst schnell und
+einfach auf die \TUDScript-Klassen portieren zu können. Des Weiteren ist
+beschrieben, wie sich die Funktionalität ohne eine Verwendung des Paketes
+\Package{tudscrcomp} mit den Mitteln von \TUDScript umsetzen lassen. Für den
+Satz neuer Dokumente wird empfohlen, auf den Einsatz dieses Paketes komplett zu
+verzichten und stattdessen direkt die \TUDScript-Befehle zu nutzen.
+
+\begin{Declaration}{\Macro{einrichtung}[\Parameter{Fakultät}]}{%
+ identisch zu \Macro*{faculty}[\Parameter{Fakultät}]%
+}
+\begin{Declaration}{\Macro{fachrichtung}[\Parameter{Einrichtung}]}{%
+ identisch zu \Macro*{department}[\Parameter{Einrichtung}]%
+}
+\begin{Declaration}{\Macro{institut}[\Parameter{Institut}]}{%
+ identisch zu \Macro*{institute}[\Parameter{Institut}]%
+}
+\begin{Declaration}{\Macro{professur}[\Parameter{Lehrstuhl}]}{%
+ identisch zu \Macro*{chair}[\Parameter{Lehrstuhl}]%
+}
+\printdeclarationlist%
%
Dies sind die deutschsprachigen Befehle für den Kopf im \CD.
\end{Declaration}
@@ -495,107 +465,115 @@ Dies sind die deutschsprachigen Befehle für den Kopf im \CD.
\end{Declaration}
\begin{Declaration}{\Option{serifmath}}{%
- identisch zu \Option*{cdmath}[false]%
+ identisch zu \Option*{cdmath=false}%
}
-\printdeclarationlist*%
+\printdeclarationlist%
%
Die Funktionalität wird durch die Option \Option*{cdmath} bereitgestellt.
\end{Declaration}
-\begin{Declaration}{\Macro{tudfont}\Parameter{Scriftart}}{%
- identisch zu \Macro*{cdfont}%
+\begin{Declaration}{\Macro{tudfont}[\Parameter{Scriftart}]}{%
+ identisch zu \Macro*{cdfont}[\Parameter{Scriftart}]%
}
-\printdeclarationlist*%
+\printdeclarationlist%
%
Die direkte Auswahl der Schriftart sollte mit \Macro*{cdfont} erfolgen.
Zusätzlich gibt es den Befehl \Macro*{textcdfont}, mit dem die Auszeichnung
eines bestimmten Textes in einer anderen Schriftart erfolgen kann, ohne die
Dokumentschrift umzuschalten.
\end{Declaration}
-%\index{Kompatibilität!\Class{tudmathposter}|)}%
+\index{Kompatibilität!\Class{tudmathposter}|)}%
+
\subsection{Optionen und Befehle aus \Class{tudbook} \& Co.}
+%
+Die nachfolgenden Optionen, Umgebungen sowie Befehle werden~-- zumindest
+teilweise~-- von den Klassen \Class{tudbook}, \Class{tudletter},
+\Class{tudfax}, \Class{tudhaus}, \Class{tudform} sowie dem Paket
+\Package{tudthesis}'none' und \TUDScript~v1.0 mit den Klassen
+\Class{tudscrbookold}, \Class{tudscrreprtold}, \Class{tudscrartclold}
+definiert und werden durch \Package{tudscrcomp} für \TUDScript~\vTUDScript{}
+zur Verfügung gestellt.
+
\begin{Declaration}{\Option{colortitle}}{%
- identisch zu \Option*{cdtitle}[color]%
+ identisch zu \Option*{cdtitle=color}%
}
\begin{Declaration}{\Option{nocolortitle}}{%
- identisch zu \Option*{cdtitle}[true]%
+ identisch zu \Option*{cdtitle=true}%
}
-\printdeclarationlist*%
+\printdeclarationlist%
%
Die Funktionalität wird durch die Option \Option*{cdtitle} bereitgestellt.
\end{Declaration}
\end{Declaration}
-\begin{Declaration}{\Macro{moreauthor}\Parameter{Autorenzusatz}}{%
- identisch zu \Macro*{authormore}%
+\begin{Declaration}{\Macro{moreauthor}[\Parameter{Autorenzusatz}]}{%
+ identisch zu \Macro*{authormore}[\Parameter{Autorenzusatz}]%
}
-\printdeclarationlist*%
+\printdeclarationlist%
%
Ursprünglich war diese Befehl für das Unterbringen aller möglichen,
zusätzlichen Autoreninformationen gedacht. Auch der Befehl \Macro*{authormore}
-ist ein Rudiment davon. Empfohlen wird die Verwendung der Befehle
+ist ein Rudiment davon. Empfohlen wird stattdessen die Verwendung der Befehle
\Macro*{dateofbirth}, \Macro*{placeofbirth}, \Macro*{matriculationnumber} und
-\Macro*{matriculationyear} sowie für die Aufgabenstellung einer
-wissenschaftlichen Arbeit \Macro*{course} und \Macro*{discipline} aus dem Paket
-\Package*{tudscrsupervisor}.
+\Macro*{matriculationyear} sowie \Macro*{course} und \Macro*{discipline}.
\end{Declaration}
-\begin{Declaration}{\Macro{submitdate}\Parameter{Datum}}{%
- identisch zu \Macro*{date}%
+\begin{Declaration}{\Macro{submitdate}[\Parameter{Datum}]}{%
+ identisch zu \Macro*{date}[\Parameter{Datum}]%
}
-\printdeclarationlist*%
+\printdeclarationlist%
%
Die Funktionalität wird durch den erweiterten Standardbefehl \Macro*{date}
abgedeckt.
\end{Declaration}
-\begin{Declaration}{\Macro{supervisorII}\Parameter{Name}}{%
+\begin{Declaration}{\Macro{supervisorII}[\Parameter{Name}]}{%
identisch zur Verwendung von \Macro*{and} innerhalb von \Macro*{supervisor}%
}
-\printdeclarationlist*%
+\printdeclarationlist%
%
-Es ist \Macro*{supervisor}\PParameter{\PName{Name} \Macro*{and} \PName{Name}}
-statt \Macro*{supervisorII}\Parameter{Name} zu verwenden.
+Es ist \Macro*{supervisor}[\PParameter{\PName{Name} \Macro*{and} \PName{Name}}]
+statt \Macro*{supervisorII}[\Parameter{Name}] zu verwenden.
\end{Declaration}
-\begin{Declaration}{\Macro{supervisedby}\Parameter{Bezeichnung}}{%
+\begin{Declaration}{\Macro{supervisedby}[\Parameter{Bezeichnung}]}{%
siehe \Term*{supervisorname}%
}
-\begin{Declaration}{\Macro{supervisedIIby}\Parameter{Bezeichnung}}{%
+\begin{Declaration}{\Macro{supervisedIIby}[\Parameter{Bezeichnung}]}{%
siehe \Term*{supervisorothername}%
}
-\begin{Declaration}{\Macro{submittedon}\Parameter{Bezeichnung}}{%
+\begin{Declaration}{\Macro{submittedon}[\Parameter{Bezeichnung}]}{%
siehe \Term*{datetext}%
}
-\printdeclarationlist*%
+\printdeclarationlist%
%
Zur Änderung der Bezeichnung der Betreuer sollten die sprachabhängigen
Bezeichner wie in \autoref{sec:localization} beschrieben angepasst werden. Eine
-Verwendung der alten Befehle entfernt die Abhängigkeit der Bezeichner von der
-verwendeten Sprache.
+Verwendung der hier beschriebenen Befehle entfernt die Abhängigkeit der
+Bezeichner von der verwendeten Sprache.
\end{Declaration}
\end{Declaration}
\end{Declaration}
\begin{Declaration}{\Option{ddcfooter}}{%
- identisch zu \Option*{ddcfoot}[true]%
+ identisch zu \Option*{ddcfoot=true}%
}
-\printdeclarationlist*%
+\printdeclarationlist%
%
Die Funktionalität wird durch die Option \Option*{ddcfoot} bereitgestellt.
\end{Declaration}
\begin{Declaration}{\Macro{dissertation}}
-\printdeclarationlist*%
+\printdeclarationlist%
%
-Die Funktionalität kann durch die Befehle \Macro*{thesis}\PParameter{diss} und
-\Macro*{referee} sowie die Bezeichner \Term*{refereename} und
+Die Funktionalität kann durch die Befehle \Macro*{thesis}[\PParameter{diss}]
+und \Macro*{referee} sowie die Bezeichner \Term*{refereename} und
\Term*{refereeothername} dargestellt werden.
\end{Declaration}
\begin{Declaration}{\Macro{chapterpage}}
-\printdeclarationlist*%
+\printdeclarationlist%
%
Durch diesen Befehl können Kapitelseiten konträr zur eigentlichen Einstellung
aktiviert oder deaktiviert werden. Prinzipiell ist dies auch durch eine
@@ -605,25 +583,243 @@ führt.
\end{Declaration}
\begin{Declaration}{\Environment{theglossary}[\OParameter{Präambel}]}
-\begin{Declaration}{\Macro{glossitem}\Parameter{Begriff}}
-\printdeclarationlist*%
+\begin{Declaration}{\Macro{glossitem}[\Parameter{Begriff}]}
+\printdeclarationlist%
%
-Die \Class{tudbook}-Klasse stellt eine rudimentäre Umgebung für ein Glossar
+Die \Class{tudbook}"=Klasse stellt eine rudimentäre Umgebung für ein Glossar
bereit. Allerdings gibt es dafür bereits zahlreiche und besser implementierte
Pakete. Daher wird für diese Umgebung keine Portierung vorgenommen, sondern
lediglich die ursprüngliche Definition übernommen. Allerdings sein an dieser
Stelle auf wesentlich bessere Lösungen wie beispielsweise das Paket
\Package{glossaries} oder~-- mit Abstrichen~-- das nicht ganz so umfangreiche
-Paket \Package{nomencl} verwiesen.
+Paket \Package{nomencl} verwiesen.
+\end{Declaration}
+\end{Declaration}
+\index{Kompatibilität!\Class{tudbook}|)}%
+
+\subsection{Optionen und Befehle aus \Class{tudmathposter}}
+\index{Kompatibilität!\Class{tudmathposter}|(}%
+%
+Die Klasse~\Class{tudmathposter} wird~-- im Gegensatz zu den zuvor genannten
+Klassen von Klaus Bergmann~-- weiterhin gepflegt und kann bedenkenlos zum
+Setzen von Postern im A0"~Format verwendet werden. Dennoch gab es vermehrt
+Anfragen bezüglich einer Posterklasse auf Basis der \TUDScript-Klassen, um
+beispielsweise die Schriftgröße oder auch das Papierformat einfach anpassen zu
+können. Um von \Class{tudmathposter} einen möglichst einfachen Übergang auf
+\Class{tudscrposter} zu gewährleisten, kann zusätzlich letzterer Klasse das
+Paket \Package{tudscrcomp} geladen werden, welches die nachfolgend erläuterten
+Anwenderbefehle bereitstellt. Von \Package{tudscrcomp} werden außerdem einige
+Pakete geladen, welche normalerweise durch \Class{tudmathposter} eingebunden
+werden. Dies sind \Package{amsmath}, \Package{amsfonts}, \Package{calc},
+\Package{textcomp} sowie \Package{tabularx}.
+
+Es ist nicht beabsichtigt, dass bei einem Umstieg von \Class{tudmathposter} auf
+\Class{tudscrposter} in Verbindung mit \Package{tudscrcomp} das Ausgabeergebnis
+identisch ist. Vielmehr soll damit die Möglichkeit geschaffen werden, auf
+\Class{tudmathposter} basierende Dokumente auf die \Class{tudscrposter} zu
+überführen. In jedem Fall sollte bei einem Umstieg auf \TUDScript-Posterklasse
+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
+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
+\DDC-Logo im Fußbereich lässt sich über \Option*{ddcfoot=blue} aktivieren.
+
+\begin{Declaration}[v2.05]{\Option{tudmathposterfoot}}%
+\printdeclarationlist%
+%
+Durch die Klasse \Class{tudmathposter} wird der Fußbereich zweispaltig jedoch
+asymmetrisch und ohne Überschriften innerhalb der beiden Spalten gesetzt.
+Dieses Verhalten lässt sich mit der Option \Option{tudmathposterfoot}
+auswählen. Alternativ kann auch \Option*{cdfoot=tudmathposter}'none' respektive
+\Option*{cdfoot=tudscrposter}'none' zum Aktivieren beziehungsweise Deaktivieren
+verwendet werden.
+\end{Declaration}
+
+\begin{Declaration}[v2.05]{\Option{bluebg}}{%
+ identisch zu \Option*{backgroundcolor=true}(\Class{tudscrposter})%
+}
+\printdeclarationlist%
+%
+Mit der Klasse \Class{tudscrposter} lässt sich das Verhalten mit der Option
+\Option*{backgroundcolor}(\Class{tudscrposter}) umsetzen.
+\end{Declaration}
+
+\begin{Declaration}{\Macro{telefon}[\Parameter{Telefonnummer}]}{identisch zu
+ \Macro*{telephone}[\Parameter{Telefonnummer}](\Class{tudscrposter})%
+}
+\begin{Declaration}{\Macro{fax}[\Parameter{Telefaxnummer}]}{identisch zu
+ \Macro*{telefax}[\Parameter{Telefaxnummer}](\Class{tudscrposter})%
+}
+\begin{Declaration}{\Macro{email}[\Parameter{E-Mail-Adresse}]}{identisch zu
+ \Macro*{emailaddress*}[\Parameter{E-Mail-Adresse}](\Class{tudscrposter})%
+}
+\begin{Declaration}{\Macro{homepage}[\Parameter{URL}]}{identisch zu
+ \Macro*{webpage*}[\Parameter{URL}](\Class{tudscrposter})%
+}
+\printdeclarationlist%
+%
+Dies sind die von \Class{tudmathposter} definierten Befehle für die Felder im
+vordefinierten Fußbereich des Posters. Es ist dabei insbesondere zu beachten,
+dass die angegebene E"~Mail-Adresse sowie die URL nicht automatisch formatiert
+werden.
+\end{Declaration}
+\end{Declaration}
+\end{Declaration}
+\end{Declaration}
+
+\begin{Declaration}{\Macro{fusszeile}[\Parameter{Inhalt}]}{%
+ identisch zu \Macro*{footcontent}[\Parameter{Inhalt}]
+}
+\begin{Declaration}{\Macro{footcolumn0}[\Parameter{Inhalt}]}{%
+ identisch zu \Macro*{footcontent}[\Parameter{Inhalt}]
+}
+\begin{Declaration}{\Macro{footcolumn1}[\Parameter{Inhalt}]}{%
+ identisch zu \Macro*{footcontent}[\Parameter{Inhalt}\POParameter{*}]
+}
+\begin{Declaration}{\Macro{footcolumn2}[\Parameter{Inhalt}]}{%
+ identisch zu \Macro*{footcontent}[\PParameter{*}\OParameter{Inhalt}]
+}
+\printdeclarationlist%
+%
+Mit diesen Befehlen kann die Gestalt des Fußes angepasst werden, wobei entweder
+der Bereich über die gesamte Breite (\Macro{fusszeile}, \Macro{footcolumn0})
+oder lediglich die linke (\Macro{footcolumn1}) respektive die rechte Spalte
+(\Macro{footcolumn2}) angepasst wird. Für zusätzliche Hinweise zur Anpassung
+des Fußbereichs~-- insbesondere für die Schriftformatierung~-- sollte die
+Beschreibung von \Macro*{footcontent}'full' zu Rate gezogen werden.
+\end{Declaration}
+\end{Declaration}
+\end{Declaration}
+\end{Declaration}
+
+
+\begin{Declaration}{\Macro{zweitlogofile}[\Parameter{Dateiname}]}{%
+ identisch zu \Macro*{headlogo}[\Parameter{Dateiname}]
+}
+\begin{Declaration}{\Macro{institutslogofile}[\Parameter{Dateiname}]}{%
+ \seeref{\Macro*{footlogo}}%
+}
+\begin{Declaration}{\Macro{drittlogofile}[\Parameter{Dateiname}]}{%
+ \seeref{\Option*{ddc} und \Option*{ddcfoot}}%
+}
+\printdeclarationlist%
+%
+Für die Angabe von Logos für den Kopf- und Fußbereich existieren diese Befehle.
+Bei der Verwendung von \Macro{institutslogofile}[\Parameter{Dateiname}] ist zu
+beachten, dass die angegebene Datei sehr weit rechts im Fußbereich des Posters
+gesetzt wird. Dabei kommt bei der Verwendung im Hintergrund der von \TUDScript
+für das Setzen von Logos im Fußbereich tatsächlich vorgesehene Befehl in der
+Form \Macro*{footlogo}[\PParameter{{{,}{,}{,}{,}{,}{,}{,}\PName{Dateiname}{,}}}]
+zum Einsatz. Das Makro \Macro{drittlogofile} wird von \Class{tudmathposter} für
+die Angabe eines \DDC-Logos im rechten Seitenfuß bereitgestellt. Für die
+\TUDScript-Klassen gibt es hierfür die Optionen \Option*{ddc} beziehungsweise
+\Option*{ddcfoot}.
+\end{Declaration}
+\end{Declaration}
+\end{Declaration}
+
+\begin{Declaration}{\Macro{zweitlogo}[\Parameter{Definition}]}{%
+ keine Funktionalität, \seeref{\Macro*{headlogo}}
+}
+\begin{Declaration}{\Macro{institutslogo}[\Parameter{Definition}]}{%
+ keine Funktionalität, \seeref{\Macro*{footlogo}}
+}
+\begin{Declaration}{\Macro{drittlogo}[\Parameter{Definition}]}{%
+ keine Funktionalität, \seeref{\Option*{ddc} und \Option*{ddcfoot}}%
+}
+\printdeclarationlist%
+%
+Mit diesen Befehlen kann der Anwender bei \Class{tudmathposter} die Definition
+für das Einbinden diverser Logos selber vornehmen. Dies ist für \TUDScript
+nicht vorgesehen. Im Zweifel sollten die Möglichkeiten der korrelierenden
+Befehle genutzt werden. Bei der Verwendung eines dieser Makros wird lediglich
+eine Warnung ausgegeben.
+\end{Declaration}
+\end{Declaration}
+\end{Declaration}
+
+\begin{Declaration}{%
+ \Macro{topsection}[\OParameter{Kurzform}\Parameter{Überschrift}]%
+}
+\begin{Declaration}{%
+ \Macro{topsubsection}[\OParameter{Kurzform}\Parameter{Überschrift}]%
+}
+\printdeclarationlist%
+%
+Der Grund für die Existenz dieser beiden Befehle bei \Class{tudmathposter} ist
+nicht ohne Weiteres nachvollziehbar. Beide entsprechen in ihrem Verhalten den
+Standardbefehlen \Macro{section} und \Macro*{subsection}, setzen allerdings
+keinen vertikalen Abstand vor der erzeugten Überschrift. Auch wenn das aus
+typographischer Sicht wohl eher unvorteilhaft ist, werden diese beiden Befehle
+bereitgestellt.
\end{Declaration}
\end{Declaration}
-\index{Kompatibilität!\Class{tudbook}|)}
+
+\begin{Declaration}{%
+ \Macro{centersection}[\OParameter{Kurzform}\Parameter{Überschrift}]%
+}
+\begin{Declaration}{%
+ \Macro{centersubsection}[\OParameter{Kurzform}\Parameter{Überschrift}]%
+}
+\begin{Declaration}{%
+ \Macro{topcentersection}[\OParameter{Kurzform}\Parameter{Überschrift}]%
+}
+\begin{Declaration}{%
+ \Macro{topcentersubsection}[\OParameter{Kurzform}\Parameter{Überschrift}]%
+}
+\printdeclarationlist%
%
+Weiterhin werden auch noch eigene Makros zum Setzen zentrierter Überschriften
+definiert~-- ein simples Umdefinieren von \Macro*{raggedsection} ist dafür im
+Normalfall absolut ausreichend. Und um die Sache vollständig zu machen, gibt es
+die zentrierten Überschriften auch noch ohne vorgelagerten, vertikalen Abstand.
+\end{Declaration}
+\end{Declaration}
+\end{Declaration}
+\end{Declaration}
+
+\begin{Declaration}{\Environment{farbtabellen}}
+\begin{Declaration}{\Macro{blautabelle}}
+\begin{Declaration}{\Macro{grautabelle}}
+\printdeclarationlist%
+%
+Wird innerhalb der \Environment{farbtabellen}"=Umgebung eine Tabelle gesetzt,
+so werden die Zeilen alternierend farbig hervorgehoben. Standardmäßig sind
+hierfür leichte Blautönen eingestellt, was auch jederzeit mit dem Aufruf von
+\Macro{blautabelle} wiederhergestellt werden kann. Alternativ zu dieser
+Darstellung kann mit \Macro{grautabelle} auf eine Verwendung von leichten
+Grautönen umgestellt werden.
+\end{Declaration}
+\end{Declaration}
+\end{Declaration}
+
+\begin{Declaration}{\Environment{figurehere}}
+\begin{Declaration}{\Environment{tablehere}}
+\printdeclarationlist%
%
-%\subsection{Optionen und Befehle aus \Class{tudmathposter}}
-%\index{Kompatibilität!\Class{tudmathposter}|(}%
-%\ToDo[imp]{interne Schalter beim Laden von tudbook bzw. tudmathposter}
-%\ToDo[imp]{Optionen und Befehle für tudmathposter}
-%\ToDo[doc]{Dokumentation tudmathposter}
-%\index{Kompatibilität!\Class{tudmathposter}|)}%
-\end{Declaration*} \ No newline at end of file
+Diese beiden Umgebungen können genutzt werden, um nicht-gleitende Abbildungen
+oder Tabellen zu setzen.
+\end{Declaration}
+\end{Declaration}
+
+\begin{Declaration}{\Macro{schnittrand}}
+\printdeclarationlist%
+%
+Wird \Macro{schnittrand} \textbf{vor} dem Laden des Paketes \Package{tudscrcomp}
+definiert, so wird der Inhalt des Befehls als Längenwert interpretiert. Dieser
+wird verwendet, um den zuvor festgelegten Satzspiegel über die drei Parameter
+\Key*{\Macro{geometry}(\Package{geometry})}{paper=\PName{Papierformat}},
+\Key*{\Macro{geometry}(\Package{geometry})}{layout=\PName{Zielformat}} und
+\Key*{\Macro{geometry}(\Package{geometry})}{layoutoffset=\PName{Längenwert}} des
+Befehls \Macro*{geometry}(\Package{geometry})'none' aus dem Paket
+\Package*{geometry} zu setzen und das erzeugte Papierformat um den gegebenen
+Längenwert an allen Rändern zu vergrößern. Somit wird eine Beschnittzugabe
+hinzugefügt, \emph{ohne dabei die Seitenränder des Entwurfslayouts anzupassen}.
+In \fullref{sec:tips:crop} sind zusätzliche Informationen zu diesem Thema zu
+finden.
+\end{Declaration}
+\index{Kompatibilität!\Class{tudmathposter}|)}%
+\end{Bundle*}
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 a5e0adf9505..59fce8ae4c8 100644
--- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-packages.tex
+++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-packages.tex
@@ -1,22 +1,24 @@
-\chapter{Unerlässliche und beachtenswerte Pakete}
-\manualhyperdef{sec:packages}
-\index{Kompatibilität!Pakete}
-\section{Von den neuen Hauptklassen benötigte Pakete}
-\label{sec:packages:needed}
+\chapter{Benötigte, unterstützte und empfehlenswerte Pakete}
+\tudhyperdef*{sec:packages}
+\index{Kompatibilität|?}%
+%
+\section{Notwendige und ergänzende Pakete}
+\tudhyperdef*{sec:packages:needed}%
+%
\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
-(\see*{\autoref{sec:install}}) geprüft und die Installation beim Fehlen eines
+(\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]
+\item[fontinst](fontware)
Dieses Paket wird für die Installation der Schriften \Univers sowie \DIN
- benötigt. Weiterhin ist auch \Package{fontware} für die Schriftkonvertierung
- notwendig.
-\item[cmbright]'hfbright,cm-super'
+ 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
@@ -30,22 +32,30 @@ oder mehrerer Pakete mit einer entsprechenden Warnung abgebrochen.
\subsection{Notwendige Pakete für die Verwendung der Hauptklassen}
Diese Pakete werden von den neuen Klassen zwingend benötigt und automatisch
-geladen.
+geladen, falls dies nicht durch den Anwender in der Präambel geschieht.
%
\begin{packages}
-\item[koma-script][scrlayer-scrpage,scrbase]
+\item[koma-script,typearea,scrlayer-scrpage,scrbase]
+ \begin{Declaration*}{\Class{scrbook}}
+ \begin{Declaration*}{\Class{scrreprt}}
+ \begin{Declaration*}{\Class{scrartcl}}
+ \begin{Declaration*}{\Class{scrlttr2}}
\ChangedAt{%
- v2.02!\Package{scrlayer-scrpage}: Für Verwendung von \TUDScript notwendig%
+ v2.02:Paket \Package{scrlayer-scrpage} ist für \TUDScript unabdingbar%
}%
Das \KOMAScript-Bundle ist die zentrale Grundlage für \TUDScript. Neben den
Klassen \Class{scrbook}, \Class{scrreprt} und \Class{scrartcl} wird das Paket
\Package{scrbase} benötigt. Dieses erlaubt das Definieren von Klassenoptionen
im Stil von \KOMAScript, welche auch noch nach dem Laden der Klasse mit den
Befehlen \Macro{TUDoption} und \Macro{TUDoptions} geändert werden können. Für
- die Bereitstellung der \PageStyle{tudheadings}-Seitenstile ist das Paket
+ die Bereitstellung der \PageStyle{tudheadings}"=Seitenstile ist das Paket
\Package{scrlayer-scrpage} notwendig. Wenn es nicht durch den Anwender~-- mit
beliebigen Optionen~-- geladen wird, erfolgt dies am Ende der Präambel
automatisch durch \TUDScript.
+ \end{Declaration*}
+ \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
@@ -54,31 +64,36 @@ geladen.
\item[etoolbox]
Es werden viele Funktionen zum Testen und zur Ablaufkontrolle bereitgestellt
und das einfache Manipulieren vorhandener Makros ermöglicht.
-\item[geometry]\index{Satzspiegel}
+\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 \Macro{MakeTextUppercase} wird die Großschreibung der Überschriften in
- \DIN erzwungen. Im \emph{Ausnahmefall} kann dies mit \Macro{NoCaseChange}
- unterbunden werden.
-\item[graphicx]\index{Grafiken}
+\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.
+\item[graphicx]
+ \index{Grafiken}%
Dies ist das De-facto-Standard-Paket zum Einbinden von Grafiken. Zum Setzen
- des Logos der \TnUD im Kopf wird \Macro{includegraphics} genutzt. Es kann
- auch durch den Anwender in der Präambel geladen werden.
-\item[xcolor]\index{Farben}
+ des Logos der \TnUD im Kopf sowie aller weitere Abbildungen und Logos wird
+ \Macro{includegraphics}(\Package{graphicx})'none' genutzt.
+\item[xcolor]
+ \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[environ]\index{Befehle!Deklaration}
+\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.
-\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
@@ -89,65 +104,37 @@ Beschreibung nichts anderweitiges angegeben worden ist.
\begin{Example}
Das Weiterreichen von Optionen an Pakete muss folgendermaßen erfolgen:
\begin{Code}[escapechar=§]
-\PassOptionsToPackage§\Parameter{Optionenliste}\Parameter{Paket}§
+\PassOptionsToPackage§\Parameter{Paketoptionen}\Parameter{Paket}§
\documentclass§\OParameter{Klassenoptionen}\PParameter{tudscr\dots}§
\end{Code}
\end{Example}
-\section{Durch \TUDScript direkt unterstütze Pakete}
+\subsection{Durch \TUDScript unterstütze Pakete}
%
-Wird eines der genannten Pakete geladen, so wird die Funktionalität von
-\TUDScript durch dieses verbessert beziehungsweise erweitert oder es wird ein
-Bugfix bereitgestellt.
-%
-\begin{packages}
-\item[hyperref]\index{Lesezeichen}\index{Querverweise}
- Hiermit können in einem PDF-Dokument Lesezeichen, Querverweise und
- Hyperlinks erstellt werden. Wird es geladen, sind außerdem die Option
- \Option{tudbookmarks} sowie der Befehl \Macro{tudbookmark} nutzbar. Das
- Paket \Package{bookmark} erweitert die Unterstützung nochmals. Beide
- genannten Pakete sollten~-- bis auf sehr wenige Ausnahmen wie beispielsweise
- \Package{glossaries}~-- als letztes in der Präambel eingebunden werden.
-\item[isodate]\index{Datum|?}
- Dieses Paket formatiert mit \Macro{printdate}\Parameter{Datum} die Ausgabe
- eines Datums automatisch in ein spezifiziertes Format. Wird es geladen,
- werden alle Datumsfelder, welche durch die \TUDScript-Klassen definiert
- wurden,%
- \footnote{%
- \Macro{date}, \Macro{dateofbirth}, \Macro{defensedate}, \Macro{duedate},
- \Macro{issuedate}
- }
- in diesem Format ausgegeben.
-\item[multicol]\index{Zweispaltensatz|?}
- Hiermit kann jeglicher beliebiger Inhalt in zwei oder mehr Spalten ausgegeben
- werden, wobei~-- im Gegensatz zur \hologo{LaTeX}-Option \Option{twocolumn}~--
- für einen Spaltenausgleich gesorgt wird. Unterstützt wird das Paket innerhalb
- der Umgebungen \Environment{abstract} und \Environment{tudpage}.
-\item[quoting]\index{Zitate}
- \hologo{LaTeX} bietet von Haus aus \emph{zwei} verschiedene Umgebungen für
- Zitate und ähnliches. Beide sind in ihrer Ausprägung starr und ignorieren
- beispielsweise die Einstellungen von \Option{parskip}. Dies wird durch die
- Umgebung \Environment{quoting} verbessert. Wird das Paket geladen, kommt
- diese gegebenenfalls innerhalb der \Environment{abstract}"=Umgebung zum
- Einsatz.
-\item[ragged2e]\index{Worttrennung}
- Das Paket verbessert den Flattersatz, indem für diesen die Worttrennung
- aktiviert wird.
-\end{packages}
+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.
+\newcommand*\RecPack{%
+ \hyperref[sec:packages:recommended]{Paketbeschreibung}:\xspace%
+}
\section{Empfehlenswerte Pakete}
-\label{sec:packages:recommended}
+\tudhyperdef*{sec:packages:recommended}%
+%
In diesem \autorefname wird eine Vielzahl an Paketen~-- zumeist kurz~--
vorgestellt, welche sich für mich persönlich bei der Arbeit mit \hologo{LaTeX}
bewährt haben. Einige davon werden außerdem im Tutorial \Tutorial{treatise} in
ihrer Anwendung beschrieben. Für detaillierte Informationen sowie bei Fragen zu
-den einzelnen Paketen sollte die jeweilige Dokumentation zu Rate gezogen
-werden,\footnote{Kommandozeile/Terminal: \Path{texdoc\,\PName{Paketname}}}
-das Lesen der hier gegebenen Kurzbeschreibung ersetzt dies in keinem Fall.
+den einzelnen Paketen sollte die jeweilige Dokumentation%
+\footnote{Kommandozeile/Terminal: \Path{texdoc\,\PName{Paketname}}}
+zu Rate gezogen werden, das Lesen der hier gegebenen Kurzbeschreibung ersetzt
+dies in keinem Fall.
\subsection{Pakete zur Verwendung in jedem Dokument}
@@ -158,13 +145,16 @@ Englisch ist. Für deutschsprachige Dokumente ist für eine annehmbare
Worttrennung das Paket \Package{hyphsubst} unbedingt zu verwenden.
\begin{packages}
-\item[fontenc]\index{Zeichensatzkodierung}
+\item[fontenc]
+ \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, sollte man
- \Macro*{usepackage}\POParameter{T1}\PParameter{fontenc} nutzen.
-\item[selinput]\index{Eingabekodierung}
+ 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:
@@ -172,35 +162,40 @@ Worttrennung das Paket \Package{hyphsubst} unbedingt zu verwenden.
\usepackage{selinput}
\SelectInputMappings{adieresis={ä},germandbls={ß}}
\end{Code}\vspace{-\baselineskip}%
- wird es verwendet. Dies macht den Quelltext portabel, womit beispielsweise
- einfach via Copy~\&~Paste ein \hrfn{http://www.komascript.de/minimalbeispiel}%
- {Minimalbeispiel} bei Problemstellungen in einem Forum bereitgestellt werden
- kann. Alternativ dazu lässt sich mit dem Paket \Package{inputenc} die zu
- verwendende Eingabekodierung manuell einstellen
- (\Macro*{usepackage}\OParameter{Eingabekodierung})\PParameter{inputenc}).
-\item[babel]\index{Sprachunterstützung}\index{Bezeichner}
- Mit diesem Paket erfolgt die Einstellung der im Dokument verwendeten
- Sprache(n). Bei mehreren angegebenen Sprachen ist die zuletzt geladene die
- Hauptsprache des Dokumentes. Die gewünschten Sprachen sollten als nicht als
- Paketoption sondern als Klassenoption und gesetzt werden, damit auch andere
- Pakete auf die Spracheinstellungen zugreifen können. Für deutschsprachige
- Dokumente ist die Option \Option{ngerman} für die neue oder \Option{german}
- für die alte deutsche Rechtschreibung zu verwenden.
+ 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.
+\item[babel,polyglossia]
+ \index{Sprachunterstützung}%
+ \index{Bezeichner}%
+ Mit dem Paket \Package{babel} erfolgt die Einstellung der im Dokument
+ verwendeten Sprache(n). Bei mehreren angegebenen Sprachen ist die zuletzt
+ geladene die Hauptsprache des Dokumentes. Die gewünschten Sprachen sollten
+ nicht als Paketoption sondern als Klassenoption und gesetzt werden, damit
+ auch andere Pakete auf die Spracheinstellungen zugreifen können. Für
+ deutschsprachige Dokumente ist die Option \Option*{ngerman} für die neue oder
+ \Option*{german} für die alte deutsche Rechtschreibung zu verwenden.
Mit dem Laden von \Package{babel} und der dazugehörigen Sprachen werden
sowohl die Trennmuster als auch die sprachabhängigen Bezeichner angepasst.
Von einer Verwendung der obsoleten Pakete \Package{german} beziehungsweise
\Package{ngerman} anstelle von \Package{babel} wird abgeraten. Für
- \hologo{LuaLaTeX} und \hologo{XeLaTeX} kann das Paket \Package{polyglossia}
+ \Engine{LuaLaTeX} und \Engine{XeLaTeX} kann das Paket \Package{polyglossia}
genutzt werden.
-\item[microtype]\index{Typografie}
+\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 \hologo{TeX}-Engine,
- wohl jedoch mit \hologo{pdfTeX} als auch \hologo{LuaTeX} sowie \hologo{XeTeX}.
-\item[hyphsubst]\index{Worttrennung|!}
+ 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}
@@ -223,20 +218,25 @@ sich keinerlei Wertung bezüglich ihrer Nützlichkeit oder meiner persönlichen
Wertschätzung ableiten.
\subsubsection{Typografie und Layout}
-\index{Typografie}
+\index{Typografie|(}%
+%
+Neben dem zuvor beschriebenem Paket \Package{microtype}, welches verantwortlich
+für mikrotypografische Feinheiten ist, existieren weitere Pakete, die vorrangig
+die Makrotypografie adressieren.
%
\begin{packages}
-\item[setspace]\index{Zeilenabstand}
+\item[setspace]
+ \index{Zeilenabstand}%
Die Vergrößerung des Zeilenabstandes wird:
%
\begin{enumerate}[itemindent=0pt,labelwidth=*,labelsep=1em,label=\Roman*.]
- \itempackages viel zu häufig und völlig unnötig gefordert und
- \itempackages schließlich auch noch zu groß gewählt.
+ \stditem viel zu häufig und völlig unnötig gefordert und
+ \stditem schließlich auch noch zu groß gewählt.
\end{enumerate}
%
Die Forderung nach Erhöhung des Zeilenabstandes~-- in der Typografie als
- Durchschuss bezeichnet~-- kommt noch aus den Zeiten der Textverarbeitung mit
- der Schreibmaschine. Ein einzeiliger Zeilenabstand bedeutete hier, dass die
+ Durchschuss bezeichnet~-- kommt aus den Zeiten der Textverarbeitung mit der
+ Schreibmaschine. Ein einzeiliger Zeilenabstand bedeutete hier, dass die
Unterlängen der oberen Zeile genau auf der Höhe der Oberlängen der folgenden
Zeile lagen. Ein anderthalbzeiliger Zeilenabstand erzielte hier somit einen
akzeptablen Durchschuss. Eine Erhöhung des Durchschusses bei der Verwendung
@@ -246,130 +246,191 @@ Wertschätzung ableiten.
Ist die Erhöhung des Durchschusses wirklich notwendig, sollte das Paket
\Package{setspace} genutzt werden. Dieses stellt den Befehl
- \Macro{setstretch}\Parameter{Faktor} zur Verfügung, mit dem der Durchschuss
- respektive Zeilenabstand angepasst werden kann. Der Wert des Faktors ist
- standardmäßig auf~1 gestellt und sollte maximal bis~1.25 vergrößert werden.
- Der Befehl \Macro*{onehalfspacing} aus diesem Paket setzt diesen Wert auf
- eben genau~1.25. Allerdings ist hier anzumerken, dass die Vergrößerung des
- Zeilenabstandes~-- so wie ich es mir angelesen habe~-- aus der Sicht eines
- Typographen keine Spielerei ist sondern vielmehr allein der Lesbarkeit des
- Textes dient und möglichst gering ausfallen sollte.
+ \Macro{setstretch}[\Parameter{Faktor}](\Package{setspace})'none' zur
+ Verfügung, mit dem der Durchschuss respektive Zeilenabstand angepasst werden
+ kann. Der Wert des Faktors ist standardmäßig auf~1 gestellt und sollte
+ maximal bis~1.25 vergrößert werden. Der Befehl \Macro*{onehalfspacing} aus
+ diesem Paket setzt diesen Wert auf eben genau~1.25. Allerdings ist hier
+ anzumerken, dass die Vergrößerung des Zeilenabstandes~-- so wie ich es mir
+ angelesen habe~-- aus der Sicht eines Typographen keine Spielerei ist sondern
+ 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 \CD der
- \TnUD verwendeten \Univers~-- ist dies schwieriger und ein erweiterter
- Abstand der Zeilen kann dabei durchaus hilfreich sein. Jedoch sollte nicht
- nach dem Motto \enquote{viel hilft viel} verfahren werden. In diesem Dokument
- wurde als Faktor für den Zeilenabstand \Macro{setstretch}\PParameter{1.1}
- gewählt. Nach einer Einstellung des Zeilenabstandes sollte der Satzspiegel
- unbedingt mit \Macro{recalctypearea} neu berechnet werden. Weitere Tipps sind
- in \autoref{sec:tips:headings} sowie \autoref{sec:tips:headline} zu finden.
-\item[csquotes]\index{Zitate}
- Das Paket stellt unter anderem den Befehl \Macro{enquote}\Parameter{Zitat}
+ 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
+ \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
+ \autoref{sec:tips:headline} zu finden.
+\item[multicol]
+ \index{Satzspiegel!zweispaltig|?}%
+ \index{Mehrspaltensatz}%
+ \index{Satzspiegel!mehrspaltig}%
+ Hiermit kann jeglicher beliebiger Inhalt in zwei oder mehr Spalten ausgegeben
+ werden, wobei~-- im Gegensatz zum normalen zweispaltigen Satz über die
+ \KOMAScript-Option \Option{twocolumn}(\Package{typearea})'none'~-- für einen
+ Spaltenausgleich gesorgt wird. Unterstützt wird das Paket innerhalb der
+ Umgebungen \Environment{abstract} und \Environment{tudpage}.
+\item[balance]
+ \index{Satzspiegel!zweispaltig}%
+ Dieses Paket ermöglicht einen Spaltenausgleich im zweispaltigen Satz auf der
+ letzten Dokumentseite. Alternativ dazu kann auch \Package{multicol} verwendet
+ werden.
+\item[isodate]
+ \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
+ \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.
+\item[quoting]
+ \index{Zitate}%
+ \hologo{LaTeX} bietet von Haus aus \emph{zwei} verschiedene Umgebungen~--
+ \Environment{quote}(\Package{koma-script})'none' und
+ \Environment{quotation}(\Package{koma-script})'none'~-- für Zitate und
+ ähnliches an. Allerdings werden durch beide Umgebungen die \KOMAScript-Option
+ \Option{parskip=\PName{Methode}}(\Package{koma-script})'none'|declare|
+ 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
+ \Macro{enquote}[\Parameter{Zitat}](\Package{csquotes})'none'
zur Verfügung, welcher Anführungszeichen in Abhängigkeit der gewählten
Sprache setzt. Zusätzlich werden weitere Kommandos und Optionen für die
spezifischen Anforderungen des Zitierens bei wissenschaftlichen Arbeiten
angeboten. Außerdem wird es durch \Package{biblatex} unterstützt und sollte
zumindest bei dessen Verwendung geladen werden.
\item[noindentafter]
- \ChangedAt{v2.02!\Package{noindentafter}: Beschreibung hinzugefügt}
+ \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[xspace]\index{Befehle!Deklaration}
+\item[fnpct]
+ \index{Fußnoten|?}%
+ \ChangedAt{v2.05:\RecPack \Package{fnpct}}
+ Diese Paket sorgt zum einen für das Einhalten der richtigen Reihenfolge von
+ Satzzeichen und Fußnoten und zum anderen wird das typografisch korrekte
+ Setzen mehrerer, nacheinander folgender Fußnoten unterstützt.
+\item[xspace,xpunctuate]
+ \index{Befehlsdeklaration}%
Mit \Package{xspace} kann bei der Definition eigener Makros der Befehl
- \Macro{xspace} genutzt werden. Dieser setzt ein gegebenenfalls notwendiges
- Leerzeichen automatisch. In \autoref{sec:tips:xspace} ist die Definition
- eines solchen Befehls exemplarisch ausgeführt.
-\item[ellipsis]\index{Befehle!Deklaration}
+ \Macro{xspace}(\Package{xspace})'none' genutzt werden. Dieser setzt ein
+ gegebenenfalls notwendiges Leerzeichen automatisch. In
+ \autoref{sec:tips:xspace} ist die Definition eines solchen Befehls
+ exemplarisch ausgeführt. Durch das Paket \Package{xpunctuate} wird
+ \Package{xspace} um die Beachtung von Interpunktionen erweitert.
+\item[ellipsis]
+ \index{Befehlsdeklaration}%
In \hologo{LaTeX} folgen den Befehlen für Auslassungspunkte (\Macro{dots} und
\Macro{textellipsis}) \emph{immer} ein Leerzeichen. Dies kann unter Umständen
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, \seealso*{\autoref{sec:tips:dots}}.
-\item[xpunctuate]\index{Befehle!Deklaration}
- Die Funktionalität von \Package{xspace} wird um die Beachtung von
- Interpunktionen erweitert.
-\itempackages[\href{http://www.ctan.org/pkg/delig}{\Application{DeLig}}]
- \index{Typografie}\index{Ligaturen}
+ Satzzeichen und kein Buchstabe folgt, \seeref*{\autoref{sec:tips:dots}}.
+\stditem[\Application{DeLig}<delig>,\Package{selnolig}]
+ \index{Ligaturen}%
Hierbei handelt es sich um ein Java-Script, welches 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.%
\footnote{%
- Das sind ff, fi, fl, ffi, und ffl bei den \hologo{LaTeX}"=Standardschriften.
+ Das sind \enquote{ff}, \enquote{fi}, \enquote{fl}, \enquote{ffi}, und
+ \enquote{ffl} bei den \hologo{LaTeX}"=Standardschriften.%
}
- Mit \hologo{LuaLaTeX} als Dokumentprozessor kann alternativ dazu auch
- \Package{selnolig} verwendet werden.
-\item[balance]\index{Zweispaltensatz}
- Dieses Paket ermöglicht einen Spaltenausgleich im Zweispaltensatz auf der
- letzten Dokumentseite. Alternativ dazu kann auch \Package{multicol} verwendet
- werden.
+ Mit \Engine{LuaLaTeX} als Textsatzsystem kann auch \Package{selnolig}
+ alternativ dazu verwendet werden.
+\index{Typografie|)}%
\end{packages}
+
\subsubsection{Rechtschreibung}
+\index{Rechtschreibung|(}%
+%
Für die Rechtschreibkontrolle zeichnet im Normalfall der verwendete Editor
verantwortlich. Dennoch gibt es einige wenige Pakete, welche sich diesem Thema
-widmen. Diese sind jedoch lediglich nutzbar, wenn \hologo{LuaLaTeX} als
-Dokumentprozessor genutzt wird.
+widmen. Diese sind jedoch ausschließlich nutzbar, wenn als Textsatzsystem
+\Engine{LuaLaTeX} genutzt wird.
\begin{packages}
-\item[lua-check-hyphen]\index{Worttrennung}
- Hiermit lassen sich mit \hologo{LuaLaTeX} Trennstellen am Zeilenende zur
+\item[lua-check-hyphen]
+ \index{Worttrennung}%
+ Hiermit lassen sich mit \Engine{LuaLaTeX} Trennstellen am Zeilenende zur
Prüfung markieren. Zum Thema der \textit{korrekten Worttrennung} sei außerdem
auf \autoref{sec:tips:hyphenation} verwiesen.
-\item[spelling]\index{Rechtschreibung}
- Wird \hologo{LuaLaTeX} als Prozessor verwendet, wird mit diesem Paket der
- reine Textanteil aus dem \hologo{LaTeX}"~Dokument extrahiert~-- wobei Makros
- und aktive Zeichen entfernt werden~-- und in eine separate Textdatei
- geschrieben. Anschließend kann diese Datei mit einer externen Software zur
- Rechtschreibprüfung wie \Application{GNU Aspell} oder \Application{Hunspell}
- analysiert werden. Wird durch dieses Programm eine Liste falsch geschriebener
- Wörter ausgegeben, können diese mit \Package{spelling} im PDF"~Dokument
- hervorgehoben werden.
+\item[spelling]
+ Wird \Engine{LuaLaTeX} als Textsatzsystem verwendet, wird mit diesem Paket
+ der reine Textanteil aus dem \hologo{LaTeX}"~Dokument extrahiert~-- wobei
+ Makros und aktive Zeichen entfernt werden~-- und in eine separate Textdatei
+ geschrieben. Anschließend kann diese Datei mit einer externen Software zur
+ Rechtschreibprüfung wie \Application{GNU~Aspell}, \Application{Hunspell} oder
+ \Application{LanguageTool} analysiert und falsch geschriebene Wörter im
+ PDF"~Dokument hervorgehoben werden.
+\index{Rechtschreibung|)}%
\end{packages}
+
\subsubsection{Schriften und Sonderzeichen}
\begin{packages}
-\item[lmodern](lm)\index{Schriftart}
+\item[lmodern]<lm>
+ \index{Schriftart}%
Soll mit den klassischen \hologo{LaTeX}"=Standardschriften gearbeitet werden,
empfiehlt sich die Verwendung des Paketes \Package{lmodern}. Dieses
verbessert die Darstellung der Computer~Modern sowohl am Bildschirm als auch
beim finalen Druck.
-\item[cfr-lm]\index{Schriftart}
+\item[cfr-lm]
+ \index{Schriftart}%
Dieses experimentelle Paket liefert weitere Schriftschnitte für das Paket
\Package{lmodern}.
-\item[newtx]
+\item[newtx,newtxmath]<newtx>
+ \index{Schriftart}%
+ \index{Mathematiksatz}%
Es werden einige alternative Schriften sowohl für den Fließtext
(\textit{Times} und \textit{Helvetica}) als auch den Mathematikmodus
bereitgestellt.
-\item[libertine]\index{Schriftart}
+\item[libertine]
+ \index{Schriftart}%
Das Paket stellt die Schriften Linux~Libertine und Linux~Biolinum zur
Verfügung. Um diese Schriftart auch für den Mathematikmodus verwenden zu
- können, sollte \Package{newtxmath} aus dem \Package{newtx}-Bundle mit
- \Macro*{usepackage}\POParameter{libertine}\PParameter{newtxmath} in der
+ können, sollte \Package{newtxmath} aus dem \Package{newtx}"=Bundle mit
+ \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 drei 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}
+\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]
- \ChangedAt{v2.02!\Package{fontspec}: Beschreibung hinzugefügt}%
- Wird als Dokumentprozessor nicht \hologo{pdfLaTeX} sondern \hologo{XeLaTeX}
- oder \hologo{LuaLaTeX} verwendet, können mit diesem Paket Systemschriften im
- OpenType-Format eingebunden werden, womit sich die Auswahl der verwendbaren
- Schriften in einem \hologo{LaTeX}"=Dokument stark erweitert. Das Paket wird
- durch \TUDScript unterstützt.
-\item[relsize]\index{Schriftgröße}
+ \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
gesetzt werden.
-\item[textcomp]\index{Sonderzeichen}
+\item[textcomp]
+ \index{Sonderzeichen}%
Es werden zusätzliche Symbole und Sonderzeichen wie beispielsweise das
Promille- oder Eurozeichen sowie Pfeile für den Fließtext zur Verfügung
gestellt.
@@ -377,12 +438,13 @@ Dokumentprozessor genutzt wird.
%
Auch für (serifenlose) Mathematikschriften gibt es einige nützliche Pakete.
Werden die Schriften des \CDs genutzt, sei auf die Option \Option{cdmath}
-verwiesen.\index{Mathematiksatz!Schrift}\index{Schrift!Mathematiksatz}
+verwiesen.
%
\begin{packages}
-\item[sansmathfonts]
- Sollten die normalen \hologo{LaTeX}-Schriften Computer~Modern verwendet
- werden, kann man dieses Paket zum serifenlosen Setzen mathematischer
+\index{Mathematiksatz|(}%
+\item[sansmathfonts,sansmath]
+ Sollten die normalen \hologo{LaTeX}"=Schriften Computer~Modern verwendet
+ werden, lässt sich dieses Paket zum serifenlosen Setzen mathematischer
Ausdrücke nutzen. Ein alternatives Paket mit der gleichen Zielstellung ist
\Package{sansmath}
\item[sfmath]
@@ -391,21 +453,20 @@ verwiesen.\index{Mathematiksatz!Schrift}\index{Schrift!Mathematiksatz}
entsprechenden Option auch für Latin~Modern, Helvetica und
Computer~Modern~Bright verwendet werden.
\item[mathastext]
- Mit dem Paket wird das Ziel verfolgt, aus der genutzten Schrift für den
- Fließtext alle notwendigen Zeichen für den Mathematiksatz zu extrahieren.
+ Mit dem Paket wird das Ziel verfolgt, aus der genutzten Schrift für den
+ Fließtext alle notwendigen Zeichen für den Mathematiksatz zu extrahieren.
\end{packages}
\subsubsection{Mathematiksatz}
-\index{Mathematiksatz}
Dies sind Pakete, die Umgebungen und Befehle für den Mathematiksatz sowie das
Setzen von Einheiten und Zahlen im Allgemeinen anbieten.
\begin{packages}
- \item[mathtools]
+ \item[mathtools,amsmath]
Dieses Paket stellt für das De-facto-Standard-Paket \Package{amsmath} für
Mathematikumgebungen Bugfixes zur Verfügung und erweitert dieses.
\item[bm]
- Das Paket bietet mit \Macro{bm} eine Alternative zu \Macro{boldsymbol} im
+ Das Paket bietet mit \Macro*{bm} eine Alternative zu \Macro*{boldsymbol} im
\hrfn{http://tex.stackexchange.com/questions/3238}{Mathematiksatz}.
\end{packages}
%
@@ -413,7 +474,8 @@ 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}
+\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.
@@ -423,6 +485,7 @@ nutzbare Pakete.
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}
%
Die korrekte Formatierung von Zahlen ist häufig ein Problem bei der Verwendung
@@ -431,7 +494,8 @@ Daten im englischsprachigen Format verwendet werden, kommt es zu Problemen.
Dafür wird im \TUDScript-Bundle das Paket \Package{mathswap} bereitgestellt.
Dennoch gibt es zu diesem auch Alternativen.
%
-\begin{packages}\index{Trennzeichen}
+\begin{packages}
+\index{Zifferngruppierung|(}%
\item[icomma]
Wird im Mathematikmodus nach dem Komma ein Leerzeichen gesetzt, wird dies
bei der Ausgabe beachtet. Der Verfasser muss sich demzufolge jederzeit
@@ -445,13 +509,16 @@ Dennoch gibt es zu diesem auch Alternativen.
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:exmpl:mathtype} sowie \autoref{sec:exmpl:mathswap} gegeben.
+\index{Mathematiksatz|)}%
\subsubsection{Verzeichnisse aller Art}
-\index{Verzeichnisse|?}
+\index{Verzeichnisse|?(}%
+%
Neben dem Erstellen des eigentlichen Dokumentes sind für eine wissenschaftliche
Arbeit meist auch allerhand Verzeichnisse gefordert. Fester Bestandteil ist
dabei das Literaturverzeichnis, auch ein Abkürzungs- und Formelzeichen-
@@ -462,7 +529,8 @@ und für diese auch gleich ein entsprechendes Verzeichnis generiert werden, so
sei auf das Paket \Package{listings}'full' verwiesen.
\begin{packages}
-\item[biblatex]\index{Literaturverzeichnis}
+\item[biblatex]
+ \index{Literaturverzeichnis}%
Das Paket kann als legitimer Nachfolger zu \hologo{BibTeX} gesehen werden.
Ähnlich dazu bietet \Package{biblatex} die Möglichkeit, Literaturdatenbanken
einzubinden und verschiedene Stile der Referenzierung und Darstellung des
@@ -474,41 +542,54 @@ 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]\index{Abkürzungsverzeichnis}
+\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]\index{Glossar}\index{Abkürzungsverzeichnis}%
- \index{Formelzeichenverzeichnis}\index{Symbolverzeichnis}%
+\item[glossaries,nomencl]
+ \index{Glossar}%
+ \index{Abkürzungsverzeichnis}%
+ \index{Formelzeichenverzeichnis}%
+ \index{Symbolverzeichnis}%
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 benötigt
- werden, sollte man dieses Paket in Erwägung ziehen.
+ für Abkürzungen \emph{und} Formelzeichen beziehungsweise 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.
+\index{Verzeichnisse|?)}%
\end{packages}
+
\subsubsection{Listen}
-\index{Listen|?}
+\index{Listen|?(}%
+%
\begin{packages}
\item[enumitem]
Das Paket \Package{enumitem} erweitert die rudimentären Funktionalitäten der
- \hologo{LaTeX}"=Standardlisten \Environment{itemize}, \Environment{enumerate}
- sowie \Environment{description} 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}.
+ \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|?)}%
\end{packages}
+
\subsubsection{Tabellen}
-\index{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
@@ -516,35 +597,39 @@ für einen qualitativ hochwertigen Tabellensatz nicht ausreichen. Es werden
deshalb Pakete vorgestellt, die zusätzlich verwendet werden können.
\begin{packages}
\item[array]
- Dieses Paket ermöglicht mit dem Befehl \Macro{newcolumntype} das Erstellen
- eigener Spaltentypen sowie die erweiterte Definition von Tabellenspalten
- (\PValue{>\{\dots\}}\PName{Spaltentyp}\PValue{<\{\dots\}}), wobei mithilfe
- sogenannter \enquote{Hooks} vor und nach Einträgen innerhalb einer Spalte
- gezielt Anweisungen gesetzt werden können. Außerdem kann die Höhe der Zeilen
- einer Tabelle mit \Macro{extrarowheight} angepasst werden.
+ Dieses Paket ermöglicht mit \Macro{newcolumntype}(\Package{array})'none' das
+ 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} definiert, der~-- ähnlich zum Makro
- \Macro{multicolumn}~-- das Zusammenfassen von mehreren Zeilen in einer
- Spalte ermöglicht.
+ 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} zur Verfügung, die als Alternative genutzt
- werden kann und eine symmetrische Tabelle erzeugt.
+ Umgebung \Environment{widetable}(\Package{widetable})'none' zur Verfügung,
+ die als Alternative genutzt werden kann und eine symmetrische Tabelle erzeugt.
\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
Internet zu finden. Zwei Regeln sollten dabei definitiv beachtet werden:
%
\begin{enumerate}[itemindent=0pt,labelwidth=*,labelsep=1em,label=\Roman*.]
- \itempackages keine vertikalen Linien
- \itempackages keine doppelten Linien
+ \stditem keine vertikalen Linien
+ \stditem keine doppelten Linien
\end{enumerate}
%
Das Paket \Package{booktabs} (deutsche Dokumentation \Package*{booktabs-de})
ist für den Satz von hochwertigen Tabellen eine große Hilfe und stellt die
- Befehle \Macro{toprule}, \Macro{midrule} sowie \Macro{cmidrule} und
- \Macro{bottomrule} für unterschiedliche horizontale Linien bereit.
+ Befehle \Macro{toprule}(\Package{booktabs})'none',
+ \Macro{midrule}(\Package{booktabs})'none' sowie
+ \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
@@ -561,8 +646,9 @@ deshalb Pakete vorgestellt, die zusätzlich verwendet werden können.
\item[tabularx]
Auch mit diesem Paket kann die Gesamtbreite einer Tabelle spezifiziert
werden. Dafür wird der Spaltentyp \PValue{X} definiert, welcher als Argument
- der \Environment{tabularx}"=Umgebung beliebig häufig angegeben werden kann
- (\Macro*{begin}\PParameter{tabularx}\Parameter{Breite}\Parameter{Spalten}).
+ der \Environment{tabularx}(\Package{tabularx})'none'"=Umgebung beliebig
+ 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
@@ -571,63 +657,70 @@ deshalb Pakete vorgestellt, die zusätzlich verwendet werden können.
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} auf alle Spalten gleichmäßig verteilt sondern
- in der \Environment{tabulary}"=Umgebung für die Spaltentypen~\PValue{LCRJ}
- anhand ihres Zellinhaltes gewichtet vergeben.
- (\Macro*{begin}\PParameter{tabulary}\Parameter{Breite}\Parameter{Spalten}).
-\item[longtable]
+ Umgebung \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]
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}"=Umgebung können die Pakete
- \Package{ltablex} oder besser noch \Package{ltxtable} verwendet werden.
+ mit einer \Environment{tabularx}(\Package{tabularx})'none'"=Umgebung können
+ die Pakete \Package{ltablex} oder besser noch \Package{ltxtable} verwendet
+ werden.
\item[ltxtable]
Wie bereits erwähnt sollte dieses Paket für mehrseitige Tabellen, die mit der
- Umgebung \Environment{tabularx} erstellt wurden, verwendet werden.
- Alternativ dazu kann man auch \Package{tabu} nutzen.
+ Umgebung \Environment{tabularx}(\Package{tabularx})'none' erstellt wurden,
+ verwendet werden. Alternativ dazu lässt sich auch \Package{tabu} nutzen.
\item[tabu]
- \ChangedAt{v2.02!\Package{tabu}: Verwendung nur bedingt empfehlenswert}
+ \ChangedAt{%
+ v2.02:\RecPack \Package{tabu} ist nur bedingt empfehlenswert
+ }
Dies ist ein relativ neues Paket, welches versucht, viele der zuvor genannten
Funktionalitäten zu implementieren und weitere bereitzustellen. Dafür werden
- die Umgebungen \Environment{tabu} und \Environment{longtabu} definiert. Es
+ die Umgebungen \Environment{tabu}(\Package{tabu})'none' und
+ \Environment{longtabu}(\Package{tabu})'none' definiert. Es
kann alternativ zu \Package{tabularx} verwendet werden und ist insbesondere
als Ersatz für das Paket \Package{ltxtable} empfehlenswert.
\Attention{%
- Leider wären für das Paket in der aktuellen Version~v2.8 seit geraumer Zeit
- ein paar kleinere Bugfixes notwendig. Außerdem wird sich die
+ Leider wären für das Paket in der Version~v2.8 seit geraumer Zeit ein paar
+ Bugfixes notwendig. Außerdem wird sich die
\hrfn{https://groups.google.com/d/topic/comp.text.tex/xRGJTC74uCI}{%
- Benutzerschnittstelle in einer zukünftigen Version
- } sehr stark ändern, weshalb es momentan mit Vorsicht zu genießen ist.
- Zumindest sollte sich der Anwender bewusst sein, dass er mit dieser Version
- gesetzte Dokumente gegebenenfalls später anpassen muss.
+ 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.
}%
+\index{Tabellen|?)}%
\end{packages}
\subsubsection{Gleitobjekte}
-\index{Gleitobjekte|?}
-\index{Tabellen}\index{Grafiken}
+\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]\index{Gleitobjekte!Platzierung}
+\item[placeins]
Mit diesem Paket kann die Ausgabe von Gleitobjekten vor Kapiteln und wahlweise
Unterkapiteln erzwungen werden.
-\item[flafter]\index{Gleitobjekte!Platzierung}
+\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]\index{Gleitobjekte!Beschriftung}
- Die \KOMAScript-Klassen bietet bereits einige Möglichkeiten zum Setzen 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]\index{Gleitobjekte!Beschriftung}
+\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
@@ -635,60 +728,68 @@ finden.
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]\index{Gleitobjekte!Beschriftung}
+\item[floatrow]
Mit diesem Paket können global wirksame Einstellungen und Formatierungen für
- \emph{alle} Gleitobjekte eines Dokumentes vorgenommen werden. So kann unter
- anderem die verwendete Schrift (\Macro{floatsetup}\PParameter{font=\dots})
- innerhalb der Umgebungen \Environment{float} und \Environment{table}
- eingestellt werden. Das typografisch richtige Setzen der Beschriftungen von
- Abbildungen als Unterschriften
- (\Macro{floatsetup}\POParameter{figore}\PParameter{capposition=bottom})
- sowie Tabellen als Überschriften
- (\Macro{floatsetup}\POParameter{table}\PParameter{capposition=top})
+ \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} 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] genutzt werden.
+ 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|?)}%
\end{packages}
+
\subsubsection{Grafiken und Abbildungen}
-\index{Grafiken|?}
+\index{Grafiken|?(}%
+%
Grafiken für wissenschaftliche Arbeiten sollten als Vektorgrafiken erstellt
werden, um die Skalierbarkeit und hohe Druckqualität zu gewährleisten.
Bestenfalls folgen diese auch dem Stil der dazugehörigen Arbeit.%
\footnote{%
Für qualitativ hochwertige Dokumente sollten übernommene Grafiken nicht
direkt kopiert oder gescannt sondern im gewünschten Zielformat neu erstellt
- und mit der Referenz auf die Quelle ins Dokument eingebunden werden.
+ und mit einer Referenz auf die Quelle eingebunden werden.%
}
Für das Erstellen eigener Vektorgrafiken, welche die \hologo{LaTeX}"=Schriften
und das Layout des Hauptdokumentes nutzen, gibt es zwei mögliche Ansätze.
-Entweder man \enquote{programmiert} die Grafiken ähnlich wie das Dokument
-selber oder man nutzt Zeichenprogramme, die wiederum die Ausgabe oder das
-Weiterreichen von Text an \hologo{LaTeX} unterstützen. Für das Programmieren
+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.
Außerdem wird im Tutorial \Tutorial{treatise} für beide Pakete jeweils ein
Beispiel gegeben.
\begin{packages}
-\item[tikz](pgf)
+\item[tikz]<pgf>
Dies ist ein sehr mächtiges Paket für das Programmieren von Vektorgrafiken
und sehr häufig~-- insbesondere bei Einsteigern~-- die erste Wahl bei der
- Verwendung von \hologo{pdfLaTeX}.
+ Verwendung von \Engine{pdfLaTeX}.
\item[pstricks]
Das Paket \Package{pstricks} stellt die zweite Variante zum Programmieren
- von Grafiken dar. Mit diesem Paket hat man \emph{noch} mehr Möglichkeiten bei
- der Erstellung eigener Grafiken, da man mit \Package{pstricks} auf
- PostScript zugreifen kann und einige der bereitgestellten Befehle davon rege
+ 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 \hologo{pdfLaTeX} nicht
+ \Package{pstricks} die direkte Verwendung von \Engine{pdfLaTeX} nicht
möglich ist.
- Die Grafiken aus den \Environment{pspicture}"=Umgebungen müssen deshalb erst
+ 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 \hologo{pdfLaTeX}
+ 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:
%
@@ -698,14 +799,14 @@ Beispiel gegeben.
PDF-Datien bereit. Die einzelnen Aufrufe zur Kompilierung von DVI über
PostScript zu PDF müssen durch den Anwender manuell beziehungsweise über
die Ausgaberoutinen des verwendeten Editors durchgeführt werden.
- \item[auto-pst-pdf]
+ \item[auto-pst-pdf,pdftricks2]
Das Paket automatisiert die Erzeugung der \Package{pstricks}"=Grafiken mit
- dem Paket \Package{pst-pdf}. Dafür muss \hologo{pdfLaTeX} per Option 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} beziehungsweise für Nutzer von
- \Distribution{\hologo{MiKTeX}} mit \Path{-{}-enable-write18} notwendig.
- Bitte beachten Sie die Hinweise in \autoref{sec:tips:auto-pst-pdf}. Eine
- Alternative dazu ist das Paket \Package{pdftricks2}.
+ 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}
%
@@ -718,41 +819,84 @@ Für das Zeichnen einer Grafik mit einem Bildbearbeitungsprogramm, welches die
Weiterverarbeitung durch \hologo{LaTeX} erlaubt, möchte ich auf die freien
Programme \Application{LaTeXDraw} und \Application{Inkscape} verweisen.
Insbesondere das zuletzt genannte Programm ist sehr empfehlenswert. Für die
-erstellten Grafiken kann man den Export für die Einbindung in \hologo{LaTeX}
-manuell durchführen. In \autoref{sec:tips:svg} wird vorgestellt, wie sich dies
-automatisieren lässt.
+erstellten Grafiken kann der Anwender den Export für die Einbindung in
+\hologo{LaTeX} manuell durchführen. In \autoref{sec:tips:svg} wird vorgestellt,
+wie sich dies automatisieren lässt.
+\index{Grafiken|?)}%
+
+
+\subsubsection{Querverweise und Lesezeichen}
+\index{Querverweise|?(}%
+\index{Lesezeichen|?(}%
+%
+Für das Erzeugen von Querverweisen auf bestimmte Gliederungsebenen, Tabellen,
+Abbildungen oder auch Gleichungen muss für diese besagten Elemente zunächst mit
+\Macro{label}[\Parameter{Label}] ein \emph{eindeutiges} Label erzeugt werden,
+auf welches im Dokument entweder mit \Macro{ref} oder nach dem Laden von
+\Package{hyperref} besser noch mit \Macro{autoref}(\Package{hyperref})'none'
+referenziert werden kann. In \autoref{sec:tips:references} sind diesbezüglich
+weitere Informationen zu finden.
+%
+\begin{packages}
+\item[hyperref]
+ Hiermit können in einem PDF-Dokument Lesezeichen, Querverweise und
+ Hyperlinks erstellt werden. Wird es geladen, sind außerdem die Option
+ \Option{tudbookmarks} sowie der Befehl \Macro{tudbookmark} nutzbar. Das
+ Paket \Package{bookmark} erweitert die Unterstützung nochmals. Beide
+ genannten Pakete sollten~-- bis auf sehr wenige Ausnahmen wie beispielsweise
+ \Package{glossaries}~-- als letztes in der Präambel eingebunden werden.
+\item[bookmark]
+ Dieses Paket verbessert und erweitert die von \Package{hyperref} angebotenen
+ Möglichkeiten zur Erstellung von Lesezeichen~-- auch Outline"=Einträge~-- im
+ PDF-Dokument. Beispielsweise können Schriftfarbe- und "~stil geändert werden.
+\item[varioref]
+ Mit diesem Paket lassen sich sehr gute Verweise auf bestimmte Seiten
+ erzeugen. Insbesondere, wenn der Querverweis auf die aktuelle, die
+ vorhergehende oder nachfolgende sowie im doppelseitigen Satz auf die
+ gegenüberliegende Seite erfolgt, werden passende Textbausteine für diesen
+ verwendet.
+\item[cleveref]
+ 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}.
+\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
verkürzen, kann dieses in Unterdokumente gegliedert werden. Dadurch wird es
möglich, nur den momentan bearbeiteten Dokumentteil~-- respektive die aktuelle
-\Package{tikz}- oder \Package{pstricks}-Grafik~-- zu kompilieren. Die meiner
+\Package{tikz}"~ oder \Package{pstricks}"=Grafik~-- zu kompilieren. Die meiner
Meinung nach besten Pakete für dieses Unterfangen werden folgend vorgestellt.
%
\begin{packages}
\item[standalone]
- \ChangedAt{v2.02!\Class{standalone}: Probleme behoben}
+ \ChangedAt{%
+ v2.02:Bugfix für Verwendung der Klasse \Class{standalone} aus dem Paket
+ \Package{standalone}%
+ }
Dieses Paket ist für das Erstellen eigenständiger (Unter)"~Dokumente gedacht,
welche später in ein Hauptdokument eingebunden werden können. Jedes dieser
Teildokumente benötigt eine eigene Präambel. Optional lassen sich die
Präambeln der Unterdokumente automatisch in ein Hauptdokument einbinden.
\item[subfiles]
-\ChangedAt{v2.02!\Package{subfiles}: Beschreibung hinzugefügt}
+\ChangedAt{v2.02:\RecPack \Package{subfiles}}
Dieses Paket wählt einen etwas anderen Ansatz als \Package{standalone}. Es
ist von Anfang an dafür gedacht, ein dediziertes Hauptdokument zu verwenden.
- Die darin mit \Macro{subfiles} eingebundenen Unterdateien nutzen bei der
- autarken Kompilierung dessen Präambel.
+ Die darin mit \Macro{subfiles}(\Package{subfiles})'none' eingebundenen
+ Unterdateien nutzen bei der autarken Kompilierung dessen Präambel.
\end{packages}
%
Unabhängig davon, ob Sie eines der beiden Pakete nutzen oder alles in einem
Dokument belassen, ist es ratsam, eigens definierte Befehle, Umgebungen und
ähnliches in ein separates Paket auszulagern. Dafür müssen Sie lediglich ein
-leeres \hologo{LaTeX}-Dokument erzeugen und es unter \File*{mypreamble.sty}
+leeres \hologo{LaTeX}"=Dokument erzeugen und es unter \File*{mypreamble.sty}
oder einem anderen Namen im gleichen Ordner wie das Hauptdokument speichern.
Dann können Sie in dieser Datei ihre Deklarationen ausführen und diese mit
-\Macro*{usepackage}\PParameter{mypreamble} in das Dokument einbinden. Dies 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
+\Macro*{usepackage}[\PParameter{mypreamble}] in das Dokument einbinden. Dies
+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}
@@ -760,49 +904,34 @@ Hier taucht alles auf, was nicht in die vorherigen Kategorien eingeordnet
werden konnte.
%
\begin{packages}
-\item[bookmark]\index{Lesezeichen}\index{Querverweise}
- Dieses Paket verbessert und erweitert die von \Package{hyperref} angebotenen
- Möglichkeiten zur Erstellung von Lesezeichen~-- auch Outline"=Einträge~-- im
- PDF-Dokument. Beispielsweise können Schriftfarbe- und "~stil geändert werden.
-\item[calc]\index{Berechnungen}
- Normalerweise können Berechnungen nur mit Low-Level-\hologo{TeX}-Primitiven
- im Dokument durchgeführt werden. 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ählermanipulation}
- 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[varioref]\index{Querverweise}
- Mit diesem Paket lassen sich sehr gute Verweise auf bestimmte Seiten
- erzeugen. Insbesondere, wenn der Querverweis auf die aktuelle, die
- vorhergehende oder nachfolgende sowie im zweiseitigen Satz auf die
- gegenüberliegende Seite erfolgt, werden passende Textbausteine für diesen
- verwendet.
-\item[cleveref]\index{Querverweise}
- Dieses Paket vereint die Vorzüge von \Package{varioref} mit der automatischen
- Benennung der referenzierten Objekte mit dem Befehl \Macro{autoref} aus dem
- Paket \Package{hyperref}.
-\item[marginnote]\index{Randnotizen}
- Randnotizen, welche mit \Macro{marginpar} erzeugt werden, sind spezielle
- Gleitobjekte in \hologo{LaTeX}. Dies kann dazu führen, dass eine Notiz am
- Blattrand nicht direkt da gesetzt wird, wo diese intendiert war. Dieses Paket
- stellt den Befehl \Macro{marginnote} für nicht"~gleitende Randnotizen zur
- Verfügung. Alternativ dazu kann man auch \Package{mparhack} verwenden.
-\item[todonotes]\index{Randnotizen}
+\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
+ \Macro{marginnote}(\Package{marginnote})'none' für nicht"~gleitende
+ Randnotizen zur Verfügung. Das Paket \Package{mparhack} ist eine Alternative
+ dazu.
+\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}%
+\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!\Package{listings}: Beschreibung ergänzt}
+ \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:
@@ -815,8 +944,54 @@ werden konnte.
{~}{{\textasciitilde}}1 {ß}{{\ss}}1
}
\end{Code}\vspace{-\baselineskip}%
-\item[xparse]\index{Befehle!Deklaration}
- Dieses mächtige Paket entstammt dem \hologo{LaTeX3}-Projekt und bietet für
+\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 können Berechnungen nur mit Low-Level-\hologo{TeX}"=Primitiven
+ im Dokument durchgeführt werden. 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
die Erstellung eigener Befehle und Umgebungen einen alternativen Ansatz zu
den bekannten \hologo{LaTeX}"=Deklarationsbefehlen \Macro*{newcommand} und
\Macro*{newenvironment} sowie deren Derivaten. Mit \Package{xparse} wird es
@@ -824,16 +999,18 @@ werden konnte.
innerhalb des Befehlskonstruktes zu definieren. Auch die Verwendung anderer
Zeichen als eckige Klammern für die Spezifizierung eines optionalen
Argumentes ist möglich.
-\item[xkeyval]\index{Befehle!Deklaration}
- \ChangedAt{v2.02!\Package{xkeyval}: Beschreibung hinzugefügt}
+\item[xkeyval,keyval,kvoptions,pgfkeys]
+ \index{Befehlsdeklaration}%
+ \ChangedAt{v2.02:\RecPack \Package{xkeyval}}
Das \KOMAScript"=Bundle lädt das Paket \Package{keyval}, um Optionen mit
einer Schlüssel"=Wert"=Syntax deklarieren zu können. Zusätzlich wird von
\TUDScript das Paket \Package{kvsetkeys} geladen, um auf nicht definierte
Schlüssel reagieren zu können. Die Schlüssel"=Wert"=Syntax kann auch für
eigens definierte Makros genutzt werden, um sich das exzessive Verwenden von
optionalen Argumenten zu ersparen. Damit wäre folgende Definition möglich:
- \Macro*{newcommand}\Macro*{Befehl}\OParameter{Schlüssel"=Wert"=Liste}%
- \Parameter{Argument}.
+ \Macro*{newcommand}[%
+ \Macro*{Befehl}[\OParameter{Schlüssel"=Wert"=Liste}\Parameter{Argument}]%
+ ]
Das Paket \Package{xkeyval} erweitert insbesondere die Möglichkeiten zur
Deklaration unterschiedlicher Typen von Schlüsseln. Sollten die bereits durch
@@ -843,47 +1020,33 @@ werden konnte.
unterstützen, kann das Paket \Package{scrbase} genutzt werden. Soll aus einem
Grund auf \KOMAScript{} gänzlich verzichtet werden, sind die beiden Pakete
\Package{kvoptions} oder \Package{pgfkeys} eine Alternative.
-\item[afterpage]
- Der Befehl \Macro{afterpage}\Parameter{\dots} 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[mwe]\index{Minimalbeispiel|!}
- \ChangedAt{v2.02!\Package{mwe}: Beschreibung hinzugefügt}
- Mit diesem Paket lassen sich sehr einfach Minimalbeispiele erzeugen, die
- sowohl Blindtexte respektive Abbildungen enthalten sollen.
-\item[filemod]
- Wird entweder \hologo{pdfLaTeX} oder \hologo{LuaLaTeX} als Prozessor
- eingesetzt, können mit diesem Paket das Änderungsdatum zweier Dateien
- miteinander verglichen und in Abhängigkeit davon definierbare Aktionen
- ausgeführt werden.
-\item[coseoul]
- Mit diesem Paket kann man die Struktur der Gliederung relativ angeben. 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[dprogress]\index{Debugging}
- Das Paket schreibt bei der Kompilierung des Dokumentes die Gliederung in die
- Logdatei. Dies kann im Fehlerfall beim Auffinden des Problems im Dokument
- helfen. Allerdings werden dafür die Gliederungsebenen so umdefiniert, dass
- diese keine optionalen Argumente mehr unterstützen,was jedoch für die
- \TUDScript-Klassen von essentieller Bedeutung ist. Zum Debuggen kann es
- trotzdem sporadisch eingesetzt werden.
+\item[scrlfile]
+ \index{Paketabhängigkeiten}
+ \ChangedAt{v2.05:\RecPack \Package{scrlfile}}
+ Dieses \KOMAScript-Paket erlaubt es, auf das Laden von Klassen oder Paketen
+ 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.
\end{packages}
\subsubsection{Bugfixes}
\begin{packages}
-\item[scrhack](koma-script)
+\item[scrhack]<koma-script>
Das Paket behebt Kompatibilitätsprobleme der \KOMAScript-Klassen mit den
Paketen \Package{hyperref}, \Package{float}, \Package{floatrow} und
- \Package{listings}. Es ist durchaus empfehlenswert, jedoch sollte man
- unbedingt die Dokumentation beachten.
+ \Package{listings}. Es ist durchaus empfehlenswert, jedoch sollte unbedingt
+ die Dokumentation beachtet werden.
+\item[scrwfile,morewrites]
+ Falls der Fehler \texttt{No room for a new \textbackslash write} erscheint,
+ kann dieser möglicherweise mit einem dieser beiden Pakete behonben werden.
+ Mehr dazu in \autoref{sec:tips:write}.
\item[mparhack]
Zur Behebung falsch gesetzter Randnotizen wird ein Bugfix für
- \Macro{marginpar} bereitgestellt. Alternativ dazu kann man auch
- \Package{marginnote} verwenden.
+ \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}.
\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 99f39eceaca..b2218a507f1 100644
--- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-poster.tex
+++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-poster.tex
@@ -1,62 +1,369 @@
-%Poster:
-%x cdstyle: neu
-%x \authorname: neu
-%x \contactname: neu
-%x \studentname: neu, \authorname{} umbenannt
-%x \webpage: neu
-\chapter[Die Klasse tudscrposter]{Die Posterklasse}
-\label{sec:poster}
-\begin{Declaration*}{\Class{tudscrposter}}
-\index{Posterklasse|!}
-Ergänzend zu den Hauptklassen, welche für das Setzen von Dokumenten im \CD der
-\TnUD angeboten werden, wird die Klasse \Class{tudscrposter} bereitgestellt.
-Mit dieser wird das Erstellen von Postern mit \hologo{LaTeX} ermöglicht. Die
-Basis hierfür ist \Class{tudscrartcl} und alle durch diese Klasse angebotenen
-Befehle und Optionen können mit \Class{tudscrposter} gleichermaßen verwendet
-werden.
-\end{Declaration*}
-
-\ToDo[imp]{Klasse \Class*{tudscrposter} implementieren}[v2.05]
-\ToDo[doc]{\Class*{tudscrposter} als Ersatz für \Class{tudmathposter}}[v2.05]
-
-\begin{Declaration}[v2.05]{\Option{cdstyle}[\PSet]}[true]
-\printdeclarationlist%
-\begin{values}
+\chapter[Die Posterklasse \Class*{tudscrposter}]{Die Posterklasse}
+\tudhyperdef*{sec:poster}%
+%
+\begin{Bundle*}[v2.05]{\Class{tudscrposter}}
+\index{Posterklasse|!}%
+\printchangedatlist%
+%
+Ergänzend zu den Hauptklassen, welche für das Setzen von Dokumenten im \TUDCD
+angeboten werden, wird die Klasse \Class{tudscrposter} bereitgestellt. Mit
+dieser wird das Erstellen von Postern im gleichen Layout mit \hologo{LaTeX}
+ermöglicht. Die Basis hierfür ist \Class{tudscrartcl} und \emph{fast} alle
+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
+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.
+
+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*{dedication}(\Package{koma-script}) sowie
+\Macro*{uppertitleback}(\Package{koma-script}) und
+\Macro*{lowertitleback}(\Package{koma-script}) haben bei der Klasse
+\Class{tudscrposter} keinerlei Funktionalität. Die Befehle \Macro{author} und
+\Macro{authormore} existieren weiterhin, werden allerdings nicht für den Titel
+wohl jedoch für den speziellen Fußbereich eines Posters verwendet, welcher in
+\autoref{sec:poster:foot} weiterführend beschrieben wird.
+
+Neben der signifikanten Vereinfachung des Titels entfallen für die Klasse
+\Class{tudscrposter} einige weitere Befehle und Umgebungen. Namentlich sind
+dies die Umgebung \Environment*{tudpage}, die Optionen \Option*{headingsvskip}
+und \Option*{pageheadingsvskip} sowie alle zu Selbstständigkeitserklärung und
+Sperrvermerk gehörigen Elemente, wie die Option (\Option*{declaration}), die
+Umgebung (\Environment*{declarations}) und die Befehle (\Macro*{declaration},
+\Macro*{confirmation}, \Macro*{blocking}). Die Umgebung \Environment{abstract}
+kann weiterhin genutzt werden, allerdings kann mit der Option \Option{abstract}
+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
+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.
+
+
+
+\subsection{Die Wahl von Papierformat und Schriftgröße}
+\tudhyperdef*{sec:fontsize}%
+\index{Papierformat|!}%
+\index{Schriftgröße|!}%
+
+Die Festlegung von \emph{Papierformat} und \emph{Schriftgröße} ist essentiell
+für das Erstellen eines Posters und sollten \emph{immer} vorgenommen werden.
+\Attention{Beide Einstellungen müssen zwingend als Klassenoption erfolgen.}
+Bei der Schriftgrößenauswahl ist darauf zu achten, ob der Satz des Posters
+ein- oder mehrspaltig erfolgen soll. Für letzteres Unterfangen ist die
+\Environment{multicols}(\Package{multicol})'none'-Umgebung aus dem Paket
+\Package{multicol} sehr empfehlenswert.
+
+Zur Festlegung des Papierformats ist die \KOMAScript-Option
+\Option{paper=\PSet}(\Package{typearea})'none'|declare| zu verwenden. Dabei
+lassen sich mit \Option{paper=\PValueName{Format}}(\Package{typearea})'none'
+unter anderem die gängigen Klassen der ISO/DIN"~Reihen A~bis~D als auch Quer-
+oder Längsformat auswählen. Ein beliebiges Format kann mit der Einstellung
+\Option{paper=\PValueName{Höhe}{:}\PValueName{Breite}}(\Package{typearea})'none'
+gewählt werden. Für zusätzliche Hinweise ist das \scrguide zu Rate zu ziehen.
+
+Passend zum ausgewählten Papierformat sowie der gewünschten Anzahl an
+Textspalten des Posters sollte unbedingt die Schriftgröße mit
+\Option{fontsize=\PName{Schriftgröße}}(\Package{koma-script})'none'|declare|
+angegeben werden. Für eine passend abgestimmte Auswahl von Papierformat und
+Schriftgröße ist \autoref{tab:font+paper} als Referenz zu nutzen. Sollten Sie
+aufgrund der Schriftgrößenänderung eine oder mehrere Warnungen vom Typ
+%
+\begin{quoting}
+\begin{Code}
+Font shape `T1/cmr/m/n' in size <...> not available
+\end{Code}
+\end{quoting}
+%
+erhalten, so beachten Sie bitte die Hinweise aus \autoref{sec:tips:fontsize}.
+
+
+\begin{table}
+ \index{Papierformat|!}%
+ \index{Schriftgröße|!}%
+ \newcommand*\mtm{\small min\dots{}max}%
+ \newcommand*\rng[2]{\small #1\dots{}#2pt}%
+ \ttabbox[\linewidth]{%
+ \setlength\tabcolsep{5pt}%
+ \centering%
+ \begin{subfloatrow}%
+ \ttabbox{%
+\begin{tabular}{r*{7}c}
+ \toprule
+ &\multicolumn{7}{c}{Klasse} \tabularnewline\midrule
+ & 6 & 5 & 4 & 3 & 2 & 1 & 0 \tabularnewline\midrule
+Reihe & \mtm & \mtm & \mtm & \mtm & \mtm & \mtm & \mtm \tabularnewline\midrule
+ D &\rng{05}{07} &\rng{06}{09} &\rng{10}{14} &\rng{14}{20}%
+ &\rng{20}{29} &\rng{28}{40} &\rng{40}{60} \tabularnewline\midrule
+ A &\rng{06}{08} &\rng{07}{10} &\rng{11}{16} &\rng{16}{23}%
+ &\rng{23}{33} &\rng{32}{46} &\rng{45}{66} \tabularnewline\midrule
+ C &\rng{07}{09} &\rng{08}{11} &\rng{12}{18} &\rng{18}{26}%
+ &\rng{26}{37} &\rng{36}{52} &\rng{50}{72} \tabularnewline\midrule
+ B &\rng{08}{10} &\rng{09}{12} &\rng{13}{20} &\rng{20}{29}%
+ &\rng{29}{41} &\rng{40}{58} &\rng{55}{78} \tabularnewline\bottomrule
+\end{tabular}
+ }{\caption{Einspaltiges Layout}}%
+ \end{subfloatrow}%
+ \par\medskip
+ \begin{subfloatrow}%
+ \ttabbox{%
+\begin{tabular}{r*{4}c}
+ \toprule
+ &\multicolumn{4}{c}{Klasse} \tabularnewline\midrule
+ & 3 & 2 & 1 & 0 \tabularnewline\midrule
+ Reihe & \mtm & \mtm & \mtm & \mtm \tabularnewline\midrule
+D&\rng{07}{10}&\rng{10}{14}&\rng{14}{19}&\rng{19}{28}\tabularnewline\midrule
+A&\rng{08}{11}&\rng{11}{16}&\rng{16}{22}&\rng{22}{32}\tabularnewline\midrule
+C&\rng{09}{12}&\rng{12}{18}&\rng{18}{25}&\rng{25}{36}\tabularnewline\midrule
+B&\rng{10}{13}&\rng{13}{20}&\rng{20}{28}&\rng{28}{40}\tabularnewline\bottomrule
+\end{tabular}
+ }{\caption{Zweispaltiges Layout}}%
+ \ttabbox{%
+\begin{tabular}{r*{2}c}
+ \toprule
+ &\multicolumn{2}{c}{Klasse} \tabularnewline\midrule
+ & 1 & 0 \tabularnewline\midrule
+ Reihe & \mtm & \mtm \tabularnewline\midrule
+ D &\rng{07}{10} &\rng{10}{14} \tabularnewline\midrule
+ A &\rng{08}{11} &\rng{11}{16} \tabularnewline\midrule
+ C &\rng{09}{12} &\rng{12}{18} \tabularnewline\midrule
+ B &\rng{10}{13} &\rng{13}{20} \tabularnewline\bottomrule
+\end{tabular}
+ }{\caption{Dreispaltiges Layout}}%
+ \end{subfloatrow}%
+ }{%
+ \caption{%
+ Empfohlene Kombinationen für die Wahl von Papierformat
+ (\Option{paper}(\Package{typearea})'none') und Schriftgröße
+ (\Option{fontsize}(\Package{koma-script})'none')%
+ }%
+ \label{tab:font+paper}%
+ }%
+\end{table}
+
+
+
+\subsection{Die Gestalt eines Posters}
+
+Die Festlegung der Farbausprägung eines Posters erfolgt mit der Option
+\Option{cd}, welche nachfolgend beschrieben wird. Dabei kann aus einigen
+Varianten zur Farbgestaltung gewählt werden. Sollte keiner dieser
+vordefinierten Werte das gewünschte Layout zur Verfügung stellen, lässt sich
+dieses mit den Optionen \Option{cdhead} und \Option{cdfoot} sowie
+\Option{cdtitle}, \Option{cdpart} und \Option{cdsection} nachträglich
+noch genauer anpassen.
+
+
+\begin{Declaration}{\Option{cd=\PSet}}[bicolor]
+\printdeclarationlist%
+%
+Äquivalent zu den \TUDScript-Hauptklassen wird mit dieser Option die Verwendung
+des \TUDCDs für das Poster festgelegt. Sie hat Einfluss auf die Farbgestaltung
+der Gliederungsüberschriften sowie des Seitenstils, welcher standardmäßig auf
+\PageStyle{empty.tudheadings} gesetzt wird.
+%
+\begin{values}{\Option{cd}}
\itemfalse
+ Hiermit wird das \CD komplett deaktiviert und es werden keine spezifischen
+ Einstellungen für ein Poster vorgenommen. Lediglich der Seitenstil wird auf
+ \PageStyle{empty} festgelegt.
\itemtrue*[nocolor/monochrome]
+ Es wird schwarze Schrift für Überschriften und den Seitenkopf verwendet. Der
+ Fußbereich wird nicht farbig akzentuiert.
\item[lightcolor/pale]
+ Die Einstellung entspricht weitestgehend der Option \Option{cd=true},
+ allerdings wird die primäre Hausfarbe \Color{HKS41} für Kopf sowie Fuß und
+ die Überschriften genutzt.
\item[barcolor]
-\item[bicolor/bichrome]
-\item[color]
-\item[full/fullcolor]
+ Zusätzlich zur vorherigen Einstellung wird außerdem der Querbalken farbig
+ abgesetzt.
+\item[bicolor/color/fullcolor]
+ Der Kopf wird mit einem farbigen Hintergrund in der primären Hausfarbe
+ \Color{HKS41} gesetzt, der Querbalken wird farbig abgesetzt. Ebenso wird für
+ alle Überschriften die Hausfarbe verwendet, der Fußbereich erhält ebenfalls
+ einen farbigen Hintergrund.
\end{values}
\end{Declaration}
+\begin{Declaration}{\Option{backgroundcolor=\PSet}}[true]
+\printdeclarationlist%
+%
+Mit dieser Option kann die Hintergrundfarbe eines Posters definiert werden.
+%
+\begin{values}{\Option{backgroundcolor}}
+\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.
+\item[\PValueName{Farbe}]
+ Die angegebene \PName{Farbe} wird als Hintergrund für das Poster genutzt.
+\end{values}
+\end{Declaration}
+
+\begin{Declaration}{\Option{bleedmargin=\PName{Längenwert}}}[0.2in]
+\printdeclarationlist%
+\index{Beschnittzugabe|?}%
+\index{Schnittmarken|?}%
+%
+Soll das Poster in einem Papierformat gedruckt werden, welches anschließend
+noch auf das Zielformat zugeschnitten wird, weil beispielsweise ein randloses
+Drucken nicht möglich ist, kann diese Option genutzt werden, um die farbigen
+Elemente des Layouts in den Bereich der Beschnittzugabe respektive Überfüllung
+zu vergrößern. Damit ist ein \enquote{Zuschneiden in die Farbe} sehr einfach
+und ohne große Probleme realisierbar.
+
+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}
+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}
+exemplarisch dargestellt.
+\end{Declaration}
+
-% \begin{macro}{\faculty}
-% \begin{macro}{\department}
-% \begin{macro}{\institute}
-% \begin{macro}{\chair}
-% \begin{macro}{\professor}
-% \begin{macro}{\contactperson}
-% \begin{macro}{\office}
-% \begin{macro}{\telephone}
-% \begin{macro}{\emailaddress}
-% \begin{macro}{\webpage}
-\begin{Declaration}[v2.05]{\Macro{webpage}\Parameter{Webseite}}
+\section{Felder für den Fußbereich}
+\tudhyperdef*{sec:poster:foot}%
+%
+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.
+
+\begin{Declaration}{%
+ \Macro{faculty}[\OParameter{Fußzeile}\Parameter{Fakultät}]%
+}
+\begin{Declaration}{%
+ \Macro{department}[\OParameter{Fußzeile}\Parameter{Einrichtung}]%
+}
+\begin{Declaration}{%
+ \Macro{institute}[\OParameter{Fußzeile}\Parameter{Institut}]%
+}
+\begin{Declaration}{%
+ \Macro{chair}[\OParameter{Fußzeile}\Parameter{Lehrstuhl}]%
+}
\printdeclarationlist%
+%
+Die mit diesen Befehlen gemachten Angaben werden nicht nur im Kopf sondern
+zusätzlich auch im linken Teil des Fußbereichs ausgegeben. Sollen diese für den
+Fußbereich angepasst werden, lässt das optionale Argument hierfür verwenden,
+wobei die Angabe eines leeren optionalen Argumentes das Feld für den Fuß
+komplett unterdrückt. Vor allen Angaben wird der Bezeichner \Term{contactname}
+in fetter Schrift ausgegeben.
+\end{Declaration}
+\end{Declaration}
+\end{Declaration}
\end{Declaration}
-\begin{Declaration}[v2.05]{\Term{authorname}}
-\begin{Declaration}[v2.05]{\Term{contactname}}
-\begin{Declaration}{\Term{contactpersonname}}
+
+\begin{Declaration}{\Macro{professor}[\Parameter{Name}]}
+\printdeclarationlist%
+%
+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}]}
+\begin{Declaration}{\Macro{course}[\Parameter{Studiengang}]}
+\begin{Declaration}{\Macro{discipline}[\Parameter{Studienrichtung}]}
+\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%
-\ToDo[imp]{Konflikt auflösen}[v2.05]
%
-\TermTable{authorname,contactname,contactpersonname}
+Der oder die mit \Macro{author} angegebenen Autoren werden im rechten Teil des
+Fußbereichs (nacheinander) ausgegeben, mehrere Autoren sind mit \Macro{and}
+voneinander zu trennen. Die Befehle \Macro{authormore}, \Macro{course} und
+\Macro{discipline} sowie \Macro{office}, \Macro{telephone}, \Macro{telefax} 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.
+
+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{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}
+\end{Declaration}
+\end{Declaration}
\end{Declaration}
\end{Declaration}
\end{Declaration}
-\ToDo[doc]{Beispiel für \Class*{tudscrposter}}[v2.05]
+\begin{Declaration}{\Macro{webpage}[\OParameter{Einstellungen}\Parameter{URL}]}
+\begin{Declaration}{\Macro{webpage*}[\Parameter{URL}]}
+\printdeclarationlist%
+%
+Ganz zum Schluss kann für die rechte Spalte des Fußbereichs eine Homepage
+angegeben werden. Wurde das Paket \Package{hyperref} geladen, wird diese in
+einen Hyperlink gewandelt. Über das optionale Argument können beliebige
+Einstellungen an \Macro{hypersetup}(\Package{hyperref})'none' aus besagtem
+Paket übergeben werden. Soll die Formatierung des Eintrags manuell erfolgen, so
+kann die Sternversion \Macro{webpage*} verwendet werden, wobei alle gewünschten
+Einstellungen innerhalb des Argumentes~-- gegebenenfalls in einer Gruppe~--
+vorgenommen werden müssen.
+\end{Declaration}
+\end{Declaration}
+
+\begin{Declaration}{\Term{contactname}}
+\begin{Declaration}{\Term{authorname}}
+\begin{Declaration}{\Term{contactpersonname}}
+\printdeclarationlist%
+%
+Wie bereits zuvor erläutert, werden diese Bezeichner in der linken respektive
+rechten Spalte im Fuß vor der Ausgabe der eigentlichen Felder gesetzt.
+\TermTable{contactname,authorname,contactpersonname}
+\end{Declaration}
+\end{Declaration}
+\end{Declaration}
+\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 5beea23d78b..9f7c044c17d 100644
--- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-preface.tex
+++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-preface.tex
@@ -1,9 +1,9 @@
-\addchap{\prefacename}
+\addchap*{\prefacename}
Die im Folgenden beschriebenen Klassen und Pakete wurden für das Erstellen von
-\hologo{LaTeX}"=Dokumenten im \CD der \TnUD entwickelt.%
+\hologo{LaTeX}"=Dokumenten im \TUDCD entwickelt.%
\footnote{%
- \url{http://tu-dresden.de/cd}\hfill
- \url{http://tu-dresden.de/service/publizieren/cd/6_handbuch/index.html}%
+ \url{https://tu-dresden.de/cd}\hfill
+ \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,
@@ -11,8 +11,8 @@ 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.
-Es sei angemerkt, dass die hier beschriebenen Klassen eine Abweichung vom \CD
-der \TnUD zulassen, da dieses gerade unter typografischen Gesichtspunkten
+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
@@ -23,14 +23,14 @@ 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
-diese nicht vorhanden sein, wird das Lesen der \hologo{LaTeXe}-Kurzbeschreibung
+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
-\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
+\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.
Des Weiteren sollte \emph{jeder} Anwender das \hologo{LaTeXe}"=Sündenregister
@@ -38,7 +38,7 @@ Des Weiteren sollte \emph{jeder} Anwender das \hologo{LaTeXe}"=Sündenregister
kennen, um typische Fehler zu vermeiden. Antworten auf häufig gestellte Fragen
liefert \hrfn{http://projekte.dante.de/DanteFAQ/WebHome}{DANTE"~FAQ}. Falls der
Nutzer unerfahren bei der Verwendung von \KOMAScript{} sein sollte, so ist ein
-Blick in das dazugehörige Handbuch \scrguide sehr zu empfehlen, wenn nicht
+Blick in das \scrguide[dazugehörige Handbuch] sehr zu empfehlen, wenn nicht
sogar unumgänglich.
Der aktuelle Stand der Klassen und Pakete aus dem \TUDScript-Bundle in der
@@ -47,7 +47,7 @@ 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
\begin{quoting}
-\Forum*%
+\Forum'%
\end{quoting}
gemeldet werden. Für eine schnelle und erfolgreiche Fehlersuche sollte bitte
ein \hrfn{http://www.komascript.de/minimalbeispiel}{\textbf{Minimalbeispiel}}
diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-supervisor.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-supervisor.tex
new file mode 100644
index 00000000000..95051c53995
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-supervisor.tex
@@ -0,0 +1,421 @@
+\chapter[Das Paket \Package*{tudscrsupervisor} -- Studentische Betreuung]{%
+ Ergänzungen für studentische Arbeiten
+}
+\begin{Bundle*}{\Package{tudscrsupervisor}}
+%
+Dieses Paket stellt für das Erstellen von Aufgabenstellungen und Gutachten
+wissenschaftlicher Arbeiten sowie offiziellen Aushängen im \CD passende
+Umgebungen und Befehle für den Anwender bereit. Deshalb richtet es sich
+vornehmlich an Mitarbeiter an der \TnUD, kann jedoch natürlich auch von
+Studenten genutzt werden.
+
+
+\section{Aufgabenstellung für eine wissenschaftliche Arbeit}
+\index{Aufgabenstellung|!(}%
+%
+\begin{Declaration}{\Environment{task}[\OLParameter{Überschrift}]}{%
+ \Environment{tudpage}'auto'%
+}
+\begin{Declaration}{\Key{\Environment{task}}{headline=\PName{Überschrift}}}
+\begin{Declaration}[v2.05]{\Key{\Environment{task}}{style=\PName{Stil}}}
+\printdeclarationlist%
+%
+Mit der \Environment{task}"=Umgebung kann ein Aufgabenstellung für eine
+wissenschaftliche Arbeit ausgegeben werden. Diese basiert auf der Umgebung
+\Environment{tudpage} und akzeptiert deshalb im optionalen Argument alle
+Parameter, welche bei der Beschreibung von \Environment{tudpage}'full'
+erläutert wurden.
+
+Für die Aufgabenstellung wird normalerweise eine Überschrift gesetzt, welche
+sich aus \Term{taskname} und~-- falls der Typ der Abschlussarbeit angegeben
+wurde~-- noch aus \Term{tasktext} und \Macro{thesis} zusammensetzt. Der
+Parameter \Key{\Environment{task}}{headline} kann genutzt werden, um diese
+automatisch generierte Überschrift anzupassen.
+
+Zu Beginn der Aufgabenstellung erscheint eine Tabelle mit den angegebenen
+Informationen zum Autor respektive zu den Autoren der Abschlussarbeit. Zwingend
+anzugeben sind dafür lediglich der Name des oder der Verfasser (\Macro{author})
+sowie der Titel der Arbeit (\Macro{title}), welcher am Ende der Tabelle in
+fetter Schrift aufgeführt wird. Optional werden noch die Felder für den
+Studiengang (\Macro{course}), die Fachrichtung (\Macro{discipline}) sowie die
+Matrikelnummer (\Macro{matriculationnumber}) und das Immatrikulationsjahr
+(\Macro{matriculationyear}) ausgegeben, wobei nicht angegebene Felder bei der
+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.
+\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
+der Parameter \Key{\Environment{task}}{style=\PValue{inline}} gesetzt, so
+erfolgt die Ausgabe von mehreren Prüfern und Betreuern in einer Zeile. Die
+Bezeichner sind problemlos anpassbar, siehe dazu \autoref{sec:localization}.
+Danach erscheinen das Ausgabedatum (\Macro{issuedate}) sowie der verpflichtende
+Abgabetermin (\Macro{duedate}). Zum Schluss wird die Unterschriftzeile für den
+Prüfungsausschussvorsitzenden (\Macro{chairman}) und den betreuenden
+Hochschullehrer (\Macro{professor}) gesetzt. Für genannte Personen werden unter
+dem Namen selbst die Bezeichner ausgegeben (\Term{chairmanname} und
+\Term{professorname}).
+\end{Declaration}
+\end{Declaration}
+\end{Declaration}
+
+\begin{Declaration}{%
+ \Macro{taskform}[\LParameter\Parameter{Ziele}\Parameter{Schwerpunkte}]%
+}
+\printdeclarationlist%
+%
+Zusätzlich zur der frei gestaltbaren Umgebung \Environment{task} zur Erstellung
+einer Aufgabenstellung wird ein separater Befehl für eine standardisierte
+Ausgabe zur Verfügung gestellt. Dieser strukturiert die Aufgabenstellung in die
+zwei Bereiche \emph{Ziele} und \emph{Schwerpunkte} der Arbeit mit dazugehörigen
+Überschriften (\Term{objectivesname}, \Term{focusname}).
+
+Im optionalen Argument können alle Parameter der Umgebung \Environment{task}
+verwendet werden. Im ersten obligatorischen Argument sollte ein Text mit einer
+kurzen thematischen Einordnung und dem eigentlichen Ziel der Arbeit erscheinen,
+im zweiten Argument sollen die thematischen Schwerpunkte in Stichpunkten
+benannt werden. Der Inhalt des zweiten notwendigen Argumentes wird in einer
+\Environment{itemize}(\Package{koma-script},\Package{enumitem})'none'"=Umgebung
+gesetzt. Deshalb \emph{muss} jedem Stichpunkt
+\Macro{item}(\Package{koma-script},\Package{enumitem})'none' vorangestellt
+werden.
+\end{Declaration}
+%
+\begin{Example}
+Die empfohlene Verwendung des Befehls \Macro{taskform} ist wie folgt:
+\begin{Code}[escapechar=§]
+\taskform{%
+ Motivation der Arbeit im ersten Absatz§\dots§
+
+ Ziele der Arbeit im zweiten Absatz§\dots§
+}{%
+ \item Schwerpunkt 1
+ \item Schwerpunkt 2
+}
+\end{Code}
+Hierzu sei auch auf das Minimalbeispiel in \autoref{sec:exmpl:task} verwiesen.
+\index{Aufgabenstellung|!)}%
+\end{Example}
+
+\begin{Declaration}{\Macro{chairman}[\Parameter{Prüfungsausschussvorsitzender}]}
+\printdeclarationlist%
+%
+Wird dieses Feld genutzt, wird neben dem betreuenden Hochschullehrer
+(\Macro{professor}) auch der Vorsitzende des Prüfungsausschusses am Ende der
+Aufgabenstellung aufgeführt. Dies wird zumeist für Abschlussarbeiten wie
+beispielsweise \masterthesisname{} oder \diplomathesisname{} benötigt.
+\end{Declaration}
+
+\begin{Declaration}{\Macro{issuedate}[\Parameter{Ausgabedatum}]}
+\begin{Declaration}{\Macro{duedate}[\Parameter{Abgabetermin}]}
+\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.
+\end{Declaration}
+\end{Declaration}
+
+
+\section{Gutachten für wissenschaftliche Arbeiten}
+\index{Gutachten|!(}%
+%
+\begin{Declaration}{\Environment{evaluation}[\OLParameter{Überschrift}]}{%
+ \Environment{tudpage}'auto'%
+}
+\begin{Declaration}{%
+ \Key{\Environment{evaluation}}{headline=\PName{Überschrift}}%
+}
+\begin{Declaration}{\Key{\Environment{evaluation}}{grade=\PName{Note}}}
+\printdeclarationlist%
+%
+Diese Umgebung wird für das Erstellen eines Gutachtens einer wissenschaftlichen
+Arbeit bereitgestellt. Auch diese unterstützt alle Parameter, welche für die
+Umgebung \Environment{tudpage}'full' beschrieben wurden.
+
+Für ein Gutachten wird gewöhnlich eine Überschrift aus \Term{evaluationname}
+und~-- falls der Abschlussarbeitstyp angegeben wurde~-- \Term{evaluationtext}
+sowie \Macro{thesis} generiert. Diese automatisch generierte Überschrift kann
+mit dem Parameter \Key{\Environment{evaluation}}{headline} ersetzt werden. Am
+Ende des Gutachtens wird die mit \Key{\Environment{evaluation}}{grade}
+gegebene Note in fetter Schrift ausgezeichnet.
+
+Am Anfang der \Environment{evaluation}"=Umgebung wird die gleiche Tabelle mit
+Autorenangaben ausgegeben, wie dies bei der \Environment{task}"=Umgebung der
+Fall ist. Nach dem Tabellenkopf folgt auch hier der eigentliche Inhalt, sprich
+das Gutachten der Abschlussarbeit. Abgeschlossen wird die Umgebung mit der
+gegebenen Note~-- welche innerhalb von \Term{gradetext} ausgegeben wird~--
+sowie der Orts- und Datumsangabe (\Macro{place}, \Macro{date}) und der
+darauffolgenden Unterschriftzeile für den oder die Gutachter (\Macro{referee}),
+welche wiederum mit den entsprechenden sprachabhängigen Bezeichner
+(\Term{refereename}, \Term{refereeothername}) ergänzt werden.
+\end{Declaration}
+\end{Declaration}
+\end{Declaration}
+
+\begin{Declaration}{%
+ \Macro{evaluationform}[%
+ \LParameter\Parameter{Aufgabe}\Parameter{Inhalt}%
+ \Parameter{Bewertung}\Parameter{Note}%
+ ]%
+}
+\printdeclarationlist%
+%
+Neben der individuell nutzbaren Umgebung \Environment{evaluation} wird ein
+separater Befehl zur Erstellung eines standardisierten Gutachtens
+bereitgestellt. Dieser strukturiert die Ausgabe in die vier Bereiche
+\emph{Aufgabe}, \emph{Inhalt}, \emph{Bewertung} und \emph{Note} und versieht
+diese jeweils mit der dazugehörigen Überschrift beziehungsweise Textausgabe
+(\Term{taskname}, \Term{contentname}, \Term{assessmentname} und
+\Term{gradetext}). Das optionale Argument unterstützt alle Parameter der
+\Environment{evaluation}"=Umgebung.
+\end{Declaration}
+%
+\begin{Example}
+Die empfohlene Verwendung des Befehls \Macro{evaluationform} ist wie folgt:
+\begin{Code}[escapechar=§]
+\evaluationform{%
+ Kurzbeschreibung der Aufgabenstellung§\dots§
+}{%
+ Zusammenfassung von Inhalt und Struktur§\dots§
+}{%
+ Bewertung der schriftlichen Abschlussarbeit§\dots§
+}{%
+ Zahl (Note)
+}
+\end{Code}
+Hierzu sei auch auf das Minimalbeispiel in \autoref{sec:exmpl:evaluation}
+verwiesen.
+\index{Gutachten|!)}%
+\end{Example}
+
+\begin{Declaration}{\Macro{grade}[\Parameter{Note}]}
+\printdeclarationlist%
+%
+Neben der Angabe der Note für ein Gutachten über den Parameter
+\Key{\Environment{evaluation}}{grade} der Umgebung \Environment{evaluation}
+kann dafür auch dieser global wirkende Befehl verwendet werden.
+\end{Declaration}
+
+
+\section{Aushang}
+\index{Aushang|!(}%
+%
+\begin{Declaration}{\Environment{notice}[\OLParameter{Überschrift}]}{%
+ \Environment{tudpage}'auto'%
+}
+\begin{Declaration}{\Key{\Environment{notice}}{headline=\PName{Überschrift}}}
+\printdeclarationlist%
+%
+Für das Anfertigen eines Aushangs kann diese Umgebung verwendet werden. Diese
+basiert abermals auf der Umgebung \Environment{tudpage} und unterstützt alle
+deren Parameter.
+
+Wurde ein Datum angegeben, wird dieses standardmäßig rechtsbündig oberhalb des
+Textbereiches angezeigt (\seeref{\Key{\Environment{tudpage}}{cdhead}}). Danach
+erfolgt die Ausgabe der Überschrift, welche für gewöhnlich dem Inhalt von
+\Term{noticename} entspricht und mit \Key{\Environment{notice}}{headline}
+geändert werden kann. Nach der Überschrift folgt der Inhalt der Umgebung. Wurde
+mit \Macro{contactperson} ein oder mehrere Ansprechpartner angegeben, werden
+diese Informationen am Ende der Umgebung gesetzt.
+\end{Declaration}
+\end{Declaration}
+
+\begin{Declaration}{%
+ \Macro{noticeform}[\LParameter\Parameter{Inhalt}\Parameter{Schwerpunkte}]%
+}
+\printdeclarationlist%
+%
+Auch für diese Umgebung gibt es einen Befehl für eine normierte Form. Diese
+soll vor allem Verwendung für den Aushang studentischer Arbeitsthemen finden.
+Für das optionale Argument können sämtliche Parameter verwendet werden, die
+auch die \Environment{notice}"=Umgebung unterstützt.
+
+Das erste obligatorische Argument wird für eine kurze Inhaltsbeschreibung
+verwendet. Neben dem Text sollte hier wenn möglich eine thematisch passende
+Abbildung eingefügt werden (\Macro{includegraphics}(\Package{graphicx})'none').
+Das zweite Argument wird~-- wie schon bei \Macro{taskform}~-- dazu verwendet,
+einige Schwerpunkte aufzuzählen. Auch hier kommt nach der gliedernden
+Überschrift (\Term{focusname}) eine
+\Environment{itemize}(\Package{koma-script},\Package{enumitem})'none'"=Umgebung
+zum Einsatz, allen Schwerpunkten muss ein
+\Macro{item}(\Package{koma-script},\Package{enumitem})'none' vorangestellt
+werden.
+\end{Declaration}
+%
+\begin{Example}
+Die empfohlene Verwendung des Befehls \Macro{noticeform} ist wie folgt:
+\begin{Code}[escapechar=§]
+\noticeform{%
+ Kurzbeschreibung des Inhaltes der studentischen Arbeit§\dots§
+
+ Bild (optional), einzubinden mit:
+ \includegraphics[§\PName{Einstellungen}§]{§\PName{Datei}§}
+}{%
+ \item Schwerpunkt 1
+ \item Schwerpunkt 2
+}
+\end{Code}
+Hierzu sei auch auf das Minimalbeispiel in \autoref{sec:exmpl:notice} verwiesen.
+\index{Aushang|!)}%
+\end{Example}
+
+\begin{Declaration}[v2.02]{\Macro{contactperson}[\Parameter{Kontaktperson(en)}]}
+\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%
+%
+Am Ende eines Aushangs können mit \Macro{contactperson} Kontaktinformationen
+für eine oder mehrere Ansprechpartner angegeben werden. Soll mehr als eine
+Kontaktperson genannt werden, so müssen diese innerhalb des Befehls
+\Macro{contactperson} mit dem Befehl \Macro{and} getrennt werden. Für jede
+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}
+\end{Declaration}
+\end{Declaration}
+\end{Declaration}
+\end{Declaration}
+
+
+\section{Zusätzliche sprachabhängige Bezeichner}
+\index{Bezeichner|!(}%
+%
+Für das Paket \Package{tudscrsupervisor} werden für die zusätzlichen Befehle
+und Umgebungen weitere Bezeichner definiert. Für eine etwaige Anpassung dieser
+sei auf \autoref{sec:localization} verwiesen.
+
+\begin{Declaration}{\Term{taskname}}
+\begin{Declaration}{\Term{tasktext}}
+\printdeclarationlist%
+%
+Die Bezeichnung der Aufgabenstellung selbst ist in \Term{taskname} enthalten.
+Für die Generierung einer Überschrift wird dieser verwendet. Wurde außerdem mit
+\Macro{thesis} oder \Macro{subject} der Typ der Abschlussarbeit%
+\footnote{%
+ \Option{subjectthesis} oder spezieller Wert aus \autoref{tab:thesis}%
+}
+angegeben, wird die Überschrift zusammen mit dem Bezeichner \Term{tasktext}
+um die Typisierung erweitert. Falls gewünscht, kann die automatisch generierte
+Überschrift mit dem Parameter \Key{\Environment{task}}{headline} der Umgebung
+\Environment{task} überschrieben werden.
+\TermTable{taskname,tasktext}
+\end{Declaration}
+\end{Declaration}
+
+\begin{Declaration}[v2.04]{\Term{namesname}}
+\begin{Declaration}{\Term{titlename}}
+\printdeclarationlist%
+%
+Diese beiden Bezeichner werden in der Tabelle mit den Autoreninformationen zu
+Beginn der Aufgabenstellung verwendet.
+\TermTable{namesname,titlename}
+\end{Declaration}
+\end{Declaration}
+
+\begin{Declaration}{\Term{issuedatetext}}
+\begin{Declaration}{\Term{duedatetext}}
+\printdeclarationlist%
+%
+Am Ende der Aufgabenstellung wird nach dem oder der Betreuer das Ausgabedatum
+und der Abgabetermin (\Macro{issuedate}, \Macro{duedate}) der Abschlussarbeit
+mit folgenden Bezeichner erläutert.
+\TermTable{issuedatetext,duedatetext}
+\end{Declaration}
+\end{Declaration}
+
+\begin{Declaration}{\Term{chairmanname}}
+\printdeclarationlist%
+%
+Wurde der Prüfungsausschussvorsitzende (\Macro{chairman}) angegeben, erfolgt
+unter dem Namen selbst die Ausgabe des Bezeichners.
+\TermTable{chairmanname}
+\end{Declaration}
+
+\begin{Declaration}{\Term{focusname}}
+\begin{Declaration}{\Term{objectivesname}}
+\printdeclarationlist%
+%
+Die Standardformen für Aufgabenstellung (\Macro{taskform}) respektive Aushang
+(\Macro{noticeform}) nutzen für die gesetzten Überschriften diese Bezeichner.
+\TermTable{focusname,objectivesname}
+\end{Declaration}
+\end{Declaration}
+
+\begin{Declaration}{\Term{evaluationname}}
+\begin{Declaration}{\Term{evaluationtext}}
+\printdeclarationlist%
+%
+Die Bezeichnung des Gutachten selbst ist in \Term{evaluationname} enthalten.
+Für die Generierung der Überschrift wird der Bezeichner \Term{evaluationtext}
+sowie der mit \Macro{thesis} oder gegebenenfalls mit \Macro{subject} gegebenen
+Typ der Abschlussarbeit verwendet. Diese automatisch generierte Überschrift
+kann mit dem Parameter \Key{\Environment{evaluation}}{headline} der
+Umgebung \Environment{evaluation} durch den Anwender überschrieben werden.
+\TermTable{evaluationname,evaluationtext}
+\end{Declaration}
+\end{Declaration}
+
+\begin{Declaration}{\Term{contentname}}
+\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}
+gesetzt.
+\TermTable{taskname,contentname,assessmentname}
+\end{Declaration}
+\end{Declaration}
+
+\begin{Declaration}{\Term{gradetext}}
+\printdeclarationlist%
+%
+Wird für das Gutachten einer wissenschaftlichen Arbeit die erzielte Note
+entweder mit dem Befehl \Macro{grade}[\Parameter{Note}] oder alternativ dazu
+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}
+\end{Declaration}
+
+\begin{Declaration}{\Term{noticename}}
+\begin{Declaration}[v2.02]{\Term{contactpersonname}}
+\printdeclarationlist%
+%
+Die Bezeichnung des Aushangs selbst ist in \Term{noticename} enthalten. Für
+die Generierung einer Überschrift wird dieser verwendet. Falls gewünscht, kann
+diese mit dem Parameter \Key{\Environment{notice}}{headline} der Umgebung
+\Environment{notice} überschrieben werden. Wurde eine Kontaktperson mit dem
+Befehl \Macro{contactperson} angegeben, wird als Überschrift der Kontaktdaten
+der Bezeichner \Term{contactpersonname} verwendet.
+
+\TermTable{noticename,contactpersonname}
+\end{Declaration}
+\end{Declaration}
+\index{Bezeichner|!)}%
+\end{Bundle*}
+
diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr.tex
index 5a35e47a8f8..bf3e424daf7 100644
--- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr.tex
+++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr.tex
@@ -1,5 +1,5 @@
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
-\documentclass[english,ngerman]{tudscrman}
+\documentclass[english,ngerman]{tudscrmanual}
\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage[T1]{fontenc}
\lstset{%
@@ -9,18 +9,25 @@
{Ä}{{\"A}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
{~}{{\textasciitilde}}1 {ß}{{\ss}}1
}
+\usepackage{bookmark}
+
+\TUDoption{ToDo}{notnxt}
+
+%\tracinglabels[all]
+%\tracingmarkup
+%\tracingbundle
\begin{document}
\newcommand*\cdurl{%
\begingroup%
\hypersetup{hidelinks}%
- \href{http://tu-dresden.de/cd}{http://tu-dresden.de/cd}%
+ \href{https://tu-dresden.de/cd}{https://tu-dresden.de/cd}%
\endgroup%
}
\faculty{\protect\cdurl}
-\date{17.06.2016}
+\date{26.07.2016}
\author{Falk Hanisch\thanks{\noexpand\Email{\tudscrmail}}}
-\subject{\TUDScript{} \vTUDScript{} basierend auf \KOMAScript{}}
+\subject{\TUDScript \vTUDScript{} basierend auf \KOMAScript}
\title{%
Ein \NoCaseChange{\hologo{LaTeXe}}-Bundle für Dokumente im~neuen \CD der \TnUD
}
@@ -30,6 +37,8 @@
}{%
\subtitle{Benutzerhandbuch\thanks{\href{tudscr_print}{Druckversion}}}%
}
+
+
\makeatletter
\begingroup%
\def\and{, }%
@@ -42,14 +51,19 @@
pdfkeywords = {LaTeX, \TUDScript, Benutzerhandbuch},%
}%
\endgroup%
-\renewcommand*\@pnumwidth{1.7em}
+\renewcommand*\@pnumwidth{1.9em}
+\renewcommand*\@tocrmarg{2.9em}
\makeatother
+
\ChangedAt*{%
- v2.00!Generalüberholung und komplette Neuimplementierung von \TUDScript%
+ v2.00:Generalüberholung und komplette Neuimplementierung von \TUDScript%
}%
\maketitle
+
+
+
\include{tudscr-preface}
\tableofcontents
\include{tudscr-introduction}
@@ -64,10 +78,11 @@
die Funktionalität von \KOMAScript{} hinausgehen.
\end{abstract}
}%
-\part{Das \TUDScript-Bundle}\label{part:main}
+\part{Das \TUDScript-Bundle}
+\label{part:main}
\include{tudscr-mainclasses}
-\ToDo[imp,nxt]{Implementierung und Doku für \Class{tudscrposter}}[v2.05]
-%\include{tudscr-poster}
+\include{tudscr-poster}
+\include{tudscr-supervisor}
\include{tudscr-bundle}
@@ -91,7 +106,8 @@
jederzeit empfänglich.
\end{abstract}
}
-\part{Ergänzungen und Hinweise}\label{part:additional}
+\part{Ergänzungen und Hinweise}
+\label{part:additional}
\include{tudscr-examples}
\include{tudscr-packages}
\include{tudscr-hints}
@@ -103,20 +119,31 @@
\include{tudscr-installation}
\include{tudscr-obsolete}
\include{tudscr-additional}
+\ToDo[doc]{Benutzerdefinierte Anpassungen von \TUDScript}[v2.06]
\include{tudscr-index}
-\ListOfToDo
-\ToDo[imp,nxt]{\Macro*{DeclareSectionCommand}}[v3.18]
-\ToDo[imp,nxt]{Unterstützung für algorithm2e o.ä. (Überschriften?!)}[v3.18]
+\clearpage
+
+\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,nxt]{KOMA-Script-Version anpassen (LoadClass)}[v3.18]
-\ToDo[rls,nxt]{TeXstudio: tudscrposter.cwl erstellen}[v2.05]
+\ToDo[rls]{KOMA-Script-Version anpassen (LoadClass) v3.18}
+\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]
+
+\ToDo[rls]{TeXstudio: alle *.cwl erneuern, automatisch über *.dtx}
\ToDo[rls]{\emph{alle} dtx-Dateien der vorherigen Version mit WinMerge sichten}
-\ToDo[rls]{Layout und Umbrüche kontrollieren, insbesondere im Index}
+\ToDo[rls]{Layout und Umbrüche kontrollieren}
\ToDo[rls]{Datum in tudscr-version.dtx, Handbuch und README aktualisieren}
-\ToDo[rls]{TeXstudio: tudscr.cwl erneuern}
-\ToDo[rls]{neuer GitHub-Release}
+\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}%
+}
+\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 685cc3cf1dc..9067e4e0d8e 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,8 @@
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
\documentclass[english,ngerman]{tudscrartcl}
+\usepackage{tudscrtutorial}
\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage[T1]{fontenc}
-\usepackage{tudscrman}
\lstset{%
inputencoding=utf8,extendedchars=true,
literate=%
@@ -12,9 +12,11 @@
}
\usepackage{mathswap}
+\usepackage{bookmark}
\begin{document}
-\date{17.12.2014}
+\begin{Bundle}{\Package{mathswap}}
+\date{20.11.2015}
\author{Falk Hanisch\thanks{\noexpand\scriptsize\noexpand\Email{\tudscrmail}}}
\title{Änderung der Trennzeichen im Mathematikmodus}
\makeatletter
@@ -43,8 +45,9 @@
\end{Preamble}
%
-Zusätzlich wird das Paket \Package{mathswap} geladen, welches die Änderung der
-Gruppierungs- und Dezimaltrennzeichen von Zahlen im Mathematikmodus ermöglicht.
+Zusätzlich wird das Paket \Package{mathswap}'manual' aus dem \TUDScript-Bundle
+geladen, welches die Änderung der Gruppierungs- und Dezimaltrennzeichen von
+Zahlen im Mathematikmodus ermöglicht.
%
\begin{Preamble}
\usepackage{mathswap}
@@ -56,15 +59,16 @@ importierten Daten nicht dem Zahlenformat entsprechen, welches für die
verwendete Dokumentsprache normalerweise notwendig wäre. Um sich die manuelle
Konvertierung der Daten zu ersparen, kann alternativ dazu die Möglichkeit
genutzt werden, dies mit Hilfe von \hologo{LaTeXe} selbst zu erledigen. In
-diesem Tutorial wird hierfür das Paket \Package*{mathswap} genutzt. Alternativ
-dazu kann auch das Paket \Package{ionumbers} verwendet werden.
+diesem Tutorial wird hierfür das Paket \Package{mathswap}'manual' genutzt.
+Alternativ dazu kann auch das Paket \Package{ionumbers}()'manual' verwendet
+werden.
Ohne die Verwendung eines speziellen Paketes zur Zahlenformatierung wird eine
Zahl im mathematischen Modus durch \hologo{LaTeXe} normalerweise so
ausgegeben:
%
\CodePreamble{%
- Ausgabe mit deutscher Zifferngruppierung ohne \Package*{mathswap}%
+ Ausgabe mit deutscher Zifferngruppierung ohne \Package{mathswap}'manual'%
}
\begin{Trunk*}
\mathswapoff
@@ -73,10 +77,11 @@ ausgegeben:
\end{Trunk*}
%
-Da in der Präambel dieses Dokumentes das Paket \Package*{mathswap} bereits
-geladen wurde, musste mit \Macro*{mathswapoff} auf das Standardverhalten von
-\hologo{LaTeXe} geschaltet werden. Der Befehl \Macro*{mathswapon} aktiviert
-wiederum die Funktionalität von \Package*{mathswap}.
+Da in der Präambel dieses Dokumentes das Paket \Package{mathswap}'manual'
+bereits geladen wurde, musste mit \Macro{mathswapoff}'manual' auf das
+Standardverhalten von \hologo{LaTeXe} geschaltet werden. Der Befehl
+\Macro{mathswapon}'manual' aktiviert wiederum die Funktionalität von
+\Package{mathswap}'manual'.
Für diese Tutorial wird angenommen, dass die wissenschaftlichen Abhandlung in
deutscher Sprache verfasst wird. Ist nun eine Zahl im deutschen Zahlenformat
@@ -102,9 +107,9 @@ dies nicht mehr:
\end{Trunk*}
%
-Mit der Verwendung der Befehle \Macro*{commaswap}\PParameter{\textbackslash,}
-sowie \Macro*{dotswap}\PParameter{,} können die Substitutionen für Komma und
-Punkt im Mathematikmodus geändert:
+Mit der Nutzung der Befehle \Macro{commaswap}[\PParameter{\Macro*{,}}]'manual'
+sowie \Macro{dotswap}[\PParameter{,}]'manual' können die Substitutionen für
+Komma und Punkt im Mathematikmodus geändert:
%
\CodePreamble{%
Ausgabe mit englischer Zifferngruppierung und geänderten Trennzeichen%
@@ -118,30 +123,32 @@ Punkt im Mathematikmodus geändert:
\end{Trunk*}
%
-Die Verwendung von \Macro{begingroup} und \Macro{endgroup} führt hierbei
+Die Verwendung von \Macro*{begingroup} und \Macro*{endgroup} führt hierbei
dazu, dass die Änderungen der beiden Trennzeichen nur lokal innerhalb dieser
Gruppe erfolgt.
-Wird das Paket \Package*{mathswap} zusammen mit einer \TUDScript-Klasse
+Wird das Paket \Package{mathswap}'manual' zusammen mit einer \TUDScript-Klasse
verwendet, werden die Dezimaltrennzeichen im Mathematikmodus sprachabhängig
definiert. Wird die Dokumentsprache auf \PValue{english} gesetzt, so werden die
Dezimaltrennzeichen standardmäßig für die englischsprachige Zifferngruppierung
definiert. In diesem Fall müssen Zahlen, welche im deutschsprachigen Format
gruppiert sind, angepasst werden:
%
-\CodePreamble{
+\CodePreamble{%
Ausgabe bei \PValue{english} als gewählter Sprache%
}
\begin{Trunk*}
-\begingroup%
+\begingroup
\selectlanguage{english}%
- \(4,523.58\)\par
- \(4.523,58\)\par
+ \(4,523.58\)\\
+ \(4.523,58\)\\
\commaswap{.}
\dotswap{\,}
- \(4.523,58\)%
+ \(4.523,58\)
\endgroup
\end{Trunk*}
%
\FinishTutorial
+\ListOfToDo
+\end{Bundle}
\end{document}
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 9221a1f0e40..5de6f3a2604 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,8 @@
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
\documentclass[english,ngerman]{tudscrartcl}
+\usepackage{tudscrtutorial}
\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage[T1]{fontenc}
-\usepackage{tudscrman}
\lstset{%
inputencoding=utf8,extendedchars=true,
literate=%
@@ -12,9 +12,10 @@
}
\usepackage{mathtools}
+\usepackage{bookmark}
\begin{document}
-\date{17.12.2014}
+\date{20.11.2015}
\author{Falk Hanisch\thanks{\noexpand\scriptsize\noexpand\Email{\tudscrmail}}}
\title{Ein Beitrag zum mathematischen Satz in \NoCaseChange{\hologo{LaTeXe}}}
\makeatletter
@@ -56,8 +57,8 @@ mikrotypografisch alles richtig gemacht werden soll, gibt es einiges zu
beachten. Generell gilt, dass Variablen kursiv, Bezeichnungen und Konstanten
aufrecht gesetzt werden. Um beschreibende Indizes bei Formelzeichen richtig zu
setzen, ist ohne weitere Maßnahmen die exzessive Nutzung der beiden Befehle
-\Macro{mathrm}\PParameter{\dots} und \Macro{mathit}\PParameter{\dots} wohl oder
-übel notwendig. Somit wird aus:
+\Macro{mathrm}[\PParameter{\dots}] und \Macro{mathit}[\PParameter{\dots}] wohl
+oder übel notwendig. Somit wird aus:
%
\begin{Trunk*}
\begin{equation*}
@@ -89,13 +90,13 @@ M_\mathrm{EM_{min}}\leq M_\mathrm{EM}\leq M_\mathrm{EM_{max}}
\end{Trunk*}
%
-Wie man sieht, ist dabei eine ganze Menge Handarbeit vonnöten. Allerdings lässt
-sich das relativ gut vereinfachen lassen. Zu diesem Zwecke wird ein Befehl
-\Macro{ind}\PParameter{\dots} für das Setzen von Indizes bei Formelzeichen
-definiert. Danach kann man sich~-- wenn man das für nötig und sinnvoll
-erachtet~-- noch zusätzliche Befehle für häufig verwendete Ausdrücke schnitzen.
-Als Beispiel wird das schon eben genutzte Drehmoment \ensuremath{M} verwendet.
-Hierfür könnte man Folgendes definieren:
+Augenscheinlich ist dabei eine sehr viel Handarbeit notwendig. Allerdings
+lässt sich dies relativ gut vereinfachen. Zu diesem Zwecke wird ein Befehl
+\Macro{ind}[\PParameter{\dots}] für das Setzen von Indizes bei Formelzeichen
+definiert. Danach können~-- wenn dies für nötig und sinnvoll erachtet wird~--
+noch zusätzliche Befehle für häufig verwendete Ausdrücke definiert werden. Als
+Beispiel wird das schon eben genutzte Drehmoment \ensuremath{M} verwendet.
+Hierfür wäre folgende Definition möglich:
%
\CodeHook{\let\newcommand\renewcommand}
\begin{Trunk*}
@@ -120,19 +121,19 @@ und damit diese Ausgabe erzeugen:
\end{Trunk*}
%
-Netter Nebeneffekt ist, dass man den Befehl aufgrund der Verwendung von
-\Macro{ensuremath}\PParameter{\dots} nun auch im Fließtext verwenden kann,
-beispielsweise wie hier \M{VM_{ind}} (\Macro{M}\PParameter{VM\_\{ind\}}) für
-das induzierte Moment einer Verbrennungskraftmaschine.
+Netter Nebeneffekt ist, dass dieser Befehl aufgrund der Verwendung von
+\Macro{ensuremath}[\PParameter{\dots}] nun auch im Fließtext verwenden werden
+kann, beispielsweise für das induzierte Moment einer Verbrennungskraftmaschine
+\M{VM_{ind}} (\Macro{M}[\PParameter{VM\_\PParameter{ind}}]).
-Möchte man es sich noch bequemer machen, strikt man sich noch eine Lösung, in
-der man~-- im Gegensatz zum \hologo{LaTeX}"=Standardfall~-- \textbf{nach} dem
-obligatorischen Argument noch ein optionales für einen weiteren Index angeben
-kann, um damit der natürlichen Schreibweise zu entsprechen. Es wird der Befehl
-\Macro{M} so definiert, das dieser entweder mit \Macro{M}\Parameter{Index}
-oder in der Variante \Macro{M}\Parameter{Index}\OParameter{Indexindex}
-genutzt
-werden kann.
+Für noch mehr Bequemlichkeit bei der Nutzung kann eine Lösung gefunden werden,
+mit welcher~-- im Gegensatz zur Standardbefehlsdefinition in \hologo{LaTeXe}~--
+\textbf{nach} dem obligatorischen Argument noch ein optionales für einen
+weiteren Index angegeben werden kann, um damit der natürlichen Schreibweise zu
+entsprechen. Es wird der Befehl \Macro{M} so definiert, das dieser entweder mit
+\Macro{M}[\Parameter{Index}] oder in der Variante mit nachgelagertem optionalen
+Argument \Macro{M}[\Parameter{Index}\OParameter{Indexindex}] genutzt werden
+kann.
%
\CodeHook{\let\newcommand\renewcommand}
\begin{Trunk*}
@@ -162,7 +163,7 @@ Somit vereinfacht sich das zu Beginn vorgestellte Beispiel recht deutlich:
\end{equation*}
\end{Trunk*}
%
-Das Definieren von \Macro{M}\Parameter{Index}\OParameter{Indexindex} mit
+Das Definieren von \Macro{M}[\Parameter{Index}\OParameter{Indexindex}] mit
angehängtem optionalen Argument ist ehrlich gesagt nur ein wenig Spielerei und
soll zeigen, wie dies prinzipiell mit \hologo{LaTeXe}"=Mitteln funktioniert.
Das Paket \Package{xparse} könnte alternativ zum hier vorgestellten Vorgehen
@@ -173,12 +174,12 @@ folgendermaßen lauten:
\NewDocumentCommand \M { m o } {%
\ensuremath{%
M\ind{%
- #1
- \IfNoValueTF{#2}{}{_{#2}}
+ #1\IfValueT{#2}{_{#2}}%
}%
}%
}
\end{Hint}
%
\FinishTutorial
+\ListOfToDo
\end{document}
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 d0f259d7087..6173d85d300 100644
--- a/Master/texmf-dist/source/latex/tudscr/doc/tutorials/treatise.tex
+++ b/Master/texmf-dist/source/latex/tudscr/doc/tutorials/treatise.tex
@@ -3,13 +3,9 @@
english,ngerman,%
cdgeometry=no,DIV=12,automark,%
]{tudscrartcl}
+\usepackage{tudscrtutorial}
\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage[T1]{fontenc}
-\usepackage{lmodern}
-\usepackage{etex}
-\reserveinserts{28}
-
-\usepackage{tudscrman}
\lstset{%
inputencoding=utf8,extendedchars=true,
literate=%
@@ -18,7 +14,9 @@
{~}{{\textasciitilde}}1 {ß}{{\ss}}1
}
\lstset{escapechar=§}
+
\TUDoptions{cdfont=false}
+\usepackage{lmodern}
\KOMAoptions{headings=normal}
\usepackage{tudscrsupervisor}
@@ -45,8 +43,8 @@
nomain,%
translate=babel,%
nogroupskip,%
+ nostyles,%
]{glossaries}
- \setStyleFile{\jobname-temp}
\renewcommand*{\glsglossarymark}[1]{}
\newignoredglossary{abbreviation}
\newcommand*\newabbreviation[4][]{%
@@ -67,12 +65,10 @@
\usepackage{floatrow}
\renewcommand{\floatpagefraction}{0.7}
-\ifpdf
- \usepackage{tikz}
- \usetikzlibrary{chains}
- \usetikzlibrary{decorations.markings}
- \tikzset{on grid}
-\fi
+\usepackage{tikz}
+\usetikzlibrary{chains}
+\usetikzlibrary{decorations.markings}
+\tikzset{on grid}
\usepackage{pstricks,pst-node}
@@ -80,8 +76,7 @@
\newcommand*\pcolumnfuzz[1]{\pretocmd{\@endpbox}{\hfuzz=#1}{}{}}
\makeatother
-\usepackage[open,openlevel=0]{bookmark}[2011/12/02]
-
+\usepackage{bookmark}
\ActivateWarningFilters[Tutorial]%
\begin{filecontents}{\jobname.bib}
@@ -120,7 +115,7 @@
@article{neubauer1996,
author = {Marion Neubauer},
title = {Feinheiten bei wissenschaftlichen Publikationen~--
- Mikrotypographie"=Regeln, Teil~I},
+ Mikrotypographie"=Regeln, Teil~I},
journaltitle = {Die \TeX{}nische Komödie},
year = {1997},
month = {2},
@@ -132,7 +127,7 @@
@article{neubauer1997,
author = {Marion Neubauer},
title = {Feinheiten bei wissenschaftlichen Publikationen~--
- Mikrotypographie"=Regeln, Teil~II},
+ Mikrotypographie"=Regeln, Teil~II},
journaltitle = {Die \TeX{}nische Komödie},
year = {1997},
month = {5},
@@ -160,7 +155,7 @@
\begin{document}
-\date{17.12.2014}
+\date{25.07.2016}
\author{Falk Hanisch\thanks{\noexpand\scriptsize\noexpand\Email{\tudscrmail}}}
\title{%
Ein Anwenderleitfaden für das Erstellen einer wissenschaftlichen Abhandlung%
@@ -189,13 +184,13 @@
versucht werden, einen Großteil der für gewöhnlich auftretenden Erfordernisse
zu bearbeiten.
- Dieses Tutorial hat \emph{nicht} die Intention, \hologo{LaTeX}-Einsteigern
+ Dieses Tutorial hat \emph{nicht} die Intention, \hologo{LaTeX}"=Einsteigern
sämtliche Grundlagen zu erläutern. Vielmehr wird davon ausgegangen, dass Sie
bereits erste Erfahrungen mit \hologo{LaTeXe} gesammelt haben. Dennoch wird
versucht, alle Schritte möglichst leicht nachvollziehbar zu gestalten. Sollte
Ihnen beim Lesen und Durcharbeiten des Tutorials etwas auf- oder missfallen,
- so dürfen Sie mich gerne per E-Mail kontaktieren. Auch Anregungen und Wünsche
- dürfen sie mir gegenüber gerne kommunizieren.
+ so dürfen Sie mich gerne per E"~Mail kontaktieren. Auch Anregungen und
+ 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
@@ -210,15 +205,16 @@
wissenschaftliche Arbeit eine \TUDScript"=Dokumentklasse verwenden wollen.
Das vorgestellte Vorgehen kann jedoch~-- natürlich mit gewissen Abstrichen~--
auch mit anderen Klassen, insbesondere denen aus dem \KOMAScript"=Bundle,
- umgesetzt werden. Viele der hier verwendeten Optionen und Befehle aus dem
- \TUDScript-Bundle werden nur sporadisch in ihrer Grundfunktion erläutert.
- Eine detaillierte Erläuterung lässt sich jedoch jederzeit sehr einfach über
- die türkisfarbigen Hyperlinks im \manualhyperref{}{\TUDScript-Handbuch}
- öffnen. Des Weiteren wird in auf eine Vielzahl von Paketen verwiesen, deren
- Dokumentation sich entweder über den magentafarbigen Hyperlink auf das
- \href{http://www.ctan.org/}{Comprehensive TeX Archive Network (CTAN)} oder
- alternativ über die Kommandozeile respektive das Terminal mit dem Aufruf
- \PValue{texdoc }\PName{Paket} direkt lokal öffnen lässt.
+ umgesetzt werden. Viele der hier im Folgenden verwendeten Optionen und
+ Befehle aus dem \TUDScript-Bundle werden lediglich sporadisch in ihrer
+ Grundfunktion erläutert. Allerdings lassen sich detaillierte Erläuterung über
+ die türkisfarbigen Hyperlinks zum \tudhyperref{}{\TUDScript-Handbuch}
+ jederzeit sehr einfach öffnen. Des Weiteren wird auf eine Vielzahl von
+ Paketen verwiesen, deren Dokumentation über die magentafarbigen Links im
+ \CTAN* geöffnet werden kann. Alternativ kann dies auch über das Terminal
+ respektive die Kommandozeile mit dem Aufruf \Path{texdoc~\PName{Paket}}
+ direkt lokal erfolgen. Ein Großteil dieser Pakete wird zusätzlich kurz im
+ \TUDScript-Handbuch beschrieben.
Der Anwenderleitfaden muss nicht zwingend vollständig nachvollzogen werden.
Dieser ist in einzelne Abschnitte untergliedert, damit Sie sich bestimmte
@@ -234,7 +230,8 @@
\section{Einleitung}
-\label{sec:introduction}
+\label{sec:introduction}%
+%
Zu Beginn werden einige Pakete geladen, die quasi in jedem neu erstellten
Dokument verwendet werden sollten. Alle weiteren in diesem Tutorial genutzten
und/oder empfohlenen Pakete werden in den relevanten Abschnitten des Tutorials
@@ -243,14 +240,14 @@ 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 außerdem weitere Informationen zum Thema
-\emph{Worttrennung} finden.
+\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
+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
\Package{babel} für die Sprachauswahl im Dokument verwendet wird, sollten auf
@@ -264,17 +261,16 @@ diese nicht nur an das Paket \Package{babel} sondern auch an andere Pakete
\usepackage{babel}
\end{Preamble}
%
-Bei der Verwendung von \hologo{LaTeXe} sollte zum einen die Eingabekodierung
+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. 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}
-aktiviert werden sollten.
+wobei im Normalfall mit der Option~\Option{T1}(\Package{fontenc}) die
+europäischen Zeichen aktiviert werden sollten.
%
\begin{Preamble}
-\usepackage{selinput}
-\SelectInputMappings{adieresis={ä},germandbls={ß}}
+\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage[T1]{fontenc}
\end{Preamble}
%
@@ -301,30 +297,32 @@ machen, um bei der Finalisierung des Dokumentes keine böse Überraschung bei
Seitenumbrüchen oder der Position von Gleitobjekten zu erleben.
Zuallererst gilt zu entscheiden, ob das Dokument einseitig oder beidseitig
-gesetzt werden soll. Ist Letzteres der Fall, so sollte \Option{twoside} als
-Klassenoption angegeben werden. Im nächsten Schritt ist der zu verwendende
-Satzspiegel festzulegen. Hierfür kann die Option \Option*{geometry} verwendet
-werden, welche im \TUDScript-Handbuch beschrieben wird. Normalerweise wird das
-Dokument im asymmetrischen Layout des \CDs gesetzt.
-
-Dieses Verhalten kann mit \Option*{geometry}[false] deaktiviert werden und der
-Satzspiegel wird durch das Paket \Package{typearea} nach typografischen
-Gesichtspunkten konstruiert. Dabei ist die \KOMAScript"=Option \Option{DIV}
-maßgeblich für die Aufteilung des Satzspiegels verantwortlich. Des Weiteren
-spielt die \KOMAScript"=Option \Option{BCOR} für die Bindekorrektur eine Rolle.
-Diese wird in \autoref{sec:bcor} erläutert.
+gesetzt werden soll. Ist Letzteres der Fall, so sollte die \KOMAScript-Option
+\Option{twoside}(\Package{typearea}) als Klassenoption angegeben werden. Im
+nächsten Schritt ist der zu verwendende Satzspiegel festzulegen. Hierfür kann
+die \TUDScript-Option \Option{cdgeometry}'manual' verwendet werden, welche im
+\TUDScript-Handbuch beschrieben wird. Normalerweise wird das Dokument im
+asymmetrischen Layout des \CDs gesetzt.
+
+Dieses Verhalten kann mit \Option*{cdgeometry=false}'manual' deaktiviert werden
+und der Satzspiegel wird durch das Paket \Package{typearea} nach typografischen
+Gesichtspunkten konstruiert. Dabei ist für die Aufteilung des Satzspiegels
+maßgeblich die \KOMAScript-Option \Option{DIV}(\Package{typearea})
+verantwortlich. Mit der \KOMAScript"=Option \Option{BCOR}(\Package{typearea})
+wird die Bindekorrektur 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} erläutert, welches im Zweifelsfall für dieses
-Anliegen den Befehl \Macro{setstretch} bereitstellt. Wird ein Dokument in der
-\Univers-Hausschrift der \TnUD gesetzt, sollte der Wert von \Macro{setstretch}
-im Bereich 1.05--1.1 liegen.
+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.
\subsection{Bindekorrektur}
-\label{sec:bcor}
+\label{sec:bcor}%
+%
Falls die Arbeit nach der Fertigstellung gebunden werden soll, so ist auf den
notwendigen Binderand zu achten, quasi der Teil einer Seite, welcher durch die
Bindung \enquote{verschwindet} und nicht mehr als sichtbarer Teil der Seite
@@ -335,17 +333,14 @@ ist abhängig von der Anzahl der Seiten sowie der Papierdichte.
Wird qualitativ höherwertiges Papier mit einer Dichte von \SI{100}{g/m^2}
verwendet, so entsprechen 100~Blatt einer Buchblockhöhe von zirka~\SI{12}{mm}.
Dementsprechend wäre in diesem Beispiel eine Bindekorrektur von~\SI{6}{mm}
-notwendig, welche sich mit der Klassenoption \Option*{BCOR}[6mm] einstellen
-ließe. Sollte die erwartete Seitenzahl davon abweichen, kann die einzustellende
+notwendig, die sich mit der Klassenoption \Option*{BCOR=6mm} einstellen ließe.
+Sollte die erwartete Seitenzahl davon abweichen, kann die einzustellende
Bindekorrektur linear skaliert werden. Für differierende Papierdichten sollte
die Buchblockhöhe für die geschätzte Gesamtseitenanzahl in Erfahrung gebracht
werden.
-
-
-
\section{Umschlagseite und Titel}
Die Umschlagseite und der Titel sind sich in ihrer Gestalt sehr ähnlich.
Allerdings gibt es ein paar kleine Unterschiede. Einerseits werden auf dem
@@ -353,17 +348,17 @@ Cover weniger Informationen als auf der Titelseite ausgegeben. Andererseits
wird der Titel immer im Satzspiegel des restlichen Dokumentes ausgegeben,
wohingegen die Umschlagseite~-- ohne weitere Optionen~-- im asymmetrischen
Layout des \CDs der \TnUD erscheint. Wie dieses Verhalten geändert werden kann,
-ist im Handbuch für \Macro*{makecover} erläutert. Die resultierende Ausgabe des
-nachfolgenden Quelltextauszugs ist in \autoref{fig:title} zu sehen und stellt
-eine mögliche Ausprägung von Umschlagseite und Titel dar.
+ist im Handbuch für \Macro{makecover}'manual' erläutert. Die resultierende
+Ausgabe des nachfolgenden Quelltextauszugs ist in \autoref{fig:title} zu sehen
+und stellt eine mögliche Ausprägung von Umschlagseite und Titel dar.
%
\begin{figure}
-\IncludeStandalone{Title}[1,2]
+\IncludeStandalone{title}[1,2]
\caption{Umschlagseite und Titel}
\label{fig:title}
\end{figure}
-\begin{Trunk!}{Title}
+\begin{Trunk!}{title}
\faculty{Juristische Fakultät}
\department{Fachrichtung Strafrecht}
\institute{Institut für Kriminologie}
@@ -375,25 +370,24 @@ eine mögliche Ausprägung von Umschlagseite und Titel dar.
\thesis{master}
\graduation[M.Sc.]{Master of Science}
\author{%
- Mickey Mouse
- \matriculationnumber{12345678}
- \dateofbirth{2.1.1990}
- \placeofbirth{Dresden}
- \course{Klinische Prognostik}
- \discipline{Individualprognose}
+ Mickey Mouse%
+ \matriculationnumber{12345678}%
+ \dateofbirth{2.1.1990}%
+ \placeofbirth{Dresden}%
+ \course{Klinische Prognostik}%
+ \discipline{Individualprognose}%
\and%
- Donald Duck
- \matriculationnumber{87654321}
- \dateofbirth{1.2.1990}
- \placeofbirth{Berlin}
- \course{Statistische Prognostik}
- \discipline{Makrosoziologische Prognosen}
+ Donald Duck%
+ \matriculationnumber{87654321}%
+ \dateofbirth{1.2.1990}%
+ \placeofbirth{Berlin}%
+ \course{Statistische Prognostik}%
+ \discipline{Makrosoziologische Prognosen}%
}
\matriculationyear{2010}
\supervisor{Dagobert Duck \and Mac Moneysac}
\professor{Prof. Dr. Kater Karlo}
\date{10.09.2014}
-
\makecover
\maketitle
@@ -403,48 +397,52 @@ eine mögliche Ausprägung von Umschlagseite und Titel dar.
\section{Vor- und Nachspann}
In den folgenden Unterabschnitten werden Elemente vorgestellt, welche häufig
-als Bestandteil einer wissenschaftlichen (Abschluss"~)Arbeit gefordert werden,
-wobei meistens nur eine Teilmenge verlangt wird. Die Platzierung oder Position
-der vorgestellten Elemente innerhalb der Arbeit ist nicht eindeutig durch eine
-Norm oder dergleichen festgelegt. Vielmehr gibt es meist eine Richtlinie vom
-verantwortlichen Prüfungsamt oder eine konkrete Vorgabe des wissenschaftlichen
-Mitarbeiters respektive betreuenden Hochschullehrers.
+als Bestandteil einer wissenschaftlichen (Abschluss"~)Arbeit gefordert werden.
+Die Platzierung oder Position der vorgestellten Elemente innerhalb der Arbeit
+ist nicht eindeutig durch eine Norm oder dergleichen festgelegt. Vielmehr gibt
+es meist eine Richtlinie vom verantwortlichen Prüfungsamt oder eine konkrete
+Vorgabe des betreuenden wissenschaftlichen Mitarbeiters oder Hochschullehrers.
Verwenden Sie für ihre Arbeit eine Buchklasse, so können die entsprechenden
-Abschnitte mit \Macro{frontmatter} (Vorspann), \Macro{mainmatter} (Hauptteil)
-und \Macro{backmatter} (Nachspann) gekennzeichnet werden. Einen Anhang starten
-Sie mit \Macro{appendix}, womit unter anderem die Kapitelnummerierung auf
-Großbuchstaben umgeschaltet wird (siehe \scrguide*).
+Abschnitte mit \Macro{frontmatter}(\Package{koma-script}) (Vorspann),
+\Macro{mainmatter}(\Package{koma-script}) (Hauptteil) und
+\Macro{backmatter}(\Package{koma-script}) (Nachspann) gekennzeichnet werden.
+Einen Anhang starten Sie mit \Macro{appendix}(\Package{koma-script}), womit
+unter anderem die Kapitelnummerierung auf Großbuchstaben umgeschaltet wird.
+Weitere Hinweise zu den genannten Befehlen sind im \scrguide nachzulesen.
\subsection{Aufgabenstellung}
-\label{sec:task}
+\label{sec:task}%
+%
Das Erstellen der Aufgabenstellung einer Abschlussarbeit im \CD der \TnUD muss
-das Paket \Package*{tudscrsupervisor} geladen werden.
+das Paket \Package{tudscrsupervisor}'manual' geladen werden.
%
\begin{Preamble}
\usepackage{tudscrsupervisor}
\end{Preamble}
%
-Dieses Paket stellt die Umgebung \Environment*{task} sowie den Befehl
-\Macro*{taskform} bereit. Bei beiden Varianten wird zu Beginn eine Tabelle mit
-Informationen zum Autor erzeugt. Am Ende werden der oder die Betreuer der
-Arbeit sowie Professor und gegebenenfalls der Prüfungsausschussvorsitzende
-ausgegeben. Mit der \Environment*{task}-Umgebung kann zwischen dem Kopf und dem
-Fuß ein beliebiger Inhalt gesetzt werden. Der Befehl \Macro*{taskform} hingegen
-erzeugt eine standardisierte Ausgabe, wobei das zweite obligatorische Argument
-in der \Environment{itemize}-Umgebung verwendet wird und somit \Macro{item} zu
-nutzen ist. Das Resultat des folgenden Quelltextes ist in \autoref{fig:task} zu
-sehen.
+Dieses Paket stellt die Umgebung \Environment{task}'manual' sowie den Befehl
+\Macro{taskform}'manual' bereit. Bei beiden Varianten wird zu Beginn eine
+Tabelle mit Autoreninformationen erzeugt. Am Ende werden der oder die Betreuer
+der Arbeit sowie Professor und gegebenenfalls der Prüfungsausschussvorsitzende
+ausgegeben. Mit der Umgebung \Environment{task}'manual' kann zwischen Kopf und
+Fuß ein beliebiger Inhalt gesetzt werden. Der Befehl \Macro{taskform}'manual'
+hingegen erzeugt eine standardisierte Ausgabe, wobei der Inhalt des zweiten
+obligatorischen Arguments in einer
+\Environment{itemize}(\Package{koma-script},\Package{enumitem})-Umgebung
+verwendet wird und somit \Macro{item}(\Package{koma-script},\Package{enumitem})
+zu nutzen ist. Das Resultat des folgenden Quelltextes ist in \autoref{fig:task}
+zu sehen.
%
\begin{figure}
-\IncludeStandalone{Task}[1,2]
+\IncludeStandalone{task}[1,2]
\caption{Aufgabenstellung in freier und standardisierter Form}
\label{fig:task}
\end{figure}
-\begin{Hint!}{Task}
+\begin{Hint!}{task}
\faculty{Juristische Fakultät}
\department{Fachrichtung Strafrecht}
\institute{Institut für Kriminologie}
@@ -455,15 +453,15 @@ sehen.
}
\thesis{master}
\author{%
- Mickey Mouse
- \matriculationnumber{12345678}
- \course{Klinische Prognostik}
- \discipline{Individualprognose}
+ Mickey Mouse%
+ \matriculationnumber{12345678}%
+ \course{Klinische Prognostik}%
+ \discipline{Individualprognose}%
\and%
- Donald Duck
- \matriculationnumber{87654321}
- \course{Statistische Prognostik}
- \discipline{Makrosoziologische Prognosen}
+ Donald Duck%
+ \matriculationnumber{87654321}%
+ \course{Statistische Prognostik}%
+ \discipline{Makrosoziologische Prognosen}%
}
\matriculationyear{2010}
\issuedate{1.2.2015}
@@ -472,17 +470,17 @@ sehen.
\chairman{Prof. Dr. Primus von Quack}
\professor{Prof. Dr. Kater Karlo}
-\newcommand\taskcontent{%
+\newcommand{\taskcontent}{%
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
+ 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 man diesen Effekt abschwächen
- könnte. Zusätzlich sollen Methoden entwickelt werden, wie sich ein
- ähnlicher Vorgang zukünftig vermeiden ließe.
+ 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.
}
\begin{task}
@@ -501,17 +499,17 @@ sehen.
\end{Hint!}
\begin{Trunk+}
-\newcommand\taskcontent{%
+\newcommand{\taskcontent}{%
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
+ 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 man diesen Effekt abschwächen
- könnte. Zusätzlich sollen Methoden entwickelt werden, wie sich ein
- ähnlicher Vorgang zukünftig vermeiden ließe.
+ 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.
}
\taskform[pagestyle=empty]{\taskcontent}{%
\item Recherche
@@ -529,20 +527,20 @@ Häufig wird zu Beginn einer wissenschaftliche Arbeit die Motivation und der
Inhalt dieser zusammengefasst, um den Leser die Thematik der Abhandlung
vorzustellen. in den meisten Fällen wird diese dabei in deutscher und
englischer Sprache verfasst. Hierfür stellt \KOMAScript{} bereits die Umgebung
-\Environment*{abstract} bereit. Vielfach wird der Wunsch geäußert, sowohl die
-deutsche als auch die englische Zusammenfassung auf derselben Seite zu setzen.
-Diese Variante kann mithilfe der \TUDScript-Klassen sehr einfach umgesetzt
-werden, wie der nachfolgende Quelltextauszug zeigt. Die resultierende Ausgabe
-ist in \autoref{fig:abstr} zu sehen.
+\Environment{abstract}'manual' bereit. Vielfach wird der Wunsch geäußert,
+sowohl die deutsche als auch die englische Zusammenfassung auf derselben Seite
+zu setzen. Diese Variante kann mithilfe der \TUDScript-Klassen sehr einfach
+umgesetzt werden, wie der nachfolgende Quelltextauszug zeigt. Die resultierende
+Ausgabe ist in \autoref{fig:abstr} zu sehen.
%
\begin{figure}
\centering
-\IncludeStandalone[width=.5\textwidth]{Abstract}
+\IncludeStandalone[width=.5\textwidth]{abstract}
\caption{Zusammenfassung in deutscher und englischer Sprache}
\label{fig:abstr}
\end{figure}
-\begin{Trunk!}{Abstract}
+\begin{Trunk!}{abstract}
\TUDoption{abstract}{multiple,section}
\begin{abstract}
Dies ist der deutschsprachige Teil der Zusammenfassung, in dem die
@@ -560,23 +558,23 @@ ist in \autoref{fig:abstr} zu sehen.
\subsection{Selbstständigkeitserklärung und Sperrvermerk}
Für die meisten Abschlussarbeiten an der \TnUD wird vom Verfasser eine
Selbstständigkeitserklärung verlangt. Für diese wird ein Standardtext
-bereitgestellt. Dieser kann mit dem Befehl \Macro*{confirmation} ausgegeben
-werden. Wurde das Thema in Kooperation mit einem Unternehmen bearbeitet, so
-wird zumeist auch ein Sperrvermerk gefordert, welcher mit \Macro*{blocking}
-erzeugt werden kann. Mit \Macro*{declaration} werden beide Erklärungen direkt
-nacheinander erzeugt. Die verwendete Überschrift und ein möglicher Eintrag in
-das Inhaltsverzeichnis können über die Option \Option*{declaration} reguliert
-werden. Eine mögliche Ausprägung der Erklärungen ist in \autoref{fig:decl}
-abgebildet.
+bereitgestellt. Dieser kann mit dem Befehl \Macro{confirmation}'manual'
+ausgegeben werden. Wurde das Thema in Kooperation mit einem Unternehmen
+bearbeitet, so wird zumeist auch ein Sperrvermerk gefordert, welcher mit
+\Macro{blocking}'manual' erzeugt werden kann. Mit \Macro{declaration}'manual'
+lassen sich beide Erklärungen direkt nacheinander erzeugen. Die verwendete
+Überschrift und ein möglicher Eintrag in das Inhaltsverzeichnis können über die
+Option \Option{declaration}'manual' reguliert werden. Eine mögliche Ausprägung
+der Erklärungen ist in \autoref{fig:decl} abgebildet.
%
\begin{figure}
\centering
-\IncludeStandalone[width=.5\textwidth]{Declaration}
+\IncludeStandalone[width=.5\textwidth]{declaration}
\caption{Selbstständigkeitserklärung und Sperrvermerk}
\label{fig:decl}
\end{figure}
-\begin{Hint!}{Declaration}
+\begin{Hint!}{declaration}
\title{%
Entwicklung eines optimalen Verfahrens zur Eroberung des
Geldspeichers in Entenhausen
@@ -590,26 +588,44 @@ abgebildet.
\end{Trunk+}
\subsection{Inhalts-, Abbildungs-, und Tabellenverzeichnis}
-Das Inhaltsverzeichnis wird mit dem \hologo{LaTeX}"=Standardbefehl
-\Macro{tableofcontents} erzeugt und führt die Gliederung des erstellten
-Dokumentes entsprechend der verwendeten Befehle (\Macro{part}, \Macro{addpart},
-\Macro{chapter}, \Macro{addchap}, \Macro{section}, \Macro{addsec} etc.) auf.
-Wurde das Paket \Package{hyperref} geladen, so werden im Inhaltsverzeichnis
-PDF-Hyperlinks auf die einzelnen Abschnitte erzeugt.
+Das Inhaltsverzeichnis wird mit \Macro{tableofcontents}(\Package{koma-script})
+erzeugt und führt die Gliederung des erstellten Dokumentes entsprechend der
+verwendeten Befehle%
+\footnote{%
+ \Macro{part}(\Package{koma-script}),
+ \Macro{addpart}(\Package{koma-script}),
+ \Macro{chapter}(\Package{koma-script}),
+ \Macro{addchap}(\Package{koma-script}),
+ \Macro{section}(\Package{koma-script}),
+ \Macro{addsec}(\Package{koma-script}) etc.%
+}
+auf. Wurde das Paket \Package{hyperref} geladen, so werden im
+Inhaltsverzeichnis PDF-Hyperlinks auf die einzelnen Abschnitte erzeugt.
Sowohl Abbildungen als auch Tabellen werden in \hologo{LaTeX} normalerweise
mit speziellen Umgebungen~-- \Environment{figure} und \Environment{table}~--
eingebunden. Innerhalb dieser sogenannten Gleitumgebungen kann der Befehl
-\Macro{caption}\OParameter{Verzeichniseintrag}\Parameter{Bezeichnung} genutzt
-werden, um diesen eine Bezeichnung hinzuzufügen. Mit \Macro{listoffigures}
-beziehungsweise \Macro{listoftables} lassen sich Verzeichnisse erstellen, in
-denen alle Gleitobjekte des jeweiligen Typs ausgegeben werden, falls diese denn
-eine Bezeichnung hinzugefügt wurde. Sollen Abbildungen oder Tabellen außerhalb
-ihrer angestammten Gleitumgebung genutzt und benannt werden, kann dies mit dem
-Befehl \Macro{captionof}\Parameter{Typ}\OParameter{Verzeichniseintrag}
-\Parameter{Bezeichnung} erfolgen. Weitere Informationen diesbezüglich sind der
-\KOMAScript"=Anleitung \scrguide zu entnehmen. In \autoref{sec:floats} wird
-außerdem genauer auf die Verwendung von Gleitumgebungen eingegangen.
+\Macro{caption}[%
+ \OParameter{Verzeichniseintrag}\Parameter{Bezeichnung}%
+](\Package{koma-script},\Package{caption}) genutzt werden, um diesen eine
+Bezeichnung hinzuzufügen. Mit \Macro{listoffigures}(\Package{koma-script})
+beziehungsweise \Macro{listoftables}(\Package{koma-script}) lassen sich
+Verzeichnisse erstellen, in denen alle Gleitobjekte des jeweiligen Typs
+ausgegeben werden, falls diese denn eine Bezeichnung hinzugefügt wurde.
+
+Sollen Abbildungen oder Tabellen außerhalb ihrer angestammten Gleitumgebung
+\Environment{figure} beziehungsweise \Environment{table} genutzt und benannt
+werden, kann dies entweder mit dem Befehl
+\Macro{captionof}[%
+ \Parameter{Typ}\OParameter{Verzeichniseintrag}\Parameter{Bezeichnung}%
+](\Package{koma-script}) oder~-- falls die beiden Pakete \Package{caption} und
+\Package{hyperref} genutzt werden~-- auch wie gewohnt mit
+\Macro{caption}(\Package{koma-script},\Package{caption}) allerdings zusätzlich
+ergänzt mit einem zuvor aufgerufenem
+\Macro{captionsetup}[\PParameter{type=figure/table}](\Package{caption})
+erfolgen. Weitere Informationen diesbezüglich sind dem \scrguide respektive der
+Anleitung zu \Package{caption} zu entnehmen. In \autoref{sec:floats} wird
+genauer auf Gleitumgebungen eingegangen.
%
\begin{Trunk}
\tableofcontents
@@ -622,7 +638,7 @@ außerdem genauer auf die Verwendung von Gleitumgebungen eingegangen.
\printsymbols[style=symblongtabu]
\setchapterpreamble{%
- \renewcommand*\dictumwidth{.4\textwidth}%
+ \renewcommand*{\dictumwidth}{.4\textwidth}%
\dictum[Johann Wolfgang von Goethe]{%
Es irrt der Mensch, solang er strebt.%
}%
@@ -639,7 +655,8 @@ der weiteren Umgebungen und Befehle demonstriert, welche im Tutorial
\subsection{Abkürzungs- und Symbolverzeichnis}
-\label{sec:glossaries}
+\label{sec:glossaries}%
+%
Für die Auszeichnung von Abkürzungen gibt es zwei sehr gute Pakete, die dieses
Unterfangen stark vereinfachen. Die einfachere~-- jedoch nicht so mächtige~--
der beiden Varianten ist die Nutzung des Paketes \Package{acro}. Sollen nur
@@ -666,11 +683,17 @@ offen lässt.
Das Paket \Package{glossaries} sollte immer \emph{nach} \Package{hyperref}
geladen werden. Entweder Sie achten explizit darauf oder Sie verwenden den
-Befehl \Macro{AfterPackage*} aus dem \KOMAScript-Bundle. Mit diesem können Sie
-die Ausführung von Quelltext bis zum Laden eines Paketes verzögern. Allerdings
-ist darauf zu achten, dass der Quelltext nur ausgeführt wird, wenn auch das
-avisierte Zielpaket geladen wird. Die für \Package{glossaries} verwendeten
-Optionen werden kurz erläutert.
+Befehl \Macro{AfterPackage*}(\Package{scrbase}) aus dem \KOMAScript-Bundle. Mit
+diesem können Sie die Quelltext nach dem Laden eines Paketes ausführen.
+\Attention{%
+ Es ist allerdings darauf zu achten, dass der Quelltext nur ausgeführt wird,
+ wenn das avisierte Zielpaket auch tatsächlich geladen wird.
+}
+Falls Sie demnach auf \Package{hyperref} jedoch nicht auf \Package{glossaries}
+verzichten möchten, sollte der nachfolgende Quelltext am Ende der Präambel
+eingefügt werden.
+
+Die für \Package{glossaries} verwendeten Optionen werden kurz erläutert.
%
\begin{Preamble+}
\AfterPackage*{hyperref}{%
@@ -679,91 +702,143 @@ Optionen werden kurz erläutert.
\usepackage[%
\end{Preamble}
%
-Das Programm \Application{makeindex} wird im Normalfall durch die genutzte
-\hologo{LaTeX}"=Distribution bereitgestellt und für das alphabetische Sortieren
-der erstellten Listen verwendet. Mit der Paketoption \Option{automake} erfolgt
-der automatische Aufruf von \Application{makeindex} mit den passenden
-Einstellungen für alle Verzeichnisse.
-
-Alternativ dazu kann die Option \Option{xindy} aktiviert werden, welche
-\Application{xindy} anstelle von \Application{makeindex} für das Sortieren
-verwendet. Dieses Programm bietet unter anderem eine Unterstützung von Unicode
-sowie die Möglichkeit, nach sprachabhängigen Regeln zu sortieren. Allein für
-die deutsche Sprache gibt es beispielsweise zwei verschiedene Varianten~-- nach
-DIN und nach Duden~-- zum alphabetischen Sortieren. Ich persönlich würde~--
-aufgrund der genannten Vorteile~-- der Verwendung von \Application{xindy} immer
-den Vorzug geben.
+Die zwei Paketoptionen \Option{acronym}(\Package{glossaries}) sowie
+\Option{symbols}(\Package{glossaries}) erzeugen die beiden Verzeichnisse für
+Abkürzungen und Symbole. Die Option \Option{nomain}(\Package{glossaries}) wird
+immer dann verwendet, wenn im Dokument kein zusätzliches allgemeines oder
+technisches Glossar erzeugt werden soll.
%
\begin{Preamble}
- automake,%
+ acronym,% Abkürzungen
+ symbols,% Formelzeichen
+ nomain,% kein Glossar
\end{Preamble}
%
-Leider wird das Programm \Application{xindy} lediglich mit den Distributionen
-\Distribution{\hologo{TeX}~Live} und \Distribution{Mac\hologo{TeX}} jedoch
-nicht mit \Distribution{\hologo{MiKTeX}} geliefert. Soll \Application{xindy}
-mit der letztgenannten Distribution genutzt werden, muss diese Anwendung
-manuell installiert werden. Mit \Option{xindy}[\{language=german-din\}] kann
-für \Application{xindy} du zu verwendende Spracheinstellung für die Sortierung
-angegeben werden.
+Durch \Option{nogroupskip}(\Package{glossaries}) wird der automatische Abstand
+zwischen den Einträgen zur Gruppierung innerhalb eines Glossars entfernt, die
+Option \Option{toc}(\Package{glossaries}) fügt alle erzeugten Verzeichnisse
+dem Inhaltsverzeichnis hinzu, \Option{section}(\Package{glossaries}) bestimmt
+die Gliederungsebene der Überschrift.
%
\begin{Preamble}
-% mit Tex Live einfach verwendbar
-% xindy,
+ nogroupskip,%
+ toc,%
+ section=chapter,%
\end{Preamble}
%
-Für das Erstellen der Glossare mit \Application{xindy} sollte das Perl"=Skript
-\Application{makeglossaries} verwendet werden, welches alle notwendigen
-Optionen an die Anwendung weiterleitet. Treten Probleme bei der Erzeugung der
-einzelnen Glossare auf, sollte die Dokumentation von \Package{glossaries}
-weiterhelfen können.
-%
-Die Optionen \Option{acronym} und \Option{symbols} erzeugen die Glossare
-beziehungsweise die Verzeichnisse für Abkürzungen und Symbole. Die Option
-\Option{nomain} wird verwendet, weil in diesem Tutorial kein zusätzliches
-technisches Glossar erzeugt werden soll.
+Mit der Option \Option{nostyles}(\Package{glossaries}) kann man gegebenenfalls
+das Laden der von \Package{glossaries} vordefinierten Stilen verhindern. Dies
+ist insbesondere sinnvoll, wenn für die einzelnen Glossare und Verzeichnisse
+ohnehin eigene Stile erstellt werden, wie dies nachfolgend geschieht.
%
\begin{Preamble}
- acronym,% Abkürzungen
- symbols,% Formelzeichen
- nomain,% kein Glossar
+ nostyles,%
\end{Preamble}
%
-Mit der Option \Option{translate}[babel] werden die Überschriften der Glossare
-in der Dokumentsprache gesetzt, mit \Option{nogroupskip} kann der automatische
-Abstand zwischen den Einträgen zur Gruppierung innerhalb eines Glossars
-entfernt werden. Die Option \Option{toc} fügt die Verzeichnisse dem
-Inhaltsverzeichnis hinzu, \Option{section} bestimmt die Gliederungsebene der
-Überschrift.
+Mit der Option \Option{translate}(\Package{glossaries}) werden die Überschriften
+aller Glossare in der Dokumentsprache gesetzt, wobei \Option*{translate=babel}
+die Nutzung des Paketes \Package{babel} erzwingt.
%
\begin{Preamble}
translate=babel,%
- nogroupskip,%
- toc,%
- section=chapter,%
\end{Preamble}
%
+Das Paket \Package{glossaries} erstellt bei der Kompilierung des Dokumentes
+Hilfsdateien, anhand derer die Indexe erzeugt und sortiert werden können. Da
+\Engine{pdfLaTeX} diese Funktionalität nicht bereitstellt, ist hierfür der
+Aufruf einer passenden Anwendung notwendig. Die meisten Distributionen stellen
+dafür \Application{makeindex} bereit. Dieses Programm kann prinzipiell zwar
+Einträge alphabetisch sortieren, bietet allerdings weder die Nutzung von
+Unicode-Symbolen noch eine Sprachunterstützung. Aufgrund der genannten
+Nachteile ist \Application{xindy} zum Sortieren der Einträge zu empfehlen, da
+dieses Programm sowohl eine Unterstützung von Unicode als auch die Möglichkeit,
+nach sprachabhängigen Regeln zu sortieren, bietet. Allein für die deutsche
+Sprache gibt es beispielsweise zwei Varianten der Sortierung~-- nach DIN und
+nach Duden.
+
+Ohne weiteres Zutun des Anwenders wird vom Paket \Package{glossaries} in der
+Grundeinstellung \Application{makeindex} genutzt. Soll stattdessen für die
+Sortierung der Glossar- und Verzeichniseinträge \Application{xindy} zum Einsatz
+kommen, muss die Option \Option{xindy}(\Package{glossaries}) aktiviert werden.
+Dieser kann zusätzlich sowohl die zu nutzende Spracheinstellung zur Sortierung
+als auch die gewünschte Eingabekodierung an \Application{xindy} übergeben
+werden. Beispielsweise wird mit \Option*{xindy=\PParameter{language=german-din}}
+die deutsche Sortierung nach~DIN aktiviert.
+%
+%
+\begin{Hint}
+% mit Tex Live einfach verwendbar
+ xindy=§\{§language=german-din§\}§,
+\end{Hint}
+\begin{Preamble+}
+% mit Tex Live einfach verwendbar
+ xindy={language=german-din},
+\end{Preamble+}
+%
+Das Erstellen aller Glossare~-- unabhängig davon, ob \Application{xindy} oder
+\Application{makeindex} für die Sortierung zum Einsatz kommt~-- sollte das
+Perl"~Skript \File{makeglossaries}(\Package{glossaries}) verwendet werden,
+welches alle notwendigen Optionen an die jeweilige Anwendung weiterleitet.
+
+\Attention{%
+ Für den Aufruf von \Application{xindy} selbst als auch für die Ausführung des
+ Skriptes \File{makeglossaries}(\Package{glossaries}) ist ein Perl"=Interpreter
+ notwendig. Dieser wird lediglich von \Distribution{\hologo{TeX}~Live} nicht
+ jedoch von \Distribution{\hologo{MiKTeX}} direkt bereitgestellt. Wird die
+ letztgenannte Distribution verwendet, muss der Anwender gegebenenfalls diesen
+ zusätzlich installieren.
+}
+
+Kann das Skript \File{makeglossaries}(\Package{glossaries}) nicht genutzt
+werden, kann alternativ dazu die Option \Option{automake}(\Package{glossaries})
+aktiviert werden. Diese sorgt dafür, dass am Ende eines \Engine{pdfLaTeX}-Laufs
+der Aufruf von \Application{xindy} oder \Application{makeindex} direkt erfolgt.
+Soll \Application{xindy} verwendet werden, sind dafür allerdings erweiterte
+Schreibrechte notwendig, weshalb für diese Variante \Engine{pdfLaTeX} mit der
+Option \Option{-{}-shell-escape}(\Engine{pdfLaTeX}) respektive
+\Option{-{}-enable-write18}(\Engine{pdfLaTeX}) aufgerufen werden muss. Für
+\Application{xindy} ist außerdem die Angabe der Sprache über die Option
+\Option*{xindy=\PParameter{language=\dots}} zwingend notwendig.
+
+Ist weder die Nutzung des Skriptes \File{makeglossaries}(\Package{glossaries})
+noch der~-- im Zweifel sicherheitskritische~-- Aufruf von \Engine{pdfLaTeX} mit
+erweiterten Schreibrechten möglich, so muss die gewünschte Anwendung für die
+Sortierung explizit durch den Anwender aufgerufen werden, wobei auf die Angabe
+der richtigen Parameter zu achten ist. Genaueres hierzu sowie Lösungen für
+Probleme beim Erstellen der Glossare und Verzeichnisse sind in der Dokumentation
+von \Package{glossaries} zu finden.
+%
+\begin{Hint}
+ automake,%
+\end{Hint}
+%
Damit sind alle verwendeten Optionen erläutert. Schließlich sorgt der Befehl
-\Macro{makeglossaries} für das Erstellen der optionsabhängigen Stildateien für
-\Application{makeindex} respektive \Application{xindy} sowie das Erzeugen der
-benötigten Hilfsdateien.
+\Macro{makeglossaries}(\Package{glossaries}) für das Erstellen der
+optionsabhängigen Stildateien für \Application{makeindex} respektive
+\Application{xindy} sowie das Erzeugen der benötigten Hilfsdateien.
%
\begin{Preamble}
]{glossaries}
\makeglossaries
-
\end{Preamble}
+\begin{Preamble+}
+}% Ende von AfterPackage
+
+\AfterPackage*{glossaries}{%
+\end{Preamble+}
%
Damit wäre der erste Teil zur Initialisierung überstanden und wir können zum
-eigentlichen Problem kommen. Wie erstellt man nun ein Abkürzungs- und/oder
-Symbolverzeichnis?
+eigentlichen Problem kommen. Wie wird nun ein Abkürzungs- und/oder
+Symbolverzeichnis erstellt?
\subsubsection{Abkürzungsverzeichnis}
Das Paket \Package{glossaries} stellt für die Definition von Abkürzungen einen
-speziellen Befehl bereit. Mit\Macro{newacronym}\LParameter\Parameter{Label}%
-\Parameter{Abkürzung}\Parameter{Wortgruppe} wird eine Abkürzung definiert und
-kann später über \Parameter{Label} genutzt werden. Die möglichen optionalen
-Parameter können in der Dokumentation zu \Package{glossaries} nachgeschlagen
-werden. Für ein kleines Beispiel werden drei Abkürzungen erstellt\dots
+speziellen Befehl bereit. Mit \Macro{newacronym}[%
+ \LParameter\Parameter{Label}\Parameter{Abkürzung}\Parameter{Wortgruppe}%
+](\Package{glossaries}) wird eine Abkürzung definiert und kann später über
+\Parameter{Label} genutzt werden. Die möglichen optionalen Parameter können in
+der Dokumentation zu \Package{glossaries} nachgeschlagen werden. Für ein
+kleines Beispiel werden drei Abkürzungen erstellt\dots
%
\begin{Trunk+}
\section{Die Verwendung von Akronymen und Symbolen}
@@ -775,8 +850,8 @@ werden. Für ein kleines Beispiel werden drei Abkürzungen erstellt\dots
\end{Trunk*}
%
-\dots und diese in einer kurzen Textpassage mit \Macro{gls}\Parameter{Label}
-verwendet.
+\dots und diese in einer kurzen Textpassage mit dem \Package{glossaries}"=Befehl
+\Macro{gls}[\Parameter{Label}](\Package{glossaries}) verwendet.
%
\begin{Trunk*}
In der Graphentheorie wird häufig die Lösung des Problems des kürzesten
@@ -788,20 +863,29 @@ oder \gls{apsp} kommen unterschiedliche Algorithmen zum Einsatz.
\end{Trunk*}
%
Gut zu sehen ist, dass sich die Ausgabe der Abkürzung bei der ersten Verwendung
-mit \Macro{gls} von der zweiten~-- und jeder weiteren~-- unterscheidet. Das
-Verhalten lässt sich über verschiedene Stile mit \Macro{setacronymstyle}
-anpassen. Die Ausgabe einer Liste aller Abkürzungen erfolgt mit:
+mit \Macro{gls}(\Package{glossaries}) von der zweiten~-- und jeder weiteren~--
+unterscheidet. Das Verhalten lässt sich über verschiedene Stile mit
+\Macro{setacronymstyle}(\Package{glossaries}) anpassen. Die Ausgabe einer Liste
+aller Abkürzungen erfolgt mit:
%
\begin{Hint}
\printacronyms
\end{Hint}
+\newglossarystyle{simple}{%
+ \renewenvironment{theglossary}{}{\par}%
+ \renewcommand*{\glossentry}[2]{%
+ \noindent%
+ \textsbn{\glsentryitem{##1}\glstarget{##1}\glossentryname{##1}}\quad
+ \glossentrydesc{##1}\glspostdescription\space ##2%
+ \par%
+ }%
+}
\begin{quoting}[rightmargin=0pt]
-\vspace*{-\baselineskipglue}
\glsdisablehyper
-\InputCode
+\printacronyms[style=simple]
\end{quoting}
%
-Dabei werden die Akronyme in einer \Environment{description}"=Umgebung gesetzt,
+Dabei werden die Akronyme in einer \Environment*{description}"=Umgebung gesetzt,
was absolut ausreichend ist. Mir persönlich ist allerdings die Darstellung in
einer quasi-tabellarischen Form lieber. Dabei soll der Stil mit fettgedruckten
Abkürzungen beibehalten werden. Das \Package{glossaries}"=Paket stellt zwar
@@ -809,34 +893,37 @@ auch eine Vielzahl an Stilen in Tabellenform bereit, allerdings nicht in dem
gewünschten. Deshalb wird nachfolgend gezeigt, wie sich ein eigener Stil in
Tabellenform kreieren lässt.
-Es bieten sich die Umgebungen \Environment{tabularx} oder \Environment{tabu}
-an, bei denen die Spaltenbreite teilweise automatisch berechnet wird, um sich
-manuelle Formatierungsarbeiten zu sparen. Folgend werden beide Varianten
-vorgestellt. Falls Sie noch keine Erfahrungen mit dem Tabellensatz in
-\hologo{LaTeXe} haben, lohnt sich vorher ein Blick in \autoref{sec:tables}, um
-die verwendeten Befehle und Umgebungen zu verstehen. Wie Sie Stile definieren,
-die auch Seitenumbrüche in der Tabelle zulassen, können Sie etwas später bei
-Symbolverzeichnissen in diesem \autorefname[sec:glossaries] erfahren.
-
-\minisec{Eigener Stil mit \Environment{tabularx}}
-Für das Definieren eines eigenen Glossarstils wird \Macro{newglossarystyle}
-verwendet, wobei für den neuen Stils die Umgebung \Environment{theglossary}
-umdefiniert wird. Als erstes kommt die Tabellenumgebung \Environment{tabularx}
-aus dem gleichnamigen Paket, welches in \autoref{sec:tabularx} vorgestellt
-wird, zum Einsatz.
+Es bieten sich die Umgebungen \Environment{tabularx}(\Package{tabularx}) oder
+\Environment{tabu}(\Package{tabu}) an, bei denen die Spaltenbreite teilweise
+automatisch berechnet wird, um sich manuelle Formatierungsarbeiten zu sparen.
+Folgend werden beide Varianten vorgestellt. Falls Sie noch keine Erfahrungen
+mit dem Tabellensatz in \hologo{LaTeXe} haben, lohnt sich vorher ein Blick in
+\autoref{sec:tables}, um die verwendeten Befehle und Umgebungen zu verstehen.
+Wie Sie Stile definieren, die Seitenumbrüche in einer Tabelle zulassen, können
+Sie in diesem \autorefname[sec:glossaries] bei der Symbolverzeichniserstellung
+erfahren.
+
+\minisec{Eigener Stil mit \Environment*{tabularx}}
+Ein eigener Glossarstil kann mit \Macro{newglossarystyle}(\Package{glossaries})
+definiert werden, wobei für den neu definierten Stil die Umgebung
+\Environment{theglossary}(\Package{glossaries}) umdefiniert wird. Als erstes
+kommt die Tabellenumgebung \Environment{tabularx}(\Package{tabularx}) aus dem
+gleichnamigen Paket, welches in \autoref{sec:tabularx} vorgestellt wird, zum
+Einsatz.
Es werden in der Tabelle drei Spalten definiert. Die erste und letzte Spalte
sind schlicht linksbündige Standardspalten~(\PValue{l}). In diesen werden die
Abkürzungen selbst sowie die Seitenzahlen eingetragen. Die Verwendung
-von~\PValue{@\{\}} führt dazu, dass der normalerweise vor der ersten und nach
-der letzten Spalte eingefügte Abstand von \Length{tabcolsep} entfällt. Die
-Breite der Spalte vom Typ~\PValue{X} wird automatisch berechnet.
+von~\PValue{@\PParameter{}} führt dazu, dass der normalerweise vor der ersten
+und nach der letzten Spalte eingefügte Abstand von \Length{tabcolsep} entfällt.
+Die Breite der Spalte vom Typ~\PValue{X} wird automatisch berechnet.
-Aufgrund der Implementierung von \Environment{tabularx} lässt sich diese nicht
-als verschachtelte Umgebung verwenden. Allerdings kann man stattdessen die mit
-\Macro{tabularx} und \Macro{endtabularx} die Low"~Level"~Variante nutzen. Die
-Definition des neuen Stils \PValue{acrotabularx} wird nachfolgend ausgegeben,
-die weitergehende Erläuterung schließt sich daran an.
+Aufgrund der Implementierung von \Environment{tabularx}(\Package{tabularx})
+lässt sich diese nicht als verschachtelte Umgebung verwenden. Allerdings kann
+stattdessen die mit \Macro*{tabularx} sowie \Macro*{endtabularx} die
+Low"~Level"~Variante genutzt werden. Die Definition des neuen Stils
+\PValue{acrotabularx} wird nachfolgend ausgegeben, die weitergehende
+Erläuterung schließt sich daran an.
%
\CodeHook{\let\newglossarystyle\renewglossarystyle}
\begin{Hint*}
@@ -860,31 +947,32 @@ die weitergehende Erläuterung schließt sich daran an.
\end{Hint*}
%
Der Rest des Stils ist schnell erläutert. Zunächst wird auf Tabellenköpfe
-(\Macro{glossaryheader}) sowie Überschriften und Abstände bei Gruppierungen
-(\Macro{glsgroupheading} und \Macro{glsgroupskip}) verzichtet. Der Befehl
-\Macro{glossentry} ist verantwortlich für die Formatierung der Einträge
-im Abkürzungsverzeichnis. Dieser wird intern durch \Package{glossaries} mit
-zwei obligatorischen Argumenten aufgerufen.Das erste enthält das entsprechende
-Label, das zweite ein kommaseparierte Liste der Seitenzahlen. Dabei stehen
-verschiedene Makros zur Auswahl, um anhand des gegebenen Labels die gewünschten
-Informationen zu extrahieren.%
+(\Macro{glossaryheader}(\Package{glossaries})) sowie Überschriften und Abstände
+bei Gruppierungen (\Macro{glsgroupheading}(\Package{glossaries}) sowie
+\Macro{glsgroupskip}(\Package{glossaries})) verzichtet. Der Befehl
+\Macro{glossentry}(\Package{glossaries}) ist verantwortlich für die
+Formatierung der Einträge im Abkürzungsverzeichnis. Dieser wird intern durch
+\Package{glossaries} mit zwei obligatorischen Argumenten aufgerufen. Das erste
+enthält das entsprechende Label, das zweite ein kommaseparierte Liste der
+Seitenzahlen. Dabei stehen verschiedene Makros zur Auswahl, um anhand des
+gegebenen Labels die gewünschten Informationen zu extrahieren.%
\footnote{%
- bspw. mit \Macro{glossentryname} die Bezeichnung oder mit
- \Macro{glsentrydesc} die dazugehörige Beschreibung%
+ bspw. mit \Macro{glossentryname}(\Package{glossaries}) die Bezeichnung oder
+ mit \Macro{glsentrydesc}(\Package{glossaries}) die dazugehörige Beschreibung%
}
-Der Befehl \Macro{glossentry} wurde so definiert, dass für jeden Eintrag eine
-separate Zeile in der Tabelle erzeugt wird, wo in der ersten Spalte die
-Abkürzung selbst, in der zweiten die Langform und in der dritten Spalte
-schließlich die Liste der Seiten, auf welchen die jeweilige Abkürzung mit
-\Macro{gls}\Parameter{Label} verwendet wurde, ausgegeben wird. Zum Abschluss
-die resultierende Ausgabe des Abkürzungsverzeichnisses im neuen Stil.
+Der Befehl \Macro{glossentry}(\Package{glossaries}) wurde so definiert, dass
+für jeden Eintrag eine separate Zeile in der Tabelle erzeugt wird, wo in der
+ersten Spalte die Abkürzung selbst, in der zweiten die Langform und in der
+dritten Spalte schließlich die Liste der Seiten, auf welchen die jeweilige
+Abkürzung mit \Macro{gls}[\Parameter{Label}](\Package{glossaries}) verwendet
+wurde, ausgegeben wird. Zum Abschluss die resultierende Ausgabe des
+Abkürzungsverzeichnisses im neuen Stil.
%
\begin{Hint}
\printacronyms[style=acrotabularx]
\end{Hint}
\begin{quoting}[rightmargin=0pt]
-\vspace*{-\baselineskipglue}
\InputCode
\end{quoting}
%
@@ -893,31 +981,32 @@ Spalte mehr als ausreichend sein und kein Zeilenumbruch benötigt werden, kann
auch einfach eine \Environment{tabular}"=Umgebung mit einer \PValue{l}"~Spalte
anstelle von \PValue{X} verwendet werden.
-\minisec{Eigener Stil mit \Environment{tabu}}
-Die sehr komfortabel zu nutzende Umgebung \Environment{tabu} wird durch das
-Paket \Package{tabu} bereitgestellt. Es wird in \autoref{sec:tabu} vorgestellt,
-wobei die dortigen Anmerkungen \emph{unbedingt} zu beachten sind. Ähnlich zu
-\Environment{tabularx} bietet auch die \Environment{tabu}-Umgebung einen
-\PValue{X}"~Spaltentyp. Allerdings gibt es hier eine Besonderheit. Für
-\Environment{tabularx}"=Tabellen muss generell eine feste Tabellenbreite
-angegeben werden. Die Breite der \PValue{X}"~Spalten wird anhand der
-angegebenen, gewünschten Gesamtbreite und dem bereits für andere Spalten vom
+\minisec{Eigener Stil mit \Environment*{tabu}}
+Die sehr komfortabel zu nutzende Umgebung \Environment{tabu}(\Package{tabu})
+wird durch das Paket \Package{tabu} bereitgestellt. Es wird später in
+\autoref{sec:tabu} vorgestellt, wobei die dortigen Anmerkungen \emph{unbedingt}
+zu beachten sind. Für die bereits verwendeten
+\Environment{tabularx}(\Package{tabularx})"=Tabellen muss generell eine feste
+Tabellenbreite angegeben werden. Die Breite der \PValue{X}"~Spalten wird anhand
+der angegebenen Gesamtbreite und dem für andere Spalten vom
Typ~\PValue{l},~\PValue{r}~und~\PValue{c} benötigten Platz berechnet.
-Für \Environment{tabu}"=Tabellen kann anstelle einer fest vorgegebenen Breite
-auch \PValue{spread~0pt} angegeben werden. Dadurch werden \PValue{X}"~Spalten
-anfänglich in ihrer natürlichen Breite gesetzt. Sobald jedoch die Gesamtbreite
-der Tabelle den zur Verfügung stehenden Platz bis zum Zeilenende überschreiten
-würde, werden die \PValue{X}"~Spalten automatisch umbrochen.
+Wie \Environment{tabularx}(\Package{tabularx}) bietet auch die Umgebung
+\Environment{tabu}(\Package{tabu}) einen \PValue{X}"~Spaltentyp. Für diese kann
+jedoch anstelle einer fest vorgegebenen Breite auch \PValue{spread~0pt}
+angegeben werden. Dadurch werden \PValue{X}"~Spalten anfänglich in ihrer
+natürlichen Breite gesetzt. Sobald jedoch die Gesamtbreite der Tabelle den zur
+Verfügung stehenden Platz bis zum Zeilenende überschreiten würde, werden die
+\PValue{X}"~Spalten automatisch umbrochen.
In umbrochenen Spalten gibt es beim Paket \Package{tabu} jedoch ein kleineres
-Problem. In diesen setzt \Package{tabu} zu wenig vertikalen Freiraum am unteren
+Problem. In diesen setzt \Package{tabu} zu wenig vertikalen Leerraum am unteren
Ende. Um dieses Manko zu beheben, wird am Schluss jeder \PValue{X}"~Spalte mit
-\PValue{X<\{\Macro{strut}\}} einfach der Befehl \Macro{strut} angehängt, der
-vertikalen Freiraum ober- und unterhalb der aktuellen Grundlinie einfügt. In
-\autoref{sec:tables} wird ein Ansatz aufgezeigt, wie man dies automatisiert
-über einen neuen Spaltenstil ausmerzen kann. Der Rest des Stils ist identisch
-zu \PValue{acrotabularx}.
+\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
+Stils ist identisch zu \PValue{acrotabularx}.
%
\CodeHook{\let\newglossarystyle\renewglossarystyle}
\begin{Preamble*}
@@ -944,7 +1033,6 @@ zu \PValue{acrotabularx}.
\end{Hint}
\begin{quoting}[rightmargin=0pt]
\glsdisablehyper
-\vspace*{-\baselineskipglue}
\InputCode
\end{quoting}
%
@@ -959,21 +1047,23 @@ Seitenumbruch zulässt, sollte Sie den nächsten Abschnitt lesen.
Für das Erzeugen eines Symbolverzeichnisses kann ebenfalls \Package{glossaries}
verwendet werden. Allerdings muss dazu ein wenig mehr Aufwand getrieben werden,
da das Paket hierfür keine dedizierte Schnittstelle bereitstellt. Wurde die
-Paketoption \Option{symbols} angegeben wird jedoch zumindest das notwendige
-Glossar erstellt.
+Paketoption \Option{symbols}(\Package{glossaries}) angegeben wird jedoch
+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 wird dieser
-\Macro{newsymbol} genannt. Dieser hat ein optionales und vier obligatorische
-Argumente, wobei das optionale Argument prinzipiell alle Schlüssel-Wert-Paare
-enthalten kann, die durch \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:
+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
+obligatorische Argumente, wobei das optionale Argument prinzipiell alle
+Schlüssel-Wert-Paare enthalten kann, die durch \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:
%
\begin{quoting}[leftmargin=\parindent]
-\Macro{newsymbol}\LParameter\Parameter{Label}\Parameter{Bezeichnung}%
-\Parameter{Symbol}\Parameter{Einheit}
+\Macro{newsymbol}[%
+ \LParameter\Parameter{Label}\Parameter{Bezeichnung}%
+ \Parameter{Symbol}\Parameter{Einheit}%
+]|?|%
\end{quoting}
%
Mit \PName{Label} erfolgt die eindeutige Kennzeichnung des Symbols. Außerdem
@@ -989,8 +1079,8 @@ physikalische \PName{Einheit}.
\newcommand*{\newsymbol}[5][]{%
\newglossaryentry{#2}{%
type=symbols,%
- description={},%
name={#3},%
+ description={\nopostdesc},%
symbol={\ensuremath{#4}},%
user1={\ensuremath{\mathrm{#5}}},%
sort={#2},%
@@ -1004,11 +1094,11 @@ Da es sich zumeist um mathematische Symbole handelt, wird für das Symbol und
die Einheit mit \Macro{ensuremath} Sorge getragen, dass diese auch im
Textmodus ohne Probleme verwendet werden können. Für das aufrechte Setzen der
Einheit wird für diese außerdem \Macro{mathrm} verwendet. Als Alternative dazu
-könnte man auch den Befehl \Macro{si} aus dem Paket \Package{siunitx} benutzen.
-Für ein kleines Beispiel werden folgend fünf Formelzeichen definiert. Damit die
-Darstellung der mathematischen Brüche auch für den Fließtext gut genutzt werden
-kann, wird für diese der Befehl \Macro{sfrac} aus dem Paket \Package{xfrac}
-genutzt.
+könnte der Befehl \Macro{si}(\Package{siunitx}) aus dem Paket \Package{siunitx}
+genutzt werden. Für ein kleines Beispiel werden folgend fünf Formelzeichen
+definiert. Damit die Darstellung der mathematischen Brüche auch für den
+Fließtext gut genutzt werden kann und ansehnlich ist, wird für diese der Befehl
+\Macro{sfrac}(\Package{xfrac}) aus dem Paket \Package{xfrac} genutzt.
%
\begin{Trunk*}
\newsymbol{l}{Länge}{l}{m}
@@ -1021,7 +1111,8 @@ genutzt.
\end{Trunk*}
%
Die soeben definierten Symbole werden für ein kleines Beispiel mit dem Befehl
-\Macro{gls}\Parameter{Label} in einer kurzen Textpassage verwendet.
+\Macro{gls}[\Parameter{Label}](\Package{glossaries}) in einer kurzen
+Textpassage verwendet.
%
\begin{Hint*}
Die Einheiten für die \gls{f} sowie die \gls{F} werden aus den
@@ -1034,9 +1125,9 @@ Punktmasse lautet:
%
Das Ergebnis ist nur bedingt befriedigend. Sowohl im Fließtext als auch im
Mathematikmodus werden lediglich die Bezeichnungen jedoch nicht die Symbole
-selbst verwendet. Damit man die Formelzeichen auch für den mathematischen
-Satz sinnvoll nutzen kann, sollte das Erscheinungsbild der Einträge mit
-\Macro{defglsentryfmt} angepasst werden.
+selbst verwendet. Damit die Formelzeichen auch für den mathematischen Satz
+sinnvoll nutzbar sind, sollte das Erscheinungsbild der Einträge mit
+\Macro{defglsentryfmt}(\Package{glossaries}) angepasst werden.
%
\begin{Preamble*}
\defglsentryfmt[symbols]{%
@@ -1048,10 +1139,10 @@ Satz sinnvoll nutzen kann, sollte das Erscheinungsbild der Einträge mit
}
\end{Preamble*}
%
-Diese Definition führt bei der Verwendung von \Macro{gls}\Parameter{Label}
-dazu, dass im Mathematikmodus allein das Symbol verwendet wird. Im Fließtext
-wird diesem zusätzlich die Bezeichnung vorangestellt. Das nachfolgende Beispiel
-macht dies deutlich.
+Bei der Verwendung von \Macro{gls}[\Parameter{Label}](\Package{glossaries})
+führt diese Definition dazu, dass im Mathematikmodus allein das Symbol
+verwendet wird. Im Fließtext wird diesem zusätzlich die Bezeichnung
+vorangestellt. Das nachfolgende Beispiel macht dies deutlich.
%
\begin{Trunk*}
Die Einheiten für die \gls{f} sowie die \gls{F} werden aus den
@@ -1064,15 +1155,15 @@ Punktmasse lautet:
\end{Trunk*}
%
Als nächstes kümmern wir uns um die Ausgabe des Symbolverzeichnisses. Momentan
-erzeugt der Befehl \Macro{printsymbols} jedenfalls kein sinnvolles Verzeichnis:
+erzeugt der Befehl \Macro{printsymbols}(\Package{glossaries}) jedenfalls kein
+sinnvolles Verzeichnis:
%
\begin{Hint}
\printsymbols
\end{Hint}
\begin{quoting}[rightmargin=0pt]
-\vspace*{-\baselineskipglue}
\glsdisablehyper
-\InputCode
+\printsymbols[style=simple]
\end{quoting}
%
Für dieses muss erst ein Stil definiert werden, was nachfolgend ähnlich zum
@@ -1080,29 +1171,34 @@ Stil \PValue{acrotabularx} respektive \PValue{acrotabu} geschieht. Allerdings
wird hier eine Variante gezeigt, mit der die Tabelle einen Seitenumbruch
zulässt.
-\minisec{Eigener Stil mit \Environment{tabularx} und \Environment{longtable}}
+\minisec{Eigener Stil mit \Environment*{tabularx} und \Environment*{longtable}}
Soweit mir bekannt ist, lassen sich umbruchfähige Tabellen nicht direkt mit
-\Environment{tabularx} setzen. Vielmehr ist das Paket \Package{ltxtable}
-notwendig. Dieses wiederum verlangt, dass die zu setzende Tabelle in einer
-separaten Datei abgelegt wird. Möchte man diese dennoch im Hauptdokument
-belassen, kann man die \Environment{filecontents}"=Umgebung nutzen.
+\Environment{tabularx}(\Package{tabularx}) setzen. Vielmehr ist für die
+Verwendung der Umgebung \Environment{longtable}(\Package{longtable}) das Paket
+\Package{ltxtable} notwendig. Dieses wiederum verlangt, dass die zu setzende
+Tabelle in einer separaten Datei abgelegt wird. Soll diese dennoch innerhalb
+des Hauptdokumentes erstellt werden, kann für dieses Unterfangen die Umgebung
+\Environment{filecontents}(\Package{filecontents}) aus dem gleichnamigen Paket
+genutzt werden, womit \emph{bereits existierende Dateien} überschrieben werden.
Leider habe ich keine Möglichkeit gefunden, diesen Prozess ohne wahnsinnig
großen Aufwand für das Erstellen eines Glossars zu portieren. Für umbruchfähige
Tabellen mit automatisch berechneten Spaltenbreiten kommt meines Wissens nach
-momentan nur die Umgebung \Environment{longtabu} aus dem Paket \Package{tabu}
-infrage.
-
-\minisec{Eigener Stil mit \Environment{tabu}}
-Das Paket \Package{tabu} definiert die \Environment{longtabu}"=Umgebung, die
-wiederum auf \Environment{longtable} basiert und nachfolgend verwendet wird.
-Damit diese linksbündig gesetzt wird, muss vor dem obligatorischen Argument mit
-den Spaltendefinitionen noch das optionale Argument \OParameter{l} angegeben
-werden. Die im Stil verwendeten Befehle \Macro{toprule}, \Macro{midrule} sowie
-\Macro{cmidrule} und \Macro{bottomrule} für unterschiedliche horizontale Linien
-stammen allesamt aus dem Paket \Package{booktabs}, welches für den Satz von
-hochwertigen Tabellen eine große Hilfe ist.
-
+momentan nur die Umgebung \Environment{longtabu}(\Package{tabu}) aus dem Paket
+\Package{tabu} infrage.
+
+\minisec{Eigener Stil mit \Environment*{longtabu}}
+Das Paket \Package{tabu} definiert für umbruchfähige Tabellen die Umgebung
+\Environment{longtabu}(\Package{tabu}), welche wiederum auf der Umgebung
+\Environment{longtable}(\Package{longtable}) basiert und nachfolgend verwendet
+wird. Damit diese linksbündig gesetzt wird, muss vor dem obligatorischen
+Argument mit den Spaltendefinitionen noch das optionale Argument \OParameter{l}
+angegeben werden. Die im nachfolgend definierten Stil verwendeten Befehle
+\Macro{toprule}(\Package{booktabs}), \Macro{midrule}(\Package{booktabs}) sowie
+\Macro{cmidrule}(\Package{booktabs}) und \Macro{bottomrule}(\Package{booktabs})
+für unterschiedliche horizontale Linien stammen allesamt aus dem Paket
+\Package{booktabs}, welches für den Satz von hochwertigen Tabellen eine große
+Hilfe ist.
%
\CodeHook{\let\newglossarystyle\renewglossarystyle}
\begin{Preamble*}
@@ -1112,15 +1208,15 @@ hochwertigen Tabellen eine große Hilfe ist.
}{%
\end{longtabu}%
}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glsgroupskip}{}%
\renewcommand*{\glossaryheader}{%
\toprule
- \bfseries Symbol & \bfseries Einheit &
- \bfseries Name & \bfseries Seite(n)
+ \bfseries Formelzeichen & \bfseries Einheit &
+ \bfseries Bezeichnung & \bfseries Seite(n)
\tabularnewline\midrule\endhead%
\bottomrule\endfoot%
}%
- \renewcommand*{\glsgroupheading}[1]{}%
- \renewcommand*{\glsgroupskip}{}%
\renewcommand*{\glossentry}[2]{%
\glsentryitem{##1}% Entry number if required
\glstarget{##1}{\glossentrysymbol{##1}} &
@@ -1131,14 +1227,16 @@ hochwertigen Tabellen eine große Hilfe ist.
}
\end{Preamble*}
%
-Innerhalb von \Macro{newglossarystyle} wird \Macro{glossaryheader} für einen
-Tabellenkopf definiert, wie er auch für eine \Environment{longtable}"=Umgebung
-erscheinen würde. In hier vorgestellten Fall werden Kopf beziehungsweise Fuß
-mit \Macro{endhead} respektive \Macro{endfoot} terminiert. Diese werden beim
+Innerhalb von \Macro{newglossarystyle}(\Package{glossaries}) wird der Befehl
+\Macro{glossaryheader}(\Package{glossaries}) für einen Tabellenkopf definiert,
+wie er auch für eine \Environment{longtable}(\Package{longtable})"=Umgebung
+erscheinen würde. In hier vorgestellten Fall werden der Kopf mit dem Makro
+\Macro{endhead}(\Package{longtable}) beziehungsweise der Fuß durch
+\Macro{endfoot}(\Package{longtable}) terminiert. Diese werden beim
einem möglichen Seitenumbruch zu Beginn und am Ende auf jeder Seite gesetzt.
%
\begin{Preamble+}
-}% Ende von AfterPackage*
+}% Ende von AfterPackage
\end{Preamble+}
%
@@ -1157,33 +1255,276 @@ Das Symbolverzeichnis kann sich nun durchaus sehen lassen.
}%
\renewcommand*{\glossaryheader}{%
\toprule
- \bfseries Symbol & \bfseries Einheit &
- \bfseries Name & \bfseries Seite(n)
+ \bfseries Formelzeichen & \bfseries Einheit &
+ \bfseries Bezeichnung & \bfseries Seite(n)
\tabularnewline\midrule%
}%
}
\printsymbols[style=symbtabu]
\end{quoting}
+\minisec{Unterteilung nach griechischen und lateinischen Symbolen}
+Oftmals wird es für Abschlussarbeiten verlangt, das Symbolverzeichnis nach
+griechischen und lateinischen Formelzeichen zu untergliedern. Für die Umsetzung
+dieser Anforderung ist die zuvor beschriebene Lösung prinzipiell nutzbar,
+allerdings muss diese etwas erweitert werden.
+
+Realisiert wird das Ganze, indem die zwei Kategorien respektive Elterneinträge
+\PValue{greekletters} sowie \PValue{romanletters} definiert und sämtliche
+Formelzeichen einem der beiden als Untereintrag zugeordnet werden.
+%
+\begin{Hint*}
+\providecommand*\greeklettersname{Greek letters}
+\providecommand*\romanlettersname{Roman letters}
+\newglossaryentry{greekletters}{%
+ type=symbols,%
+ name={\greeklettersname},%
+ description={\nopostdesc},%
+ sort={a}%
+}
+\newglossaryentry{romanletters}{%
+ type=symbols,%
+ name={\romanlettersname},%
+ description={\nopostdesc},%
+ sort={b}%
+}
+\end{Hint*}
+%
+Die Bezeichnungen der beiden Kategorien könnten auch als Parameter von
+\Macro*{newglossaryentry} mit \PValue{name=\PName{Bezeichung}} direkt
+eingetragen werden. Um bei der Definition jedoch eine gewisse Flexibilität zu
+gewährleisten, wird dies über die zwei Befehle \Macro*{greeklettersname} sowie
+\Macro*{romanlettersname} realisiert. Diese werden mit \KOMAScript-Mitteln
+als sprachabhängige Bezeichner definiert.
+%
+\begin{Hint*}
+\providecaptionname{%
+ american,australian,british,canadian,english,newzealand%
+}{\greeklettersname}{Greek letters}
+\providecaptionname{%
+ german,ngerman,austrian,naustrian,swissgerman,nswissgerman%
+}{\greeklettersname}{Griechische Symbole}
+\providecaptionname{%
+ american,australian,british,canadian,english,newzealand%
+}{\romanlettersname}{Roman letters}
+\providecaptionname{%
+ german,ngerman,austrian,naustrian,swissgerman,nswissgerman%
+}{\romanlettersname}{Lateinische Symbole}
+\end{Hint*}
+%
+Für die Ausgabe wird der Glossarstil \PValue{symbsplitlongtabu} in ähnlicher
+Manier wie die Stile zuvor definiert. Dieser wird darauf ausgelegt, dass alle
+aufzulistenden Formelzeichen als Untereintrag von einem der beiden zuvor
+erstellten Elterneinträge angegeben werden. Allerdings ist bei diesem Stil
+aufgrund der Verwendung von \Environment{longtabu}(\Package{tabu}) etwas
+Aufwand zu betreiben, um die gewünschte Ausgabe zu erhalten. Das grundlegende
+Problem ist das Setzen von Überschriften und dem folgenden Tabellenkopf
+innerhalb der Tabelle. Die Erläuterung des Quelltextauszugs erfolgt nach dessen
+Ausgabe.
+%
+\CodeHook{\let\newglossarystyle\renewglossarystyle}
+\begin{Hint*}
+\newglossarystyle{symbsplitlongtabu}{%
+ \newcommand*\symbollevel{-1}%
+ \renewenvironment{theglossary}{%
+ \begin{longtabu}spread 0pt[l]{ccX<{\strut}l}%
+ }{%
+ \end{longtabu}%
+ }%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glsgroupskip}{}%
+ \newcommand*\symbolhead{%
+ \toprule
+ \bfseries Formelzeichen & \bfseries Einheit &
+ \bfseries Bezeichnung & \bfseries Seite(n)
+ \tabularnewline\midrule
+ }%
+ \renewcommand*{\glossaryheader}{%
+ \endfirsthead%
+ \symbolhead\endhead%
+ \bottomrule\endfoot%
+ \gdef\symbollevel{-1}%
+ }%
+ \renewcommand*{\glossentry}[2]{%
+ \ifglshaschildren{##1}{%
+ \ifnum\symbollevel>0\relax%
+ \tabularnewline\bottomrule\tabularnewline[\smallskipamount]%
+ \fi
+ \gdef\symbollevel{0}%
+ \tabularnewline[%
+ \arraystretch\dimexpr-\ht\strutbox-\dp\strutbox\relax%
+ ]%
+ \multicolumn{4}{@{}l@{}}{\minisec{\glsentryname{##1}}}%
+ }{%
+ \GlossariesWarning{%
+ There are no childrens for entry ##1.\MessageBreak
+ Nothing will be printed. Maybe you should\MessageBreak
+ specify ##1 as a child entry.
+ }%
+ }%
+ }%
+ \renewcommand*{\subglossentry}[3]{%
+ \ifnum\symbollevel=0\relax%
+ \tabularnewline[\medskipamount]\symbolhead%
+ \else%
+ \tabularnewline
+ \fi%
+ \gdef\symbollevel{##1}%
+ \glsentryitem{##2}% Entry number if required
+ \glstarget{##2}{\glossentrysymbol{##2}} &
+ \glsentryuseri{##2} &
+ \glossentryname{##2} &
+ ##3%
+ }%
+}
+\end{Hint*}
+%
+Der neu definierte Befehl \Macro*{symbollevel} wird benötigt, um bei der
+Ausgabe zu überprüfen, um es sich beim zuletzt gesetzten Eintrag um einen
+Elterneintrag (\Macro*{glossentry}) oder Untereintrag (\Macro*{subglossentry})
+gehandelt hat. Im Makro \Macro*{symbolhead} wird die Definition für den zu
+setzenden Tabellenkopf gespeichert. Der Inhalt von \Macro*{glossaryheader} wird
+direkt zu Beginn der Umgebung \Environment{theglossary}(\Package{glossaries})
+ausgeführt. Dieser wird so umdefiniert, dass die Tabelle keinen Kopf vor der
+ersten Überschrift erhält, jedoch nach einem Seitenumbruch sehr wohl der
+Tabellenkopf gesetzt wird. Abgeschlossen wird die Tabelle mit einer Fußlinie.
+
+Danach erfolgt die Formatierung der Einträge. Der Befehl \Macro*{glossentry}
+setzt \enquote{\greeklettersname} und \enquote{\romanlettersname} sowie
+gegebenenfalls weitere Elterneinträge als Überschriften. Bevor dies passieren
+kann wird eine vorher begonnene Tabelle mit einer Fußlinie beendet. Um die
+Überschrift innerhalb von \Environment{longtabu}(\Package{tabu}) linksbündig zu
+setzen, wird mit \Macro*{multicolumn} gearbeitet. Dieser Befehl muss in der
+ersten Zelle zwingend als aller erstes genutzt werden. Um dies sicherzustellen,
+wird zuvor eine neue Tabellenspalte eingefügt. Damit jedoch kein zusätzlicher
+Leerraum entsteht, wird diese über das optionale Argument nach oben verschoben.
+Die Einträge für Formelzeichen selber erfolgen mit \Macro*{subglossentry}. Im
+Gegensatz zum vorher beschriebenen Stil \PValue{symblongtabu} wird zusätzlich
+der notwendige Tabellenkopf nach der Überschrift gesetzt, falls es sich um den
+\emph{ersten} Untereintrags handelt.
+
+Jetzt könnte man den Glossarstil \PValue{symbsplitlongtabu} bereits verwenden
+und jedem Formelzeichen bei der Definition mit
+\begin{quoting}[leftmargin=\parindent]
+\Macro{newsymbol}[%
+ \POParameter{parent={greekletters/romanletters}}%
+ \PParameter{\dots}\PParameter{\dots}\PParameter{\dots}\PParameter{\dots}%
+]|?|%
+\end{quoting}
+eine der beiden Elterneinträge zuweisen. Für wenige Formelzeichen mag dies
+ausreichen. Komfortabler wäre es natürlich, wenn die Zuweisung zu einer der
+beiden Kategorien automatisch erfolgen würde. Ein Ansatz für dieses Unterfangen
+wird folgend vorgestellt.
+
+\Attention{%
+ Es kann nicht garantiert werden, dass dieser Ansatz in jedem Fall und für
+ sämtliche Anwendungsszenarien funktioniert. Tatsächlich ist die Idee auf eine
+ \hrfn{http://latex.wcms-file3.tu-dresden.de/phpBB3/viewtopic.php?f=11&t=427}{%
+ Frage aus dem \Forum*%
+ }
+ heraus entstanden. Für auftretende Probleme bei der Verwendung ist dort der
+ beste Anlaufpunkt.
+}
+
+Die Grundidee ist, das zu definierende Formelzeichen mit einer Liste der Makros
+für griechische Buchstaben abzugleichen und so zu entscheiden, in welche der
+beiden Kategorien das Symbol einzuordnen ist. Hierfür werden nachfolgend eine
+Liste \Macro*{greeksymbollist} aller griechischen Buchstaben sowie der Befehl
+\Macro*{ifisgreeksymbol}[\Parameter{Symbol}\Parameter{Dann}\Parameter{Sonst}]
+zur Fallunterscheidung definiert. Problematisch bei der Umsetzung ist, dass ein
+als Argument übergebenes Formelzeichen auch mit diakritischen Zeichen und
+Indizes verwendet werden kann~-- beispielsweise $\dot{\varphi}_{\mathrm{max}}$
+(%
+ \Macro*{dot}[\PParameter{\Macro*{varphi}}]\PValue{\textunderscore}%
+ \PParameter{\Macro*{mathrm}[\PParameter{max}]}%
+). Deshalb werden bei der Ausführung von \Macro*{ifisgreeksymbol} temporär alle
+diakritische Zeichen für den Mathematikmodus \enquote{unschädlich} gemacht und
+das Argument \Parameter{Symbol} expandiert. Anschließend werden alle Anteile
+für Hoch- sowie Tiefstellung abgeschnitten und das Resultat mit der Liste
+\Macro*{greeksymbollist} abgeglichen.
+%
+\CodeHook{\let\newcommand\renewcommand}
+\begin{Hint*}
+\makeatletter
+\newcommand*\greeksymbollist{}
+\def\@tempa#1{\ifdefvoid{#1}{}{\listadd\greeksymbollist{#1}}}
+\forcsvlist{\@tempa}{%
+ \alpha,\beta,\varbeta,\gamma,\delta,\epsilon,\varepsilon,\zeta,%
+ \eta,\theta,\vartheta,\iota,\kappa,\varkappa,\lambda,\mu,\nu,%
+ \xi,\omicron,\pi,\varpi,\rho,\varrho,\sigma,\varsigma,\tau,%
+ \upsilon,\phi,\varphi,\chi,\psi,\omega,%
+ \Alpha,\Beta,\Gamma,\Delta,\Epsilon,\Zeta,\Eta,\Theta,\Iota,%
+ \Kappa,\Lambda,\Mu,\Nu,\Xi,\Omicron,\Pi,\Rho,\Sigma,\Tau,\Upsilon,%
+ \Phi,\Chi,\Psi,\Omega%
+}
+\newcommand*\ifisgreeksymbol[1]{%
+ \begingroup%
+ \def\@tempa##1{\let##1\@firstofone}%
+ \forcsvlist{\@tempa}{%
+ \acute,\bar,\breve,\check,\dot,\ddot,\dddot,\ddddot,%
+ \hat,\widehat,\grave,\tilde,\widetilde,\vec,%
+ \Acute,\Bar,\Breve,\Check,\Dot,\Ddot,\Hat,\Grave,\Tilde,\Vec%
+ }%
+ \protected@edef\@tempa{#1}%
+ \def\@tempb##1_##2\relax{\def\@tempa{##1}}%
+ \expandafter\@tempb\@tempa_\relax\relax%
+ \def\@tempb##1^##2\relax{\def\@tempa{##1}}%
+ \expandafter\@tempb\@tempa^\relax\relax%
+ \expandafter\ifinlist\expandafter{\@tempa}{\greeksymbollist}{%
+ \aftergroup\@firstoftwo%
+ }{%
+ \aftergroup\@secondoftwo%
+ }%
+ \endgroup%
+}
+\makeatother
+\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
+\POParameter{parent={greekletters/romanletters}} der automatische ermittelte
+Elterneintrag überschrieben werden.
+%
+\begin{Hint}
+\newcommand*\symbollettergroup{}
+\newcommand*{\newsymbol}[5][]{%
+ \ifisgreeksymbol{#4}{%
+ \renewcommand*{\symbollettergroup}{greekletters}%
+ }{%
+ \renewcommand*{\symbollettergroup}{romanletters}%
+ }%
+ \newglossaryentry{#2}{%
+ type=symbols,%
+ name={#3},%
+ description={\nopostdesc},%
+ symbol={\ensuremath{#4}},%
+ user1={\ensuremath{\mathrm{#5}}},%
+ sort={#2},%
+ parent={\symbollettergroup},%
+ #1%
+ }%
+}
+\end{Hint}
+
\subsection{Literaturverzeichnis}
-\label{sec:biblatex}
+\label{sec:biblatex}%
+%
Für das Erstellen eines Literaturverzeichnisses wurde in der Vergangenheit fast
-ausschließlich \hologo{BibTeX} verwendet. Lieder wird auch heute immer noch
+ausschließlich \hologo{BibTeX} verwendet. Leider wird auch heute immer noch
darauf verwiesen, obwohl es seit einigen Jahren das Paket \Package{biblatex}
-gibt, welches insbesondere für neue Dokumente definitiv den Vorzug erhalten
-sollte. Auch die Umstellung älterer \hologo{BibTeX}"=Datenbanken ist mit
-wenigen Handgriffen realisierbar. Für \Package{biblatex} existieren eine Menge
-unterschiedlicher, vordefinierter Zitierstile, welche sich im Vergleich zu
-\hologo{BibTeX} auch wesentlich leichter an die individuellen Bedürfnisse
-anpassen lassen.
+gibt, welches insbesondere für neue Dokumente den Vorzug erhalten sollte. Auch
+die Umstellung älterer \hologo{BibTeX}"=Datenbanken ist mit wenigen Handgriffen
+realisierbar. Für \Package{biblatex} existieren eine Menge unterschiedlicher,
+vordefinierter Zitierstile, welche sich im Vergleich zu \hologo{BibTeX} auch
+wesentlich leichter an die individuellen Bedürfnisse anpassen lassen.
Ein weiterer Vorteil ist die Unterstützung von Datenbanken, welche eine
UTF"~8"~Kodierung nutzen, wenn \Application{biber} zur Sortierung der Einträge
-verwendet wird. Welcher Stil und welches Backend zur Sortierung genutzt werden
-soll, lässt sich durch das optionale Argument beim Laden des Paketes festlegen.
-Damit die Zitierstile das optimale Ergebnis erzielen wird das vorherige Laden
-von \Package{csquotes} sehr empfohlen.
+verwendet wird. Zitierstil und Backend zur Sortierung lassen sich durch das
+optionale Argument beim Laden des Paketes festlegen. Damit die Zitierstile das
+optimale Ergebnis erzielen wird das Laden von \Package{csquotes} sehr empfohlen.
%
\begin{Preamble}
\usepackage{csquotes}
@@ -1196,30 +1537,31 @@ einer externen Anwendung erfolgen. Für die letztgenannte Variante sind die
Programme \Application{Citavi} respektive \Application{JabRef} empfehlenswert.
Auf eine Einführung in diese Anwendungen wird jedoch verzichtet.
-Die \Environment{filecontents}"=Umgebung kann verwendet werden, um innerhalb
-eines \hologo{LaTeX}"=Dokumentes externe Dateien direkt beim Kompilieren zu
-erstellen. Damit wird nachfolgend für dieses Tutorial eine Literaturdatenbank
-\File{\jobname-temp.bib} mit drei Einträgen manuell erzeugt. Die Umgebung
-gehört zu den Bordmitteln von \hologo{LaTeXe}. Das Paket \Package{filecontents}
-erweitert die Umgebung dahingehend, dass \emph{bereits existierende Dateien}
-überschrieben werden. Hier ist folglich Vorsicht geboten. Der große Vorteil ist
-jedoch, dass die erweiterte \Environment{filecontents}"=Umgebung~-- im
-Gegensatz zur Standardversion~-- die Dateien in der gleichen Eingabekodierung
-erzeugt, wie das verwendete Dokument. Diese Funktionalität wird für dieses
-Tutorial benötigt, weshalb auf das Laden des Paketes \Package{filecontents}
-nicht verzichtet werden kann.
+Die \Environment{filecontents}(\Package{filecontents})"=Umgebung kann verwendet
+werden, um innerhalb eines \hologo{LaTeX}"=Dokumentes externe Dateien direkt
+beim Kompilieren zu erstellen. Damit wird nachfolgend für dieses Tutorial eine
+Literaturdatenbank \File{\jobname-temp.bib} mit drei Einträgen manuell erzeugt.
+Die Umgebung gehört standardmäßig zu den Bordmitteln von \hologo{LaTeXe}. Das
+Paket \Package{filecontents} erweitert die Umgebung dahingehend, dass
+\emph{bereits existierende Dateien} überschrieben werden. Hier ist folglich
+Vorsicht geboten. Der große Vorteil ist jedoch, dass die erweiterte
+\Environment{filecontents}(\Package{filecontents})"=Umgebung~-- im Gegensatz
+zur Standardversion~-- die Dateien in der gleichen Eingabekodierung erzeugt,
+wie das verwendete Dokument. Diese Funktionalität wird für dieses Tutorial
+benötigt, weshalb auf das Laden des Paketes \Package{filecontents} nicht
+verzichtet werden kann.
%
\begin{Preamble}
\usepackage{filecontents}
\end{Preamble}
%
-Es werden folgend drei Einträge für die Literaturdatenbank definiert. Jeder
-Eintrag einer \File{.bib}-Datei beginnt mit \PValue{@}\PName{Eintragstyp}.
-Direkt danach ist für jeden Eintrag ein \emph{eindeutiges} \PParameter{Label}
-festzulegen. Anschließend können für unterschiedliche Felder die dazugehörige
-Werte eingetragen werden. Die verwendbaren Eintragstypen und die für diesen
-benötigten und zusätzlich nutzbaren Felder sind in der Dokumentation von
-\Package{biblatex} zu finden.
+Folgend wird eine Literaturdatenbank mit drei Einträge definiert. Jeder Eintrag
+einer \File*{.bib}"~Datei beginnt mit \PValue{@}\PName{Eintragstyp}. Direkt
+danach ist für jeden Eintrag ein \emph{eindeutiges} \PParameter{Label}
+festzulegen. Anschließend können für unterschiedliche Felder die dazugehörigen
+Werte eingetragen werden. Die verwendbaren Eintragstypen sowie die für den
+jeweiligen Typ obligatorischen und optionalen Felder sind in der Dokumentation
+von \Package{biblatex} zu finden.
%
\begin{Preamble*}
\begin{filecontents}{\jobname-temp.bib}
@@ -1244,9 +1586,8 @@ benötigten und zusätzlich nutzbaren Felder sind in der Dokumentation von
}
@manual{hanisch14,
author = {Hanisch, Falk},
- title = {Ein \LaTeX"=Bundle für Dokumente
- im neuen Corporate Design
- der Technischen Universität Dresden},
+ title = {Ein \LaTeX"=Bundle für Dokumente im neuen Corporate
+ Design der Technischen Universität Dresden},
date = {2014},
subtitle = {Benutzerhandbuch},
location = {Dresden},
@@ -1256,21 +1597,21 @@ benötigten und zusätzlich nutzbaren Felder sind in der Dokumentation von
\end{Preamble*}
%
Nachdem die Literaturdatenbank erstellt wurde, muss diese auch noch eingebunden
-werden. Dies geschieht mit:
+werden:
%
\begin{Preamble}
\addbibresource{\jobname-temp.bib}
\end{Preamble}
%
-Im einfachsten Fall werden die Einträge mit \Macro{cite}\Parameter{macro} im
-Dokument referenziert. Für die Referenzierung werden durch \Package{biblatex}
-weitere Befehle angeboten.
+Im einfachsten Fall werden die gewünschten Einträge der Literaturdatenbank im
+Dokument mit \Macro{cite}[\Parameter{macro}](\Package{biblatex}) referenziert,
+von \Package{biblatex} werden zusätzliche Möglichkeiten angeboten.
%
\begin{refsection}[\jobname-temp.bib]
\begin{Trunk+}
\section{Referenzen und das Literaturverzeichnis}
-Das Literaturverzeichnis wir auf Basis der nachfolgend verwendeten
+Das Literaturverzeichnis wird auf Basis der nachfolgend verwendeten
Zitate erstellt und ist auf Seite~\pageref{sec:bibliography} zu finden.
\end{Trunk+}
\begin{Trunk*}
@@ -1280,10 +1621,10 @@ In diesem Textabschnitt werden die zwei bekannten \LaTeX-Bücher
\end{Trunk*}
%
-Das Literaturverzeichnis wird mit \Macro{printbibliography} ausgegeben, wobei
-nicht alle Einträge der Literaturdatenbank sondern lediglich die tatsächlich
-referenzierten verwendet werden. Der Parameter \PValue{heading=bibintoc} führt
-zu einem Eintrag in das Inhaltsverzeichnis.
+Das Literaturverzeichnis wird mit \Macro{printbibliography}(\Package{biblatex})
+ausgegeben, wobei nicht alle Einträge der Literaturdatenbank sondern lediglich
+die tatsächlich referenzierten verwendet werden. Der Parameter
+\PValue{heading=bibintoc} führt zu einem Eintrag in das Inhaltsverzeichnis.
%
\begin{Hint}
\printbibliography[heading=bibintoc]
@@ -1293,7 +1634,6 @@ zu einem Eintrag in das Inhaltsverzeichnis.
\let\markboth\@gobbletwo
\let\markright\@gobble
\makeatother
-\vspace*{-\baselineskipglue}
\printbibliography
\end{quoting}
\end{refsection}
@@ -1306,14 +1646,16 @@ zu einem Eintrag in das Inhaltsverzeichnis.
\bigskip\noindent
Oftmals möchte der Autor einer wissenschaftlichen Arbeit für das erste oder
auch jedes Kapitel ein Zitat oder ähnliches voranstellen. Dies kann mit dem
-Befehl \Macro{dictum}\OParameter{Autor}\Parameter{Text} erfolgen. Damit wird
-der im obligatorischen Argument angegeben Ausspruch in einer \Macro{parbox}
-ausgegeben. Das optionale Argument kann für die Angabe des Autors verwendet
-werden. Soll das Ganze für einen Teil oder ein Kapitel erfolgen, sollte der
-Befehl \Macro{dictum} innerhalb von \Macro{setpartpreamble} beziehungsweise
-\Macro{setchapterpreamble} verwendet werden. Genaueres hierzu und zu den
-Möglichkeiten, die Gestalt des Zitats zu beeinflussen, ist in der Anleitung von
-\KOMAScript{} \scrguide zu finden. Es folgt ein Beispiel zur Verwendung.
+Befehl \Macro{dictum}[\OParameter{Autor}\Parameter{Text}](\Package{koma-script})
+erfolgen. Damit wird der im obligatorischen Argument angegeben Ausspruch in
+einer \Macro{parbox} ausgegeben. Das optionale Argument kann für die Angabe des
+Autors verwendet werden. Soll das Ganze für einen Teil oder ein Kapitel
+erfolgen, sollte der Befehl \Macro{dictum}(\Package{koma-script}) innerhalb von
+\Macro{setpartpreamble}(\Package{koma-script}) beziehungsweise
+\Macro{setchapterpreamble}(\Package{koma-script}) verwendet werden. Genaueres
+hierzu und zu den weiteren Möglichkeiten, die Gestalt eines Zitats zu
+beeinflussen, ist in der \scrguide[Anleitung von \KOMAScript] zu finden. Es
+folgt ein Beispiel zur Verwendung.
%
\begin{Hint}
\setchapterpreamble{%
@@ -1329,23 +1671,25 @@ Möglichkeiten, die Gestalt des Zitats zu beeinflussen, ist in der Anleitung von
\section{Gleitumgebungen für Abbildungen und Tabellen}
-\label{sec:floats}
+\label{sec:floats}%
+%
Die Positionierung von Abbildungen mit \hologo{LaTeX} kann zu Beginn für viele
Anfänger durchaus frustrierend sein. Das liegt häufig am Missverständnis der
beiden Standard"=Gleitobjektumgebungen für Tabellen (\Environment{table}) und
Abbildungen (\Environment{figure}). Diese sind in erster Linie zur Ergänzung
des Fließtextes gedacht und sollten für das prinzipielle Verständnis des
-Geschrieben nicht notwendig sein. Das oft geforderte Verhalten, ein Gleitobjekt
-an einer ganz bestimmten und explizit festgelegten Position im Text zu setzen,
-ist nicht erforderlich, insbesondere weil dadurch der Lesefluss unnötig
-unterbrochen wird.
+Geschriebenen nicht notwendig sein. Das oft geforderte Verhalten, ein
+Gleitobjekt an einer ganz bestimmten und explizit festgelegten Position im Text
+zu setzen, ist nicht erforderlich, insbesondere weil dadurch der Lesefluss
+unnötig unterbrochen wird.
Vielmehr ist es sinnvoll, Gleitobjekte entweder am Anfang oder Ende einer Seite
zu platzieren, wo sie den Lesefluss deutlich weniger stören. Allerdings sollte
auf jedes Gleitobjekt im Fließtext über eine Referenz~-- beispielsweise mit dem
-Befehl \Macro{autoref} aus dem Paket \Package{hyperref}~-- Bezug genommen und
-gegebenenfalls eine kurze Erläuterung gegeben werden. Weitere Erläuterungen zum
-Thema \emph{Querverweise} ist in \autoref{sec:references} nachlesen.
+Befehl \Macro{autoref}(\Package{hyperref}) aus dem Paket \Package{hyperref}~--
+Bezug genommen und gegebenenfalls eine kurze Erläuterung gegeben werden.
+Zusätzliche Erläuterungen zum Thema \emph{Querverweise} sind unter
+\autoref{sec:references} zu finden.
Ein weitere Grund, \hologo{LaTeX} die Platzierung von Tabellen und Abbildungen
vollständig zu überlassen, ist die Ungewissheit über den vorhandenen Platz auf
@@ -1354,8 +1698,9 @@ das einzufügende Objekt zu groß für die aktuelle Seite ist, was einen wahrlic
schlechten Seitenumbruch mit einer schlecht gefüllten Seite zur Folge hätte.
Die Verwendung einer Gleitumgebung für eine Abbildung wird im nachfolgenden
Quelltextauszug exemplarisch gezeigt, das Ergebnis ist in \autoref{fig:example}
-zu sehen. Worauf man bei Gleitobjekten in jedem Fall achten sollte, dass die
-Verwendung von \Macro{label} immer erst \emph{nach} \Macro{caption} erfolgt, da
+zu sehen. Bei Gleitobjekten sollte in jedem Fall darauf geachtet werden, dass
+der Befehl \Macro{label} immer erst \emph{nach}
+\Macro{caption}(\Package{koma-script},\Package{caption}) verwendet wird, da
der erzeugte Anker sich sonst nicht auf das Objekt bezieht.
%
\begin{Trunk+}
@@ -1365,7 +1710,7 @@ Grafiken als auch Tabellen verwendet werden sollten. Im vorliegenden
Beispiel kann unter Umständen der Eindruck entstehen, dass diese Seite
etwas zu überladen mit Gleitobjekten ist. Dies liegt nicht an der
Verwendung der Gleitobjekte sondern vielmehr am zu geringen Textvolumen
-und den eingeschränkten Möglichkeiten von \LaTeX{}, diese an geigneten
+und den eingeschränkten Möglichkeiten von \LaTeX{}, diese an geeigneten
Stellen zu platzieren.
\subsection{Abbildungen als Gleitobjekte und das Einbinden von Grafiken}
@@ -1373,11 +1718,11 @@ In \autoref{fig:example} wird dargestellt, wie eine Grafik im PDF-Format
in ein Dokument eingebunden und auf diese verwiesen werden kann. Ein
Querverweis auf ein Gleitobjekt sollte im Fließtext am besten mit Befehl
\texttt{\textbackslash autoref\{\emph{<Label>}\}} erstellt werden.
-Hierfür ist ein entsprechender Anker am zu referenziereden Objekt nötig,
+Hierfür ist ein entsprechender Anker am zu referenzierenden Objekt nötig,
welcher mit dem Makro \texttt{\textbackslash label} erzeugt wird. Dabei
ist entscheidend, dass dieser Anker erst \emph{nach} der Beschriftung des
-Objektes, welche mit \texttt{\textbackslash caption} erstellt wird,
-gesetzt wird.
+Objektes, welche mit \texttt{\textbackslash caption} zu erstellen ist,
+definiert werden sollte.
\end{Trunk+}
\begin{Trunk}
@@ -1401,82 +1746,18 @@ gewiss ein Lied darüber singen.
-\subsection{Beeinflussung des Gleitprozesses}
-Sobald das Dokument inhaltlich den finalen Zustand erreicht hat, haben Sie sich
-zu diesem Zeitpunkt schon mit Sicherheit an das standardmäßige Vorgehen von
-\hologo{LaTeX} gewöhnt und müssen respektive wollen gegebenenfalls nur noch bei
-wenigen Gleitobjekten~-- über das optionale Argument der Gleitumgebungen zur
-individuellen Empfehlung für die Platzierung~-- nachjustieren. Mögliche Werte
-sind:
-%
-\begin{description}[labelindent=\parindent,leftmargin=*,style=nextline]
-\item[\POParameter{h} (here)]
- An der Stelle, wo es im Quelltext angegeben wurde~-- falls genügend Platz
- vorhanden ist
-\item[\POParameter{t} (top)]
- Am oberen Ende der aktuellen oder der folgenden Seite
-\item[\POParameter{b} (bottom)]
- Am unteren Ende der aktuellen Seite
-\item[\POParameter{p} (page)]
- Auf einer separaten Seite für mindestens ein Gleitobjekt
-\end{description}
-%
-Sie können eine, mehrere oder alle Optionen angeben, wobei die Reihenfolge
-keine Rolle spielt. Der Algorithmus arbeitet alle ihm zur Verfügung gestellten
-Optionen immer in der zuvor aufgezählten Reihenfolge ab, wobei diese nur als
-Empfehlung und nicht als Verpflichtung angesehen werden. Es gibt folglich keine
-Garantie, dass Ihr Vorschlag akzeptiert wird. Fügen sie dem optionalen Argument
-ein~\PValue{!} an, so verhindern Sie, dass \hologo{LaTeX} weitere Optionen
-evaluiert. Das Gleitobjekt wird anhand der optionalen Parameter positioniert,
-selbst wenn dabei ein unschönes Seitenlayout entsteht. Kann das Gleitobjekt
-technisch unmöglich auf die angegebene Weise positioniert werden, wird dieses
-sowie alle folgenden aufgeschoben und am Ende des Abschnitts oder Kapitels
-angehängt. Dies ist ein Effekt, den man in den seltensten Fällen will.
-
-Außerdem können die Pakete \Package{flafter} sowie \Package{placeins} genutzt
-werden. Das erstgenannte verhindert das Auftreten von Gleitobjekten im Dokument
-vor ihrer Definition im Quelltext. In der Konsequent bedeutet dies, dass die
-Option \POParameter{t} Gleitobjekte nur am oberen Ende der nächsten Seite
-jedoch nicht auf der aktuellen zulässt. Mit dem zweiten Paket können Barrieren
-definiert werden, an welchen die Ausgabe aller noch in der Warteschlange
-befindlichen Gleitobjekte forciert wird~-- beispielsweise vor bestimmten
-Gliederungsüberschriften. Im Handbuch zu \TUDScript findet sich außerdem zum
-Thema \enquote{\manualhyperref{sec:tips:floats}{Platzierung von Gleitobjekten}}
-ein eigener Abschnitt mit weiterführenden Informationen.
-
-
-\subsection{Abstellen des Gleitprozesses}
-Oftmals wird verlangt, den Gleitprozess vollständig abzustellen. Dies bringt in
-den meisten Fällen einige Probleme mit sich. Die Folge sind sehr ein unruhiges
-Erscheinungsbild das Satzspiegels aufgrund schlecht gefüllter Seiten, außerdem
-viel Handarbeit mit hart kodierten Seitenumbrüchen sowie ein gegenüber von
-Umbruchänderungen äußerst anfälliges Dokument. Sollte es in \emph{Einzelfällen}
-dennoch erforderlich sein, dass eine Abbildung oder eine Tabelle nicht gleitet,
-ist die einzig logische Konsequenz, auf die Verwendung einer Gleitumgebung
-gänzlich zu verzichten.
-
-Hierfür eignen sich Umgebungen wie \Environment{center}, um etwas Abstand vor
-und nach dem Objekt zu erzeugen und \Environment{minipage}, um Grafik oder
-Tabelle und Beschriftung zusammenzuhalten. Die \KOMAScript-Klassen stellen für
-diese Anwendung das Makro \Macro{captionof} zur Verfügung. Damit lassen sich
-Bildunter- sowie Tabellenüberschriften auch ohne die gleitenden Umgebungen
-\Environment{figure} beziehungsweise \Environment{table} erzeugen. Alternativ
-kann das Paket \Package{float} verwendet werden, welches für Gleitumgebungen
-den Platzierungsparameter \POParameter{H} zur Verfügung stellt. Allerdings ist
-dies meiner Meinung nach alles andere als konsequent und sinnvoll.
-
-
\subsection{Gleitobjektlayout}
-\label{sec:floatlayout}
+\label{sec:floatlayout}%
%
Es wurde bis jetzt das prinzipielle Vorgehen bei der Nutzung von Gleitobjekten
beschrieben. Allerdings gibt es auch noch einige typografische Aspekte, welche
zu beachten sind. Zum einen sollte beachtet werden, dass die Beschriftung einer
Abbildung immer unterhalb dieser erfolgen sollte, bei Tabellen hingegen eine
Überschrift gesetzt wird. Hierfür muss der Anwender ohne die Verwendung eines
-zusätzlichen Paketes selber Sorge tragen, indem er den Befehl \Macro{caption}
-entweder vor oder nach dem eigentlichen Objekt in der Gleitumgebung verwendet.
-Der zweite Punkt ist die verwendete Schrift innerhalb der Gleitumgebungen.
+zusätzlichen Paketes selber Sorge tragen, indem er den Befehl
+\Macro{caption}(\Package{koma-script},\Package{caption}) entweder vor oder
+nach dem eigentlichen Objekt in der Gleitumgebung verwendet. Der zweite Punkt
+ist die verwendete Schrift innerhalb der Gleitumgebungen.
Damit sich der Inhalt dieser besser vom restlichen Fließtext abhebt und vom
Leser direkt als nicht dazugehörig erkannt werden kann ist es ratsam, diesen in
@@ -1491,13 +1772,11 @@ ein Blick in \autoref{sec:tables} sehr sinnvoll.
\begin{tabularx}{.75\textwidth}{@{}XXX@{}}
\toprule
\textbf{Erste Spalte} & \textbf{Zweite Spalte} &
- \textbf{Dritte Spalte} \tabularnewline
- \midrule
+ \textbf{Dritte Spalte} \tabularnewline\midrule
Etwas Blindtext für die erste Spalte &
Etwas Blindtext für die zweite Spalte &
Etwas Blindtext für die dritte Spalte
- \tabularnewline
- \bottomrule
+ \tabularnewline\bottomrule
\end{tabularx}
#1%
}
@@ -1519,9 +1798,9 @@ mithilfe des Paketes \Package{caption} angepasst werden.
\usepackage{caption}
\end{Preamble}
%
-Diese stellt den Befehl \Macro{captionsetup} bereit. Mit diesem werden die
-Beschriftungen in Serifenlosen und das Label zur besseren Unterscheidung im
-fetter Schriftstärke gesetzt.
+Diese stellt den Befehl \Macro{captionsetup}(\Package{caption}) bereit. Mit
+diesem werden die Beschriftungen in Serifenlosen und das Label zur besseren
+Unterscheidung im fetter Schriftstärke gesetzt.
%
\begin{Preamble*}
\captionsetup{font=sf,labelfont=bf,labelsep=space}
@@ -1536,7 +1815,7 @@ einer Gleitumgebung formatieren zu können, wird \Package{floatrow} geladen.
Der Inhalt von Gleitobjekten wird~-- entgegen des normalen Verhaltens~-- durch
\Package{floatrow} automatisch zentriert gesetzt. Zusätzlich soll der Inhalt
noch die serifenlose Schriftfamilie verwenden. Dies lässt sich mit der Nutzung
-des Befehls \Macro{floatsetup} realisieren.
+des Befehls \Macro{floatsetup}(\Package{floatrow}) realisieren.
%
\begin{Preamble*}
\floatsetup{font=sf}
@@ -1555,19 +1834,21 @@ angepasst.
\tableexample[%
\caption{%
Eine Tabelle in einer Gleitumgebung mit einer angepassten Formatierung%
- }\label{tab:tabularnew}%
+ }%
+ \label{tab:tabularnew}%
]
\end{table}%
%
Damit wären alle Einstellungen soweit erfolgt, in \autoref{tab:tabularnew} ist
das Ergebnis zu sehen. Zumeist soll die Beschriftung für Gleitobjekte nicht
zentriert sondern linksbündig gesetzt werden. Dies lässt sich ebenfalls mit den
-Mitteln des Paketes \Package{caption} mit der Option \Option{justification}
-erreichen. Damit dies auch für einzeilige Beschriftungen angewendet wird, muss
-zusätzlich die Einstellung \Option{singlelinecheck} deaktiviert werden. Mit der
-Option \Option{hang} kann außerdem beeinflusst werden, ob eine mehrzeilige
-Beschriftung nach einem Zeilenumbruch direkt unter dem Label oder mit Einzug
-fortgesetzt werden soll.
+Mitteln des Paketes \Package{caption} und der passenden Paketoption
+\Option{justification}(\Package{caption}) erreichen. Damit dies auch für
+einzeilige Beschriftungen angewendet wird, muss zusätzlich die Einstellung
+\Option{singlelinecheck}(\Package{caption}) deaktiviert werden. Mit der
+Paketoption \Option{format}(\Package{caption}) kann außerdem beeinflusst
+werden, ob eine mehrzeilige Beschriftung nach einem Zeilenumbruch direkt unter
+dem Label oder mit Einzug fortgesetzt werden soll.
%
\begin{Preamble*}
\captionsetup{singlelinecheck=off,format=hang,justification=raggedright}
@@ -1577,14 +1858,14 @@ In \autoref{tab:tabularnew} fällt die Beschriftung auf, welche die Breite der
Tabelle überragt. Falls linksbündige Gleitumgebungsbezeichnungen verwendet
werden, wie dies gerade eingestellt wurde, besteht das Problem quasi bei jeder
Beschriftung, da diese immer am linken Seitenrand beginnen. Auch hierfür stellt
-das Paket \Package{floatrow} die Befehle \Macro{ttabbox} für Tabellen sowie
-\Macro{ffigbox} für Abbildungen bereit.
+das Paket \Package{floatrow} die Befehle \Macro{ttabbox}(\Package{floatrow})
+für Tabellen sowie \Macro{ffigbox}(\Package{floatrow}) für Abbildungen bereit.
Beide Makros erwarten im ersten obligatorischen Argument den Befehl
-\Macro{caption} für die Beschriftung gegebenenfalls gefolgt von einem mit
-\Macro{label} gesetzten Textanker. Im zweiten Argument wird das Objekt
-selbst~-- sprich Tabelle oder Abbildung~-- angegeben. Zu verwenden sind diese
-folgendermaßen:
+\Macro{caption}(\Package{koma-script},\Package{caption}) für die Beschriftung
+gegebenenfalls gefolgt von einem mit \Macro{label} gesetzten Textanker. Im
+zweiten Argument wird das Objekt selbst~-- sprich Tabelle oder Abbildung~--
+angegeben. Zu verwenden sind diese folgendermaßen:
%
\begin{Hint}
\begin{table}
@@ -1603,37 +1884,45 @@ Diese beiden Befehle sorgen dafür, dass die Beschriftungen in der jeweiligen
Breite des Objektes gesetzt werden. Entspricht das zu setzende Objekt in seiner
Breite dem Wert \Length{textwidth}~-- es ist genauso Breit wie die Laufweite
des Fließtextes~--, so ist deren Gebrauch nicht notwendig. Das Ergebnis der
-Verwendung von \Macro{ttabbox} ist in \autoref{tab:tabularbox} zu sehen.
+Verwendung von des Befehls \Macro{ttabbox}(\Package{floatrow}) ist in
+\autoref{tab:tabularbox} zu sehen.
Bei der Nutzung der beiden Befehle sollte darauf geachtet werden, dass zwischen
dem Ende des Objektes und der schließender Klammer des zweiten Argumentes kein
-ungewolltes Leerzeichen gesetzt wird. Dies lässt sich am einfachsten vermeiden,
-indem direkt nach dem Ende des Objektes mit \Macro{end}\PParameter{tabularx},
-\Macro{end}\PParameter{tabu}, \Macro{end}\PParameter{tikz} etc. die schließende
-Klammer des zweiten Argumentes oder das Kommentarzeichen \PValue{\%} folgt.
+ungewolltes Leerzeichen gesetzt wird. Dies lässt sich leicht vermeiden, indem
+direkt nach dem Ende des Objektes mit \Macro*{end}[\PParameter{tabularx}],
+\Macro*{end}[\PParameter{tabu}], \Macro*{end}[\PParameter{tikz}] etc. die
+schließende Klammer des zweiten Argumentes oder das Zeichen für einen Kommentar
+\PValue{\%} folgt.
\begin{table}
\ttabbox{\tableexample}{%
- \caption[Eine mit \Macro{ttabbox} gesetzte Tabelle in einer Gleitumgebung]{%
+ \caption[%
+ Eine mit \Macro{ttabbox}(\Package{floatrow}) gesetzte Tabelle in einer
+ Gleitumgebung%
+ ]{%
Eine in einer Gleitumgebung gesetzte Tabelle in Verbindung mit dem Befehl
- \Macro{ttabbox}, der durch das Paket \texttt{floatrow} für Beschriftungen
- in Objektbreite zur Verfügung gestellt wird%
- }\label{tab:tabularbox}%
+ \Macro{ttabbox}(\Package{floatrow}), der durch das Paket \Package{floatrow}
+ für Beschriftungen in Objektbreite zur Verfügung gestellt wird%
+ }%
+ \label{tab:tabularbox}%
}
\end{table}
\subsection{Untergleitobjekte}
-\label{sec:subfloats}
+\label{sec:subfloats}%
+%
Das Paket \Package{floatrow} stellt allerhand Möglichkeiten zur Erstellung von
nebeneinanderliegenden Gleitobjekten sowie \enquote{Untergleitobjekten} bereit
und ist insbesondere in Verbindung mit den Fähigkeiten von \Package{caption}
respektive \Package{subcaption} sehr gut für dieses Unterfangen nutzbar. Dafür
-werden die Umgebungen \Environment{floatrow} und \Environment{subfloatrow}
-angeboten, wobei die letztere für ein Beispiel verwendet wird. Als erstes muss
-der Typ der zu erzeugenden Labels für Abbildungen und Tabellen definiert
-werden. Dies geschieht mit dem Befehl \Macro{DeclareCaptionSubType} aus dem
-Paket \Package{subcaption}.
+werden die Umgebungen \Environment{floatrow}(\Package{floatrow}) sowie
+\Environment{subfloatrow}(\Package{floatrow}) angeboten, wobei die letztere für
+ein Beispiel verwendet wird. Als erstes muss der Typ der zu erzeugenden Labels
+für Abbildungen und Tabellen definiert werden. Dies geschieht mit dem Befehl
+\Macro{DeclareCaptionSubType}(\Package{subcaption}) aus dem Paket
+\Package{subcaption}.
%
\begin{Preamble}
\DeclareCaptionSubType[alph]{figure}
@@ -1682,9 +1971,126 @@ sowohl auf \autoref{fig:logos} als auch auf \autoref{fig:tud} sowie
\InputCode
+\subsection{Beeinflussung des Gleitprozesses}
+Sobald das Dokument inhaltlich den finalen Zustand erreicht hat, haben Sie sich
+zu diesem Zeitpunkt schon mit Sicherheit an das standardmäßige Vorgehen von
+\hologo{LaTeX} gewöhnt und müssen respektive wollen gegebenenfalls nur noch bei
+wenigen Gleitobjekten~-- über das optionale Argument der Gleitumgebungen zur
+individuellen Empfehlung für die Platzierung~-- nachjustieren. Mögliche Werte
+sind:
+%
+\begin{description}[labelindent=\parindent,leftmargin=*,style=nextline]
+\item[\POParameter{h} (here)]
+ An der Stelle, wo es im Quelltext angegeben wurde~-- falls genügend Platz
+ vorhanden ist
+\item[\POParameter{t} (top)]
+ Am oberen Ende der aktuellen oder der folgenden Seite
+\item[\POParameter{b} (bottom)]
+ Am unteren Ende der aktuellen Seite
+\item[\POParameter{p} (page)]
+ Auf einer separaten Seite für mindestens ein Gleitobjekt
+\end{description}
+%
+Sie können eine, mehrere oder alle Optionen angeben, wobei die Reihenfolge
+keine Rolle spielt. Der Algorithmus arbeitet alle ihm zur Verfügung gestellten
+Optionen immer in der zuvor aufgezählten Reihenfolge ab, wobei diese nur als
+Empfehlung und nicht als Verpflichtung angesehen werden. Es gibt folglich keine
+Garantie, dass Ihr Vorschlag akzeptiert wird. Fügen sie dem optionalen Argument
+ein~\PValue{!} an, so verhindern Sie, dass \hologo{LaTeX} weitere Optionen
+evaluiert. Das Gleitobjekt wird anhand der optionalen Parameter positioniert,
+selbst wenn dabei ein unschönes Seitenlayout entsteht. Kann das Gleitobjekt
+technisch unmöglich auf die angegebene Weise positioniert werden, wird dieses
+sowie alle folgenden aufgeschoben und am Ende des Abschnitts oder Kapitels
+angehängt. Dieser Effekt ist wohl in den seltensten Fällen gewollt.
+
+Außerdem können die Pakete \Package{flafter} sowie \Package{placeins} genutzt
+werden. Das erstgenannte verhindert das Auftreten von Gleitobjekten im Dokument
+vor ihrer Definition im Quelltext. In der Konsequent bedeutet dies, dass die
+Option \POParameter{t} Gleitobjekte nur am oberen Ende der nächsten Seite
+jedoch nicht auf der aktuellen zulässt. Mit dem zweiten Paket können Barrieren
+definiert werden, an welchen die Ausgabe aller noch in der Warteschlange
+befindlichen Gleitobjekte forciert wird~-- beispielsweise vor bestimmten
+Gliederungsüberschriften. Im Handbuch zu \TUDScript findet sich außerdem zum
+Thema \enquote{\tudhyperref{sec:tips:floats}{Platzierung von Gleitobjekten}}
+ein eigener Abschnitt mit weiterführenden Informationen.
+
+
+\subsection{Abstellen des Gleitprozesses}
+Trotz der zuvor genannten Vorteile von Gleitobjekten wird oftmals verlangt, den
+Gleitprozess vollständig abzustellen. Dies bringt jedoch in den meisten Fällen
+einige Probleme mit sich. Die Folge sind ein sehr unruhiges Erscheinungsbild
+des Satzspiegels aufgrund schlecht gefüllter Seiten, außerdem im Zweifelsfall
+viel Handarbeit mit hart kodierten Seitenumbrüchen sowie daraus resultierend
+ein gegenüber von Umbruchänderungen äußerst anfälliges Dokument. Sollte es in
+\emph{Einzelfällen} dennoch erforderlich sein, dass eine Abbildung oder Tabelle
+nicht gleitet, ist die einzig logische Konsequenz, auf die Verwendung einer
+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
+\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
+\Environment{table} erzeugen. Das Vorgehen wird folgend demonstriert, in
+\autoref{fig:nonfloating-A} ist das Ergebnis zu sehen.
+%
+\begin{Hint}
+\begin{center}
+\captionsetup{type=figure}
+\includegraphics{TUD-black}
+\caption{Eine nichtgleitende Grafik in einer \texttt{center}"=Umgebung}
+\label{fig:nonfloating-A}
+\end{center}
+
+\end{Hint}
+\InputCode\noindent
+%
+Alternativ zu diesem Ansatz kann das Paket \Package{float} zum Einsatz kommen,
+welches für Gleitumgebungen den Platzierungsparameter \POParameter{H}
+bereitstellt. Das Resultat ist identisch zu \autoref{fig:nonfloating-A}.
+%
+\begin{Hint}
+\begin{figure}[H]
+\includegraphics{TUD-black}
+\caption{Eine nichtgleitende Grafik in einer \texttt{figure}"=Umgebung}
+\label{fig:...}
+\end{figure}
+
+\end{Hint}
+%
+Mit den Mitteln des Paketes \Package{floatrow} lässt sich eine etwas bessere
+Variante entwickeln, wobei für eine mehrmalige Anwendung ein eigenes Makro mit
+den passenden Argumenten definiert werden sollte. Zum besseren Verständnis des
+Quelltextauszuges ist die Dokumentation von \Package{floatrow} zu beachten.
+%
+\begin{Hint}
+\floatbox[\captionsetup{type=figure}]{figure}[\FBwidth][%
+ \dimexpr\FBheight+\abovedisplayskip\relax%
+][b]{\includegraphics{TUD-black}}{%
+ \caption{%
+ Eine nichtgleitende Grafik mit \texttt{\textbackslash floatbox}%
+ }%
+ \label{fig:nonfloating-B}%
+}
+\end{Hint}
+\InputCode\noindent
+%
+Es wird hier trotz der vorhergehenden Ausführungen abermals ausdrücklich
+empfohlen, Tabellen und Abbildungen in Gleitumgebungen zu setzen und die
+korrekte Platzierung dem \hologo{LaTeX}"=Algorithmus zu überlassen.
+
+
+
\section{Tabellensatz}
-\label{sec:tables}
+\label{sec:tables}%
+%
Zum Thema \enquote{Tabellensatz mit \hologo{LaTeX}} sind bereits zahlreiche
\hrfn{http://userpage.fu-berlin.de/latex/Materialien/tabsatz.pdf}{Leitfäden}
\cite{reichert2012} im Internet zu finden. Deshalb werde ich meine Ausführungen
@@ -1697,18 +2103,21 @@ in jedem Fall beachtet werden:
\end{enumerate}
%
Das Paket \Package{booktabs} ist für den Satz von hochwertigen Tabellen eine
-große Hilfe und stellt die Befehle \Macro{toprule}, \Macro{midrule} sowie
-\Macro{cmidrule} und \Macro{bottomrule} für unterschiedliche horizontale Linien
-bereit.
+große Hilfe und stellt die Befehle \Macro{toprule}(\Package{booktabs}),
+\Macro{midrule}(\Package{booktabs}) sowie \Macro{cmidrule}(\Package{booktabs})
+und \Macro{bottomrule}(\Package{booktabs}) für unterschiedliche horizontale
+Linien bereit.
%
\begin{Preamble}
\usepackage{booktabs}
\end{Preamble}
%
Außerdem existiert das Paket \Package{array}, welches mit dem Befehl
-\Macro{newcolumntype} die Definition eigener Spaltentypen sowie die Verwendung
-sogenannter \enquote{Hooks} vor und nach Einträgen innerhalb einer Spalte
-(\PValue{>\{\dots\}}\PName{Spaltentyp}\PValue{<\{\dots\}}) ermöglicht.
+\Macro{newcolumntype}(\Package{array}) die Definition eigener Spaltentypen
+sowie die Verwendung von \enquote{Hooks} vor (\PValue{>\PParameter{\dots}}) und
+nach (\PValue{<\PParameter{\dots}}) Einträgen innerhalb einer Spalte
+(\PValue{>\PParameter{\dots}}\PName{Spaltentyp}\PValue{<\PParameter{\dots}})
+ermöglicht.
%
\begin{Preamble}
\usepackage{array}
@@ -1718,32 +2127,33 @@ Für alle im Folgenden vorgestellten Umgebungen zum Setzen von Tabellen gilt,
dass die Inhalte zeilenweise angegeben werden, wobei die Einträge für die
einzelnen Spalten mit~\PValue{\&} voneinander zu trennen sind. Das Beenden
einer Tabellenzeile und der Wechsel zur nächsten erfolgt normalerweise mit
-\PValue{\textbackslash\textbackslash}. Da jedoch einige \hologo{LaTeX}-Pakete
+\PValue{\textbackslash\textbackslash}. Da jedoch einige \hologo{LaTeX}"=Pakete
diesen Befehl innerhalb von Tabellen lokal ändern ist es zur Vermeidung
unnötiger Fehler wesentlich sicherer, das Zeilenende ausschließlich mit
\Macro{tabularnewline} zu setzen.
Im Folgenden wird in einigen Tabellen bei der Definition der Spalten vor der
-ersten und nach der letzten das Konstrukt~\PValue{@\{\}} verwendet, was das
-\manualhyperref{sec:tips:table}{Einrücken dieser Tabellenspalten verhindert}
+ersten und nach der letzten das Konstrukt~\PValue{@\PParameter{}} verwendet,
+was das \tudhyperref{sec:tips:table}{Einrücken der Tabellenspalten verhindert}
und im Handbuch genauer erläutert wird.
-\subsection{Die Standardumgebung \Environment{tabular}}
-Normalerweise gibt es vier unterschiedliche Spaltentypen. Dabei stehen die drei
-Spaltentypen~\PValue{l},~\PValue{c}~und~\PValue{r} für linksbündige, zentrierte
-und rechtsbündige Spalten, welche allerdings keinen Zeilenumbruch erlauben. Der
-Inhalt wird quasi wie in einer \Macro{mbox} gesetzt, wodurch die Spalten sehr
-breit werden und über den Seitenrand hinausragen können.
+\subsection{Die Standardumgebung \Environment*{tabular}}
+Normalerweise gibt es für \Environment{tabular} vier unterschiedliche
+Spaltentypen. Die drei Spaltentypen~\PValue{l},~\PValue{c}~und~\PValue{r}
+stehen für linksbündige, zentrierte und rechtsbündige Spalten zu Verfügung,
+welche allerdings keinen Zeilenumbruch erlauben. Der Inhalt wird quasi wie in
+einer \Macro{mbox} gesetzt, wodurch die Spalten sehr breit werden und über den
+Seitenrand hinausragen können.
Der Spaltentyp~\PValue{p}\Parameter{Breite} hingegen legt die Spaltenbreite
-fest und setzt den Inhalt in jeder Zeile in eine \Macro{parbox}, wobei diese
-wird mit ihrer obersten Zeile an der Grundlinie ausgerichtet wird. Das Paket
-\Package{array} stellt außerdem die Spaltentypen~\PValue{m}\Parameter{Breite}
+fest und setzt die Zellinhalte in einer \Macro{parbox}, wobei diese mit ihrer
+obersten Zeile an der Grundlinie ausgerichtet wird. Das Paket \Package{array}
+stellt außerdem die Spaltentypen~\PValue{m}\Parameter{Breite}
und~\PValue{b}\Parameter{Breite} bereit, welche ebenfalls mit \Macro{parbox}
gesetzt werden, die Ausrichtung an der Grundlinie jedoch zentriert respektive
-an der unteren Zeile der Box erfolgt. Es folgt ein Beispiel zur Verwendung der
-\Environment{tabular}-Umgebung.
+an der unteren Zeile erfolgt. Es folgt ein Beispiel zur Nutzung der
+\Environment{tabular}"=Umgebung.
%
\begingroup
\pcolumnfuzz{70pt}
@@ -1751,8 +2161,7 @@ an der unteren Zeile der Box erfolgt. Es folgt ein Beispiel zur Verwendung der
\begin{tabular}{lcrp{33mm}}
\toprule
\textbf{Linksbündig} & \textbf{Zentriert} &
-\textbf{Rechtsbündig} & \textbf{Blocksatz} \tabularnewline
-\midrule
+\textbf{Rechtsbündig} & \textbf{Blocksatz} \tabularnewline\midrule
a & b & c & Dieser Text wird im Blocksatz gesetzt\tabularnewline
aa & bb & cc & Auch Zeilenumbrüche sind vorhanden\tabularnewline
aaa & bbb & ccc & Worttrennungsmusterkontrolle\tabularnewline
@@ -1764,10 +2173,10 @@ aaa & bbb & ccc & Worttrennungsmusterkontrolle\tabularnewline
Die Tabellenbreite ergibt sich aus der Breite der einzelnen Spalten. Bei dieser
Umgebung liegt es allein beim Anwender, auf die korrekte Breite der Tabelle zu
achten, damit diese nicht über die Seitenränder hinausragt. Das kann auf Dauer
-recht aufwändig werden. Das Festlegen der Gesamtbreite einer Tabelle durch den
-Anwender und das automatische Berechnen einiger oder aller Spaltenbreiten ist
-sicher die angenehmere Variante. Wie sich dies sehr komfortabel bewerkstelligen
-lässt wird~-- ebenso wie die Lösung des Problems des nicht umbrochenen Eintrags
+recht aufwändig werden. Das Festlegen der Gesamtbreite einer Tabelle und das
+automatische Berechnen einiger oder aller Spaltenbreiten ist sicher die
+angenehmere Variante. Wie sich dies sehr komfortabel bewerkstelligen lässt,
+wird~-- ebenso wie die Lösung des Problems eines nicht umbrochenen Eintrags wie
in der letzten Spalte der dritten Zeile der obigen Tabelle~-- im nachfolgenden
Abschnitt demonstriert.
@@ -1776,7 +2185,7 @@ Abschnitt demonstriert.
Die Pakete \Package{tabularx}, \Package{tabulary} oder auch \Package{tabu}
stehen für das Setzen von Tabellen mit dynamisch berechneter Spaltenbreite bei
fest vorgegebener Gesamtbreite zur Verfügung, welche nun kurz vorgestellt
-werden sollen. Die beiden erstgenannte Pakete \Package{tabularx} sowie
+werden sollen. Die beiden erstgenannte Pakete \Package{tabularx} sowie
\Package{tabulary} stammen vom gleichen Paketautor und haben sich als sehr
stabil erwiesen. Das Paket \Package{tabu} ist relativ neu und versucht, viele
Funktionalitäten ganz unterschiedlicher Pakete für den Tabellensatz in sich zu
@@ -1786,6 +2195,7 @@ vereinen und glänzt insbesondere durch seine Vielseitigkeit.
\usepackage{tabularx}
\usepackage{tabulary}
\usepackage{tabu}
+\usepackage{longtable}
\end{Preamble}
%
@@ -1796,17 +2206,19 @@ angeboten, was bedeutet, dass auch in den neuen Tabellenumgebungen weiterhin
die gewohnten Spaltentypen~\PValue{l},~\PValue{c},~\PValue{r}~und~\PValue{p}
verfügbar sind.
-\subsubsection{Die Tabellenumgebung \Environment{tabularx}}
-\label{sec:tabularx}
+\subsubsection{Die Tabellenumgebung \Environment*{tabularx}}
+\label{sec:tabularx}%
+%
Das Paket \Package{tabularx} stellt den Spaltentyp~\PValue{X} bereit, welcher
prinzipiell dem Spaltentyp~\PValue{p} entspricht. Auch für diesen wird eine
\Macro{parbox} verwendet, allerdings wird deren Breite \emph{automatisch}
-berechnet. Die Umgebung \Environment{tabularx} erwartet vor der Angabe der
-Spaltentypen als obligatorisches Argument die gewünschte Breite der Tabelle. Zu
-beachten ist, dass Spalten vom Typ~\PValue{l},~\PValue{c}~und~\PValue{r}
-weiterhin ohne Zeilenumbruch gesetzt werden. Nur für Spalten vom Typ~\PValue{X}
-und deren Derivate wird aus dem verbliebenen Platz die Breite berechnet. Für
-die \Environment{tabularx}-Umgebung wird das vorherige Beispiel wiederholt.
+berechnet. Die Umgebung \Environment{tabularx}(\Package{tabularx}) erwartet vor
+der Spaltentypenangabe als obligatorisches Argument die gewünschte Breite der
+Tabelle. Spalten vom Typ~\PValue{l},~\PValue{c}~und~\PValue{r} werden jedoch
+weiterhin \emph{ohne} Zeilenumbruch gesetzt werden. Nur für Spalten vom
+Typ~\PValue{X} und deren Derivate wird aus dem verbliebenen Platz die Breite
+berechnet. Für die \Environment{tabularx}(\Package{tabularx})-Umgebung wird das
+vorherige Beispiel wiederholt.
%
\begingroup
\pcolumnfuzz{70pt}
@@ -1814,14 +2226,12 @@ die \Environment{tabularx}-Umgebung wird das vorherige Beispiel wiederholt.
\begin{tabularx}{11.7cm}{lcrX}
\toprule
\textbf{Linksbündig} & \textbf{Zentriert} &
-\textbf{Rechtsbündig} & \textbf{Blocksatz} \tabularnewline
-\midrule
+\textbf{Rechtsbündig} & \textbf{Blocksatz} \tabularnewline\midrule
a & b & c & Dieser Text wird im Blocksatz gesetzt\tabularnewline
aa & bb & cc & Auch Zeilenumbrüche sind vorhanden\tabularnewline
aaa & bbb & ccc & Worttrennungsmusterkontrolle\tabularnewline
aaaa & bbbb & cccc & \hspace{0pt}Worttrennungsmusterkontrolle
-\tabularnewline
-\bottomrule
+\tabularnewline\bottomrule
\end{tabularx}
\end{Hint*}
\endgroup
@@ -1830,24 +2240,24 @@ Die Breite der letzten Spalte wurde dabei aus der Angabe der Gesamtbreite mit
\PValue{11.7cm} berechnet. Des Weiteren ist zu sehen, wie das Problem des
Zeilenumbruchs behandelt werden kann. Normalerweise wird das erste Wort in
einem Absatz von \hologo{LaTeX} \emph{nie} umbrochen. Dies kann durch das
-Einfügen eines breitenlosen Leerzeichens mit \Macro{hspace}\PParameter{0pt}
+Einfügen eines breitenlosen Leerzeichens mit \Macro{hspace}[\PParameter{0pt}]
umgangen werden. Die gefundene Lösung ist allerdings alles andere als elegant.
Mit den Möglichkeiten des Paketes \Package{array} ist das Problem relativ
-schnell gelöst. Es wird mit \Macro{newcolumntype} ein neuer Spaltentyp
-definiert. Das erste Argument von \Macro{newcolumntype} legt den Namen des
-Spaltentyps fest. Mit \PValue{>\Parameter{Definitionen}}\Parameter{Typ} wird im
-zweiten Argument das Ausführen von \PName{Definitionen} vor dem Setzen des
-eigentlichen Inhaltes in einer \Parameter{Typ}"~Spalte definiert. Es wird ein
-neuer, auf der \PValue{X}"~Spalte basierender Typ~\PValue{Y} definiert, welcher
-zu Beginn der Spalte den Phantomabstand automatisch einfügt. Darauf basierend
-werden drei Spaltentypen für den links- und rechtsbündigen sowie zentrierten
-Textsatz mit einem möglichen Zeilenumbruch erstellt.
+schnell gelöst. Es wird mit \Macro{newcolumntype}(\Package{array}) ein neuer
+Spaltentyp definiert. Das erste Argument legt den Namen des Spaltentyps fest.
+Mit \PValue{>\Parameter{Definitionen}}\Parameter{Typ} wird im zweiten Argument
+das Ausführen von \PName{Definitionen} vor dem Setzen des eigentlichen Inhaltes
+in einer \Parameter{Typ}"~Spalte definiert. Es wird ein neuer, auf der
+\PValue{X}"~Spalte basierender Typ~\PValue{Y} definiert, welcher zu Beginn der
+Spalte den Phantomabstand automatisch einfügt. Darauf basierend werden drei
+Spaltentypen für den links- und rechtsbündigen sowie zentrierten Textsatz mit
+einem möglichen Zeilenumbruch erstellt.
%
\begin{Trunk+}
\subsection{Tabellen als Gleitobjekte}
Tabellen sollten in der \texttt{table}"=Gleitumgebung gesetzt werden.
-Welche Umgebung für die Tabelle selbst dabie genutzt wird ist dabei
+Welche Umgebung für die Tabelle selbst dabei genutzt wird ist dabei
nicht relevant. Es können sowohl die normale \texttt{tabular}"=Umgebung
als auch die Umgebungen \texttt{tabularx}, \texttt{tabulary} sowie
\texttt{tabu} für variable Spaltenbreiten bei einer fest vorgegebenen
@@ -1855,7 +2265,7 @@ Tabellenbreite oder jede andere Tabellenumgebung genutzt werden.
Nachfolgend wird dies an mehreren Beispielen demonstriert.
\subsubsection{Eine gleitende tabularx-Tabelle}
-Es wird eine Tabelle mithilfe der \texttt{tabularx}-Umgebung erstellt.
+Es wird eine Tabelle mithilfe der \texttt{tabularx}"=Umgebung erstellt.
Zu sehen ist diese in \autoref{tab:tabularx}. Für diese werden zuvor
neue Spaltentypen definiert.
@@ -1885,7 +2295,7 @@ Ein längerer Blindtext im Blocksatz zur besseren Demonstration
einer Y"~Spalte\tabularnewline
\bottomrule
\end{tabularx}
-\caption{Eine \texttt{tabularx}-Tabelle}\label{tab:tabularx}
+\caption{Eine \texttt{tabularx}"=Tabelle}\label{tab:tabularx}
\end{table}
\end{Trunk}
@@ -1896,8 +2306,9 @@ identisch. Ein Gewichten der Spaltenbreiten untereinander ist prinzipiell
möglich, allerdings mit einigen Einschränkungen verbunden. Genaueres hierzu ist
der Dokumentation des Paketes \Package{tabularx} zu entnehmen.
-\subsubsection{Die Tabellenumgebung \Environment{tabulary}}
-\label{sec:tabulary}
+\subsubsection{Die Tabellenumgebung \Environment*{tabulary}}
+\label{sec:tabulary}%
+%
Das Paket \Package{tabulary} verfolgt im Vergleich zum zuvor beschrieben Paket
\Package{tabularx} einen etwas anderen Ansatz. Anstatt die verfügbare Breite
über alle Spalten gleichmäßig zu verteilen, werden die Spaltenbreite anhand des
@@ -1906,27 +2317,31 @@ Spaltentypen~\PValue{L},~\PValue{C},~\PValue{R}~sowie~\PValue{J} zur Verfügung
gestellt. Diese entsprechen prinzipiell dem Spaltentyp~\PValue{p}, allerdings
wird deren Breite \emph{automatisch} berechnet, wobei Spalten mit mehr Inhalt
breiter gesetzt werden. Für die automatische Berechnung der Spaltenbreiten muss
-verständlicherweise die gewünschte Gesamtbreite angegeben werden, was bei der
-\Environment{tabulary}-Umgebung mit dem ersten obligatorischen Argument vor der
-Angabe der Spaltendefinition erfolgt. Werden für die Tabelle eine oder mehrere
-Spalten vom Typ~\PValue{l},~\PValue{c}~und~\PValue{r} angegeben, so werden
-diese weiterhin in ihrer natürlichen Breite und ohne Zeilenumbruch gesetzt.
+verständlicherweise die gewünschte Gesamtbreite der Tabelle angegeben werden,
+was bei der \Environment{tabulary}(\Package{tabulary})-Umgebung mit dem ersten
+obligatorischen Argument vor der Angabe der Spaltendefinition erfolgt. Werden
+eine oder mehrere Spalten vom Typ~\PValue{l},~\PValue{c}~und~\PValue{r}
+angegeben, so werden diese weiterhin in ihrer natürlichen Breite und ohne
+Zeilenumbruch gesetzt.
Die Gewichtung der Spalten vom Typ~\PValue{LCRJ} und deren Derivate wird aus
dem verbliebenen Platz die Breite berechnet. Die Berechnung der Spaltenbreite
kann durch den Anwender außerdem über zwei Längen beeinflusst werden. Mit
-\Length{tymin} wird die Mindestgröße für Spalten festgelegt. Sollten Sie
-wissen, dass eine Spalte sehr schmal wird, können Sie allerdings auch einfach
-eine der Standardspalten~\PValue{lcrp} nutzen. Mit der Länge \Length{tymax}
-kann die maximale Ausdehnung einer der Spalten vom Typ~\PValue{LCRJ} festgelegt
-werden. Für die \Environment{tabulary}-Umgebung wird das vorherige Beispiel
-wiederholt. Zu beachten ist, dass die Spaltentypen~\PValue{LCRJ} mit dem Makro
-\Macro{tyformat} bereits ein breitenloses Leerzeichen einsetzen, womit sich das
-manuelle Einfügen von selbigem durch den Anwender erübrigt.
+\Length{tymin}(\Package{tabulary}) wird die Mindestgröße für Spalten
+festgelegt. Sollten Sie wissen, dass eine Spalte sehr schmal wird, können Sie
+allerdings auch einfach eine der Standardspalten~\PValue{lcrp} nutzen. Mit der
+Länge \Length{tymax}(\Package{tabulary}) kann die maximale Ausdehnung einer der
+Spalten vom Typ~\PValue{LCRJ} festgelegt werden.
+
+Für die \Environment{tabulary}(\Package{tabulary})-Umgebung wird das vorherige
+Beispiel wiederholt. Zu beachten ist, dass die Spaltentypen~\PValue{LCRJ} mit
+dem Makro \Macro{tyformat}(\Package{tabulary}) bereits ein breitenloses
+Leerzeichen einsetzen, womit sich das manuelle Einfügen von selbigem durch den
+Anwender erübrigt.
%
\begin{Trunk+}
\subsubsection{Eine gleitende tabulary-Tabelle}
-Es wird eine Tabelle mithilfe der \texttt{tabulary}-Umgebung erstellt.
+Es wird eine Tabelle mithilfe der \texttt{tabulary}"=Umgebung erstellt.
Zu sehen ist diese in \autoref{tab:tabulary}.
\end{Trunk+}
@@ -1935,25 +2350,24 @@ Zu sehen ist diese in \autoref{tab:tabulary}.
\begin{tabulary}{\textwidth}{@{}LCRJ@{}}
\toprule
\textbf{Linksbündig} & \textbf{Zentriert} &
-\textbf{Rechtsbündig} & \textbf{Blocksatz} \tabularnewline
-\midrule
+\textbf{Rechtsbündig} & \textbf{Blocksatz} \tabularnewline\midrule
Ein linksbündiger Blindtext zur Demonstration einer L"~Spalte &
Ein zentrierter Blindtext zur Demonstration einer C"~Spalte &
Ein rechtsbündiger Blindtext zur Demonstration einer R"~Spalte &
Ein wesentlich längerer und absolut inhaltsleerer Blindtext im
Blocksatz für eine um einiges bessere Demonstration einer J"~Spalte
-\tabularnewline
-\bottomrule
+\tabularnewline\bottomrule
\end{tabulary}
-\caption{Eine \texttt{tabulary}-Tabelle}\label{tab:tabulary}
+\caption{Eine \texttt{tabulary}"=Tabelle}\label{tab:tabulary}
\end{table}
\end{Trunk}
\InputCode
-\subsubsection{Die Tabellenumgebung \Environment{tabu}}
-\label{sec:tabu}
+\subsubsection{Die Tabellenumgebung \Environment*{tabu}}
+\label{sec:tabu}%
+%
Das Paket \Package{tabu} bietet eine mächtige und komfortable Alternative zu
\Package{tabularx}. Es kam in diesem Tutorial bereits für die Verzeichnisse von
Abkürzungen und Symbolen in \autoref{sec:glossaries} zum Einsatz. Leider ist
@@ -1961,19 +2375,21 @@ das Paket in er aktuellen Version~v2.8 mit Vorsicht zu genießen. Zum einen
wären für das Paket in der aktuellen Version seit geraumer Zeit ein paar
kleinere Bugfixes notwendig, mehr dazu sehen Sie später. Außerdem wird sich die
\hrfn{https://groups.google.com/d/topic/comp.text.tex/xRGJTC74uCI}{%
- Benutzerschnittstelle in einer zukünftigen Version
-} sehr stark ändern. Sie sollten sich bewusst sein, dass mit der Version~v2.8
+ Benutzerschnittstelle in einer zukünftigen Version%
+}
+sehr stark ändern. Sie sollten sich bewusst sein, dass mit der Version~v2.8
gesetzte Dokumente gegebenenfalls später angepasst werden müssen.
-Nichtsdestotrotz soll hier die Verwendung der \Environment{tabu}-Umgebung
-gezeigt werden, insbesondere weil es für das Setzen umbruchfähiger Tabellen mit
-automatisch berechneten Spaltenbreiten momentan (fast) keine Alternative zu der
-Umgebung \Environment{longtabu} gibt.
+Nichtsdestotrotz soll hier folgend die individuelle Verwendung einer
+\Environment{tabu}(\Package{tabu})-Umgebung gezeigt werden, insbesondere weil
+für das Setzen umbruchfähiger Tabellen mit automatisch berechneten
+Spaltenbreiten momentan (fast) keine Alternative zu der Umgebung
+\Environment{longtabu}(\Package{tabu}) existiert.
Dieses Paket definiert ebenso einen Spaltentyp~\PValue{X}, welchem allerdings
-zusätzlich ein optionales Argument angehängt werden kann. Mit diesem lässt sich
-sowohl die Gewichtung der automatisch berechneten Spalten untereinander als
-auch die Positionierung zur Grundlinie sowie die Ausrichtung des Inhaltes
+zusätzlich ein optionales Argument angehangen werden kann. Mit diesem lässt
+sich sowohl die Gewichtung der automatisch berechneten Spalten untereinander
+als auch die Positionierung zur Grundlinie sowie die Ausrichtung des Inhaltes
ändern.
%
\begingroup
@@ -1982,26 +2398,26 @@ auch die Positionierung zur Grundlinie sowie die Ausrichtung des Inhaltes
\begin{tabu} to 11.7cm {lcrX}
\toprule
\textbf{Linksbündig} & \textbf{Zentriert} &
-\textbf{Rechtsbündig} & \textbf{Blocksatz} \tabularnewline
-\midrule
+\textbf{Rechtsbündig} & \textbf{Blocksatz} \tabularnewline\midrule
a & b & c & Dieser Text wird im Blocksatz gesetzt\tabularnewline
aa & bb & cc & Auch Zeilenumbrüche sind vorhanden\tabularnewline
aaaa & bbbb & cccc & Worttrennungsmus\-terkontrolle\tabularnewline
-aaa & bbb & ccc & Worttrennungsmusterkontrolle\tabularnewline
-\bottomrule
+aaa & bbb & ccc & Worttrennungsmusterkontrolle
+\tabularnewline\bottomrule
\end{tabu}
\end{Hint*}
\endgroup
%
Das Beispiel zeigt auch gleich das momentan meiner Meinung nach größte Problem
des Paketes: Bei mehrzeiligen Zellen fehlt vertikale Zwischenraum zur nächsten
-Tabellenzeile. Nun hat man entweder die Möglichkeit, bei jeder Angabe einer
+Tabellenzeile. Nun besteht entweder die Möglichkeit, bei jeder Angabe einer
Spalte im Tabellenkopf, welche eine \Macro{parbox} verwendet, mit dem Ausdruck
-\PValue{>\{\Macro{strut}\}} die fehlenden Unterlänge auszugleichen oder man
-definiert sich abermals einen entsprechenden Spaltentyp. Das ist für die
-\PValue{X}"~Spalten der Umgebung \Environment{tabu} etwas schwieriger, da
-\Macro{newcolumntype} normalerweise die Definition eines optionalen Argumentes
-nicht vorgesehen ist. Mit ein wenig Trickserei ist das dennoch möglich:
+\PValue{>\PParameter{\Macro{strut}}} die fehlenden Unterlänge auszugleichen
+oder es wird abermals ein entsprechender Spaltentyp definiert. Das ist für
+die \PValue{X}"~Spalten der Umgebung \Environment{tabu}(\Package{tabu}) etwas
+schwieriger, da \Macro{newcolumntype}(\Package{array}) normalerweise die
+Definition eines optionalen Argumentes nicht vorgesehen ist. Mit ein wenig
+Trickserei ist das dennoch möglich:
%
\begin{Trunk+}
\subsubsection{Eine gleitende tabu-Tabelle}
@@ -2017,7 +2433,7 @@ die Beschriftung auf die Breite der Tabelle begrenzt.
\begin{Trunk*}
\makeatletter
\newcolumntype{Z}{}
-\renewcommand*\NC@rewrite@Z[1][]{%
+\renewcommand*{\NC@rewrite@Z}[1][]{%
\NC@find>{\hspace{0pt}}X[#1]<{\@finalstrut\@arstrutbox}%
}
\makeatother
@@ -2027,33 +2443,32 @@ die Beschriftung auf die Breite der Tabelle begrenzt.
Anschließend kann der \PValue{Z}"~Spaltentyp äquivalent zu \PValue{X} genutzt
werden. Zu beachten ist dabei insbesondere die Möglichkeit, die Spalten in
ihrer resultierenden Breite sehr einfach zueinander gewichten zu können~-- im
-Gegensatz zur Umgebung \Environment{tabularx}, wo dieses Unterfangen etwas
+Gegensatz zur Umgebung \Environment*{tabularx}, wo dieses Unterfangen etwas
schwieriger ist. Das Ergebnis ist in \autoref{tab:tabu} zu sehen. Zu beachten
-ist dabei die Verwendung von \Macro{ttabbox} aus dem Paket \Package{floatrow},
-um die Beschriftung an die Breite der Tabelle anzupassen. Genaueres dazu in
-\autoref{sec:floatlayout}.
+ist die Verwendung von \Macro{ttabbox}(\Package{floatrow}) aus dem Paket
+\Package{floatrow}, um die Beschriftung an die Breite der Tabelle anzupassen.
+Genaueres dazu in \autoref{sec:floatlayout}.
%
\begin{Trunk}
\begin{table}
\ttabbox{%
-\begin{tabu} to .8\textwidth {@{}Z[3,l]Z[3,c]Z[3,r]Z[2,j]@{}}
- \toprule
- \textbf{Linksbündig} & \textbf{Zentriert} &
- \textbf{Rechtsbündig} & \textbf{Blocksatz} \tabularnewline
- \midrule
- Ein linksbündiger Blindtext zur Demonstration einer Z[l]"~Spalte &
- Ein zentrierter Blindtext zur Demonstration einer Z[c]"~Spalte &
- Ein rechtsbündiger Blindtext zur Demonstration einer Z[r]"~Spalte &
- Ein Blindtext im Blocksatz innerhalb einer Z"~Spalte
- \tabularnewline
- \bottomrule
+ \begin{tabu} to .8\textwidth {@{}Z[3,l]Z[3,c]Z[3,r]Z[2,j]@{}}
+ \toprule
+ \textbf{Linksbündig} & \textbf{Zentriert} &
+ \textbf{Rechtsbündig} & \textbf{Blocksatz} \tabularnewline\midrule
+ Ein linksbündiger Blindtext zur Demonstration einer Z[l]"~Spalte &
+ Ein zentrierter Blindtext zur Demonstration einer Z[c]"~Spalte &
+ Ein rechtsbündiger Blindtext zur Demonstration einer Z[r]"~Spalte &
+ Ein Blindtext im Blocksatz innerhalb einer Z"~Spalte
+ \tabularnewline\bottomrule
\end{tabu}%
}{%
- \caption[Eine \texttt{tabu}-Tabelle]{%
- Eine \texttt{tabu}-Tabelle in Verbindung mit dem Befehl
+ \caption[Eine \texttt{tabu}"=Tabelle]{%
+ Eine \texttt{tabu}"=Tabelle in Verbindung mit dem Befehl
\texttt{\textbackslash ttabbox}, welcher vom Paket \texttt{floatrow}
für Beschriftungen in Objektbreite bereitgestellt wird%
- }\label{tab:tabu}%
+ }%
+ \label{tab:tabu}%
}
\end{table}
@@ -2063,17 +2478,18 @@ um die Beschriftung an die Breite der Tabelle anzupassen. Genaueres dazu in
\section{Querverweise}
-\label{sec:references}
+\label{sec:references}%
%
Damit alle möglichen Querverweise in einem PDF-Dokument automatisch verlinkt
werden, sollte das Paket \Package{hyperref} geladen werden. Um die erzeugten
-Links verträglich aussehen zu lassen, werden die Optionen \Option{colorlinks}
-sowie \Option{linkcolor}[blue] verwendet. Da \Package{hyperref} allerhand
-Veränderungen an vielen Standardbefehlen vornimmt, sollte dieses als letztes in
-der Präambel eingebunden werden. Nur Pakete, bei denen in der Dokumentation
-explizit darauf hingewiesen wird, dass diese nach \Package{hyperref} zu laden
-sind, sollten auch danach folgen. Eines dieser wenigen Pakete ist das in diesem
-Tutorial verwendete \Package{glossaries}.
+Links verträglich aussehen zu lassen, werden die beiden Paketoptionen
+\Option{colorlinks}(\Package{hyperref}) sowie \Option*{linkcolor=blue}
+verwendet. Da \Package{hyperref} allerhand Veränderungen an vielen
+Standardbefehlen vornimmt, sollte dieses als letztes in der Präambel
+eingebunden werden. Nur Pakete, bei denen in der Dokumentation explizit darauf
+hingewiesen wird, dass diese nach \Package{hyperref} zu laden sind, sollten
+auch danach folgen. Eines dieser wenigen Pakete ist das in diesem Tutorial
+verwendete \Package{glossaries}.
%
\begin{Hint}
\usepackage[colorlinks,linkcolor=blue]{hyperref}
@@ -2082,32 +2498,41 @@ Tutorial verwendete \Package{glossaries}.
%
Um auf ein bestimmtes Objekt wie beispielsweise eine Tabelle, eine Abbildung
oder einen bestimmten Anschnitt im Dokument referenzieren zu können, muss mit
-\Macro{label}\Parameter{label} ein Anker für selbiges an der entsprechenden
+\Macro{label}[\Parameter{label}] ein Anker für selbiges an der entsprechenden
Stelle gesetzt werden. Bei Überschriften sollte dies direkt nach der Nutzung
-des Gliederungsbefehls\footnote{\Macro{chapter}, \Macro{section} etc.}
+des Gliederungsbefehls%
+\footnote{%
+ \Macro{chapter}(\Package{koma-script}),
+ \Macro{section}(\Package{koma-script}) etc.%
+}
erfolgen. Für Abbildungen, Tabellen oder andere Objekte in Gleitumgebungen muss
-der Anker unmittelbar nach der Verwendung von \Macro{caption} respektive
-\Macro{captionof} erstellt werden. Um nun auf diesen Anker zu referenzieren,
-sollte nicht \Macro{ref} sondern \Macro{autoref} im Fließtext genutzt werden.
-Letztgenannter Befehl erzeugt nicht nur einen Link mit der dazugehörigen
-Nummerierung sondern stellt dieser die Bezeichnung des referenzierten Objektes%
-\footnote{\enquote{Abbildung}, \enquote{Tabelle}, \dots} voran.
+der Anker unmittelbar nach der Verwendung von
+\Macro{caption}(\Package{koma-script},\Package{caption}) respektive
+\Macro{captionof}(\Package{koma-script}) erstellt werden. Um nun auf diesen
+Anker zu referenzieren, sollte nicht \Macro{ref} sondern
+\Macro{autoref}(\Package{hyperref}) im Fließtext genutzt werden. Letztgenannter
+Befehl erzeugt nicht nur einen Link mit der dazugehörigen Nummerierung sondern
+stellt dieser die Bezeichnung des referenzierten Objektes%
+\footnote{\enquote{Abbildung}, \enquote{Tabelle}, \dots}
+voran.
Mit dem Befehl \Macro{pageref} lässt sich auf die Seite eines Ankers verweisen.
Das Paket \Package{varioref} kann dabei unterscheiden, ob der Anker sich auf
der aktuellen Seite, auf einer Seite direkt davor beziehungsweise danach oder
auf einer entfernteren Seite befindet und dementsprechend einen Hinweis darauf
-ausgeben. Hierfür werden die Befehle \Macro{vref} sowie \Macro{vpageref} zur
-Verfügung gestellt. Das Paket \Package{cleveref} vereint die Vorzüge von
-\Macro{autoref} in Verbindung mit \Macro{vref} durch den Befehl \Macro{cref}.
+ausgeben. Hierfür werden die Befehle \Macro{vref}(\Package{varioref}) sowie
+\Macro{vpageref}(\Package{varioref}) zur Verfügung gestellt. Das Paket
+\Package{cleveref} vereint die Vorzüge von \Macro{autoref}(\Package{hyperref})
+in Verbindung mit \Macro{vref}(\Package{varioref}) durch den Befehl
+\Macro{cref}(\Package{cleverref}).
\section{Zitate}
Für das wörtliche Zitieren kann das Paket \Package{csquotes} verwendet werden.
-Dieses stellt den Befehl \Macro{enquote} bereit, der die kennzeichnenden
-Anführungszeichen automatisch in Abhängigkeit der verwendeten Dokumentsprache
-setzt.
+Dieses stellt den Befehl \Macro{enquote}(\Package{csquotes}) bereit, der die
+kennzeichnenden Anführungszeichen automatisch in Abhängigkeit der verwendeten
+Dokumentsprache setzt.
%
\begin{Hint}
\usepackage{csquotes}
@@ -2132,17 +2557,19 @@ gekennzeichnet werden.
\end{Trunk*}
\begin{Trunk+}
Für eine möglichst gut nachvollziehbare Referenz sollte nicht nur
-das Werk selber sondern zumindest die Seitenzahl und gegebenfalls
+das Werk selber sondern zumindest die Seitenzahl und gegebenenfalls
der Absatz der originalen Textstelle angegeben werden.
\end{Trunk+}
%
Längere Zitate sollten abgesetzt vom Fließtext ausgegeben werden. Hierfür
bieten sowohl die Standard"~ als auch die \KOMAScript-Klassen standardmäßig
-die Umgebungen \Environment{quote} und \Environment{quotation} an. Allerdings
-verwenden beide fest eingestellte Absatzauszeichnungen. Sollen jedoch die
-mit der Option \Option{parskip} vorgegebenen Absatzeinstellungen beachtet
-werden, so bietet sich das Paket \Package{quoting} an, welches die gleichnamige
-Umgebung definiert und die Absätze wie im restlichen Dokument auszeichnet.
+die Umgebungen \Environment{quote}(\Package{koma-script}) und
+\Environment{quotation}(\Package{koma-script}) an. Allerdings verwenden beide
+fest eingestellte Absatzauszeichnungen. Sollen jedoch die mit der Option
+\Option{parskip}(\Package{koma-script}) vorgegebenen Einstellungen für Absätze
+beachtet werden, so bietet sich das Paket \Package{quoting} an, welches die
+gleichnamige Umgebung \Environment{quoting}(\Package{quoting}) definiert und
+die Absätze wie im restlichen Dokument auszeichnet.
%
\begin{Preamble}
\usepackage{quoting}
@@ -2156,17 +2583,17 @@ Umgebung definiert und die Absätze wie im restlichen Dokument auszeichnet.
Wirkung der Umgebung \texttt{quoting} bei der Absatzauszeichnung
deutlich.
- Wie man sieht, ist der zweite Absatz~-- wie jeder weitere~-- aufgrund
- der Einstellung \texttt{parskip=false} eingezogen.
+ Wie zu sehen ist, wird der zweite Absatz~-- wie jeder weitere~--
+ aufgrund der Option \texttt{parskip=false} eingezogen.
}
\cite[sinngemäß nach][\pno{} 12, zweiter Absatz]{hanisch14}
\end{quoting}
\end{Trunk*}
\begin{Trunk+}
Ebenfalls sollten sinngemäße Zitate mit einer möglichst genauen Referenz
-angegeben werden. Dies kann im Laufe der Arbeit acuh für einen selbst von
-Vorteil sein, wenn man beispielsweise die originale Textpassage noch
-einmal analysieren möchte.
+angegeben werden. Dies kann im Laufe der Arbeit auch für einen selbst von
+Vorteil sein, wenn beispielsweise die originale Textpassage noch einmal
+analysiert werden soll.
\end{Trunk+}
\begin{quoting}[rightmargin=0pt]
@@ -2174,7 +2601,6 @@ einmal analysieren möchte.
\let\markboth\@gobbletwo
\let\markright\@gobble
\makeatother
-\vspace*{-\baselineskipglue}
\printbibliography
\end{quoting}
\end{refsection}
@@ -2182,7 +2608,8 @@ einmal analysieren möchte.
\section{Worttrennungen}
-\label{sec:hyphenation}
+\label{sec:hyphenation}%
+%
Bei der Verwendung von \hologo{LaTeXe} gibt es ab und an das Problem, dass
bestimmte Wörter am Zeilenende falsch getrennt werden. Dies hat historische
Gründe. Als \hologo{TeX} in den 1980er-Jahren entwickelt wurde, war es aufgrund
@@ -2212,39 +2639,42 @@ Dokumentpräambel könnte folgendermaßen aussehen:
§\dots§
\end{Hint}
%
-Die Option \Option{ngerman} lädt dabei die Trennmuster für die neue deutsche
-Rechtschreibung, wobei der Wert \PValue{ngerman-x-latest} die neuesten aller
-verfügbaren Trennmuster lädt. Für die alte Orthografie ist stattdessen
-\Option{german}[german-x-lastest] zu verwenden.
+Die Option \Option{ngerman}(\Package{hyphsubst}) lädt dabei die Trennmuster für
+die neue deutsche Rechtschreibung, wobei der Wert \PValue{ngerman-x-latest} die
+neuesten aller verfügbaren Trennmuster lädt. Für die alte Orthografie ist
+stattdessen die Option \Option{german}(\Package{hyphsubst}) mit dem Wert
+\PValue{german-x-lastest} zu verwenden.
\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
-Kurzbefehle zur Verfügung. Außerdem lassen sich mit \Macro{hyphenation} für ein
-bestimmtes Wort alle potentiellen Trennstellen angeben. Im \TUDScript-Handbuch
-ist im Kapitel Tipps~\&~Tricks zum Thema \manualhyperref{sec:tips:hyphenation}{%
-Worttrennungen in deutschsprachigen Texten} mehr zu finden. Dort wird auch
-erläutert, wie das Problem der alleinigen Trennung von Wörtern mit Bindestrich
-an selbigem umgangen werden kann.
+Kurzbefehle zur Verfügung. Mit dem Makro \Macro{hyphenation} lassen sich für
+ein bestimmtes Wort außerdem alle potentiellen Trennstellen angeben. Zum Thema
+\tudhyperref{sec:tips:hyphenation}{Worttrennungen in deutschsprachigen Texten}
+ist im \TUDScript-Handbuch unter dem Kapitel Tipps~\&~Tricks mehr zu finden.
+Dort wird auch erläutert, wie das Problem der alleinigen Trennung von Wörtern
+mit Bindestrich an selbigem umgangen werden kann.
\subsection{Worttrennung im Flattersatz}
-Normalerweise ist bei \hologo{LaTeXe} die Worttrennung im Flattersatz%
-\footnote{\Macro{raggedright}, \Macro{raggedleft}, \Macro{center}} deaktiviert.
-Mit dem Paket \Package{ragged2e} kann diese hierfür aktiviert werden. Wird es
-geladen, stehen dem Anwender die Befehle \Macro{Centering}, \Macro{RaggedLeft}
-sowie \Macro{RaggedRight} zur Verfügung, um Worttrennungen im Flattersatz zu
-verwenden. Mit der Paketoption \Option{newcommands} können die originalen
-Befehle \Macro{centering}, \Macro{raggedleft} und \Macro{raggedright} mit der
-Definition der neuen überschrieben werden. Genaueres dazu ist der Dokumentation
-des Paketes zu entnehmen.
+Normalerweise ist bei \hologo{LaTeXe} die Worttrennung für den Flattersatz%
+\footnote{\Macro{raggedright}, \Macro{raggedleft}, \Macro{centering}}
+deaktiviert. Mit dem Paket \Package{ragged2e} kann diese aktiviert werden. Nach
+dem Laden stehen die Befehle \Macro{Centering}(\Package{ragged2e}),
+\Macro{RaggedLeft}(\Package{ragged2e}) sowie
+\Macro{RaggedRight}(\Package{ragged2e}) für den Anwender zur Verfügung, um
+Worttrennungen im Flattersatz zu verwenden. Die Option
+\Option{newcommands}(\Package{ragged2e}) überschreibt die originalen Befehle
+\Macro{centering}, \Macro{raggedleft} und \Macro{raggedright} mit den
+korrelierten Befehlen aus dem Paket. Genaueres dazu ist der Dokumentation des
+Paketes zu entnehmen.
\section{Mikrotypografische Feinheiten}
-Unter Mikrotypografie oder Detailtypografie versteht man die Gestaltung
-folgender Feinheiten des Schriftsatzes:
+Unter Mikrotypografie oder Detailtypografie wird die Gestaltung folgender
+Feinheiten des Schriftsatzes verstanden:
\begin{itemize}[noitemsep]
\item korrekte Anwendung der Satzzeichen
\item Schriftart, Kapitälchen und Ligaturen
@@ -2254,24 +2684,24 @@ folgender Feinheiten des Schriftsatzes:
\noindent Die letzten beiden Punkte werden sensationell gut durch das Paket
\Package{microtype} bearbeitet. Dieses muss lediglich in der Präambel geladen
-werden, wobei es nicht mit der klassischen \hologo{TeX}-Engine, wohl jedoch mit
-\hologo{pdfTeX} als auch \hologo{LuaTeX} sowie \hologo{XeTeX} funktioniert.
+werden, wobei es nicht mit der klassischen \hologo{TeX}"~Engine, wohl jedoch
+mit \Engine{pdfTeX} als auch \Engine{LuaTeX} sowie \Engine{XeTeX} funktioniert.
%
\begin{Preamble}
\usepackage[babel]{microtype}
\end{Preamble}
%
-Die Option \Option{babel} ist nur notwendig, wenn einzelne Textpassagen oder
-das gesamte Dokument in Englisch oder Französisch verfasst werden und hierfür
-die genutzte Sprache mit den entsprechenden Möglichkeiten von \Package{babel}
-eingestellt wird.
+Die Option \Option{babel}(\Package{microtype}) ist nur notwendig, wenn einzelne
+Textpassagen oder das gesamte Dokument in Englisch oder Französisch verfasst
+werden und hierfür die genutzte Sprache mit den entsprechenden Möglichkeiten
+von \Package{babel} eingestellt wird.
Das korrekte Anwenden von Satzzeichen wird für deutschsprachige Texte bereits
in mehreren Artikeln \cite{neubauer1996,neubauer1997,struckmann2007,bier2009}
sehr gut erläutert, weshalb ein Hinweis auf diese Arbeiten für weitergehende
Informationen zu dieser Thematik absolut ausreichend ist. Nachfolgend werden
-Tipps gegeben sowie einige \hologo{LaTeXe}-Pakete vorgestellt, die bei der
+Tipps gegeben sowie einige \hologo{LaTeXe}"=Pakete vorgestellt, die bei der
Umsetzung der in den genannten Artikeln erläuterten Empfehlungen helfen.
@@ -2279,7 +2709,7 @@ Umsetzung der in den genannten Artikeln erläuterten Empfehlungen helfen.
In \cite{struckmann2007} wird gleich zu Beginn darauf hingewiesen, wie häufig
verwendete Abkürzungen sehr einfach im Dokument verwendet werden können und
dabei typografisch richtig gesetzt werden. Beispielsweise gelingt dies für die
-Abkürzung \enquote{zum~Beispiel~(z.\,B.)} mit der nachfolgenden Definition:
+Abkürzung \enquote{zum~Beispiel~(z.\,B.)} mit dieser Definition:
%
\begin{Hint}
\newcommand{\zB}{\mbox{z.\,B.}\xspace}
@@ -2287,18 +2717,19 @@ Abkürzung \enquote{zum~Beispiel~(z.\,B.)} mit der nachfolgenden Definition:
%
Wenn ohnehin das Paket \Package{glossaries} für Akronyme verwendet wird, kann
alternativ dazu auch dessen Funktionalität genutzt werden. Nach dem Einbinden
-braucht man in der Präambel lediglich Folgendes einfügen:
+muss in der Präambel lediglich Folgendes eingefügt werden:
%
\begin{Hint}
\newignoredglossary{abbreviation}
- \newcommand*\newabbreviation[4][]{%
+ \newcommand*{\newabbreviation}[4][]{%
\newacronym[type=abbreviation,#1]{#2}{\mbox{#3\xspace}}{#4}%
}%
\end{Hint}
%
-Mit \Macro{newignoredglossary} wird dabei ein Glossar erstellt, welche bei der
-Ausgabe aller Glossare mit \Macro{printglossaries} ignoriert wird. Im Dokument
-kann die gewünschte Abkürzung mit
+Mit \Macro{newignoredglossary}(\Package{glossaries}) wird dabei ein Glossar
+erstellt, welche bei der Ausgabe aller Glossare mit
+\Macro{printglossaries}(\Package{glossaries}) ignoriert wird. Im Dokument kann
+die gewünschte Abkürzung mit
%
\begin{Hint*}
\newabbreviation{zB}{z.\,B.}{zum Beispiel}
@@ -2308,10 +2739,10 @@ definiert und über die gewohnten Befehlen aus \Package{glossaries} verwendet
werden.
%
\begin{Hint*}
-Die Ausgabe der eben definierten Abkürzung erfolgt \acrshort{zB} mit dem
-Befehl \texttt{\textbackslash acrshort}. Wurde \texttt{glossaries} mit
-der Option \texttt{shortcut} geladen, kann alternativ auch das kürzere
-Makro \texttt{\textbackslash acs} genutzt werden.
+Die Ausgabe der soeben definierten Abkürzung \enquote{\acrshort{zB}}
+erfolgt mit dem Befehl \texttt{\textbackslash acrshort}. Wurde das
+Paket \texttt{glossaries} mit der Option \texttt{shortcut} geladen,
+kann auch das Makro \texttt{\textbackslash acs} genutzt werden.
\end{Hint*}
@@ -2327,27 +2758,28 @@ 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 den De-facto-Standard für den mathematischen
-Satz mit \hologo{LaTeXe} dar. Allerdings wird es~-- insbesondere aus diesem
-Grund~-- nur sehr \enquote{vorsichtig} weiterentwickelt. Für das Setzen neuer
-Dokumente sollte deswegen das Paket \Package{mathtools} verwendet werden,
-welches zwar auf \Package{amsmath} basiert, dieses jedoch um zusätzliche
-Funktionalitäten ergänzt und Bugfixes bereithält.
+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
-\manualhyperref{sec:tips:siunitx}{Setzen von Einheiten mit \Package{siunitx}}
-im \TUDScript-Handbuch zu beachten. Das Paket \Package{units} ist nicht ganz so
+\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} zur Verfügung.
+stellt das Paket \Package{xfrac} den Befehl \Macro{sfrac}(\Package{xfrac}) zur
+Verfügung.
%
\begin{Preamble}
\usepackage{xfrac}
@@ -2356,26 +2788,29 @@ stellt das Paket \Package{xfrac} den Befehl \Macro{sfrac} zur Verfügung.
\subsection{Ligaturen}
-Die meisten \hologo{LaTeX}-Schriftfamilien enthalten Ligaturen, die für einen
+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 \href{http://www.ctan.org/pkg/delig}{\Application{DeLig}} kann dies
-automatisiert geschehen. Wird \hologo{LuaLaTeX} als Dokumentprozessor genutzt,
-kann alternativ für dieses Unterfangen das Paket \Package{selnolig} verwendet
-werden.
+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}
+\label{sec:lists}%
+%
Für Auflistungen aller Art bietet \hologo{LaTeX} die drei Standardumgebungen
-\Environment{iteimze}, \Environment{enumerate} und \Environment{description}.
-Das häufigste Anliegen bei der Verwendung dieser Umgebungen ist das Reduzieren
-der Abstände zwischen den einzelnen, mit \Macro{item} gesetzten Punkten, welche
-sehr häufig als zu groß empfunden werden. Eine Aufzählung erscheint ohne
-weitere Anpassungen normalerweise so:
+\Environment{itemize}(\Package{koma-script},\Package{enumitem}),
+\Environment{enumerate}(\Package{koma-script},\Package{enumitem}) und
+\Environment{description}(\Package{koma-script},\Package{enumitem}). Das
+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:
%
\CodePreamble{%
- Aufzählung mit einer \Environment{itemize}-Umgebung und Standardabständen:%
+ Aufzählung mit einer \Environment*{itemize}"=Umgebung und Standardabständen:%
}
\begin{Hint*}
\begin{itemize}
@@ -2385,18 +2820,19 @@ weitere Anpassungen normalerweise so:
\end{itemize}
\end{Hint*}
%
-Dabei wirken die Abstände zwischen den einzelnen Punkten tatsächlich etwas
-überdimensioniert. Mit dem Paket \Package{enumitem} können die Umgebungen für
-Auflistungen einfach an die individuellen Bedürfnisse angepasst werden.
+Dabei wirken die Abstände zwischen den Punkten tatsächlich etwas
+überdimensioniert. Mit \Package{enumitem} können alle Listenumgebungen an die
+individuellen Bedürfnisse angepasst werden.
%
\begin{Preamble}
\usepackage{enumitem}
\end{Preamble}
+%
Um diese ungewollten Abstände zwischen den Listenpunkten zu entfernen, kann der
-Schlüssel \Option{noitemsep} verwendet werden. Mit dem Befehl \Macro{setlist}
-werden~-- ohne zusätzliche Angaben im optionalen Argument~-- alle Umgebungen
-für Aufzählungen global geändert. Hier soll dies lediglich für die Umgebung
-\Environment{itemize} geschehen:
+Schlüssel \Option{noitemsep}(\Package{enumitem}) verwendet werden. Mit dem
+Befehl \Macro{setlist}(\Package{enumitem}) werden~-- ohne zusätzliche Angaben
+im optionalen Argument~-- alle Umgebungen für Aufzählungen global geändert.
+Hier soll dies lediglich für die Umgebung \Environment*{itemize} geschehen:
\begin{Preamble*}
\setlist[itemize]{noitemsep}
@@ -2405,7 +2841,8 @@ für Aufzählungen global geändert. Hier soll dies lediglich für die Umgebung
Das Ergebnis stellt sich folgendermaßen dar:
%
\CodePreamble{%
- Aufzählung mit einer \Environment{itemize}-Umgebung ohne vertikale Abstände:%
+ Aufzählung mit einer \Environment*{itemize}"=Umgebung ohne vertikale
+ Abstände:%
}
\begin{Hint*}
\begin{itemize}
@@ -2421,17 +2858,20 @@ kann der Schlüssel \PValue{noitemsep} auch nur gezielt an einzelne Umgebung
über das optionale Argument weitergereicht werden.
Natürlich erlaubt das Paket noch weitergehende Einstellungen für die Umgebungen
-\Environment{itemize}, \Environment{enumerate} und \Environment{description}.
+\Environment{itemize}(\Package{koma-script},\Package{enumitem}),
+\Environment{enumerate}(\Package{koma-script},\Package{enumitem}) und
+\Environment{description}(\Package{koma-script},\Package{enumitem}).
Zusätzlich können diese für eigene Aufzählungsumgebungen geklont und den
eigenen Bedürfnissen angepasst werden. Genaueres hierzu ist der Dokumentation
des Paketes \Package{enumitem} entnehmen.
\subsection{Datumsformatierung}
-Das Paket \Package{isodate} stellt den Befehl \Macro{printdate} bereit, welcher
-für die Formatierung von Datumsangaben verwendet werden kann. Wird das Paket
-mit einer der \TUDScript-Dokumentklassen geladen, wird der genannte Befehl
-automatisch für alle bereitgestellten Datumsfelder verwendet.
+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}
@@ -2441,8 +2881,8 @@ automatisch für alle bereitgestellten Datumsfelder verwendet.
\subsection{Auslassungspunkte}
Das typografisch richtige Setzen von Auslassungspunkten mit den Befehlen
-\Macro{dots} repsektive \Macro{textellipsis} wird im Handbuch unter
-\manualhyperref{sec:tips:dots}{Das Setzen von Auslassungspunkten} genauer
+\Macro{dots} respektive \Macro{textellipsis} wird im Handbuch unter
+\tudhyperref{sec:tips:dots}{Das Setzen von Auslassungspunkten} genauer
beschrieben, weshalb hier nur kurz darauf eingegangen wird. Es wird das Paket
\Package{ellipsis} benötigt.
%
@@ -2462,25 +2902,27 @@ ausgeführt werden.
\section{Erstellen von Abbildungen}
-\label{sec:figures}
+\label{sec:figures}%
+%
Die einfachste Möglichkeit, in einer wissenschaftlichen Abhandlung Grafiken zu
verwenden, ist sicherlich das Einbinden von externen Abbildungen mit dem Befehl
-\Macro{includegraphics}. Allerdings ist für eine wissenschaftliche Arbeit in
-höchster Qualität meiner Meinung nach das bloße Einfügen einer gescannten oder
-heruntergeladenen Grafik unzureichend. Vielmehr sollte diese zum einen als
-skalierbare Vektorgrafik vorliegen, um sowohl die höchste Druckqualität als
-auch die Wiederverwendbarkeit sicherzustellen, und zum anderen in ihrer
-Gestaltung dem verwendeten Layout des verfassten Dokumentes entsprechen. Dies
-betrifft sowohl die eingesetzten Farben und Schriften als auch die Stärke der
-verwendeten Linien.
+\Macro{includegraphics}(\Package{graphicx}) aus dem Paket \Package{graphicx}.
+Allerdings ist für eine wissenschaftliche Arbeit in höchster Qualität meiner
+Meinung nach das bloße Einfügen einer gescannten oder heruntergeladenen Grafik
+unzureichend. Vielmehr sollte diese zum einen als skalierbare Vektorgrafik
+vorliegen, um sowohl die höchste Druckqualität als auch die
+Wiederverwendbarkeit sicherzustellen, und zum anderen in ihrer Gestaltung dem
+verwendeten Layout des verfassten Dokumentes entsprechen. Dies betrifft sowohl
+die eingesetzten Farben und Schriften als auch die Stärke der verwendeten
+Linien.
Zum Zeichnen von Grafiken sind die freien Programme \Application{LaTeXDraw} und
besonders \Application{Inkscape} empfehlenswert, da diese die Verwendung der
Dokumentschriften innerhalb der erstellten Grafiken ermöglichen. Im Handbuch zu
-\TUDScript wird dies für \manualhyperref{sec:tips:svg}{\Application{Inkscape}}
+\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
+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
@@ -2488,9 +2930,9 @@ und Erläuterungen im Internet.
\subsection{Das Paket \Package{tikz}}
-Zur Verwendung von \Package{tikz}(pgf) ist nicht viel zu sagen. Einfach in der
+Zur Verwendung von \Package{tikz}<pgf> ist nicht viel zu sagen. Einfach in der
Dokumentpräambel einbinden und es kann losgehen. Für das nachfolgende Beispiel
-sind außerdem noch zwei weitere Programmbibliotheken für \Package{tikz}(pgf)
+sind außerdem noch zwei weitere Programmbibliotheken für \Package{tikz}<pgf>
notwendig.
%
\begin{Hint}
@@ -2501,7 +2943,7 @@ notwendig.
\end{Hint}
%
Ein kurze Anmerkungen zur Skalierung der Grafiken möchte ich mir erlauben.
-Normalerweise verwendet \Package{tikz}(pgf) Koordinaten im Zentimeter"=Raster.
+Normalerweise verwendet \Package{tikz}<pgf> Koordinaten im Zentimeter"=Raster.
Ich persönlich bevorzuge der relativierte Skalierung auf die Textbreite des
Dokumentes, wobei eine Einheit genau \SI{1}{\percent} dieser entspricht. Das
kann mit folgendem Quelltext erreicht werden:
@@ -2546,7 +2988,7 @@ erstellt. Das Ergebnis ist in \autoref{fig:tikz} zu sehen.
postaction={decorate},
shorten >=0.7pt
]
- \newcommand\tikzparbox[2][9]{%
+ \newcommand{\tikzparbox}[2][9]{%
\parbox{#1\tikzunit}{\centering\hspace{0pt}#2}%
}
\begin{scope}[start chain]
@@ -2607,27 +3049,27 @@ erstellt. Das Ergebnis ist in \autoref{fig:tikz} zu sehen.
\caption{Eine mit TikZ erstellte Grafik}\label{fig:tikz}
\end{figure}
\end{Hint?}
-%\InputCode
+
\subsection{Das Paket \Package{pstricks}}
-Die zuvor mit \Package{tikz}(pgf) erstellte Grafik wird nachfolgend mit dem
+Die zuvor mit \Package{tikz}<pgf> erstellte Grafik wird nachfolgend mit dem
Paket \Package{pstricks} erstellt. Mit diesem lassen sich PostScript"=Grafiken
-erstellen. Ähnlich wie bei \Package{tikz}(pgf) gibt es ein Kernpaket und
+erstellen. Ähnlich wie bei \Package{tikz}<pgf> gibt es ein Kernpaket und
zusätzliche Ergänzungen. Diese werden jedoch nicht als Programmbibliotheken
sondern ganz normal als \hologo{LaTeX}"=Pakete eingebunden.
%
\begin{Hint}
-\usepackage{pstricks}
-\usepackage{pst-node}
+\usepackage{pstricks,pst-node}
\end{Hint}
%
Die Verwendung von PostScript hat zahlreiche Vorteile, macht die direkte
-Nutzung von \hologo{pdfLaTeX} etwas schwierig. Das Paket \Package{auto-pst-pdf}
-schafft hier jedoch Abhilfe. Wird \hologo{pdfLaTeX} über die zusätzliche Option
-\Option{--shell-escape} respektive \Option{--enable-write18} mit erweiterten
-Schreibrechten aufgerufen, so werden die Abbildungen automatisch im PDF-Format
-erzeugt und eingebunden.
+Nutzung von \Engine{pdfLaTeX} etwas schwierig. Das Paket \Package{auto-pst-pdf}
+schafft hier jedoch Abhilfe. Wird das Textsatzsystem \Engine{pdfLaTeX} über die
+zusätzliche Option \Option{-{}-shell-escape}(\Engine{pdfLaTeX}) beziehungsweise
+\Option{-{}-enable-write18}(\Engine{pdfLaTeX}) mit erweiterten Schreibrechten
+aufgerufen, so werden die Abbildungen automatisch im PDF-Format erzeugt und
+eingebunden.
%
\begin{Hint}
\usepackage{auto-pst-pdf}
@@ -2635,13 +3077,14 @@ erzeugt und eingebunden.
%
Bei einigen Pakete kommt es in der Kombination mit \Package{auto-pst-pdf} zu
kleineren Problemen, die sich jedoch meist relativ leicht beheben lassen. Im
-Handbuch wird die \manualhyperref{sec:tips:floatrow}{gleichzeitige Verwendung}
-von \Package{auto-pst-pdf} in Kombination mit den Paketen \Package{tikz}(pgf),
+Handbuch wird die \tudhyperref{sec:tips:auto-pst-pdf}{gleichzeitige Verwendung}
+von \Package{auto-pst-pdf} in Kombination mit den Paketen \Package{tikz}<pgf>,
\Package{todonotes} sowie \Package{floatrow}~-- bei der Nutzung des Befehls
-\Macro{ffigbox}~-- erklärt. Diese Hinweise sollten Sie gegebenenfalls beachten.
+\Macro{ffigbox}(\Package{floatrow})~-- erklärt. Diese Hinweise sollten Sie
+gegebenenfalls beachten.
-Ähnlich wie zuvor bei der \Package{tikz}(pgf)-Grafik wird die nachfolgende
-\Package{pstricks}-Abbildung auf die Textbreite des Dokumentes skaliert, wobei
+Ähnlich wie zuvor bei der \Package{tikz}<pgf>-Grafik wird die nachfolgende
+\Package{pstricks}"=Abbildung auf die Textbreite des Dokumentes skaliert, wobei
eine Einheit genau \SI{1}{\percent} dieser entspricht. Außerdem werden noch ein
paar weitere Einstellungen gemacht. Dies geschieht mit:
%
@@ -2655,18 +3098,18 @@ paar weitere Einstellungen gemacht. Dies geschieht mit:
}
\end{Hint*}
%
-Die innerhalb einer Gleitumgebung erzeugte \Package{pstricks}-Grafik ist in
+Die innerhalb einer Gleitumgebung erzeugte \Package{pstricks}"=Grafik ist in
\autoref{fig:pstricks} dargestellt.
%
\begin{Hint?}
\begin{figure}
\begin{pspicture}(0,-2)(100,64)
-\newcommand\fnodetext{}
+\newcommand{\fnodetext}{}
\def\fnodetext(#1)#2#3{%
\fnode[framesize=18 8](#1){#2}%
\rput(#1){\parbox{17\psunit}{\centering\hspace{0pt}#3}}%
}
-\newcommand\scriptbox[2][24]{%
+\newcommand{\scriptbox}[2][24]{%
\parbox{#1\psunit}{\scriptsize\centering\hspace{0pt}#2}%
}
\rput(15,10){%
@@ -2725,9 +3168,8 @@ Die innerhalb einer Gleitumgebung erzeugte \Package{pstricks}-Grafik ist in
Damit \enquote{programmierte} Grafiken zum einen das Dokument respektive dessen
Struktur nicht unnötig unübersichtlich machen und zum anderen nur nach einer
Änderung abermals kompiliert werden, um die Kompilierungsdauer möglichst gering
-zu halten, ist es ratsam, diese in separate Dateien auszulagern. Hierfür bieten
-sich die beiden Pakete \Package*{subfiles} und \Package*{standalone} an, welche
-im Handbuch erläutert werden.
+zu halten, können diese in separate Dateien ausgelagert werden. Hierfür bieten
+sich die Pakete \Package{subfiles}'manual' und \Package{standalone}'manual' an.
@@ -2759,8 +3201,9 @@ Paket in der Präambel mitgeteilt werden:
%
Nachdem nun die Grundeinstellungen erfolgt sind, kann ein eigener Stil für eine
gewünschte Programmiersprache definiert werden. Im folgenden Beispiel wird dies
-für ein MATLAB"~Skript demonstriert. Als erstes wird \Macro{lstdefinestyle} ein
-eigener \Package{listings}"~Stil erstellt:
+für ein MATLAB"~Skript demonstriert. Als erstes wird mit dem Befehl
+\Macro{lstdefinestyle}(\Package{listings}) ein eigener \Package{listings}"~Stil
+erstellt:
%
\begin{Hint*}
\lstdefinestyle{matlab}{%
@@ -2783,15 +3226,23 @@ Stil lässt sich anschließend folgendermaßen verwenden.
\end{lstlisting}
\end{Hint}
%
-Soll innerhalb eines Quelltextauszuges ein Teil als \hologo{LaTeX}"~Code
-interpretiert werden, lässt sich mit \PValue{escapechar} ein Escape-Zeichen
-definieren. Mit \Macro{lstnewenvironment} ist es außerdem möglich, eine eigene
-\Package{listings}-Umgebung zu definieren. Das Einbinden externer Quelldateien
-in das Dokument ist über
-\Macro{lstinputlisting}\OParameter{Schlüssel-Wert-Liste}\Parameter{Dateiname}
+Soll innerhalb eines Quelltextauszuges ein Abschnitt nicht ausgegeben sondern
+als \hologo{LaTeX}"~Code interpretiert und ausgeführt werden, lässt sich mit
+\Macro{lstset}[%
+ \PParameter{\PValue{escapechar=\PName{Zeichen}}}%
+](\Package{listings}) ein spezielles Escape-Zeichen definieren. Alle innerhalb
+einer \Package{listings}"=Umgebung zwischen zwei Escape-Zeichen eingefügten
+Angaben in der Form \PName{Zeichen}\PValue{\dots}\PName{Zeichen} werden als
+\hologo{LaTeX}"~Code gelesen und ausgeführt. Außerdem ist es mit dem Befehl
+\Macro{lstnewenvironment}(\Package{listings}) möglich, eine individuelle
+\Package{listings}"=Umgebung zu definieren.
+
+Das Einbinden und Darstellen von externen Quelldateien in ein Dokument ist über
+den Befehl
+\Macro{lstinputlisting}[\LParameter\Parameter{Dateiname}](\Package{listings})
möglich, wobei dabei im optionalen Argument ebenfalls der definierte Stil
angegeben werden sollte. Es folgt die Ausgabe eines kurzen Beispiels mit dem
-zuvor definierten Stil \PValue{matlab}.
+zuvor definierten Stil~\PValue{matlab}.
%
\begin{lstlisting}[style=matlab]
function perfect = isperfect(test_value)
@@ -2814,7 +3265,7 @@ function perfect = isperfect(test_value)
tempsum = 0;
% we check all possible divisors
- for (divisor = 1 : test_value - 1)
+ for (divisor = 1 : test_value - 1)
div_result = test_value / divisor;
if (div_result == floor(div_result))
@@ -2838,12 +3289,12 @@ end
\section{Und ganz zum Schluss \dots}
Mit Sicherheit werden Sie im Laufe der Zeit auf die eine oder andere Frage zu
\hologo{LaTeXe} stoßen, die in diesem Tutorial nicht behandelt wurde. Sollten
-Sie an diesen Punkt gelangen, so empfehle ich als erstes einen Blick in die
-Kapitel \manualhyperref{sec:packages}{Unerlässliche und beachtenswerte Pakete}
-sowie \manualhyperref{sec:tips}{Praktische Tipps \& Tricks} im Handbuch zu
+Sie an diesen Punkt gelangen, so empfehle zunächst einen Blick in die Kapitel
+\tudhyperref{sec:packages}{Benötigte, unterstützte und empfehlenswerte Pakete}
+sowie \tudhyperref{sec:tips}{Praktische Tipps \& Tricks} im Handbuch zu
\TUDScript. Sollte Ihre Frage trotzdem unbeantwortet bleiben, so wäre der
-Besuch eines \hologo{LaTeX}-Forums der nächste Schritt. Für allgemeine Anfragen
-kann ich unter anderem folgende Foren empfehlen:
+Besuch eines \hologo{LaTeX}"=Forums der nächste Schritt. Für allgemeine
+Anfragen kann ich unter anderem folgende Foren empfehlen:
%
\begin{itemize}
\item \hrfn{http://mrunix.de/forums/forumdisplay.php?38-LaTeX-Forum}{mrunix}
@@ -2856,7 +3307,7 @@ Insbesondere alle \TUDScript betreffende Fragen sollten natürlich direkt im
dazugehörigen \Forum gestellt werden.
\begin{Trunk+}
-\printbibliography[heading=bibintoc]\label{sec:bibliography}
+\printbibliography[heading=bibintoc]\label{sec:bibliography}%
\end{Trunk+}
\printbibliography[heading=bibintoc]
@@ -2867,25 +3318,27 @@ 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.
+Umgebungen und Befehle ein Index erstellt. Bei Elementen, die weder \TUDScript
+noch \KOMAScript zuzuordnen sind, wird das dazugehörige Paket mit angeführt.
\PrintIndex
\FinishTutorial[%
Um das im kopierten Beispiel erstellte Literaturverzeichnis in das Dokument
einbinden zu können, bedarf es dem einmaligen Aufruf von \Application{biber}
- nach dem ersten Durchlauf von \hologo{pdfLaTeX}. Dies erfolgt mit dem Aufruf
- \PValue{biber}~\PName{Dateiname}. Danach ist ein weiteres mal die Verwendung
- von \PValue{pdflatex}~\PName{Dateiname} notwendig.
-
- Für das Erstellen von Abkürzungs- und Symbolverzeichnis sollte das mehrmalige
- Ausführen von \PValue{pdflatex}~\PName{Dateiname} vollkommen ausreichen. In
- diesem Fall werden die Einträge mit \Application{makeindex} sortiert. Soll
- stattdessen \Application{xindy} die Sortierung durchführen, muss beim Laden
- von \Package{glossaries} die entsprechende Paketoption aktiviert werden. Für
- diesen Fall sollte nach der Verwendung von \hologo{pdfLaTeX} der Aufruf des
- Perl"=Skriptes \PValue{makeglossaries}~\PName{Dateiname} erfolgen, was
- allerdings nur mit \Distribution{\hologo{TeX}~Live} ohne weiteres Zutun
- möglich ist. Nutzer von \Distribution{\hologo{MiKTeX}} müssen das Sortieren
- mit \Application{xindy} händisch anstoßen.
+ frühestens nach dem ersten Durchlauf von \Engine{pdfLaTeX}. Dies erfolgt mit
+ dem Aufruf \Path{biber }\PName{Dateiname}. Für das Erzeugen von Abkürzungs-
+ und Symbolverzeichnis ist das Ausführen des Perl"=Skriptes
+ \Path{makeglossaries }\PName{Dateiname} ausreichend. Danach ist ein weiteres
+ mal die Verwendung von \Path{pdflatex }\PName{Dateiname} notwendig, um die
+ Verzeichnisse in das Dokument einzubinden. Gegebenenfalls ist für korrekte
+ Seitenangaben in Abkürzungs- und Symbolverzeichnis ein abermaliges Ausführen
+ des Skriptes notwendig.
+ \Attention{%
+ Nutzer von \Distribution{\hologo{MiKTeX}} müssen für die Verwendung des
+ Perl-Skriptes \File{makeglossaries}(\Package{glossaries}) unter Umständen
+ einen separaten Perl"=Interpreter installieren. In \autoref{sec:glossaries}
+ ist dazu mehr zu finden.%
+ }%
]
+\ListOfToDo
\end{document}
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-area.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-area.dtx
new file mode 100644
index 00000000000..ecf888c4e2e
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-area.dtx
@@ -0,0 +1,2120 @@
+% \CheckSum{2198}
+% \iffalse meta-comment
+%
+% ============================================================================
+%
+% TUD-KOMA-Script
+% Copyright (c) Falk Hanisch <tudscr@gmail.com>, 2012-2016
+%
+% ============================================================================
+%
+% 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 veraendert werden. Die aktuelle
+% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
+% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
+% oder spaeter 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-area.dtx
+%<*driver>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\ProvidesFile{tudscr-area.dtx}[%
+ 2016/07/26 v2.05 TUD-KOMA-Script (type or page area)%
+]
+\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
+\documentclass[english,ngerman,xindy]{tudscrdoc}
+\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
+\usepackage[T1]{fontenc}
+\usepackage{babel}
+\usepackage{tudscrfonts} % only load this package, if the fonts are installed
+\KOMAoptions{parskip=half-}
+\usepackage{microtype}
+\usepackage{bookmark}
+\CodelineIndex
+\RecordChanges
+\GetFileInfo{tudscr-area.dtx}
+\begin{document}
+ \maketitle
+ \DocInput{\filename}
+\end{document}
+%</driver>
+% \fi
+%
+% \selectlanguage{ngerman}
+%
+% \changes{v2.02}{2014/06/23}{Paket \pkg{titlepage} nicht weiter unterstützt}^^A
+% \changes{v2.02}{2014/07/08}{\cs{FamilyKeyState} wird von Optionen genutzt}^^A
+% \changes{v2.05}{2015/07/06}{Seitenstil für Poster}^^A
+%
+% \section{Der Satzspiegel für \TUDScript}
+%
+% Das \CD verlangt (eigentlich) einen fest vorgegebenen Satzspiegel. Für das
+% Setzen längerer wissenschaftlicher Abhandlungen ist dieser jedoch alles
+% 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]
+%
+% \StopEventually{\PrintIndex\PrintChanges\PrintToDos}
+%
+% \subsection{Definition der konstanten Größen und Maße}
+%
+% Die Vorlagen sollen neben den vom \CD vorgegebenen Seitenrändern weitere
+% Layouts ermöglichen und u.\,a. auch die Nutzung des Paketes \pkg{typearea}
+% erlauben. Damit ein einheitliches Verfahren zur Wahl bzw. Umschaltung des
+% Satzspiegels genutzt werden kann, wird das Paket \pkg{geometry} genutzt.
+% Dabei werden entweder die gewünschten Maße der Seitenränder direkt gewählt
+% oder aber die mit \pkg{typearea} berechneten Maße an \pkg{geometry}
+% durchgereicht.
+%
+% \iffalse
+%<*class&body>
+% \fi
+%
+% \begin{length}{\tud@len@widemargin}
+% \begin{length}{\tud@len@slimmargin}
+% \begin{length}{\tud@len@both}
+% Die Seitenränder für links und rechts sowie deren Summe, welche später für
+% weitere Satzspiegeleinstelungen dazu verwendet wird, diese anteilig zu
+% verteilen.
+% \begin{macrocode}
+\newlength\tud@len@widemargin
+\newlength\tud@len@slimmargin
+\newlength\tud@len@both
+% \end{macrocode}
+% \end{length}^^A \tud@len@both
+% \end{length}^^A \tud@len@slimmargin
+% \end{length}^^A \tud@len@widemargin
+% \begin{length}{\tud@len@topmargin}
+% \begin{length}{\tud@len@barheight}
+% \begin{length}{\tud@len@headsep}
+% \begin{length}{\tud@len@footsep}
+% Es folgen die speziellen Maße für die Seiten mit dem TUD-Kopf, also die Höhe
+% oberhalb des Querbalkens, die Höhe des Querbalkens selbst sowie der vertikale
+% (Mindest"~)Abstand zwischen Querbalken und Textkörper sowie der Fußzeile.
+% \begin{macrocode}
+\newlength\tud@len@topmargin
+\newlength\tud@len@barheight
+\newlength\tud@len@headsep
+\newlength\tud@len@footsep
+% \end{macrocode}
+% \end{length}^^A \tud@len@footsep
+% \end{length}^^A \tud@len@headsep
+% \end{length}^^A \tud@len@barheight
+% \end{length}^^A \tud@len@topmargin
+% \begin{length}{\tud@len@logox}
+% \begin{length}{\tud@len@logoy}
+% \begin{length}{\tud@len@logowidth}
+% Außerdem müssen noch die Abmessungen und die Position des TUD-Logos definiert
+% werden, nämlich der horizontale (Soll"~)Abstand zwischen linkem Seitenrand
+% und Logo, der vertikale (Soll"~)Abstand zwischen oberem Seitenrand und Logo
+% sowie die Breite und Höhe\footnote{Proportionen sind durch die Grafik
+% vorgegeben} des Logos.
+% \begin{macrocode}
+\newlength\tud@len@logox
+\newlength\tud@len@logoy
+\newlength\tud@len@logowidth
+% \end{macrocode}
+% \end{length}^^A \tud@len@logowidth
+% \end{length}^^A \tud@len@logoy
+% \end{length}^^A \tud@len@logox
+% \begin{length}{\tud@len@line}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% \begin{length}{\tud@len@heavyline}
+% \begin{length}{\tud@len@thinline}
+% Die Linienstärke der Outline im Kopf ist für ein monochromes Layout schmaler
+% als im Layout mit farbigem Hintergrund.\footnote{%
+% monochrom \cs{tud@len@thinline}, koloriert \cs{tud@len@heavyline}}%
+% Da im Dokument beide Varianten vorkommen können, wird die Breite
+% \cs{tud@len@line} durch den Seitenstil situativ entweder auf den Wert von
+% \cs{tud@len@thinline} oder aber \cs{tud@len@heavyline} gesetzt.
+% \begin{macrocode}
+\newlength\tud@len@line
+\newlength\tud@len@heavyline
+\newlength\tud@len@thinline
+% \end{macrocode}
+% \end{length}^^A \tud@len@thinline
+% \end{length}^^A \tud@len@heavyline
+% \end{length}^^A \tud@len@line
+% \begin{length}{\tud@len@areaheadvskip}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% \begin{length}{\tud@len@areadiff}
+% \begin{length}{\tud@len@areavskip}
+% Die Längen für den vertikalen Standardversatz der Überschriften sowie die
+% Differenz der Kopfhöhen von normalem und TUD-Kopf-Satzspiegel. Die Differenz
+% zwischen den unterschiedlichen Kopfhöhen der Satzspiegelvarianten wird durch
+% \cs{tud@cdgeometry@@process} berechnet und dabei in \cs{tud@len@areadiff}
+% gespeichert. Dabei muss unterschieden werden, ober der Satzspiegel des \CDs
+% oder der durch \pkg{typearea} berechnete respektive durch den Anwender mit
+% \pkg{geometry} vorgegebene genutzt wird. Davon abhängig wird zum Ausgleich
+% die Länge \cs{tud@len@areavskip} definiert.
+% \begin{macrocode}
+\newlength\tud@len@areaheadvskip
+\newlength\tud@len@areadiff
+\newlength\tud@len@areavskip
+% \end{macrocode}
+% \end{length}^^A \tud@len@areavskip
+% \end{length}^^A \tud@len@areadiff
+% \end{length}^^A \tud@len@areaheadvskip
+% \begin{length}{\tud@len@ddcdiff}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% Zu guter Letzt noch die Länge \cs{tud@len@ddcdiff} für den Höhenausgleich des
+% Seitenfußes, welcher bei der Verwendung des \DDC-Logos in der Fußzeile bei
+% Version~v2.02 für den Satzspiegel notwendig war. Dieser etwas verschrobene
+% Satzspiegel wird im Kompatibilitätsmodus weiterhin angeboten.
+% \begin{macrocode}
+\tud@if@v@lower{2.03}{\newlength\tud@len@ddcdiff}{}
+% \end{macrocode}
+% \end{length}^^A \tud@len@ddcdiff
+% \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
+% \changes{v2.05}{2015/07/15}{Fallunterscheidung an DIN-B-Reihe angepasst}^^A
+% \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{length}{\tud@len@layoutwidth}
+% \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}
+% \changes{v2.05}{2016/04/03}{neu}^^A
+% Hiermit werden in Abhängigkeit der gewählten Papiergröße die Maße für die
+% Größe der Kopfzeile, die Position des Logos, die Seitenränder sowie die
+% Schriftgröße in der Kopfzeile definiert. Aufgerufen wird der Befehl durch
+% \cs{tud@cdgeometry@@process}. Dabei fungiert \cs{tud@len@widemargin} als
+% Bezugslänge. Die maßgebliche Papiergröße ist DIN~A4 bzw. DIN~B4. Die Längen
+% für alle anderen Papiermaße unterscheiden sich um den Faktor~$\sqrt{2}$,
+% wobei das Format DIN~A5 nach den Vorgaben des \CDs übersprungen wird.
+%
+% Um die Überschriften und den Satzspiegel auch in diesem Fall vertikal richtig
+% zu positionieren, wird der Schalter \cs{if@tud@cdgeometry@adjust} benötigt.
+% Mit dem Wert \val{adapted} für \opt{cdgeometry} wird auch das Format 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@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}%
+ \setlength\tud@len@layoutwidth{\paperwidth}%
+ \fi%
+ \setlength\tud@len@layouthoffset{\Gm@layouthoffset}%
+ \setlength\tud@len@layoutvoffset{\Gm@layoutvoffset}%
+ \tud@if@v@lower{2.05}{%
+ \ifdim\tud@len@layoutheight<\dimexpr105mm+1.5mm\relax%
+ \def\@tempa{0}%
+ \else\ifdim\tud@len@layoutheight<\dimexpr148mm+1.5mm\relax%
+ \def\@tempa{1}%
+ \else\ifdim\tud@len@layoutheight<\dimexpr229mm+2mm\relax%
+ \def\@tempa{2}%
+ \else\ifdim\tud@len@layoutheight<\dimexpr297mm+2mm\relax%
+ \def\@tempa{3}%
+ \else\ifdim\tud@len@layoutheight<\dimexpr420mm+2mm\relax%
+ \def\@tempa{4}%
+ \else\ifdim\tud@len@layoutheight<\dimexpr594mm+2mm\relax%
+ \def\@tempa{5}%
+ \else\ifdim\tud@len@layoutheight<\dimexpr841mm+3mm\relax%
+ \def\@tempa{6}%
+ \else\ifdim\tud@len@layoutheight<\dimexpr1189mm+3mm\relax%
+ \def\@tempa{7}%
+ \else%
+ \def\@tempa{8}%
+ \fi\fi\fi\fi\fi\fi\fi\fi%
+ }{%
+ \ifdim\tud@len@layoutheight<\dimexpr125mm+1.5mm\relax%
+ \def\@tempa{0}%
+ \else\ifdim\tud@len@layoutheight<\dimexpr176mm+2mm\relax%
+ \def\@tempa{1}%
+ \else\ifdim\tud@len@layoutheight<\dimexpr250mm+2mm\relax%
+ \def\@tempa{2}%
+ \else\ifdim\tud@len@layoutheight<\dimexpr353mm+2mm\relax%
+ \def\@tempa{3}%
+ \else\ifdim\tud@len@layoutheight<\dimexpr500mm+2mm\relax%
+ \def\@tempa{4}%
+ \else\ifdim\tud@len@layoutheight<\dimexpr707mm+3mm\relax%
+ \def\@tempa{5}%
+ \else\ifdim\tud@len@layoutheight<\dimexpr1000mm+3mm\relax%
+ \def\@tempa{6}%
+ \else\ifdim\tud@len@layoutheight<\dimexpr1414mm+3mm\relax%
+ \def\@tempa{7}%
+ \else%
+ \def\@tempa{8}%
+ \fi\fi\fi\fi\fi\fi\fi\fi%
+ }%
+% \end{macrocode}
+% In Abhängigkeit von der gefundenen Gestaltungshöhe wird nun der Satzspiegel
+% definiert. Dabei wird geprüft, ob dieser im entweder innerhalb des durch das
+% \CD vorgegebenen Rasters erzeugt oder anhand der Gestaltungshöhe berechnet
+% werden soll.
+% \begin{macrocode}
+ \@tud@cdgeometry@adjustfalse%
+% \end{macrocode}
+% Eine Berechnung des Satzspiegels findet in jedem Fall außerhalb des Rasters
+% statt. Ansonsten wird DIN~A4 als Referenzformat ausgewählt.
+% \begin{macrocode}
+ \ifnum\tud@cdgeometry@calc@num=\tw@\relax%
+ \ifnum\@tempa>\z@\relax%
+ \ifnum\@tempa<8\relax%
+ \def\@tempa{3}%
+ \fi%
+ \fi%
+ \fi%
+% \end{macrocode}
+% Bei Formaten, welche kleiner als das Raster sind, wird die Gestaltungshöhe
+% für DIN~A6 als Referenz genommen, um den Satzspiegel zu brechnen.
+% \begin{macrocode}
+ \ifcase\@tempa\relax% <=A7/B7
+ \ifnum\tud@cdgeometry@calc@num=\tw@\relax\else%
+ \ClassWarning{\TUD@Class@Name}{%
+ There's no type area defined for such a\MessageBreak%
+ small paper height. It is recommended to increase\MessageBreak%
+ the paper size. Nevertheless, it will be tried to\MessageBreak%
+ calculate a proper type area%
+ }%
+ \fi%
+ \tud@divide\@tempa{\tud@len@layoutheight}{148mm}%
+ \setlength\tud@len@widemargin{15mm}%
+ \setlength\tud@len@widemargin{\@tempa\tud@len@widemargin}%
+ \setlength\tud@len@heavyline{0.5pt}%
+ \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}%
+ \edef\tud@head@fontsize{\strip@pt\@tempdima}%
+ \or% <=A6/B6
+ \setlength\tud@len@widemargin{15mm}%
+ \setlength\tud@len@heavyline{0.5pt}%
+ \setlength\tud@len@thinline{0.25pt}%
+ \renewcommand*\tud@head@fontsize{4.5}%
+% \end{macrocode}
+% Für Formate der Klasse~5 gibt es zwei Varianten. Entweder, es wird sich an
+% das Raster des \CDs geahtlen oder es wird ein eigener Satzspiegel für das
+% Papierformat definiert. Wird das Raster gehalten, muss bei den Überschriften
+% etwas getrickst werden, weshalb der Schalter \cs{if@tud@cdgeometry@adjust}
+% gesetzt wird.
+% \begin{macrocode}
+ \or% <=A5/B5
+ \ifnum\tud@cdgeometry@calc@num=\z@\relax% restricted
+ \@tud@cdgeometry@adjusttrue%
+ \setlength\tud@len@widemargin{30mm}%
+ \setlength\tud@len@heavyline{1pt}%
+ \setlength\tud@len@thinline{0.5pt}%
+ \renewcommand*\tud@head@fontsize{9}%
+ \else%
+ \setlength\tud@len@widemargin{21.213203mm}%
+ \setlength\tud@len@heavyline{0.707107pt}%
+ \setlength\tud@len@thinline{0.353553pt}%
+ \renewcommand*\tud@head@fontsize{6.363961}%
+ \fi%
+ \or% <=A4/B4
+ \setlength\tud@len@widemargin{30mm}%
+ \setlength\tud@len@heavyline{1pt}%
+ \setlength\tud@len@thinline{0.5pt}%
+ \renewcommand*\tud@head@fontsize{9}%
+ \or% <=A3/B3
+ \setlength\tud@len@widemargin{42.426407mm}%
+ \setlength\tud@len@heavyline{1.414214pt}%
+ \setlength\tud@len@thinline{0.707107pt}%
+ \renewcommand*\tud@head@fontsize{12.727922}%
+ \or% <=A2/B2
+ \setlength\tud@len@widemargin{60mm}%
+ \setlength\tud@len@heavyline{2pt}%
+ \setlength\tud@len@thinline{1pt}%
+ \renewcommand*\tud@head@fontsize{18}%
+ \or% <=A1/B1
+ \setlength\tud@len@widemargin{84.852814mm}%
+ \setlength\tud@len@heavyline{2.828427pt}%
+ \setlength\tud@len@thinline{1.414214pt}%
+ \renewcommand*\tud@head@fontsize{25.455844}%
+ \or% <=A0/B0
+ \setlength\tud@len@widemargin{120mm}%
+ \setlength\tud@len@heavyline{4pt}%
+ \setlength\tud@len@thinline{2pt}%
+ \renewcommand*\tud@head@fontsize{36}%
+ \else% >A0/B0
+% \end{macrocode}
+% Wei bei zu kleinen Formaten wird auch bei Formaten oberhalb des Rasters die
+% der Satzspiegel aus der Gestaltungshöhe berechnet, wobei hier DIN~A0 als
+% Referenz verwendet wird.
+% \begin{macrocode}
+ \ifnum\tud@cdgeometry@calc@num=\tw@\relax\else%
+ \ClassWarning{\TUD@Class@Name}{%
+ There's no type area defined for such a\MessageBreak%
+ huge paper height. It is recommended to reduce\MessageBreak%
+ the paper size. Nevertheless, it will be tried to\MessageBreak%
+ calculate a proper type area%
+ }%
+ \fi%
+ \tud@divide\@tempa{\tud@len@layoutheight}{1189mm}%
+ \setlength\tud@len@widemargin{120mm}%
+ \setlength\tud@len@widemargin{\@tempa\tud@len@widemargin}%
+ \setlength\tud@len@heavyline{4pt}%
+ \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}%
+ \edef\tud@head@fontsize{\strip@pt\@tempdima}%
+ \fi%
+% \end{macrocode}
+% Wurde die Berechnung aktiviert, dann erfolgt diese anhand der Referenz im
+% Format DIN~A4.
+% \begin{macrocode}
+ \ifnum\tud@cdgeometry@calc@num=\tw@\relax%
+ \tud@divide\@tempa{\tud@len@layoutheight}{297mm}%
+ \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}%
+ \edef\tud@head@fontsize{\strip@pt\@tempdima}%
+ \fi%
+% \end{macrocode}
+% Zum Schluss werden die restlichen Längen aus der Referenzlänge berechnet und
+% das Erstellen der Kopfzeile aufgrund der möglichen Änderung der Schriftgröße
+% forciert.
+% \begin{macrocode}
+ \global\@tud@head@font@settrue%
+ \setlength\tud@len@slimmargin{\dimexpr2\tud@len@widemargin/3\relax}%
+ \setlength\tud@len@both{\dimexpr5\tud@len@widemargin/3\relax}%
+ \setlength\tud@len@topmargin{\dimexpr7\tud@len@widemargin/6\relax}%
+ \setlength\tud@len@barheight{\dimexpr\tud@len@widemargin/6\relax}%
+ \setlength\tud@len@headsep{\dimexpr2\tud@len@widemargin/5\relax}%
+ \setlength\tud@len@logox{\dimexpr1.1\tud@len@widemargin/3\relax}%
+ \setlength\tud@len@logoy{\dimexpr0.45\tud@len@widemargin\relax}%
+ \setlength\tud@len@logowidth{\dimexpr1.9\tud@len@widemargin\relax}%
+ \setlength\tud@len@footsep{%
+ \dimexpr\tud@len@widemargin-.6\tud@len@topmargin\relax%
+ }%
+% \end{macrocode}
+% Wird die Gestaltungshöhe DIN~A5 im Raster verwendet, werden die Abstände
+% zwischen Kopf- unf Fußzeile angepasst.
+% \begin{macrocode}
+ \if@tud@cdgeometry@adjust%
+ \setlength\tud@len@headsep{\dimexpr.707107\tud@len@headsep\relax}%
+ \setlength\tud@len@footsep{\dimexpr.707107\tud@len@footsep\relax}%
+ \fi%
+}
+% \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{macro}^^A \if@tud@cdgeometry@adjust
+% \end{macro}^^A \tud@cdgeometry@set
+%
+% \subsection{Unterstützung von Schnittmarken mit \pkg{geometry} und \pkg{crop}}
+%
+% \changes{v2.05}{2016/04/03}{Unterstützung von Schnittmarken mit
+% \pkg{geometry} und \pkg{crop}}^^A
+%
+% Insbesondere für das Erstelen von Postern sollen häufig Schnittmarken auf dem
+% ausgegebenen Papierbogen erscheinen. Dies kann mit den Paketen \pkg{geometry}
+% und \pkg{crop} realisiert werden.
+% \ToDo{%
+% Unterstützung von PDF-Boxen für die Druckausgabe
+%^^A\url{https://groups.google.com/forum/#!topic/de.comp.text.tex/1gouJ0Zov6o}
+%^^A\url{http://tex.stackexchange.com/questions/248902/}
+%^^A\url{https://wiki.scribus.net/canvas/PDF_Boxes_:_mediabox,_cropbox,_bleedbox,_trimbox,_artbox}
+%^^A\url{http://www.prepressure.com/pdf/basics/page-boxes}
+% }[v2.07]
+%
+% \begin{macro}{\if@tud@x@crop@center}
+% \changes{v2.05}{2016/04/03}{neu}^^A
+% \begin{macro}{\CROP@center}
+% \changes{v2.05}{2016/04/03}{neu}^^A
+% Das Paket \pkg{crop} bietet die Option, den Satzspiegel auf dem Papierbogen
+% zu zentrieren. Diese Einstellung geht beim Laden eines neuen Satzspiegels mit
+% \cs{loadgeometry} verloren. Dieser Patch wird definiert, um dieses Problem zu
+% beheben.
+% \begin{macrocode}
+\newif\if@tud@x@crop@center
+\AfterPackage{crop}{%
+ \CheckCommand*\CROP@center{%
+ \voffset\stockheight
+ \advance\voffset-\paperheight
+ \voffset.5\voffset
+ \hoffset\stockwidth
+ \advance\hoffset-\paperwidth
+ \hoffset.5\hoffset
+ }%
+ \pretocmd{\CROP@center}{%
+ \@tud@x@crop@centertrue%
+ }{}{\tud@patch@wrn{CROP@center}}
+}
+% \end{macrocode}
+% \end{macro}^^A \CROP@center
+% \end{macro}^^A \if@tud@x@crop@center
+%
+% \subsection{Unterstützung der \cls{standalone}-Klasse}
+%
+% \changes{v2.02}{2014/07/25}{Unterstützung der \cls{standalone}-Klasse}^^A
+%
+% Mit der Klasse~\cls{standalone} können insbesondere Grafiken als separate
+% (PDF-)Dateien erzeugt und später im Dokument eingebunden werden. Diese Klasse
+% ändert allerhand an den Einstellungen der Seitenränder. Damit sich diese bei
+% der Verwendung mit den \TUDScript-Klassen nicht in die Quere kommen, müssen
+% für einige Einstellungen unterdrückt werden.
+%
+% \begin{macro}{\if@tud@x@standalone@crop}
+% \changes{v2.02}{2014/09/08}{neu}^^A
+% Mit diesem Makro kann die Verwendung der Option \opt{crop} mit der Klasse
+% \cls{standalone} geprüft werden. Das erste Argument wird ausgeführt, wenn
+% die Klasse geladen und die Option aktiv ist. Das zweite Argument wird
+% ausgeführt, wenn entweder die Option \opt{crop} deaktiviert ist oder die
+% Klasse \cls{standalone} gar nicht geladen wurde.
+% \begin{macrocode}
+\newif\if@tud@x@standalone@crop
+\AfterClass*{standalone}{\let\if@tud@x@standalone@crop\ifsa@crop}
+% \end{macrocode}
+% \end{macro}^^A \if@tud@x@standalone@crop
+%
+% \iffalse
+%</class&body>
+%<*class&option>
+% \fi
+%
+% \begin{option}{cdgeometry}
+% \changes{v2.05}{2016/03/06}{\val{custom} neu}^^A
+% \begin{macro}{\tud@cdgeometry@num}
+% \begin{macro}{\if@tud@cdgeometry@num@locked}
+% \begin{macro}{\tud@cdgeometry@calc@num}
+% \changes{v2.05}{2015/11/29}{neu}^^A
+% Für das \CD sind standardmäßig feste Seitenränder vorgegeben. Diese sind
+% jedoch leider nur aus gestalterischen Motiven und ohne die Beachtung
+% typographischer Belange gewählt und festgelegt worden. Beispielweise ist ein
+% doppelseitiger Satz einer Abschlussarbeit im \CD nur mit einem grauenhaften
+% Satzspiegel möglich. Um dem Anwender einen gewissen Spielraum zu geben, wird
+% alternativ zum asymmetrischen (\opt{geomery=on}) ein symmetrischer
+% Satzspiegel bereitgestellt (\opt{geomery=normal}), welcher bei einseitigem
+% Satz zentriert ist und bei zweiseitigem Satz den inneren Rand kleiner setzt
+% als den äußeren. Des Weiteren kann die Satzspiegelberechnung auch direkt
+% durch \pkg{typearea} aus dem \KOMAScript-Paket erfolgen (\opt{geomery=no}).
+% Mit \cs{tud@cdgeometry@@process} werden alle getroffenen Satzspiegeloptionen
+% umgesetzt und nachfolgend definiert.
+% \begin{macrocode}
+\cs@lock{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@numkey@bool,%
+ {typearea}{0},%
+ {cd}{1},{tud}{1},{asymmetric}{1},%
+ {symmetric}{2},{centred}{2},{centered}{2},%
+ {normal}{2},{standard}{2},{std}{2},%
+ {twoside}{3},{balanced}{3},%
+ {oneside}{4},%
+ {restricted}{5},%
+ {adapted}{6},{adapt}{6},{adapting}{6},{unrestricted}{6},%
+ {calculated}{7},{calc}{7},{calculate}{7},{calculating}{7},%
+ {custom}{8},{user}{8},{package}{8}%
+ }{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \ifcase\@tempa\relax% false/typearea
+ \cs@set@lock{tud@cdgeometry@num}{0}%
+ \or% true/cd
+ \cs@set@lock{tud@cdgeometry@num}{2}%
+ \or% symmetric
+ \cs@set@lock{tud@cdgeometry@num}{3}%
+ \or% twoside
+ \cs@set@lock{tud@cdgeometry@num}{4}%
+ \TUD@KOMAoptions{twoside=true}%
+ \or% oneside
+ \ifnum\tud@cdgeometry@num>\thr@@\relax%
+ \cs@set@lock{tud@cdgeometry@num}{3}%
+ \fi%
+ \TUD@KOMAoptions{twoside=false}%
+ \or% restricted
+ \cs@std@lock{tud@cdgeometry@num}{2}%
+ \renewcommand*\tud@cdgeometry@calc@num{0}%
+ \or% adapted
+ \cs@std@lock{tud@cdgeometry@num}{2}%
+ \renewcommand*\tud@cdgeometry@calc@num{1}%
+ \or% calculated
+ \cs@std@lock{tud@cdgeometry@num}{2}%
+ \renewcommand*\tud@cdgeometry@calc@num{2}%
+ \or% custom
+ \cs@set@lock{tud@cdgeometry@num}{1}%
+ \fi%
+ \@tempswafalse%
+ \ifx\@tempb\tud@cdgeometry@num\relax\@tempswatrue\fi%
+ \ifx\@tempc\tud@cdgeometry@calc@num\relax\@tempswatrue\fi%
+ \if@tempswa%
+ \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}%
+ \fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@cdgeometry@calc@num
+% \end{macro}^^A \if@tud@cdgeometry@num@locked
+% \end{macro}^^A \tud@cdgeometry@num
+% \end{option}^^A cdgeometry
+% \begin{option}{extrabottommargin}
+% \begin{macro}{\tud@dim@extrabottommargin}
+% Diese Option dient dazu, die Höhe des Fußes anzupassen. Dies ist jedoch nur
+% möglich, wenn der Satzspiegel des \CDs verwendet wird. Kommt \pkg{typearea}
+% zum Einsatz, ist die Option wirkungslos. Da für die Länge ggf. auch Werte
+% angegeben werden können, die abhängig von der Schriftgröße sind, wird die
+% Ausführung dieser Option verzögert.
+% \begin{macrocode}
+\newcommand*\tud@dim@extrabottommargin{\z@}
+\TUD@key{extrabottommargin}{%
+ \TUD@set@dimenkey{extrabottommargin}{\tud@dim@extrabottommargin}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \TUD@SpecialOptionAtDocument{tud@cdgeometry@@process}%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@dim@extrabottommargin
+% \begin{option}{bleedmargin}
+% \changes{v2.05}{2016/06/14}{neu}^^A
+% \begin{macro}{\tud@dim@bleedmargin}
+% \changes{v2.05}{2016/04/03}{neu}^^A
+% Wird entweder das Paket \pkg{crop} oder aber die Option \opt{layout} des
+% Paketes \pkg{geometry} für Schnittmarken verwendet, werden alle farbigen
+% Elemente des Layouts dahingehend vergrößert, dass beim Zuschneiden des
+% Papierbogens \emph{in die Farbe} geschnitten wird. Verantwortlich hierfür ist
+% das Makro \cs{tud@dim@bleedmargin}, welches natürlich auch vom Anwender mit
+% der Option \opt{bleedmargin} beliebig gesetzt werden kann. Als Standardwert
+% werden 5\% der größten Randbreite gesetzt.
+% \begin{macrocode}
+\newcommand*\tud@dim@bleedmargin{.2in}
+\TUD@key{bleedmargin}{%
+ \TUD@set@dimenkey{bleedmargin}{\tud@dim@bleedmargin}{#1}%
+% \end{macrocode}
+% Negative Werte sind nicht möglich, diese werden automatisch korrigiert.
+% \begin{macrocode}
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \ifdim\dimexpr\tud@dim@bleedmargin\relax<\z@\relax%
+ \def\@tempa-##1\@nil{\def\tud@dim@bleedmargin{##1}}%
+ \@tempa#1\@nil%
+ \fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@dim@bleedmargin
+% \end{option}^^A bleedmargin
+% \end{option}^^A extrabottommargin
+% \begin{option}{twoside}
+% \begin{option}{twocolumn}
+% Sollte einer der beiden \KOMAScript-Optionen im Dokument nach der Präambel
+% verwendet werden, erfolgt die Anpassung des Satzspiegels.
+% \begin{macrocode}
+\DefineFamilyMember{KOMA}
+\DefineFamilyKey{KOMA}{twoside}{%
+ \TUD@SpecialOptionAtDocument{tud@cdgeometry@@process}%
+ \FamilyKeyStateProcessed%
+}
+\DefineFamilyKey{KOMA}{twocolumn}{%
+ \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>
+% \fi
+%
+% 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{Benutzerschnittstelle äquivalent zu \pkg{geometry}}[v2.07]%
+% \begin{macrocode}
+\newcommand*\tud@cdgeometry@process{}
+\newcommand*\tud@cdgeometry@@process{}
+\if@tud@x@standalone@crop
+ \PreventPackageFromLoading{geometry}%
+\else
+ \RequirePackage{geometry}[2010/09/12]%
+\fi
+\AfterPackage*{geometry}{%
+ \CheckCommand*\Gm@initnewgm{%
+ \Gm@passfalse
+ \Gm@swap@papersizefalse
+ \Gm@dimlist={}
+ \Gm@hbodyfalse
+ \Gm@vbodyfalse
+ \Gm@heightroundedfalse
+ \Gm@includeheadfalse
+ \Gm@includefootfalse
+ \Gm@includempfalse
+ \let\Gm@width\@undefined
+ \let\Gm@height\@undefined
+ \let\Gm@textwidth\@undefined
+ \let\Gm@textheight\@undefined
+ \let\Gm@lines\@undefined
+ \let\Gm@hscale\@undefined
+ \let\Gm@vscale\@undefined
+ \let\Gm@hmarginratio\@undefined
+ \let\Gm@vmarginratio\@undefined
+ \let\Gm@lmargin\@undefined
+ \let\Gm@rmargin\@undefined
+ \let\Gm@tmargin\@undefined
+ \let\Gm@bmargin\@undefined
+ \Gm@layoutfalse
+ \Gm@layouthoffset\z@
+ \Gm@layoutvoffset\z@
+ \Gm@bindingoffset\z@
+ }%
+ \expandafter\CheckCommand%
+ \csname\expandafter\@gobble\string\Gm@changelayout\space\endcsname{%
+ \setlength{\@colht}{\textheight}
+ \setlength{\@colroom}{\textheight}%
+ \setlength{\vsize}{\textheight}
+ \setlength{\columnwidth}{\textwidth}%
+ \if@twocolumn%
+ \advance\columnwidth-\columnsep
+ \divide\columnwidth\tw@%
+ \@firstcolumntrue%
+ \fi%
+ \setlength{\hsize}{\columnwidth}%
+ \setlength{\linewidth}{\hsize}%
+ }%
+ \CheckCommand*\Gm@@process{%
+ \Gm@expandlengths
+ \Gm@adjustpaper
+ \addtolength\Gm@layoutwidth{-\Gm@bindingoffset}%
+ \Gm@adjustmp
+ \Gm@adjustbody
+ \Gm@detall{h}{width}{lmargin}{rmargin}%
+ \Gm@detall{v}{height}{tmargin}{bmargin}%
+ \setlength\textwidth{\Gm@width}%
+ \setlength\textheight{\Gm@height}%
+ \setlength\topmargin{\Gm@tmargin}%
+ \setlength\oddsidemargin{\Gm@lmargin}%
+ \addtolength\oddsidemargin{-1\Gm@truedimen in}%
+ \ifGm@includemp
+ \advance\textwidth-\Gm@wd@mp
+ \advance\oddsidemargin\Gm@odd@mp
+ \fi
+ \if@mparswitch
+ \setlength\evensidemargin{\Gm@rmargin}%
+ \addtolength\evensidemargin{-1\Gm@truedimen in}%
+ \ifGm@includemp
+ \advance\evensidemargin\Gm@even@mp
+ \fi
+ \else
+ \evensidemargin\oddsidemargin
+ \fi
+ \advance\oddsidemargin\Gm@bindingoffset
+ \addtolength\topmargin{-1\Gm@truedimen in}%
+ \ifGm@includehead
+ \addtolength\textheight{-\headheight}%
+ \addtolength\textheight{-\headsep}%
+ \else
+ \addtolength\topmargin{-\headheight}%
+ \addtolength\topmargin{-\headsep}%
+ \fi
+ \ifGm@includefoot
+ \addtolength\textheight{-\footskip}%
+ \fi
+ \ifGm@heightrounded
+ \setlength\@tempdima{\textheight}%
+ \addtolength\@tempdima{-\topskip}%
+ \@tempcnta\@tempdima
+ \@tempcntb\baselineskip
+ \divide\@tempcnta\@tempcntb
+ \setlength\@tempdimb{\baselineskip}%
+ \multiply\@tempdimb\@tempcnta
+ \advance\@tempdima-\@tempdimb
+ \multiply\@tempdima\tw@
+ \ifdim\@tempdima>\baselineskip
+ \addtolength\@tempdimb{\baselineskip}%
+ \fi
+ \addtolength\@tempdimb{\topskip}%
+ \textheight\@tempdimb
+ \fi
+ \advance\oddsidemargin\Gm@layouthoffset%
+ \advance\evensidemargin\Gm@layouthoffset%
+ \advance\topmargin\Gm@layoutvoffset%
+ \addtolength\Gm@layoutwidth{\Gm@bindingoffset}%
+ }%
+ \CheckCommand\geometry[1]{%
+ \Gm@clean
+ \setkeys{Gm}{#1}%
+ \Gm@process%
+ }%
+ \CheckCommand\newgeometry[1]{%
+ \clearpage
+ \Gm@restore@org
+ \Gm@initnewgm
+ \Gm@newgmtrue
+ \setkeys{Gm}{#1}%
+ \Gm@newgmfalse
+ \Gm@process
+ \ifnum\mag=\@m\else\Gm@magtooffset\fi
+ \Gm@changelayout
+ \Gm@showparams{newgeometry}%
+ }%
+ \CheckCommand\restoregeometry{%
+ \clearpage
+ \Gm@restore@pkg
+ \Gm@changelayout%
+ }%
+ \CheckCommand*\savegeometry[1]{%
+ \Gm@save
+ \expandafter\edef\csname Gm@restore@@#1\endcsname{\Gm@restore}%
+ }%
+ \CheckCommand*\loadgeometry[1]{%
+ \clearpage
+ \@ifundefined{Gm@restore@@#1}{%
+ \PackageError{geometry}{%
+ \string\loadgeometry : name `#1' undefined}{%
+ The name `#1' should be predefined with \string\savegeometry}%
+ }{\@nameuse{Gm@restore@@#1}%
+ \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}{\if@tud@x@geometry@enabled}
+% \changes{v2.05}{2016/03/06}{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
+% der einzelnen Seitenstile umzusetzen. Dabei werden auch etwaige Optionen von
+% \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 benutzerdefinierter
+% Satzspiegel aktiviert 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%
+% \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{\@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}%
+ \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]{%
+ \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%
+ \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 \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}
+% \changes{v2.05}{2016/03/06}{neu}^^A
+% \begin{parameter}{paper}
+% \begin{parameter}{papername}
+% \begin{parameter}{paperwidth}
+% \begin{parameter}{paperheight}
+% \begin{parameter}{papersize}
+% \begin{parameter}{layout}
+% \begin{parameter}{layoutname}
+% \begin{parameter}{layoutwidth}
+% \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}
+% \changes{v2.05}{2016/03/06}{neu}^^A
+% \begin{macro}{\tud@x@geometry@init}
+% \changes{v2.05}{2016/03/06}{neu}^^A
+% \begin{macro}{\tud@x@geometry@paper}
+% \changes{v2.05}{2016/07/20}{neu}^^A
+% \begin{macro}{\tud@x@geometry@layout}
+% \changes{v2.05}{2016/07/20}{neu}^^A
+% \begin{macro}{\tud@x@geometry@parameter}
+% \changes{v2.05}{2016/07/20}{neu}^^A
+% 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
+% Seitenstile bereitzustellen. %
+% \ToDo{%
+% Leider ist daraus ein ziemlich unübersichtliches Konstrukt geworden,
+% weshalb das Ganze in einer folgenden Version mit \KOMAScript-Mitteln neu
+% implementiert werden soll.
+% }[v2.07]
+% \begin{macrocode}
+ \TUD@parameter@family{geometry}{%
+ \TUD@parameter@def{paper}{\tud@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@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{layoutheight}{%
+ \tud@area@def{layout}{\the\tud@len@layoutwidth:#1}%
+ }%
+ \TUD@parameter@def{layoutsize}{%
+ \def\@tempa##1,##2,##3\@nil{%
+ \IfArgIsEmpty{##2}{%
+ \tud@area@def{layout}{##1:##1}%
+ }{%
+ \tud@area@def{layout}{##1:##2}%
+ }%
+ }%
+ \@tempa#1,,\@nil%
+ }%
+ \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}%
+ }%
+ }
+% \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
+% Befehle \cs{geometry} und \cs{newgeometry} aufgearbeitet. Alle anderen werden
+% einfach an \pkg{geometry} durchgereicht. Dies geschieht über die jeweiligen
+% 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]{%
+ \tud@lowerstring{\@tempa}{#2}%
+ \def\@tempb##1paper##2\@nil{%
+ \ifstr{##2}{paper}{\def\@tempa{##1}}{}%
+ }%
+ \expandafter\@tempb\@tempa paper\@nil%
+ \@tempswafalse%
+ \ifstr{\@tempa}{seascape}{\@tempswatrue}{}%
+ \ifstr{\@tempa}{landscape}{\@tempswatrue}{}%
+ \ifstr{\@tempa}{portrait}{\@tempswatrue}{}%
+ \ifstr{\@tempa}{letter}{\@tempswatrue}{}%
+ \ifstr{\@tempa}{executive}{\@tempswatrue}{}%
+ \ifstr{\@tempa}{legal}{\@tempswatrue}{}%
+ \if@tempswa\else%
+ \ifx\@tempa\@empty\relax\else%
+ \def\@tempb##1##2\@nil{%
+ \if ##1a\@tempswatrue%
+ \else\if ##1b\@tempswatrue%
+ \else\if ##1c\@tempswatrue%
+ \else\if ##1d\@tempswatrue%
+ \fi\fi\fi\fi%
+ \if@tempswa%
+ \@tempswafalse%
+ \IfArgIsEmpty{##2}{}{\ifnumber{##2}{\@tempswatrue}{}}%
+ \fi%
+ }%
+ \expandafter\@tempb\@tempa\@nil%
+ \if@tempswa\else%
+ \def\@tempb##1:##2:##3\@nil{%
+ \IfArgIsEmpty{##2}{}{%
+ \@tempswatrue%
+ \def\@tempa{##1:##2}%
+ }%
+ }%
+ \expandafter\@tempb\@tempa::\@nil%
+ \fi%
+ \if@tempswa\else%
+ \def\tud@reserved##1:##2:##3:##4\@nil{%
+ \if@tempswa\else%
+ \ifstr{\@tempa}{##1}{%
+ \@tempswatrue%
+ \def\@tempa{##2##4:##3##4}%
+ }{}%
+ \fi%
+ }%
+ \tud@reserved b0j:1030:1456:mm\@nil%
+ \tud@reserved b1j:728:1030:mm\@nil%
+ \tud@reserved b2j:515:728:mm\@nil%
+ \tud@reserved b3j:364:515:mm\@nil%
+ \tud@reserved b4j:257:364:mm\@nil%
+ \tud@reserved b5j:182:257:mm\@nil%
+ \tud@reserved b6j:128:182:mm\@nil%
+ \tud@reserved ansia:8.5:11:in\@nil%
+ \tud@reserved ansib:11:17:in\@nil%
+ \tud@reserved ansic:17:22:in\@nil%
+ \tud@reserved ansid:22:34:in\@nil%
+ \tud@reserved ansie:34:44:in\@nil%
+ \tud@reserved screen:225:180:mm\@nil%
+ \fi%
+ \fi%
+ \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
+% zuvor gesammelten Schlüssel.
+% \begin{macrocode}
+ \newcommand*\tud@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}%
+ }%
+ \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@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{parameter}^^A bleedmargin
+% \end{parameter}^^A layoutsize
+% \end{parameter}^^A layoutheight
+% \end{parameter}^^A layoutwidth
+% \end{parameter}^^A layoutname
+% \end{parameter}^^A layout
+% \end{parameter}^^A papersize
+% \end{parameter}^^A paperheight
+% \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.
+% \begin{macrocode}
+ \apptocmd{\Gm@changelayout}{%
+ \ifboolexpr{bool {@tud@x@geometry@enabled} and bool {@atdocument}}{%
+ \tud@cdgeometry@process%
+ }{}%
+ }{}{\tud@patch@wrn{Gm@changelayout}}%
+% \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.
+% \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}%
+ \else%
+ \tud@loadgeometry{init@typearea}%
+ \fi%
+ \tud@AfterChangingArea%
+ }%
+% \end{macrocode}
+% \end{macro}^^A \Gm@changelayout
+% \end{macro}^^A \restoregeometry
+% \begin{macro}{\tud@cdgeometry@hmargin}
+% \begin{macro}{\tud@cdgeometry@vmargin}
+% \begin{macro}{\tud@cdgeometry@tudmargin}
+% \begin{macro}{\tud@cdgeometry@ddcmargin}
+% Dies sind Hilfsmakros für die Definition der unterschiedichen Seitenlayouts
+% (horizontale und vertikale Ränder). Es handelt sich dabei um die Seitenränder
+% für den normalen Textbereich sowie die angepassten vertikalen Einstellungen
+% für die Seitenstilvarianten mit TUD-Kopf. Im Kompatibilitätsmodus für die
+% Version~v2.02 gibt es außerdem einen separaten Satzspiegel für den \DDC-Fuß.
+% 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@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
+% für die unterschiedlichen Höhen für Kopf- und Fußzeile nötig ist~-- wird das
+% Paket \pkg{geometry} verwendet. Soll \pkg{typearea} zur Satzspiegelerstellung
+% genutzt werden, so werden die damit berechneten Werte an \pkg{geometry}
+% weitergereicht.
+% Es werden drei Layouts erstellt: normaler Satzspiegel, nur TUD-Kopf sowie
+% TUD-Kopf und "~Fuß und mit \cs{savegeometry}\marg{Stil} gesichert. Damit kann
+% innerhalb des Dokumentes mit dem Befehl \cs{loadgeometry}\marg{Stil} oberer
+% sowie ggf. untere Seitenrand geändert werden.
+% \begin{macrocode}
+ \renewcommand*\tud@cdgeometry@@process{%
+ \csuse{@ta@usegeometryfalse}%
+% \end{macrocode}
+% Die Maßvorgaben werden entsprechend der Seitengröße gesetzt.
+% \begin{macrocode}
+ \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
+% 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.
+% \begin{macrocode}
+ \ifnum\tud@cdgeometry@num<\tw@\relax% false/custom
+% \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.
+% \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,%
+ \tud@cdgeometry@mpincl,%
+ marginparwidth=\the\marginparwidth,%
+ marginparsep=\the\marginparsep,%
+ \if@reversemargin%
+ reversemarginpar=true,%
+ \else%
+ reversemarginpar=false,%
+ \fi%
+ bindingoffset=\the\ta@bcor%
+ }%
+ \edef\tud@cdgeometry@vmargin{%
+ \if@hincl%
+ includehead=true,%
+ top=\the\dimexpr\topmargin+1in\relax,%
+ \else%
+ includehead=false,%
+ top=\the\dimexpr\topmargin%
+ +\headheight+\headsep+1in\relax,%
+ \fi%
+ headheight=\the\headheight,%
+ headsep=\the\headsep,%
+ textheight=\the\textheight,%
+ \tud@cdgeometry@fincl,%
+ footskip=\the\footskip%
+ }%
+% \end{macrocode}
+% Und nun für den benutzerdefinierten Satzspiegel.
+% \begin{macrocode}
+ \else% custom
+ \ifGm@pass\else%
+ \edef\tud@cdgeometry@hmargin{%
+ left=\Gm@lmargin,%
+ right=\Gm@rmargin,%
+ \ifGm@includemp%
+ includemp=true,%
+ \else%
+ includemp=false,%
+ \fi%
+ marginparwidth=\the\marginparwidth,%
+ marginparsep=\the\marginparsep,%
+ \if@reversemargin%
+ reversemarginpar=true,%
+ \else%
+ reversemarginpar=false,%
+ \fi%
+ bindingoffset=\the\Gm@bindingoffset%
+ }%
+ \edef\tud@cdgeometry@vmargin{%
+ \ifGm@includehead%
+ includehead=true,%
+ top=\the\dimexpr\topmargin+1in\relax,%
+ \else%
+ includehead=false,%
+ top=\the\dimexpr\topmargin%
+ +\headheight+\headsep+1in\relax,%
+ \fi%
+ headheight=\the\headheight,%
+ headsep=\the\headsep,%
+ textheight=\the\textheight,%
+ \ifGm@includefoot%
+ includefoot=true,%
+ \else%
+ includefoot=false,%
+ \fi%
+ footskip=\the\footskip%
+ }%
+ \fi%
+ \fi%
+% \end{macrocode}
+% Es wird die Höhendifferenz zwischen TUD-Kopf und Standardkopfzeile für den
+% benutzerdefnierten bzw. \pkg{typearea}-Satzspiegel berechnet. Für den
+% Satzspiegel mit TUD-Kopf muss unterschieden werden, ob der Abstand zwischen
+% Kopf und Textbereich vergrößert wurde. Ist dies der Fall, wird die Höhe des
+% Textbereiches über \cs{@tempdima} entsprechend verkleinert. Sollte der
+% benutzerdefinierten bzw. \pkg{typearea}-Satzspiegel noch unterhalb des
+% TUD-Kopfes liegen, wird der Abstand zum Kopf vergrößert.
+% \begin{macrocode}
+ \setlength\tud@len@areadiff{%
+ \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep%
+ -\topmargin-\headheight-\headsep-1in\relax%
+ }%
+ \ifdim\tud@len@areadiff<\z@\relax%
+ \addtolength\tud@len@headsep{-\tud@len@areadiff}%
+ \setlength\@tempdima{\z@}%
+ \else%
+ \setlength\@tempdima{\tud@len@areadiff}%
+ \fi%
+ \edef\tud@cdgeometry@tudmargin{%
+ ignorehead=true,%
+ top=\the\dimexpr\tud@len@topmargin+\tud@len@barheight%
+ +\tud@len@headsep\relax,%
+ headheight=\the\dimexpr\tud@len@topmargin+\tud@len@barheight%
+ -\tud@len@logoy\relax,%
+ headsep=\the\tud@len@headsep,%
+ textheight=\the\dimexpr\textheight-\@tempdima\relax%
+ }%
+% \end{macrocode}
+% Für den Kompatibilitätsmodus der Version~v2.02 gibt es für den \DDC-Fuß einen
+% separaten Satzspiegel.
+% \begin{macrocode}
+ \tud@if@v@lower{2.03}{%
+ \setlength\tud@len@ddcdiff{%
+ \dimexpr.6\tud@len@topmargin-\footskip+\tud@len@headsep%
+ +\footheight-1.25\baselineskip\relax%
+ }%
+ \edef\tud@cdgeometry@ddcmargin{%
+ textheight=\the\dimexpr\textheight-\tud@len@areadiff%
+ -\tud@len@ddcdiff\relax,%
+ footskip=\the\dimexpr\footskip+\tud@len@ddcdiff\relax%
+ }%
+ }{}%
+% \end{macrocode}
+% Sollte die Option \opt{extrabottommargin} verwendet worden sein, wird eine
+% Warnung ausgegeben, dass diese für den \pkg{typearea}-Satzspiegel wirkungslos
+% 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')%
+ }%
+ \fi%
+% \end{macrocode}
+% Hier erfolgt die Definition der Hilfsmakros für das CD-konforme asymmetrische
+% bzw. an das \CD angelehnte Layout für einseitigen und zweiseitigen Satz.
+% Zuerst werden die verschiedenen unterschiedlichen horizontalen Ränder für die
+% unterschiedlichen Optionen definiert. Dies betrifft im einzelnen den äußeren
+% Seitenrand (\cs{@tempdima}), die Textbreite (\cs{@tempdimb}) sowie die Breite
+% der Randnotizen (\cs{@tempdimc}). Danach kommt der Gleichanteil.
+% \begin{macrocode}
+ \else% true/symmetric/twoside
+ \ifcase\tud@cdgeometry@num\relax\or\or% true
+ \setlength\@tempdima{\tud@len@widemargin}%
+ \if@reversemargin%
+ \setlength\@tempdimc{\tud@len@widemargin}%
+ \else%
+ \setlength\@tempdimc{\tud@len@slimmargin}%
+ \fi%
+% \end{macrocode}
+% Die zweite Variante ist eigentlich nicht konform mit dem \CD. Sie ist sowohl
+% im einseitigen als auch im zweiseitgigen Satz symmetrisch.
+% \begin{macrocode}
+ \or% symmetric
+ \setlength\@tempdima{.5\tud@len@both}%
+ \setlength\@tempdimc{.5\tud@len@both}%
+% \end{macrocode}
+% Eigentlich ist auch die dritte Variante nach dem \CD nicht zulässig. Sie ist
+% im einseitigen Satz symmetrisch, im zweiseitgigen Satz wird die innere Seite
+% schmaler gesetzt als die äußere, wobei hier auf das in den Seitenrand ragende
+% TUD-Logo geachtet werden muss.
+% \begin{macrocode}
+ \or% twoside
+ \if@twoside%
+ \setlength\@tempdima{.4\tud@len@both}%
+ \else%
+ \setlength\@tempdima{.5\tud@len@both}%
+ \fi%
+ \setlength\@tempdimc{.5\tud@len@both}%
+ \if@twoside%
+ \if@reversemargin%
+ \setlength\@tempdimc{.4\tud@len@both}%
+ \else%
+ \setlength\@tempdimc{.6\tud@len@both}%
+ \fi%
+ \fi%
+ \fi%
+% \end{macrocode}
+% Die \emph{Berechnung} der Textbreite ist für alle Varainten identisch. Danach
+% erfolgt die Zuweisung zum Makro.
+% \begin{macrocode}
+ \addtolength\@tempdimc{-\headsep}%
+ \setlength\@tempdimb{%
+ \dimexpr\tud@len@layoutwidth-\tud@len@both-\ta@bcor\relax%
+ }%
+ \if@mincl%
+ \addtolength\@tempdimb{-\@tempdimc}%
+ \fi%
+ \edef\tud@cdgeometry@hmargin{%
+ left=\the\@tempdima,%
+ textwidth=\the\@tempdimb,%
+ \tud@cdgeometry@mpincl,%
+ marginparwidth=\the\@tempdimc,%
+ marginparsep=\the\dimexpr.5\headsep\relax,%
+ \if@reversemargin%
+ reversemarginpar=true,%
+ \else%
+ reversemarginpar=false,%
+ \fi%
+ bindingoffset=\the\ta@bcor%
+ }%
+ \if@twoside%
+ \ifcase\tud@cdgeometry@num\relax\or\or% true
+ \appto\tud@cdgeometry@hmargin{,asymmetric}%
+ \else% symmetric/twoside
+ \appto\tud@cdgeometry@hmargin{,twoside}%
+ \fi%
+ \fi%
+ \if@twocolumn%
+ \appto\tud@cdgeometry@hmargin{,twocolumn}%
+ \fi%
+% \end{macrocode}
+% Für alle drei Varianten der vertikale Gleichanteil. Der Satzspiegel der
+% Version~v2.02 wird aus Gründen der Kompatibilität weiterhin vorgehalten.
+% \begin{macrocode}
+ \tud@if@v@lower{2.03}{%
+ \edef\tud@cdgeometry@vmargin{%
+ \tud@cdgeometry@hincl,%
+ top=\the\dimexpr.5\tud@len@both\relax,%
+ headheight=\the\headheight,%
+ headsep=\the\tud@len@headsep,%
+ bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin\relax,%
+ \tud@cdgeometry@fincl,%
+ footskip=\the\dimexpr\tud@len@headsep+\footheight%
+ -1.25\baselineskip\relax%
+ }%
+ }{%
+ \edef\tud@cdgeometry@vmargin{%
+ \tud@cdgeometry@hincl,%
+ top=\the\tud@len@slimmargin,%
+ headheight=\the\headheight,%
+ headsep=\the\headsep,%
+ bottom=\the\dimexpr\tud@len@widemargin%
+ +\tud@dim@extrabottommargin\relax,%
+ \tud@cdgeometry@fincl,%
+ footskip=\the\dimexpr\tud@len@footsep+\footheight\relax%
+ }%
+ }%
+ \edef\tud@cdgeometry@tudmargin{%
+ ignorehead=true,%
+ top=\the\dimexpr\tud@len@topmargin+\tud@len@barheight%
+ +\tud@len@headsep\relax,%
+ headheight=\the\dimexpr\tud@len@topmargin+\tud@len@barheight%
+ -\tud@len@logoy\relax,%
+ headsep=\the\tud@len@headsep%
+ }%
+% \end{macrocode}
+% Es wird die Differenz der Höhen zwischen TUD-Kopf und Standardkopfzeile
+% für den Satzspiegel des \CDs berechnet.
+% \begin{macrocode}
+ \setlength\tud@len@areadiff{%
+ \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep%
+ -\tud@len@slimmargin\relax%
+ }%
+% \end{macrocode}
+% Für die Kompatibilitätsvariante wieder mal die Extrawurst.
+% \begin{macrocode}
+ \tud@if@v@lower{2.03}{%
+ \setlength\tud@len@areadiff{%
+ \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep%
+ -.5\tud@len@both\relax%
+ }%
+% \end{macrocode}
+% Wird die Fußzeile zum Satzspiegel gerechnet, ist für Seiten mit \DDC-Fuß
+% etwas Handarbeit notwendig, damit dieser nicht allzu weit nach oben ragt.
+% \begin{macrocode}
+ \setlength\tud@len@ddcdiff{.6\tud@len@topmargin}%
+ \edef\tud@cdgeometry@ddcmargin{%
+ \if@fincl%
+ bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin%
+ +\tud@len@ddcdiff+\tud@len@headsep+\footheight%
+ -1.25\baselineskip\relax,%
+ \else%
+ bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin%
+ +\tud@len@ddcdiff\relax,%
+ \fi%
+ footskip=\the\dimexpr\tud@len@headsep+\footheight%
+ -1.25\baselineskip+\tud@len@ddcdiff\relax,%
+ }%
+ }{}%
+ \fi%
+% \end{macrocode}
+% Es wird die Differenz der Höhen zwischen TUD-Kopf und Standardkopfzeile
+% für den Satzspiegel des \CDs berechnet. Außerdem wird die standardmäßige
+% vertikale Verschiebung der Überschriften festgelegt, wobei hier insbesondere
+% auf die Gestaltungshöhe DIN~A5 geachtet werden muss.
+% \begin{macrocode}
+ \ifdim\tud@len@areadiff<\z@\relax\setlength\tud@len@areadiff{\z@}\fi%
+ \global\tud@len@areadiff=\tud@len@areadiff%
+ \if@tud@cdgeometry@adjust%
+ \setlength\tud@len@areaheadvskip{.3\tud@len@topmargin}%
+ \else%
+ \setlength\tud@len@areaheadvskip{.6\tud@len@topmargin}%
+ \fi%
+ \global\tud@len@areaheadvskip=\tud@len@areaheadvskip%
+% \end{macrocode}
+% Für den Satzspiegel der Version~v2.02 wird außerdem die Länge für den höheren
+% Seitenfuß gesetzt.
+% \begin{macrocode}
+ \tud@if@v@lower{2.03}{%
+ \ifdim\tud@len@ddcdiff<\z@\relax\setlength\tud@len@ddcdiff{\z@}\fi%
+ \global\tud@len@ddcdiff=\tud@len@ddcdiff%
+ }{}%
+% \end{macrocode}
+% Es wird \cs{tud@cdgeometry@@@process} aufgerufen, was die zuvor definierten
+% Hilfsmakros nutzt, um alle benötigten Seitenlayouts optionsabhängig zu
+% erstellen.
+% \begin{macrocode}
+ \tud@cdgeometry@@@process%
+ }%
+% \end{macrocode}
+% Der Befehl \cs{tud@cdgeometry@@@process} setzt mit den zuvor definierten
+% Hilfsmakros die \pkg{geometry}-Optionen für sowohl die seitlichen als auch
+% die oberen sowie unteren Seitenränder und inkludiert ggf. Kopf- und Fußzeile
+% in den Satzspiegel. Die unterschiedlichen Layouts sind dabei \opt{tudddc} für
+% TUD-Kopf und \DDC-Fuß, \opt{tudpage} für den alleinigen TUD-Kopf sowie
+% \opt{tudarea} für den normalen bzw. mit \pkg{typearea} berechneten
+% Satzspiegel.
+% \begin{macrocode}
+ \newcommand*\tud@cdgeometry@@@process{%
+% \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@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@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@cdgeometry@hmargin,%
+ \tud@cdgeometry@vmargin%
+ }%
+ \tud@setgeometry{\@tempa}%
+ \tud@savegeometry{stdarea}%
+% \end{macrocode}
+% Falls die (abermalige) Erstellung der Satzspiegel im Dokument erfolgt, sollte
+% anschließend auch der richtige Satzspiegel wieder ausgewählt werden.
+% \begin{macrocode}
+ \if@atdocument%
+ \ifstr{\tud@currentgeometry}{stdarea}{}{%
+ \expandafter\tud@loadgeometry\expandafter{\tud@currentgeometry}%
+ }%
+ \fi%
+ }%
+% \end{macrocode}
+% \end{macro}^^A \tud@cdgeometry@@@process
+% \end{macro}^^A \tud@cdgeometry@@process
+% \begin{macro}{\tud@cdgeometry@hincl}
+% \changes{v2.02}{2014/06/23}{geändert für das Paket \pkg{scrlayer-scrpage}}^^A
+% \begin{macro}{\tud@cdgeometry@fincl}
+% \begin{macro}{\tud@cdgeometry@mpincl}
+% \changes{v2.04}{2015/03/09}{neu}^^A
+% Diese Hilfsmakros werten die Optionen für das Einbeziehen von Kopf- und
+% Fußzeile sowie der Randnotizen aus.
+% \begin{macrocode}
+ \newcommand*\tud@cdgeometry@hincl{%
+ \if@hincl%
+ includehead=true%
+ \else%
+ includehead=false%
+ \fi%
+ }%
+ \newcommand*\tud@cdgeometry@fincl{%
+ \if@fincl%
+ includefoot=true%
+ \else%
+ includefoot=false%
+ \fi%
+ }%
+ \newcommand*\tud@cdgeometry@mpincl{%
+ \if@mincl%
+ includemp=true%
+ \else%
+ includemp=false%
+ \fi%
+ }%
+% \end{macrocode}
+% \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{macrocode}
+}
+% \end{macrocode}
+% \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
+% \begin{macro}{\tud@currentgeometry}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% Mit \cs{tud@BeforeSelectAnyPageStyle} wird beim Umschalten des Seitenstils
+% gegebenenfalls der Satzspiegel geändert. Es wird der aktivierte Satzspiegel
+% in dem Makro \cs{tud@currentgeometry} gesichert, um darauf zu einem späteren
+% Zeitpunkt prüfen zu können.
+%
+% Für den Fall, dass das Dokument nicht ausschließlich mit dem Kopf im \CD
+% auf jeder Seite gesetzt wird, muss der komplette vertikale Satzspiegel
+% angepasst werden, sonst wäre der obere Rand optisch viel zu groß. Hierfür
+% wird das Paket \pkg{geometry} genutzt. Durch \cs{tud@cdgeometry@@process}
+% 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]{%
+% \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}}{%
+% \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}{%
+% \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}{%
+% \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%
+% \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}%
+ }%
+% \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%
+% \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}%
+ }%
+ }%
+% \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@}%
+% \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}}%
+% \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}%
+ }%
+% \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%
+ }%
+ \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}%
+ }%
+% \end{macrocode}
+% Die Länge \cs{tud@len@areavskip} wird vorsichtshalber global gesetzt.
+% \begin{macrocode}
+ \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{geometry=no}) wird jedoch der von \pkg{typearea} berechnete
+% Satzspiegel an \pkg{geometry} weitergereicht. Somit wird es möglich,
+% unabhängig vom genutzten Paket\footnote{\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.
+% \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}%
+ \hoffset=-72.27pt%
+ \voffset=-72.27pt%
+ \topmargin=0pt%
+ \headheight=0pt%
+ \headsep=0pt%
+ \marginparsep=0pt%
+ \marginparwidth=0pt%
+ \footskip=0pt%
+ \marginparpush=0pt%
+ \oddsidemargin=0pt%
+ \evensidemargin=0pt%
+ \topskip=0pt%
+ \textheight=\maxdimen%
+ \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{geometry=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%
+ \endgroup%
+% \end{macrocode}
+% Falls \opt{geometry=custom} aktiv ist, werden die Einstellungen übernommen.
+% \begin{macrocode}
+ \tud@reserved{custom}%
+% \end{macrocode}
+% Nach einer Neuberechnung oder Änderung des Satzspiegels 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}%
+ }%
+% \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%
+ \fi
+ \let\tud@cdgeometry@init\relax%
+ }%
+}
+\AfterPackage!{scrlayer-scrpage}{\tud@cdgeometry@init}
+% \end{macrocode}
+% \end{macro}^^A \tud@cdgeometry@init
+% Sollte das Laden des Paketes \pkg{geometry} verhindert werden, sind einige
+% wenige Befehle vorzuhalten.
+% \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]{}%
+}
+% \end{macrocode}
+% \begin{macro}{\cleardoubleoddpageusingstyle}
+% \begin{macro}{\cleardoubleevenpageusingstyle}
+% \begin{macro}{\cleardoublepageusingstyle}
+% Damit die Satzspiegelumstellungen nicht durchgeführt werden, wenn durch die
+% folgenden \KOMAScript-Befehle Leerseiten erzeugt werden, müssen diese minimal
+% angepasst werden.
+% \begin{macrocode}
+\patchcmd{\cleardoubleoddpageusingstyle}{\pagestyle}{%
+ \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle%
+}{}{\tud@patch@wrn{cleardoubleoddpageusingstyle}}
+\patchcmd{\cleardoubleevenpageusingstyle}{\pagestyle}{%
+ \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle%
+}{}{\tud@patch@wrn{cleardoubleevenpageusingstyle}}
+\patchcmd{\cleardoublepageusingstyle}{\pagestyle}{%
+ \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle%
+}{}{\tud@patch@wrn{cleardoublepageusingstyle}}
+% \end{macrocode}
+% \end{macro}^^A \cleardoublepageusingstyle
+% \end{macro}^^A \cleardoubleevenpageusingstyle
+% \end{macro}^^A \cleardoubleoddpageusingstyle
+% \begin{macro}{\tud@ddc@enlargepage}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% Der Befehl wird nur für den Kompatibilitätsmodus zur Version~v2.02 benötigt
+% und für die Titelkopf- und Kapitelseiten verwendet. Er verkleinert die
+% entsprechenden Seiten, wenn für diese mit dem Befehl \cs{thispagestyle} einer
+% der \pgs{tudheadings}-Seitenstile gewählt wird \emph{und} das \DDC-Logo im
+% Fuß gesetzt werden soll. Der entsprechende Seitenstil kann im optionalen
+% Argument angegeben werden, wenn der Befehl bedingt ausgeführt werden soll.
+% \begin{macrocode}
+\tud@if@v@lower{2.03}{%
+ \newcommand*\tud@ddc@enlargepage[1][]{%
+ \tud@if@tudheadings{#1}{%
+ \ifstr{\tud@currentgeometry}{tudareaddc}{}{%
+ \tud@ddc@check%
+ \ifcase\@tempb\relax\else% \tud@ddc@foot@num!=false
+ \enlargethispage{-\tud@len@ddcdiff}%
+ \fi%
+ }%
+ }{}%
+ }%
+}{}
+% \end{macrocode}
+% \end{macro}^^A \tud@ddc@enlargepage
+%
+% \iffalse
+%</class&body>
+% \fi
+%
+% \Finale
+%
+\endinput
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-base.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-base.dtx
index 5b2a03e7a8c..541de34d925 100644
--- a/Master/texmf-dist/source/latex/tudscr/tudscr-base.dtx
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-base.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{480}
+% \CheckSum{769}
% \iffalse meta-comment
%
% ============================================================================
@@ -18,13 +18,13 @@
%
% ----------------------------------------------------------------------------
%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
-% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
-% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
-% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
-% oder spaeter 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.
+% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
+% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
+% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
+% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
+% oder spaeter 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.
%
% ============================================================================
%
@@ -51,24 +51,25 @@
%<*driver>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\ProvidesFile{tudscr-base.dtx}[%
- 2015/06/15 v2.04 TUD-KOMA-Script\space%
+ 2016/07/26 v2.05 TUD-KOMA-Script\space%
%</driver>
-%<package>\NeedsTeXFormat{LaTeX2e}
-%<package>\ProvidesPackage{tudscrbase}[%
-%<*driver|package>
-%!TUDVersion
+%<package&base>\ProvidesPackage{tudscrbase}[%
+%<*driver|package&base>
+%!TUD@Version
%<package> package
(basics for the bundle)%
]
-%</driver|package>
+%</driver|package&base>
%<*driver>
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
-\documentclass[english,ngerman]{tudscrdoc}
+\documentclass[english,ngerman,xindy]{tudscrdoc}
\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{tudscrfonts} % only load this package, if the fonts are installed
\KOMAoptions{parskip=half-}
+\usepackage{microtype}
+\usepackage{bookmark}
\CodelineIndex
\RecordChanges
\GetFileInfo{tudscr-base.dtx}
@@ -81,35 +82,93 @@
%
% \selectlanguage{ngerman}
%
-% \changes{v2.02}{2014/06/23}{Unterstützung für \pkg{titlepage} entfernt}^^A
+% \changes{v2.02}{2014/06/23}{Paket \pkg{titlepage} nicht weiter unterstützt}^^A
%
% \section{Grundlegende Befehle und Pakete}
%
% Für die Erstellung der Wrapper-Klassen werden die dafür benötigten Pakete
% eingebunden und Steuerungsbefehle definiert.
+% \ToDo{%
+% Schnittstelle ähnlich zu \cs{KOMA@kav@\dots}? Falls ja, dann Löschen von
+% Elemente aus \pkg{etoolbox}-Listen ermöglichen \cs{list(cs)(g/e/x)}rem%
+% }[v2.07]
+% \ToDo{alle benötigten Pakete zur Not mit UnwindqPackage abfangen}[v2.06]
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \StopEventually{\PrintIndex\PrintChanges\PrintToDos}
%
% \iffalse
+%<*load>
+% \fi
+%
+% \subsection{Laden des Paketes}
+% Die Klassen sowie einige Pakete benötigen das Paket und laden dieses auch.
+% \begin{macrocode}
+\RequirePackage{tudscrbase}[\TUD@Version]
+% \end{macrocode}
+%
+% \iffalse
+%</load>
%<*package>
% \fi
%
% \subsection{Das Paket \pkg{tudscrbase}}
%
-% Das Paket \pkg{scrbase} wird zur Optionsdefinition benötigt.
+% Das Paket \pkg{scrbase} wird zur Optionsdefinition benötigt, \pkg{scrlfile}
+% für verschiedene Hooks vor sowie nach Klassen und Paketen.
+% \ToDo{Patch für \pkg{scrbase} raus}[v3.21]
% \begin{macrocode}
+%<*base>
\RequirePackage{scrbase}[2013/12/19]
+\@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>
+%<fontsfix>\RequirePackage{scrlfile}[2013/12/19]
% \end{macrocode}
+% Das Paket \pkg{etoolbox} wird für die Manipulation bereits definierter
+% Makros sowie zur erweiterten Auswertung boolescher Ausdrücke benötigt.
+% \begin{macrocode}
+%<base|fontsfix>\RequirePackage{etoolbox}[2011/01/03]
+% \end{macrocode}
+%
+% \iffalse
+%</package>
+%<*package&base>
+% \fi
+%
% Das Paket \pkg{kvsetkeys} erweitert \pkg{keyval} um die Möglichkeit, das
% Verhalten bei der Angabe eines nicht definierten Schlüssels festzulegen.
% \begin{macrocode}
+\RequirePackage{etexcmds}[2011/02/16]
\RequirePackage{kvsetkeys}[2012/04/25]
% \end{macrocode}
-% Das Paket \pkg{etoolbox} wird für die Manipulation bereits definierter
-% Makros sowie zur erweiterten Auswertung boolescher Ausdrücke benötigt.
-% \begin{macrocode}
-\RequirePackage{etoolbox}[2011/01/03]
-% \end{macrocode}
%
% \subsubsection{Robuster Test auf leeres Argument}
%
@@ -118,7 +177,7 @@
% Leerzeichen). In seiner Syntax ist er identisch zu \cs{ifblank}, allerdings
% expandiert er im Gegensatz zu diesem das gegebene Argument.
% \begin{macrocode}
-\newcommand*\ifxblank{\expandafter\ifblank\expandafter}
+\newcommand*\ifxblank{\ifstr{}}
% \end{macrocode}
% \end{macro}^^A \ifxblank
%
@@ -167,6 +226,58 @@
% \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}
+% \changes{v2.05}{2015/11/23}{neu}^^A
+% Hiermit kann getestet werden, ob das Argument als Sprache nutzbar ist.
+% \begin{macrocode}
+\newcommand*\iflanguageloaded[1]{%
+ \PackageWarning{tudscrbase}{%
+ Whether package `babel' nor package `polyglossia' has been loaded%
+ }%
+ \expandafter\@secondoftwo%
+}
+\AfterPackage*{babel}{%
+ \renewcommand*\iflanguageloaded[1]{%
+ \@expandtwoargs\in@{,#1,}{,\bbl@loaded,}%
+ \ifin@%
+ \expandafter\@firstoftwo%
+ \else%
+ \expandafter\@secondoftwo%
+ \fi%
+ }%
+}
+\AfterPackage*{polyglossia}{%
+ \renewcommand*\iflanguageloaded[1]{\ifcsdef{#1@loaded}}%
+}
+% \end{macrocode}
+% \end{macro}^^A \iflanguageloaded
+%
% \subsubsection{Expansion geschützter Makros}
%
% Im \LaTeX-Kernel wird der Befehl \cs{@expandtwoargs} definiert, welcher zwei
@@ -191,7 +302,6 @@
% Zahl liefert. Dem wird hier Abhilfe geleistet.
% \begin{macro}{\tud@divide}
% \changes{v2.04}{2015/04/09}{neu}^^A
-% \changes{v2.04}{2015/05/27}{Ausführung in Gruppe}^^A
% Der Befehl erwartet im ersten Argument das Makro, in welches das Ergebnis
% der Division expandiert werden soll, danach folgen Dividend und Divisor. Die
% Berechnung erfolgt in einer Gruppe, damit die benötigten Längenregister nach
@@ -261,16 +371,124 @@
% \end{macrocode}
% \end{macro}^^A \tud@lowerstring
%
+% \subsubsection{Makros zur internen Verwendung}
+%
+% Hier werden Makros definiert, die allein für die interne temporäre Nutzung
+% gedacht sind.
+% \begin{macro}{\tud@reserved}
+% \changes{v2.05}{2015/10/27}{neu}^^A
+% Ein Makro zur temporären Verwendung.
+% \begin{macrocode}
+\newcommand*\tud@reserved{}
+% \end{macrocode}
+% \end{macro}^^A \tud@reserved
+% \begin{macro}{\tud@toks@}
+% \changes{v2.05}{2015/11/01}{neu}^^A
+% \begin{macro}{\eaddto@hook}
+% \changes{v2.05}{2015/11/01}{neu}^^A
+% Es wird ein token-Regsiter reserviert, welches im weiteren Verlauf an allen
+% möglichen Punkten verwendet wird. Mit \cs{eaddto@hook} wird~-- in Ergänzung
+% zu \cs{addto@hook}~-- ein Makro zum Anfügen des expandierten Arguments an ein
+% token-Register bereitgestellt.
+% \begin{macrocode}
+\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@
+%
+% \subsubsection{Ersetzen von Inhalten}
+%
+% \begin{macro}{\tud@replace}
+% \changes{v2.05}{2015/11/01}{neu}^^A
+% Mit diesem Befehl kann in einem gegebenen Makro ein bestimmtes Zeichen durch
+% ein anderes ersetzt werden. Dies wird verwendet, um für Indexbefehle oder
+% Labels die möglicherweise enthaltenen \val{@}-Zeichen zu ersetzen.
+% \begin{macrocode}
+\newcommand*\tud@replace[3]{%
+ \begingroup%
+% \end{macrocode}
+% Zunächst wird \cs{@tempa} als ein durch \cs{@nil} abgegrenztes Makro mit
+% zwei Argumenten definiert, wobei diese durch das im zweiten Argument gegebene
+% \meta{Zeichen} voneinander abgegrenzt werden. Mit diese beiden Argumente wird
+% das Makro \cs{@tempb} aufgerufen.
+% \begin{macrocode}
+ \toks@{\def\@tempa##1}%
+ \eaddto@hook\toks@{\detokenize{#2}}%
+ \addto@hook\toks@{##2\@nil{\@tempb{##1}{##2}}}%
+% \end{macrocode}
+% Der Inhalt von \cs{toks@} ist
+% \cs{def}\cs{@tempa\#1\meta{Zeichen}\#2}\cs{@nil\{\cs{@tempb\{\#1\}\{\#2\}}\}}
+% und definiert \cs{@tempa}.
+% \begin{macrocode}
+ \the\toks@%
+% \end{macrocode}
+% Nun wird \cs{@tempb} definiert. Dieses Makro fügt dem Zielmakro das erste
+% Argumente gefolgt von \meta{Ersatzzeichen} hinzu. Mit dem zweiten Argument
+% wird anschließend \cs{@tempa\#\#2}\cs{@nil} so lange rekursiv aufgerufen, bis
+% es wirklich leer ist, wodurch das zweite Argument \meta{Zeichen} sukzessive
+% durch das dritte Argument \meta{Ersatzzeichen} ersetzt wird.
+% \begin{macrocode}
+ \def\@tempb##1##2{%
+ \IfArgIsEmpty{##2}{%
+ \appto#1{##1}%
+ \let\@tempc\relax%
+ }{%
+ \appto#1{##1#3}%
+ \def\@tempc{\@tempa##2\@nil}%
+ }%
+ \@tempc%
+ }%
+% \end{macrocode}
+% Nachdem die beiden notwendigen Makros definiert wurden, erfolgt jetzt die
+% eigentliche Ersetzung. Dafür wird der Inhalt des Zielmakros als Argument für
+% \cs{@tempa} verwendet. Diesem wird das zu ersetzende Zeichen gefolgt von
+% \cs{@nil} hinzugefügt, um das Argument abschließend zu begrenzen.
+% \begin{macrocode}
+ \toks@{\@tempa}%
+ \edef\@tempc{\expandafter\detokenize\expandafter{#1}}%
+ \eaddto@hook\toks@{\@tempc}%
+ \eaddto@hook\toks@{\detokenize{#2}\@nil}%
+% \end{macrocode}
+% Der Inhalt von \cs{toks@} hat die Form \cs{@tempa\#1\meta{Zeichen}}\cs{@nil},
+% wobei der Inhalt von \meta{\#1} expandiert wird.
+% \begin{macrocode}
+ \def#1{}%
+ \the\toks@%
+ \edef\tud@reserved{%
+ \noexpand\endgroup%
+ \def\noexpand#1{#1}%
+ }%
+ \tud@reserved%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@replace
+%
% \subsubsection{Schlüssel und Parameter für \TUDScript}
%
+% In Anlehnung an \KOMAScript{} werden hier Befehle zur Definition und
+% Ausführung unterschiedlicher Klassenoptionen mithilfe der Funktionen aus
+% dem \pkg{scrbase}-Paket erstellt.
+%
% \begin{macro}{\TUDProcessOptions}
% \begin{macro}{\TUDExecuteOptions}
% \begin{macro}{\TUDoptions}
% \begin{macro}{\TUDoption}
-% \begin{macro}{\TUD@noworlater}
+% Zuerst ein paar Makros zur einfacheren Verwendung.
+% \begin{macrocode}
+\DefineFamily{TUD}
+\newcommand*\TUDProcessOptions{\FamilyProcessOptions{TUD}}
+\newcommand*\TUDExecuteOptions{\FamilyExecuteOptions{TUD}}
+\newcommand*\TUDoptions{\FamilyOptions{TUD}}
+\newcommand*\TUDoption{\FamilyOption{TUD}}
+% \end{macrocode}
+% \end{macro}^^A \TUDoption
+% \end{macro}^^A \TUDoptions
+% \end{macro}^^A \TUDExecuteOptions
+% \end{macro}^^A \TUDProcessOptions
% \begin{macro}{\TUD@key}
-% \begin{macro}{\TUD@@key}
-% \begin{macro}{\TUD@@@key}
% \begin{macro}{\TUD@ifkey}
% \begin{macro}{\TUD@set@ifkey}
% \begin{macro}{\TUD@numkey}
@@ -281,38 +499,18 @@
% \begin{macro}{\TUD@lengthkey}
% \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
% \begin{macro}{\TUD@unknown@keyval}
-% In Anlehnung an \KOMAScript{} werden hier Befehle zur Definition und
-% Ausführung unterschiedlicher Klassenoptionen mithilfe der Funktionen aus
-% dem \pkg{scrbase}-Paket erstellt. Klassenoptionen können entweder als
-% Schalter (\cs{TUD@ifkey}) oder aber mit mehreren möglichen Werten
-% (\cs{TUD@numkey}) definiert werden.
+% 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
+% Definition mit anschließender Abarbeitung ohne die zuvor genannten Befehle
+% möglich.
% \begin{macrocode}
-\DefineFamily{TUD}
-\newcommand*\TUDProcessOptions{\FamilyProcessOptions{TUD}}
-\newcommand*\TUDExecuteOptions{\FamilyExecuteOptions{TUD}}
-\newcommand*\TUDoptions{\FamilyOptions{TUD}}
-\newcommand*\TUDoption{\FamilyOption{TUD}}
-% \end{macrocode}
-% Hiermit wird die Abarbeitung der Optionen an das Ende der Klasse verzögert.
-% \begin{macrocode}
-\newcommand*\TUD@noworlater{\AtEndOfClass}
-\AtEndOfClass{\let\TUD@noworlater\@firstofone}
-% \end{macrocode}
-% Dies sind die Befehle zur Definition einer Standardoption.
-% \begin{macrocode}
-\newcommand*\TUD@key[2][.\@currname.\@currext]{%
+\newcommand*\TUD@key[1][.\@currname.\@currext]{%
\DefineFamilyMember{TUD}%
- \kernel@ifnextchar[%]
- {\TUD@@key[#1]{#2}}{\TUD@@@key[#1]{#2}}%
-}
-\newcommand*\TUD@@key{}
-\def\TUD@@key[#1]#2[#3]#4{%
- \DefineFamilyKey[#1]{TUD}{#2}[{#3}]{\TUD@noworlater{#4}}%
-}
-\newcommand*\TUD@@@key{}
-\def\TUD@@@key[#1]#2#3{%
- \DefineFamilyKey[#1]{TUD}{#2}{\TUD@noworlater{#3}}%
+ \DefineFamilyKey[#1]{TUD}%
}
% \end{macrocode}
% Dies sind die Befehle zur Definition einer booleschen Option.
@@ -346,12 +544,26 @@
}
\newcommand*\TUD@set@lengthkey{\FamilySetLength{TUD}}
% \end{macrocode}
-% Dieser Befehl wird lediglich pro forma definiert. Derzeit wird er durch
-% \KOMAScript nicht abgearbeitet.
+% 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}%
+ }%
+}
+% \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.
% \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
@@ -359,14 +571,7 @@
% \end{macro}^^A \TUD@numkey
% \end{macro}^^A \TUD@set@ifkey
% \end{macro}^^A \TUD@ifkey
-% \end{macro}^^A \TUD@@@key
-% \end{macro}^^A \TUD@@key
% \end{macro}^^A \TUD@key
-% \end{macro}^^A \TUD@noworlater
-% \end{macro}^^A \TUDoption
-% \end{macro}^^A \TUDoptions
-% \end{macro}^^A \TUDExecuteOptions
-% \end{macro}^^A \TUDProcessOptions
% \begin{macro}{\TUD@key@lock}
% \begin{macro}{\TUD@std@ifkey@lock}
% \begin{macro}{\TUD@std@numkey@lock}
@@ -402,9 +607,9 @@
% 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[2]{%
+\newcommand*\TUD@std@ifkey@lock[3]{%
\ifbool{@tud@#1@locked}{}{%
- \TUDoption{#1}{#2}%
+ \TUD@set@ifkey{#1}{#2}{#3}%
\boolfalse{@tud@#1@locked}%
}%
}
@@ -451,31 +656,54 @@
% \end{macro}^^A \cs@set@lock
% \end{macro}^^A \cs@std@lock
% \end{macro}^^A \cs@lock
+% \begin{macro}{\tud@setbool}
+% \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.
+% von sperrbaren booleschen Schaltern. Dabei wird \cs{tud@setbool} 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]{%
+ \ifstrbool{#2}{\booltrue{#1}}{\boolfalse{#1}}{%
+ \PackageError{tudscrbase}{%
+ `#2' is not a valid boolean expression%
+ }{%
+ You tried to set the boolean switch `\@backslashchar if#1'\MessageBreak%
+ to value `#2' but only `true' `on' and `yes' as well as \MessageBreak%
+ `false' `no' and `off' are valid values.%
+ }%
+ }%
+}
\newcommand*\bool@lock[2][false]{%
\newbool{#2}%
\newbool{#2@locked}%
- \setbool{#2}{#1}%
+ \tud@setbool{#2}{#1}%
}
\newcommand*\bool@std@lock[2]{%
\ifbool{#1@locked}{}{%
- \setbool{#1}{#2}%
+ \tud@setbool{#1}{#2}%
\boolfalse{#1@locked}%
}%
}
\newcommand*\bool@set@lock[2]{%
- \setbool{#1}{#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}
@@ -504,6 +732,7 @@
\tud@cmd@check{#1}%
\ifcsdef{@@tud@#1}{}{\csletcs{@@tud@#1}{#1}}%
}
+%<*base>
\newcommand*\tud@cmd@restore[1]{%
\tud@cmd@check{#1}%
\ifcsdef{@@tud@#1}{%
@@ -522,11 +751,12 @@
\newcommand*\tud@cmd@use[1]{%
\tud@cmd@check{#1}%
\ifcsdef{@@tud@#1}{%
- \@nameuse{@@tud@#1}%
+ \csuse{@@tud@#1}%
}{%
- \@nameuse{#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
@@ -534,59 +764,100 @@
% \begin{macrocode}
\newcommand*\tud@cmd@check[1]{%
\ifcsdef{#1}{}{%
- \PackageError{tudscrbase}{%
- `\@backslashchar#1' is not defined%
- }{%
- The command `\@backslashchar#1' was never defined.\MessageBreak%
+ \PackageError{%
+%<base> tudscrbase%
+%<fontsfix> fix-tudscrfonts%
+ }{`\@backslashchar#1' is not defined}{%
+ The command `\@backslashchar#1' was never defined\MessageBreak%
Please contact the TUD-KOMA-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
+%
% \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
% \begin{macro}{\tud@skip@restore}
% \changes{v2.04}{2015/03/02}{neu}^^A
+% \changes{v2.05}{2016/07/13}{Verwendung von \cs{tud@skip@check}}^^A
+% \begin{macro}{\tud@skip@reset}
+% \changes{v2.05}{2016/07/13}{neu}^^A
% \begin{macro}{\tud@skip@set}
% \changes{v2.04}{2015/05/05}{neu}^^A
+% \changes{v2.05}{2016/07/13}{Verwendung von \cs{tud@skip@check}}^^A
+% \begin{macro}{\tud@skip@check}
+% \changes{v2.05}{2016/07/13}{neu}^^A
% Hiermit können~-- äquivalent zum Sichern und Wiederherstellen von Befehlen~--
% Längenregister abgespeichert werden.
% \begin{macrocode}
\newcommand*\tud@skip@store[1]{%
- \ifcsdef{@@tud@skip@#1}{}{%
- \@tempswafalse%
- \ifisskip{\csname #1\endcsname}{\@tempswatrue}{}%
- \ifisdimen{\csname #1\endcsname}{\@tempswatrue}{}%
- \if@tempswa%
+ \tud@skip@check{#1}{%
+ \ifcsdef{@@tud@skip@#1}{}{%
\csedef{@@tud@skip@#1}{\expandafter\the\csname #1\endcsname}%
- \fi%
+ }%
}%
}
\newcommand*\tud@skip@restore[1]{%
- \ifcsdef{@@tud@skip@#1}{%
- \csname #1\endcsname=\csname @@tud@skip@#1\endcsname%
- \csundef{@@tud@skip@#1}%
- }{}%
+ \tud@skip@check{#1}{%
+ \ifcsdef{@@tud@skip@#1}{%
+ \csname #1\endcsname=\csname @@tud@skip@#1\endcsname%
+ \csundef{@@tud@skip@#1}%
+ }{}%
+ }%
+}
+\newcommand*\tud@skip@reset[1]{%
+ \tud@skip@check{#1}{%
+ \ifcsdef{@@tud@skip@#1}{%
+ \csname#1\endcsname=\csname @@tud@skip@#1\endcsname%
+ }{}%
+ }%
}
\newcommand*\tud@skip@set[2]{%
- \ifdef{#1}{%
+ \tud@skip@check{#1}{%
+ \expandafter\setlength\csname #1\endcsname{#2}%
+ }%
+}
+\newcommand*\tud@skip@check[1]{%
+ \begingroup%
\@tempswafalse%
- \ifisskip{#1}{\@tempswatrue}{}%
- \ifisdimen{#1}{\@tempswatrue}{}%
+ \expandafter\ifisskip\expandafter{\csname#1\endcsname}{\@tempswatrue}{}%
+ \expandafter\ifisdimen\expandafter{\csname#1\endcsname}{\@tempswatrue}{}%
\if@tempswa%
- \setlength#1{#2}%
+ \aftergroup\@firstofone%
+ \else%
+ \aftergroup\@gobble%
\fi%
- }{}%
+ \endgroup%
}
% \end{macrocode}
+% \end{macro}^^A \tud@skip@check
% \end{macro}^^A \tud@skip@set
+% \end{macro}^^A \tud@skip@reset
% \end{macro}^^A \tud@skip@restore
% \end{macro}^^A \tud@skip@store
% \begin{macro}{\tud@patch@wrn}
@@ -596,7 +867,7 @@
% \begin{macrocode}
\newcommand*\tud@patch@wrn[1]{%
\PackageWarning{tudscrbase}{%
- It wasn't possible to patch `\@backslashchar#1'.\MessageBreak%
+ It wasn't possible to patch `\@backslashchar#1'\MessageBreak%
Please contact the TUD-KOMA-Script maintainer\MessageBreak%
via \tudscrmail. Without a bugfix an\MessageBreak%
erroneous output may occur%
@@ -604,114 +875,212 @@
}
% \end{macrocode}
% \end{macro}^^A \tud@patch@wrn
-% \begin{macro}{\TUD@parameter}
% \begin{macro}{\TUD@parameter@family}
+% \begin{macro}{\TUD@parameter@@family}
% \begin{macro}{\TUD@parameter@checkfamily}
-% Mit \cs{TUD@parameter}\marg{Familienname}\marg{Definitionen} können
+% Mit \cs{TUD@parameter@family}\marg{Familienname}\marg{Definitionen} können
% Schlüssel"=Wert"=Parameter für die optionalen Argumente von Befehle definiert
% werden. Das erste Argument definiert den Familiennamen für den jeweiligen
% Befehl, welcher eindeutig gewählt werden sollte. Dieser wird im Hilfsmakro
-% \cs{TUD@parameter@family} gesichert. Dies soll im Zusammenspiel mit dem
+% \cs{TUD@parameter@@family} gesichert. Dies soll im Zusammenspiel mit dem
% Makro \cs{TUD@parameter@checkfamily} dafür sorgen, dass die im Folgenden
-% bereitgestellten Befehle \cs{TUD@parameter@define}, \cs{TUD@parameter@let},
-% und \cs{TUD@parameter@sethandler}~-- welche die eigentliche Definition der
-% Parameter für den Benutzer bewerkstelligen~-- ohne die Angabe der Familie nur
-% innerhalb des zweiten Argumentes von \cs{TUD@parameter} verwendet werden
-% können.
-% \begin{macrocode}
-\newcommand*\TUD@parameter@family{}%
-\newcommand*\TUD@parameter[2]{%
- \ifxblank{#1}{}{\xdef\TUD@parameter@family{#1}}%
+% bereitgestellten Befehle \cs{TUD@parameter@def}, \cs{TUD@parameter@let} und
+% \cs{TUD@parameter@handler@macro}~-- welche die eigentliche Definition der
+% Parameter für den Benutzer bewerkstelligen~-- ohne die Angabe der Familie
+% nur innerhalb des zweiten Argumentes von \cs{TUD@parameter@family} verwendet
+% werden können.
+% \begin{macrocode}
+\newcommand*\TUD@parameter@@family{}
+\newcommand*\TUD@parameter@family[2]{%
+ \xdef\TUD@parameter@@family{#1}%
#2%
- \global\let\TUD@parameter@family\relax%
+ \gdef\TUD@parameter@@family{}%
}
-\let\TUD@parameter@family\relax%
% \end{macrocode}
% Dieser Befehl prüft, ob eine Familie für den Paramter definiert wurde.
% \begin{macrocode}
-\newcommand*\TUD@parameter@checkfamily[1]{%
- \ifx\TUD@parameter@family\relax%
+\newcommand*\TUD@parameter@checkfamily[2]{%
+ \ifxblank{#1}{%
\PackageError{tudscrbase}{%
- No family for keys given%
+ No family for \@backslashchar#2 defined%
}{%
- You have to use \string#1\space within the\MessageBreak%
- second argument of \string\TUD@parameter. The first \MessageBreak%
- argument of \string\TUD@parameter\space has to be a unique family name.%
+ You have to use \@backslashchar#2\space within the\MessageBreak%
+ second argument of \string\TUD@parameter@family. The first\MessageBreak%
+ 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.
}%
- \fi%
+ }{}%
}
% \end{macrocode}
% \end{macro}^^A \TUD@parameter@checkfamily
+% \end{macro}^^A \TUD@parameter@@family
% \end{macro}^^A \TUD@parameter@family
-% \end{macro}^^A \TUD@parameter
-% \begin{macro}{\TUD@parameter@define}
+% \begin{macro}{\TUD@parameter@def}
% \begin{macro}{\TUD@parameter@let}
% \changes{v2.02}{2014/07/25}{Beachtung der gegebenen Standardwerte}^^A
-% \begin{macro}{\TUD@parameter@sethandler}
-% \cs{TUD@parameter@define}\marg{Name}\oarg{Säumniswert}\marg{Verarbeitung}
-% nutzt \cs{define@key} aus dem \pkg{keyval}"=Paket, um einen Schlüssel und
-% dessen Verarbeitung zu definieren, wobei auf den zugewiesenen Wert innerhalb
-% des zweiten obligatorischen Argumentes mit \texttt{\#1} zugegriffen werden
-% kann.
-% \begin{macrocode}
-\newcommand*\TUD@parameter@define[1][]{%
- \ifxblank{#1}{%
- \TUD@parameter@checkfamily{\TUD@parameter@define}%
- \expandafter\define@key\expandafter{\TUD@parameter@family}%
- }{%
- \expandafter\define@key\expandafter{#1}%
- }%
+% \cs{TUD@parameter@def}\marg{Name}\oarg{Säumniswert}\marg{Verarbeitung} nutzt
+% \cs{define@key} aus dem \pkg{keyval}-Paket, um einen Schlüssel und dessen
+% Verarbeitung zu definieren, wobei auf den zugewiesenen Wert innerhalb des
+% zweiten obligatorischen Argumentes mit \val{\#1} zugegriffen werden kann.
+% \begin{macrocode}
+\newcommand*\TUD@parameter@def[1][\TUD@parameter@@family]{%
+ \TUD@parameter@checkfamily{#1}{TUD@parameter@def}%
+ \expandafter\define@key\expandafter{#1}%
}
% \end{macrocode}
% Mit \cs{TUD@parameter@let}\marg{Name}\marg{Name} kann äquivalent zur
% \mbox{\TeX-Primitive \cs{let}} die Definition der Verarbeitung eines
% Parameters auf einen weiteren übertragen werden.
% \begin{macrocode}
-\newcommand*\TUD@parameter@let[3][]{%
- \ifxblank{#1}{%
- \TUD@parameter@checkfamily{\TUD@parameter@let}%
- \@expandtwoargs{\csletcs}{%
- KV@\TUD@parameter@family @#2%
- }{%
- KV@\TUD@parameter@family @#3%
- }%
- \@expandtwoargs{\csletcs}{%
- KV@\TUD@parameter@family @#2@default%
- }{%
- KV@\TUD@parameter@family @#3@default%
- }%
- }{%
- \@expandtwoargs{\csletcs}{KV@#1@#2}{KV@#1@#3}%
- \@expandtwoargs{\csletcs}{KV@#1@#2@default}{KV@#1@#3@default}%
- }%
-}
-% \end{macrocode}
-% Außerdem kann durch \cs{TUD@parameter@sethandler}\marg{Verarbeitung} definiert
-% werden, wie verfahren werden soll, wenn ein optionales Argument im klasischen
-% \LaTeX-Stil und nicht in der Schlüssel"=Wert"=Syntax angegeben wird. Auf das
-% optionale Argument wird ganz normal mit \texttt{\#1} zugegriffen.
-% \begin{macrocode}
-\newcommand*\TUD@parameter@sethandler[1][]{%
- \ifxblank{#1}{%
- \TUD@parameter@checkfamily{\TUD@parameter@sethandler}%
- \expandafter\kv@set@family@handler\expandafter{\TUD@parameter@family}%
- }{%
- \expandafter\kv@set@family@handler\expandafter{#1}%
- }%
+\newcommand*\TUD@parameter@let[3][\TUD@parameter@@family]{%
+ \TUD@parameter@checkfamily{#1}{TUD@parameter@let}%
+ \@expandtwoargs{\csletcs}{KV@#1@#2}{KV@#1@#3}%
+ \@expandtwoargs{\csletcs}{KV@#1@#2@default}{KV@#1@#3@default}%
}
% \end{macrocode}
-% \end{macro}^^A \TUD@parameter@sethandler
% \end{macro}^^A \TUD@parameter@let
-% \end{macro}^^A \TUD@parameter@define
+% \end{macro}^^A \TUD@parameter@def
% \begin{macro}{\TUD@parameter@set}
+% \changes{v2.05}{2016/05/26}{robustere Verarbeitung von Default-Argumenten}^^A
+% \begin{macro}{\TUD@parameter@nokey}
+% \changes{v2.05}{2016/05/26}{neu}^^A
% Mit \cs{TUD@parameter@set}\marg{Familienname}\marg{Parameterliste} wird die
% Verarbeitung aller gegebenen Parameter veranlasst. Normalerweise wird dieser
-% Befehl \emph{nicht} innerhalb des zweiten Argumentes von \cs{TUD@parameter}
+% Befehl \emph{nicht} innerhalb des Argumentes von \cs{TUD@parameter@family}
% verwendet. In jedem Fall muss die zu verwendende Familie angegeben werden.
% \begin{macrocode}
-\newcommand*\TUD@parameter@set[2]{\@expandtwoargs\kvsetkeys{#1}{#2}}
+\newcommand*\TUD@parameter@nokey{@nokey@}
+\newcommand*\TUD@parameter@set[2]{%
+% \end{macrocode}
+% 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{}%
+ \def\@tempa##1{%
+ \@expandtwoargs\in@{=}{##1}%
+ \ifin@%
+ \appto\@tempb{##1,}%
+ \else%
% \end{macrocode}
+% \dots ebenso wie Schlüssel ohne Wert, falls diese definiert wurden. Zu
+% beachten ist, dass es mit \cs{TUD@parameter@handler@value} respektive
+% \cs{TUD@parameter@handler@default} auch möglich ist, für einen mit einem der
+% beiden Makros gewählten Schlüssel, lediglich den passenden Wert anzugeben.
+% Dies wird genutzt, um optionale Argumente direkt für den Hauptparameter eines
+% Makros oder einer Umgebung~-- wie beispielsweise für eine Überschrift~--
+% nutzen zu können, aber zusätzlich die Möglichkeit zu bieten, auch eine
+% Parameterliste zu verwenden. Hierfür werden Umlaute sowie das \glq ß\grq{}
+% unschädlich gemacht.
+% \begin{macrocode}
+ \begingroup
+ \let\IeC\@firstofone%
+ \def\"####1{####1e}%
+ \def\ss{ss}%
+ \protected@edef\tud@reserved{%
+ \endgroup%
+ \noexpand\protected@edef\noexpand\@tempc{KV@#1@##1}%
+ }%
+ \tud@reserved%
+ \ifcsdef{\@tempc}{%
+ \appto\@tempb{##1,}%
+ }{%
+ \protected@eappto\@tempb{\TUD@parameter@nokey=##1,}%
+ }%
+ \fi%
+ }%
+ \forcsvlist\@tempa{#2}%
+ \@expandtwoargs\kvsetkeys{#1}{\@tempb}%
+}
+% Ursprünglich entwickelte sich dieser Ansatz aus der Situation, dass das Makro
+% \cs{maketitle} in seiner Standarddefinition ein optionales Argument für eine
+% Seitenzahl bereithält, bei den \TUDScript-Klassen jedoch auch die Möglichkeit
+% besteht, verschiedene zusätzliche Parameter für diesen Befehl zu verwenden.
+% Um allerdings für den Anwender das gewohnte Vorgehen beibehalten zu können,
+% wurde diese Sonderbehandlung implementiert.
+% \end{macrocode}
+% \end{macro}^^A \TUD@parameter@nokey
% \end{macro}^^A \TUD@parameter@set
+% \begin{macro}{\TUD@parameter@handler@macro}
+% \changes{v2.05}{2016/05/26}{robustere Verarbeitung von Default-Argumenten}^^A
+% Durch \cs{TUD@parameter@handler@macro} kann definiert werden, wie mit einem
+% zuvor nicht mit \cs{TUD@parameter@def} definiertem Parameter beziehungsweise
+% gewöhnlichem optionalen Argument umzugehen ist. Dabei wird unterschieden, ob
+% es sich bei dem unbekannten Parameter um ein normales optionales Argument
+% oder um eine Angabe in Schlüssel-Wert-Syntax handelt. Dabei wurden einfache
+% optionale Argumente zuvor durch \cs{TUD@parameter@set} dem Schlüssel
+% \cs{TUD@parameter@nokey} als Wert zugewiesen, um Umlaute etc. ohne Bedenken
+% verwenden zu können.
+%
+% 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.
+% \begin{macrocode}
+\newcommand*\TUD@parameter@handler@macro[3][\TUD@parameter@@family]{%
+ \TUD@parameter@checkfamily{#1}{TUD@parameter@handler@macro}%
+ \expandafter\kv@set@family@handler\expandafter{#1}{%
+ \ifstr{\kv@key}{\TUD@parameter@nokey}{#3}{#2}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \TUD@parameter@handler@macro
+% \begin{macro}{\TUD@parameter@handler@value}
+% \changes{v2.05}{2016/05/26}{neu}^^A
+% Mit diesem Makro wird einem optionalen Argument, welches ohne Schlüssel
+% angegeben wurde, ein expliziter Parameter zugewiesen, welcher damit gesetzt
+% wird. Unbekannte Schlüssel-Wert-Argumente werden durch \cs{kv@handled@false}
+% immer als Fehler zurückgemeldet.
+% \begin{macrocode}
+\newcommand*\TUD@parameter@handler@value[2][\TUD@parameter@@family]{%
+ \TUD@parameter@checkfamily{#1}{TUD@parameter@handler@value}%
+ \protected@edef\@tempa{%
+ \noexpand\TUD@parameter@set{#1}{#2=\noexpand\kv@value}%
+ }%
+ \def\@tempb{\TUD@parameter@handler@macro[#1]{\kv@handled@false}}%
+ \expandafter\@tempb\expandafter{\@tempa}%
+}
+% \end{macrocode}
+% \end{macro}^^A \TUD@parameter@handler@value
+% \begin{macro}{\TUD@parameter@handler@default}
+% Hiermit kann sowohl die zu verwendende Sprache als auch die Anzahl der
+% gewünschten Spalten für bestimmte Umgebungen ohne die explizite Angabe eines
+% Schlüssels festgelegt werden. Momentan betrifft das die beiden Umgebungen
+% \env{abstract} und \env{tudpage} sowie Befehle und Umgebungen, welche auf
+% letzterer basieren. Unbekannte Argumente in Schlüssel-Wert-Syntax werden
+% nicht unterstützt.
+% \begin{macrocode}
+\newcommand*\TUD@parameter@handler@default[2][\TUD@parameter@@family]{%
+ \TUD@parameter@checkfamily{#1}{TUD@parameter@handler@default}%
+ \ifxblank{#2}{%
+ \def\@tempa{\let\tud@reserved\relax}%
+ }{%
+ \def\@tempa{\def\tud@reserved{#2=\kv@value}}%
+ }%
+ \appto\@tempa{%
+ \ifstr{\kv@value}{twocolumn}{\def\kv@value{2}}{}%
+ \ifxnumber{\kv@value}{\def\tud@reserved{columns=\kv@value}}{}%
+ \iflanguageloaded{\kv@value}{\def\tud@reserved{language=\kv@value}}{}%
+ \ifx\tud@reserved\relax%
+ \PackageError{tudscrbase}{%
+ Unknown default value `\kv@value'%
+ }{%
+ 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).
+ }%
+ \fi%
+ }%
+ \protected@eappto\@tempa{%
+ \noexpand\ifx\noexpand\tud@reserved\noexpand\relax\noexpand\else%
+ \noexpand\TUD@parameter@set{#1}{\noexpand\tud@reserved}%
+ \noexpand\fi%
+ }%
+ \def\@tempb{\TUD@parameter@handler@macro[#1]{\kv@handled@false}}%
+ \expandafter\@tempb\expandafter{\@tempa}%
+}
+% \end{macrocode}
+% \end{macro}^^A \TUD@parameter@handler@default
% \begin{macro}{\TUD@parameter@error}
% Das Makro \cs{TUD@parameter@wrn}\marg{Parameter}\marg{Werteliste} gibt für
% den Fall einer ungültigen Wertzuweisung an einen bestimmten \meta{Parameter}
@@ -728,19 +1097,31 @@
%
% \subsubsection{Ausführung von paketspezifischem Quellcode}
%
-% Ab und an ist es notwendig, bestimmten Quelltext erst gezielt nach einem
-% Paket auszuführen.
-% \begin{macro}{\TUD@AfterPackage@Set}
+% Ab und an ist es notwendig, bestimmten Quelltext gezielt in Abhängigkeit vom
+% Ladezustand eines Paketes auszuführen.
+% \begin{macro}{\TUD@UnwindPackage}
+% \changes{v2.05}{2015/10/28}{neu}^^A
+% Dieser Befehl dient zur Ausführung von Quelltext, falls ein Paket bis zum
+% Ende der Dokumentpräambel nicht geladen wurde. Im ersten obligatorischen
+% Argument wird das Paket angegeben, im zweiten der Quellcode.
+% \begin{macrocode}
+\newcommand*\TUD@UnwindPackage[2]{\AtEndPreamble{\@ifpackageloaded{#1}{}{#2}}}
+% \end{macrocode}
+% \end{macro}^^A \TUD@UnwindPackage
+% \begin{macro}{\TUD@AfterPackage@set}
% \changes{v2.04}{2015/03/09}{neu}^^A
-% \begin{macro}{\TUD@AfterPackage}
+% \begin{macro}{\TUD@AfterPackage@do}
% \changes{v2.03}{2015/02/15}{neu}^^A
-% Im ersten Argument wird das Paket angegeben, im zweiten der Quellcode.
+% Mit diesen beiden Befehlen wird die Ausführung von Quellcode erst nach dem
+% Laden des gewünschten Paketes oder~-- falls das Paket geladen wurde~--
+% direkt im Dokument ausgeführt. Im ersten Argument wird das Paket angegeben,
+% im zweiten der Quellcode.
% \begin{macrocode}
-\newcommand*\TUD@AfterPackage@Set[1]{%
+\newcommand*\TUD@AfterPackage@set[1]{%
\newbool{@tud@#1@loaded}%
- \AfterPackage!{#1}{\booltrue{@tud@#1@loaded}}
+ \AfterPackage!{#1}{\booltrue{@tud@#1@loaded}}%
}
-\newcommand*\TUD@AfterPackage[2]{%
+\newcommand*\TUD@AfterPackage@do[2]{%
\ifcsdef{if@tud@#1@loaded}{%
\if@atdocument%
\ifbool{@tud@#1@loaded}{#2}{}%
@@ -748,37 +1129,70 @@
\AfterPackage!{#1}{#2}%
\fi%
}{%
- \PackageError{tudscrbase}{\string\TUD@AfterPackage@Set{#1} missing}{%
- You have to set \string\TUD@AfterPackage@Set{#1} before\MessageBreak%
- the usage of \string\TUD@AfterPackage{#1}{<code>} is\MessageBreak%
+ \PackageError{tudscrbase}{\string\TUD@AfterPackage@set{#1} missing}{%
+ You have to set \string\TUD@AfterPackage@set{#1} before\MessageBreak%
+ the usage of \string\TUD@AfterPackage@do{#1}{<code>} is\MessageBreak%
possible.%
}%
}%
}
% \end{macrocode}
-% \end{macro}^^A \TUD@AfterPackage
-% \end{macro}^^A \TUD@AfterPackage@Set
+% \end{macro}^^A \TUD@AfterPackage@do
+% \end{macro}^^A \TUD@AfterPackage@set
%
% \iffalse
-%</package>
-%<*load>
+%</package&base>
% \fi
%
-% \subsection{Laden des Paketes}
-% Die Klassen benötigen das Paket und laden dieses auch.
+% \begin{macro}{\TUD@KOMAoptions}
+% \changes{v2.05}{2015/07/17}{neu}^^A
+% Dieses Makro wird verwendet, um innerhalb der \TUDScript-Klassen zu
+% unterschieden, wie eine \KOMAScript-Option auszuführen ist. Wurde bereits
+% das Paket \pkg{scrextend} oder eine \KOMAScript-Klasse geladen, erfolgt die
+% Ausführung des Arguments direkt über \cs{KOMAoptions}. Andernfalls wird das
+% angegebene Argument an die zuladende Klasse durchgereicht.
% \begin{macrocode}
-\RequirePackage{tudscrbase}[\TUDVersion]
+%<*package&base>
+\newcommand*\TUD@KOMAoptions[1]{}
+\ifdef{\KOMAClassName}{%
+ \let\TUD@KOMAoptions\KOMAoptions
+}{%
+ \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}
+}
+%</package&base>
% \end{macrocode}
+% Nach dem Laden einer \TUDScript-Klasse wird der Befehl so angepasst, dass
+% dieser vor dem Laden der dazugehörigen \KOMAScript-Elternklasse die Optionen
+% einfach durchreicht. Nach dem Laden der Klasse steht dann \cs{KOMAoptions}
+% zur Verfügung.
+% \begin{macrocode}
+%<*load&class>
+%<*!inherit>
+\renewcommand*\TUD@KOMAoptions[1]{\PassOptionsToClass{#1}{\TUD@Class@KOMA}}
+\AfterClass{\TUD@Class@KOMA}{\let\TUD@KOMAoptions\KOMAoptions}
+%</!inherit>
+%<*inherit>
+\renewcommand*\TUD@KOMAoptions[1]{\PassOptionsToClass{#1}{\TUD@Class@Parent}}
+\AfterClass{\TUD@Class@Parent}{\let\TUD@KOMAoptions\KOMAoptions}
+%</inherit>
+%</load&class>
+% \end{macrocode}
+% \end{macro}^^A \TUD@KOMAoptions
%
% \iffalse
-%</load>
%<*class&body>
% \fi
%
% \subsection{Externe Pakete}
%
% \changes{v2.01}{2014/04/24}{Versionsanforderungen bei benötigten Paketen}^^A
-% \changes{v2.02}{2014/07/08}{\pkg{graphics} Warnung bei Verwendung}^^A
+% \changes{v2.02}{2014/07/08}{Warnung bei Verwendung von \pkg{graphics}}^^A
%
% Für die Verwendung der hier erstellten \KOMAScript-Wrapper-Klassen werden
% einige wenige Pakete eingebunden. Dabei wurde versucht, die Anzahl der
@@ -804,9 +1218,9 @@
% \begin{macrocode}
\@ifpackageloaded{graphicx}{}{%
\@ifpackageloaded{graphics}{%
- \ClassWarningNoLine{\TUDClassName}{%
- The package `graphics' was superseded by `graphicx',\MessageBreak%
- which is automatically loaded%
+ \ClassWarningNoLine{\TUD@Class@Name}{%
+ Package `graphics' was superseded by `graphicx',\MessageBreak%
+ which now will be loaded automatically%
}%
}{}%
}%
@@ -815,62 +1229,40 @@
% Mit dem Paket \pkg{tudscrcolor} werden die Befehle für die Auswahl der Farben
% des \CDs definiert, welches wiederum \pkg{xcolor} lädt.
% \begin{macrocode}
- \RequirePackage{tudscrcolor}[\TUDVersion]%
+ \RequirePackage{tudscrcolor}[\TUD@Version]%
}
% \end{macrocode}
%
-% \subsection{Parameter für Umgebungen und mehrspaltige Texte}
+% \subsection{Parameter für mehrspaltige Texte}
%
-% Diese Befehle dienen dazu, bei Umgebungen die Sprache über einen Parameter
-% anzugeben sowie das Paket \pkg{multicol} verwenden zu können.
-% \begin{macro}{\TUD@parameter@defaulthandler}
-% Hiermit kann sowohl die zu verwendende Sprache als auch die Anzahl der
-% gewünschten Spalten für bestimmte Umgebungen ohne die explizite Angabe eines
-% Schlüssels festgelegt werden. Momentan betrifft das die beiden Umgebungen
-% \env{abstract} und \env{tudpage}.
-% \begin{macrocode}
-\newcommand*\TUD@parameter@defaulthandler[2]{%
- \def\@tempa{#2}%
- \@for\@tempb:=\@tempa\do{%
- \ifx\@tempb\@empty\else%
- \ifstr{\@tempb}{twocolumn}{\def\@tempb{2}}{}%
- \ifxnumber{\@tempb}{%
- \TUD@parameter@set{#1}{columns=\@tempb}%
- }{%
- \TUD@parameter@set{#1}{language=\@tempb}%
- }%
- \fi%
- }%
-}
-% \end{macrocode}
-% \end{macro}^^A \TUD@parameter@defaulthandler
-% \begin{macro}{\tud@multicols}
-% \begin{macro}{\tud@multicols@check}
-% Im Makro \cs{tud@multicols} wird die Anzahl der gewünschten Spalten in einer
-% Umgebung für die Verwendung des \pkg{multicol}"=Paketes gespeichert.
+% Diese Befehle dienen dazu, bei Umgebungen oder Befehlen über einen Parameter
+% das Paket \pkg{multicol} verwenden zu können.
+% \begin{macro}{\tud@x@multicol@num}
+% \begin{macro}{\tud@x@multicol@check}
+% 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@multicols}{1}
+\cs@lock{tud@x@multicol@num}{1}
% \end{macrocode}
-% Der Befehl \cs{tud@multicols@check} prüft, ob das Paket \pkg{multicol}
+% 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}
-% repsektive \env{abstract} sowie \env{declarations} über \cs{set@set@lock}
+% respektive \env{abstract} sowie \env{declarations} über \cs{set@set@lock}
% verhindert.
% \begin{macrocode}
-\newcommand*\tud@multicols@check{%
- \ifdef{\multicols}{}{%
- \ifnum\tud@multicols>\@ne\relax%
- \ClassWarning{\TUDClassName}{%
- The option `columns=\tud@multicols' is only supported,\MessageBreak%
- when package `multicol' is loaded%
- }%
- \cs@set@lock{tud@multicols}{1}%
- \fi%
- }%
+\newcommand*\tud@x@multicol@check{%
+ \ifnum\tud@x@multicol@num>\@ne\relax%
+ \ClassWarning{\TUD@Class@Name}{%
+ The option `columns=\tud@x@multicol@num' is only\MessageBreak%
+ supported, when package `multicol' is loaded%
+ }%
+ \cs@set@lock{tud@x@multicol@num}{1}%
+ \fi%
}
+\AfterPackage{multicol}{\renewcommand*\tud@x@multicol@check{\relax}}
% \end{macrocode}
-% \end{macro}^^A \tud@multicols@check
-% \end{macro}^^A \tud@multicols
+% \end{macro}^^A \tud@x@multicol@check
+% \end{macro}^^A \tud@x@multicol@num
%
% \iffalse
%</class&body>
@@ -879,3 +1271,65 @@
% \Finale
%
\endinput
+%
+%
+% \iffalse
+%</package&base>
+% \fi
+%
+% \begin{macro}{\TUD@noworlater}
+% \changes{v2.05}{2015/07/03}{neu implementiert}^^A
+% \begin{macro}{\TUD@noworlater@simple}
+% \changes{v2.05}{2015/07/03}{neu}^^A
+% Hiermit kann die Abarbeitung der Optionen an das Ende der verwendeten
+% Klasse bzw. des Paketes verzögert werden. Aufgrund der Besonderheiten der
+% Befehle \cs{AtEndOfClass} und \cs{AtEndOfPackage} können diese nicht
+% innerhalb von \pkg{tudscrbase} sondern erst außerhalb nach dem Laden
+% definiert werden. Damit keine Probleme dabei auftreten, falls das Paket
+% geladen wird ohne daran anschließend die notwendigen Redefinitionen
+% durchzuführen, werden die beiden Varianten des Befehls \cs{TUD@noworlater}
+% im Paket definiert.
+%
+% Im ersten Argument von \cs{TUD@noworlater} wird einer der wertzuweisenden
+% Befehle für Optionen (\cs{TUD@set@\dots}) erwartet. Dieser wird immer
+% ausgeführt, um ungültige Wertzuweisungen einer Option, welche als globale
+% Klassenoption angegeben wurde, über die \LaTeX-Standardroutine als Warnung
+% auszugeben. Bei der eigentlichen~-- sprich verzögerten~-- Ausführung der
+% Option wird die Wertzuweisung abermals ausgeführt, gefolgt von der im
+% zweiten Argument definierten Abarbeitung dieser.
+% \begin{macrocode}
+%<*package&base>
+\newcommand*\TUD@noworlater[2]{}
+\newcommand*\TUD@noworlater@simple[2]{%
+ \PackageWarning{tudscrbase}{%
+ The content of \string\TUD@noworlater will be executed immediately%
+ }%
+ #1#2%
+}
+\let\TUD@noworlater\TUD@noworlater@simple
+%</package&base>
+% \end{macrocode}
+% Nach dem Laden des Paketes wird geprüft, ob die ursprüngliche Definition
+% des Befehls aus dem Paket noch besteht. Ist dies der Fall, wird der Befehl
+% zur Verzögerung an das Ende der Klasse bzw. des Paketes umdefiniert.
+% \begin{macrocode}
+%<*load>
+\ifx\TUD@noworlater\TUD@noworlater@simple
+%<*class>
+ \renewcommand*\TUD@noworlater[2]{#1\AtEndOfClass{#1#2}}%
+ \AtEndOfClass{\renewcommand*\TUD@noworlater[2]{#1#2}}%
+%</class>
+%<*package>
+ \renewcommand*\TUD@noworlater[2]{#1\AtEndOfPackage{#1#2}}%
+ \AtEndOfPackage{\renewcommand*\TUD@noworlater[2]{#1#2}}%
+%</package>
+\fi
+%</load>
+% \end{macrocode}
+% \end{macro}^^A \TUD@noworlater@simple
+% \end{macro}^^A \TUD@noworlater
+%
+% \iffalse
+%<*package&base>
+% \fi
+% \ No newline at end of file
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-color.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-color.dtx
index f30db0821c6..1b3ec8676b0 100644
--- a/Master/texmf-dist/source/latex/tudscr/tudscr-color.dtx
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-color.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{221}
+% \CheckSum{216}
% \iffalse meta-comment
%
% ============================================================================
@@ -18,13 +18,13 @@
%
% ----------------------------------------------------------------------------
%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
-% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
-% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
-% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
-% oder spaeter 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.
+% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
+% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
+% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
+% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
+% oder spaeter 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.
%
% ============================================================================
%
@@ -51,24 +51,25 @@
%<*driver>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\ProvidesFile{tudscr-color.dtx}[%
- 2015/06/02 v2.04 TUD-KOMA-Script\space%
+ 2016/05/31 v2.05 TUD-KOMA-Script\space%
%</driver>
-%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{tudscrcolor}[%
%<*driver|package>
-%!TUDVersion
+%!TUD@Version
%<package> package
(corporate design colors)%
]
%</driver|package>
%<*driver>
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
-\documentclass[english,ngerman]{tudscrdoc}
+\documentclass[english,ngerman,xindy]{tudscrdoc}
\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{tudscrfonts} % only load this package, if the fonts are installed
\KOMAoptions{parskip=half-}
+\usepackage{microtype}
+\usepackage{bookmark}
\CodelineIndex
\RecordChanges
\GetFileInfo{tudscr-color.dtx}
@@ -89,7 +90,7 @@
% Dokument mit sämtlichen Befehlen zur Farbauswahl wie \cs{color}\marg{Farbe}
% oder aber \cs{textcolor}\marg{Farbe} verwendet werden.
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \StopEventually{\PrintIndex\PrintChanges\PrintToDos}
%
% \iffalse
%<*package>
@@ -98,10 +99,10 @@
% \subsection{Optionen und Befehle des Paketes \pkg{tudscrcolor}}
%
% \begin{macrocode}
-\DeclareOption{newcolors}{\let\setcdcolors@add\relax}
-\DeclareOption{reduced}{\let\setcdcolors@add\relax}
-\DeclareOption{oldcolors}{\let\setcdcolors@add\setcdcolors@oldcolors}
-\DeclareOption{full}{\let\setcdcolors@add\setcdcolors@oldcolors}
+\DeclareOption{newcolors}{\let\tud@setcolors@add\relax}
+\DeclareOption{reduced}{\let\tud@setcolors@add\relax}
+\DeclareOption{oldcolors}{\let\tud@setcolors@add\tud@setcolors@old}
+\DeclareOption{full}{\let\tud@setcolors@add\tud@setcolors@old}
% \end{macrocode}
% \begin{macro}{\tud@color}
% \changes{v2.04}{2015/04/21}{neu}^^A
@@ -115,24 +116,26 @@
% \subsection{Farbdefinitionen für das Paket \pkg{tudscrcolor}}
%
% \begin{macro}{\setcdcolors}
-% \begin{macro}{\setcdcolors@add}
+% \begin{macro}{\tud@setcolors@do}
+% \begin{macro}{\tud@setcolors@add}
% Der Befehl \cs{setcdcolors} definiert die Farben des \CDs. Das Argument dient
% zur Auswahl des gewünschten Farbmodels. Dies kann dazu genutzt werden,
-% innerhalb des Dokumentes die Definition der Farben für ein neues Farbmodell zu
-% ändern.
+% innerhalb des Dokumentes die Definition der Farben für ein neues Farbmodell
+% zu ändern.
% \begin{macrocode}
-\newcommand*\setcdcolors@add{}
\newcommand*\setcdcolors[1]{%
- \def\@tempa{#1}\ifx\@tempa\@empty\else%
- \selectcolormodel{\@tempa}
- \fi%
+ \selectcolormodel{#1}%
+ \tud@setcolors@do%
+}
+\newcommand*\tud@setcolors@add{}
+\newcommand*\tud@setcolors@do{%
% \end{macrocode}
% \begin{color}{HKS41}
% Die primäre Hausfarbe (dunkles Blau)
% \begin{macrocode}
\definecolor{HKS41}{cmyk/RGB/rgb}{%
1.00,0.70,0.10,0.50/011,042,081/0.0431372549,0.16470588235,0.31764705882%
- }
+ }%
% \end{macrocode}
% \end{color}^^A HKS41
% \begin{color}{HKS92}
@@ -141,7 +144,7 @@
% \begin{macrocode}
\definecolor{HKS92}{cmyk/RGB/rgb}{%
0.10,0.00,0.05,0.65/080,089,085/0.31372549019,0.34901960784,0.33333333333%
- }
+ }%
% \end{macrocode}
% \end{color}^^A HKS92
% \begin{color}{HKS44}
@@ -149,7 +152,7 @@
% \begin{macrocode}
\definecolor{HKS44}{cmyk/RGB/rgb}{%
1.00,0.50,0.00,0.00/000,089,163/0,0.34901960784,0.63921568627%
- }
+ }%
% \end{macrocode}
% \end{color}^^A HKS44
% \begin{color}{HKS36}
@@ -160,16 +163,16 @@
% \begin{macrocode}
\definecolor{HKS36}{cmyk/RGB/rgb}{%
0.80,0.90,0.00,0.00/081,041,127/0.31764705882,0.16078431372,0.49803921568%
- }
+ }%
\definecolor{HKS33}{cmyk/RGB/rgb}{%
0.50,1.00,0.00,0.00/129,026,120/0.50588235294,0.10196078431,0.47058823529%
- }
+ }%
\definecolor{HKS57}{cmyk/RGB/rgb}{%
1.00,0.00,0.90,0.20/000,122,071/0,0.47843137254,0.28235294117%
- }
+ }%
\definecolor{HKS65}{cmyk/RGB/rgb}{%
0.65,0.00,1.00,0.00/034,173,054/0.13333333333,0.67843137254,0.21176470588%
- }
+ }%
% \end{macrocode}
% \end{color}^^A HKS65
% \end{color}^^A HKS57
@@ -180,7 +183,7 @@
% \begin{macrocode}
\definecolor{HKS07}{cmyk/RGB/rgb}{%
0.00,0.60,1.00,0.00/232,123,020/0.90980392156,0.48235294117,0.07843137254%
- }
+ }%
% \end{macrocode}
% \end{color}^^A HKS07
% \begin{color}{cddarkblue}
@@ -195,15 +198,15 @@
% Die definierten Grundfarben werden zur einfacheren Verwendung im Dokument
% noch einmal speziell benannt.
% \begin{macrocode}
- \colorlet{cddarkblue}{HKS41}
- \colorlet{cdgray}{HKS92}
- \colorlet{cdgrey}{HKS92}
- \colorlet{cdblue}{HKS44}
- \colorlet{cdindigo}{HKS36}
- \colorlet{cdpurple}{HKS33}
- \colorlet{cddarkgreen}{HKS57}
- \colorlet{cdgreen}{HKS65}
- \colorlet{cdorange}{HKS07}
+ \colorlet{cddarkblue}{HKS41}%
+ \colorlet{cdgray}{HKS92}%
+ \colorlet{cdgrey}{HKS92}%
+ \colorlet{cdblue}{HKS44}%
+ \colorlet{cdindigo}{HKS36}%
+ \colorlet{cdpurple}{HKS33}%
+ \colorlet{cddarkgreen}{HKS57}%
+ \colorlet{cdgreen}{HKS65}%
+ \colorlet{cdorange}{HKS07}%
% \end{macrocode}
% \end{color}^^A cdorange
% \end{color}^^A cdgreen
@@ -215,184 +218,185 @@
% \end{color}^^A cdgray
% \end{color}^^A cddarkblue
% Damit enden die notwendigen Farbdefinitionen für das \pkg{tudscrcolor}-Paket.
-% Abhängig von den gewählten Optionen werden mit \cs{setcdcolors@add} ggf.
+% Abhängig von den gewählten Optionen werden mit \cs{tud@setcolors@add} ggf.
% zusätzliche Farbnamen definiert.
% \begin{macrocode}
- \setcdcolors@add%
+ \tud@setcolors@add%
}
% \end{macrocode}
-% \end{macro}^^A \setcdcolors@add
+% \end{macro}^^A \tud@setcolors@add
+% \end{macro}^^A \tud@setcolors@do
% \end{macro}^^A \setcdcolors
-% \begin{macro}{\setcdcolors@oldcolors}
+% \begin{macro}{\tud@setcolors@old}
% Die erweiterten Farbbefehle werden durch \pkg{tudscrcolor} definiert, wenn
% das Paket explizit mit der Option \opt{oldcolors} geladen wird. Damit werden
% alle gängigen Farbdefinitionen der vielen Insellösungen des \LaTeX-Universums
% an der Technischen Universität Dresden unterstützt.
% \begin{macrocode}
-\newcommand*\setcdcolors@oldcolors{%
- \colorlet{HKS41K100}{HKS41!100}
- \colorlet{HKS41K90}{HKS41!90}
- \colorlet{HKS41K80}{HKS41!80}
- \colorlet{HKS41K70}{HKS41!70}
- \colorlet{HKS41K60}{HKS41!60}
- \colorlet{HKS41K50}{HKS41!50}
- \colorlet{HKS41K40}{HKS41!40}
- \colorlet{HKS41K30}{HKS41!30}
- \colorlet{HKS41K20}{HKS41!20}
- \colorlet{HKS41K10}{HKS41!10}
- \colorlet{HKS92K100}{HKS92!100}
- \colorlet{HKS92K90}{HKS92!90}
- \colorlet{HKS92K80}{HKS92!80}
- \colorlet{HKS92K70}{HKS92!70}
- \colorlet{HKS92K60}{HKS92!60}
- \colorlet{HKS92K50}{HKS92!50}
- \colorlet{HKS92K40}{HKS92!40}
- \colorlet{HKS92K30}{HKS92!30}
- \colorlet{HKS92K20}{HKS92!20}
- \colorlet{HKS92K10}{HKS92!10}
- \colorlet{HKS44K100}{HKS44!100}
- \colorlet{HKS44K90}{HKS44!90}
- \colorlet{HKS44K80}{HKS44!80}
- \colorlet{HKS44K70}{HKS44!70}
- \colorlet{HKS44K60}{HKS44!60}
- \colorlet{HKS44K50}{HKS44!50}
- \colorlet{HKS44K40}{HKS44!40}
- \colorlet{HKS44K30}{HKS44!30}
- \colorlet{HKS44K20}{HKS44!20}
- \colorlet{HKS44K10}{HKS44!10}
- \colorlet{HKS36K10}{HKS36!10}
- \colorlet{HKS36K20}{HKS36!20}
- \colorlet{HKS36K30}{HKS36!30}
- \colorlet{HKS36K40}{HKS36!40}
- \colorlet{HKS36K50}{HKS36!50}
- \colorlet{HKS36K60}{HKS36!60}
- \colorlet{HKS36K70}{HKS36!70}
- \colorlet{HKS36K80}{HKS36!80}
- \colorlet{HKS36K90}{HKS36!90}
- \colorlet{HKS36K100}{HKS36!100}
- \colorlet{HKS33K10}{HKS33!10}
- \colorlet{HKS33K20}{HKS33!20}
- \colorlet{HKS33K30}{HKS33!30}
- \colorlet{HKS33K40}{HKS33!40}
- \colorlet{HKS33K50}{HKS33!50}
- \colorlet{HKS33K60}{HKS33!60}
- \colorlet{HKS33K70}{HKS33!70}
- \colorlet{HKS33K80}{HKS33!80}
- \colorlet{HKS33K90}{HKS33!90}
- \colorlet{HKS33K100}{HKS33!100}
- \colorlet{HKS57K10}{HKS57!10}
- \colorlet{HKS57K20}{HKS57!20}
- \colorlet{HKS57K30}{HKS57!30}
- \colorlet{HKS57K40}{HKS57!40}
- \colorlet{HKS57K50}{HKS57!50}
- \colorlet{HKS57K60}{HKS57!60}
- \colorlet{HKS57K70}{HKS57!70}
- \colorlet{HKS57K80}{HKS57!80}
- \colorlet{HKS57K90}{HKS57!90}
- \colorlet{HKS57K100}{HKS57!100}
- \colorlet{HKS65K10}{HKS65!10}
- \colorlet{HKS65K20}{HKS65!20}
- \colorlet{HKS65K30}{HKS65!30}
- \colorlet{HKS65K40}{HKS65!40}
- \colorlet{HKS65K50}{HKS65!50}
- \colorlet{HKS65K60}{HKS65!60}
- \colorlet{HKS65K70}{HKS65!70}
- \colorlet{HKS65K80}{HKS65!80}
- \colorlet{HKS65K90}{HKS65!90}
- \colorlet{HKS65K100}{HKS65!100}
- \colorlet{HKS07K10}{HKS07!10}
- \colorlet{HKS07K20}{HKS07!20}
- \colorlet{HKS07K30}{HKS07!30}
- \colorlet{HKS07K40}{HKS07!40}
- \colorlet{HKS07K50}{HKS07!50}
- \colorlet{HKS07K60}{HKS07!60}
- \colorlet{HKS07K70}{HKS07!70}
- \colorlet{HKS07K80}{HKS07!80}
- \colorlet{HKS07K90}{HKS07!90}
- \colorlet{HKS07K100}{HKS07!100}
- \colorlet{HKS41-100}{HKS41!100}
- \colorlet{HKS41-90}{HKS41!90}
- \colorlet{HKS41-80}{HKS41!80}
- \colorlet{HKS41-70}{HKS41!70}
- \colorlet{HKS41-60}{HKS41!60}
- \colorlet{HKS41-50}{HKS41!50}
- \colorlet{HKS41-40}{HKS41!40}
- \colorlet{HKS41-30}{HKS41!30}
- \colorlet{HKS41-20}{HKS41!20}
- \colorlet{HKS41-10}{HKS41!10}
- \colorlet{HKS92-100}{HKS92!100}
- \colorlet{HKS92-90}{HKS92!90}
- \colorlet{HKS92-80}{HKS92!80}
- \colorlet{HKS92-70}{HKS92!70}
- \colorlet{HKS92-60}{HKS92!60}
- \colorlet{HKS92-50}{HKS92!50}
- \colorlet{HKS92-40}{HKS92!40}
- \colorlet{HKS92-30}{HKS92!30}
- \colorlet{HKS92-20}{HKS92!20}
- \colorlet{HKS92-10}{HKS92!10}
- \colorlet{HKS44-100}{HKS44!100}
- \colorlet{HKS44-90}{HKS44!90}
- \colorlet{HKS44-80}{HKS44!80}
- \colorlet{HKS44-70}{HKS44!70}
- \colorlet{HKS44-60}{HKS44!60}
- \colorlet{HKS44-50}{HKS44!50}
- \colorlet{HKS44-40}{HKS44!40}
- \colorlet{HKS44-30}{HKS44!30}
- \colorlet{HKS44-20}{HKS44!20}
- \colorlet{HKS44-10}{HKS44!10}
- \colorlet{HKS36-10}{HKS36!10}
- \colorlet{HKS36-20}{HKS36!20}
- \colorlet{HKS36-30}{HKS36!30}
- \colorlet{HKS36-40}{HKS36!40}
- \colorlet{HKS36-50}{HKS36!50}
- \colorlet{HKS36-60}{HKS36!60}
- \colorlet{HKS36-70}{HKS36!70}
- \colorlet{HKS36-80}{HKS36!80}
- \colorlet{HKS36-90}{HKS36!90}
- \colorlet{HKS36-100}{HKS36!100}
- \colorlet{HKS33-10}{HKS33!10}
- \colorlet{HKS33-20}{HKS33!20}
- \colorlet{HKS33-30}{HKS33!30}
- \colorlet{HKS33-40}{HKS33!40}
- \colorlet{HKS33-50}{HKS33!50}
- \colorlet{HKS33-60}{HKS33!60}
- \colorlet{HKS33-70}{HKS33!70}
- \colorlet{HKS33-80}{HKS33!80}
- \colorlet{HKS33-90}{HKS33!90}
- \colorlet{HKS33-100}{HKS33!100}
- \colorlet{HKS57-10}{HKS57!10}
- \colorlet{HKS57-20}{HKS57!20}
- \colorlet{HKS57-30}{HKS57!30}
- \colorlet{HKS57-40}{HKS57!40}
- \colorlet{HKS57-50}{HKS57!50}
- \colorlet{HKS57-60}{HKS57!60}
- \colorlet{HKS57-70}{HKS57!70}
- \colorlet{HKS57-80}{HKS57!80}
- \colorlet{HKS57-90}{HKS57!90}
- \colorlet{HKS57-100}{HKS57!100}
- \colorlet{HKS65-10}{HKS65!10}
- \colorlet{HKS65-20}{HKS65!20}
- \colorlet{HKS65-30}{HKS65!30}
- \colorlet{HKS65-40}{HKS65!40}
- \colorlet{HKS65-50}{HKS65!50}
- \colorlet{HKS65-60}{HKS65!60}
- \colorlet{HKS65-70}{HKS65!70}
- \colorlet{HKS65-80}{HKS65!80}
- \colorlet{HKS65-90}{HKS65!90}
- \colorlet{HKS65-100}{HKS65!100}
- \colorlet{HKS07-10}{HKS07!10}
- \colorlet{HKS07-20}{HKS07!20}
- \colorlet{HKS07-30}{HKS07!30}
- \colorlet{HKS07-40}{HKS07!40}
- \colorlet{HKS07-50}{HKS07!50}
- \colorlet{HKS07-60}{HKS07!60}
- \colorlet{HKS07-70}{HKS07!70}
- \colorlet{HKS07-80}{HKS07!80}
- \colorlet{HKS07-90}{HKS07!90}
- \colorlet{HKS07-100}{HKS07!100}
+\newcommand*\tud@setcolors@old{%
+ \colorlet{HKS41K10}{HKS41!10}%
+ \colorlet{HKS41K20}{HKS41!20}%
+ \colorlet{HKS41K30}{HKS41!30}%
+ \colorlet{HKS41K40}{HKS41!40}%
+ \colorlet{HKS41K50}{HKS41!50}%
+ \colorlet{HKS41K60}{HKS41!60}%
+ \colorlet{HKS41K70}{HKS41!70}%
+ \colorlet{HKS41K80}{HKS41!80}%
+ \colorlet{HKS41K90}{HKS41!90}%
+ \colorlet{HKS41K100}{HKS41!100}%
+ \colorlet{HKS92K10}{HKS92!10}%
+ \colorlet{HKS92K20}{HKS92!20}%
+ \colorlet{HKS92K30}{HKS92!30}%
+ \colorlet{HKS92K40}{HKS92!40}%
+ \colorlet{HKS92K50}{HKS92!50}%
+ \colorlet{HKS92K60}{HKS92!60}%
+ \colorlet{HKS92K70}{HKS92!70}%
+ \colorlet{HKS92K80}{HKS92!80}%
+ \colorlet{HKS92K90}{HKS92!90}%
+ \colorlet{HKS92K100}{HKS92!100}%
+ \colorlet{HKS44K10}{HKS44!10}%
+ \colorlet{HKS44K20}{HKS44!20}%
+ \colorlet{HKS44K30}{HKS44!30}%
+ \colorlet{HKS44K40}{HKS44!40}%
+ \colorlet{HKS44K50}{HKS44!50}%
+ \colorlet{HKS44K60}{HKS44!60}%
+ \colorlet{HKS44K70}{HKS44!70}%
+ \colorlet{HKS44K80}{HKS44!80}%
+ \colorlet{HKS44K90}{HKS44!90}%
+ \colorlet{HKS44K100}{HKS44!100}%
+ \colorlet{HKS36K10}{HKS36!10}%
+ \colorlet{HKS36K20}{HKS36!20}%
+ \colorlet{HKS36K30}{HKS36!30}%
+ \colorlet{HKS36K40}{HKS36!40}%
+ \colorlet{HKS36K50}{HKS36!50}%
+ \colorlet{HKS36K60}{HKS36!60}%
+ \colorlet{HKS36K70}{HKS36!70}%
+ \colorlet{HKS36K80}{HKS36!80}%
+ \colorlet{HKS36K90}{HKS36!90}%
+ \colorlet{HKS36K100}{HKS36!100}%
+ \colorlet{HKS33K10}{HKS33!10}%
+ \colorlet{HKS33K20}{HKS33!20}%
+ \colorlet{HKS33K30}{HKS33!30}%
+ \colorlet{HKS33K40}{HKS33!40}%
+ \colorlet{HKS33K50}{HKS33!50}%
+ \colorlet{HKS33K60}{HKS33!60}%
+ \colorlet{HKS33K70}{HKS33!70}%
+ \colorlet{HKS33K80}{HKS33!80}%
+ \colorlet{HKS33K90}{HKS33!90}%
+ \colorlet{HKS33K100}{HKS33!100}%
+ \colorlet{HKS57K10}{HKS57!10}%
+ \colorlet{HKS57K20}{HKS57!20}%
+ \colorlet{HKS57K30}{HKS57!30}%
+ \colorlet{HKS57K40}{HKS57!40}%
+ \colorlet{HKS57K50}{HKS57!50}%
+ \colorlet{HKS57K60}{HKS57!60}%
+ \colorlet{HKS57K70}{HKS57!70}%
+ \colorlet{HKS57K80}{HKS57!80}%
+ \colorlet{HKS57K90}{HKS57!90}%
+ \colorlet{HKS57K100}{HKS57!100}%
+ \colorlet{HKS65K10}{HKS65!10}%
+ \colorlet{HKS65K20}{HKS65!20}%
+ \colorlet{HKS65K30}{HKS65!30}%
+ \colorlet{HKS65K40}{HKS65!40}%
+ \colorlet{HKS65K50}{HKS65!50}%
+ \colorlet{HKS65K60}{HKS65!60}%
+ \colorlet{HKS65K70}{HKS65!70}%
+ \colorlet{HKS65K80}{HKS65!80}%
+ \colorlet{HKS65K90}{HKS65!90}%
+ \colorlet{HKS65K100}{HKS65!100}%
+ \colorlet{HKS07K10}{HKS07!10}%
+ \colorlet{HKS07K20}{HKS07!20}%
+ \colorlet{HKS07K30}{HKS07!30}%
+ \colorlet{HKS07K40}{HKS07!40}%
+ \colorlet{HKS07K50}{HKS07!50}%
+ \colorlet{HKS07K60}{HKS07!60}%
+ \colorlet{HKS07K70}{HKS07!70}%
+ \colorlet{HKS07K80}{HKS07!80}%
+ \colorlet{HKS07K90}{HKS07!90}%
+ \colorlet{HKS07K100}{HKS07!100}%
+ \colorlet{HKS41-10}{HKS41!10}%
+ \colorlet{HKS41-20}{HKS41!20}%
+ \colorlet{HKS41-30}{HKS41!30}%
+ \colorlet{HKS41-40}{HKS41!40}%
+ \colorlet{HKS41-50}{HKS41!50}%
+ \colorlet{HKS41-60}{HKS41!60}%
+ \colorlet{HKS41-70}{HKS41!70}%
+ \colorlet{HKS41-80}{HKS41!80}%
+ \colorlet{HKS41-90}{HKS41!90}%
+ \colorlet{HKS41-100}{HKS41!100}%
+ \colorlet{HKS92-10}{HKS92!10}%
+ \colorlet{HKS92-20}{HKS92!20}%
+ \colorlet{HKS92-30}{HKS92!30}%
+ \colorlet{HKS92-40}{HKS92!40}%
+ \colorlet{HKS92-50}{HKS92!50}%
+ \colorlet{HKS92-60}{HKS92!60}%
+ \colorlet{HKS92-70}{HKS92!70}%
+ \colorlet{HKS92-80}{HKS92!80}%
+ \colorlet{HKS92-90}{HKS92!90}%
+ \colorlet{HKS92-100}{HKS92!100}%
+ \colorlet{HKS44-10}{HKS44!10}%
+ \colorlet{HKS44-20}{HKS44!20}%
+ \colorlet{HKS44-30}{HKS44!30}%
+ \colorlet{HKS44-40}{HKS44!40}%
+ \colorlet{HKS44-50}{HKS44!50}%
+ \colorlet{HKS44-60}{HKS44!60}%
+ \colorlet{HKS44-70}{HKS44!70}%
+ \colorlet{HKS44-80}{HKS44!80}%
+ \colorlet{HKS44-90}{HKS44!90}%
+ \colorlet{HKS44-100}{HKS44!100}%
+ \colorlet{HKS36-10}{HKS36!10}%
+ \colorlet{HKS36-20}{HKS36!20}%
+ \colorlet{HKS36-30}{HKS36!30}%
+ \colorlet{HKS36-40}{HKS36!40}%
+ \colorlet{HKS36-50}{HKS36!50}%
+ \colorlet{HKS36-60}{HKS36!60}%
+ \colorlet{HKS36-70}{HKS36!70}%
+ \colorlet{HKS36-80}{HKS36!80}%
+ \colorlet{HKS36-90}{HKS36!90}%
+ \colorlet{HKS36-100}{HKS36!100}%
+ \colorlet{HKS33-10}{HKS33!10}%
+ \colorlet{HKS33-20}{HKS33!20}%
+ \colorlet{HKS33-30}{HKS33!30}%
+ \colorlet{HKS33-40}{HKS33!40}%
+ \colorlet{HKS33-50}{HKS33!50}%
+ \colorlet{HKS33-60}{HKS33!60}%
+ \colorlet{HKS33-70}{HKS33!70}%
+ \colorlet{HKS33-80}{HKS33!80}%
+ \colorlet{HKS33-90}{HKS33!90}%
+ \colorlet{HKS33-100}{HKS33!100}%
+ \colorlet{HKS57-10}{HKS57!10}%
+ \colorlet{HKS57-20}{HKS57!20}%
+ \colorlet{HKS57-30}{HKS57!30}%
+ \colorlet{HKS57-40}{HKS57!40}%
+ \colorlet{HKS57-50}{HKS57!50}%
+ \colorlet{HKS57-60}{HKS57!60}%
+ \colorlet{HKS57-70}{HKS57!70}%
+ \colorlet{HKS57-80}{HKS57!80}%
+ \colorlet{HKS57-90}{HKS57!90}%
+ \colorlet{HKS57-100}{HKS57!100}%
+ \colorlet{HKS65-10}{HKS65!10}%
+ \colorlet{HKS65-20}{HKS65!20}%
+ \colorlet{HKS65-30}{HKS65!30}%
+ \colorlet{HKS65-40}{HKS65!40}%
+ \colorlet{HKS65-50}{HKS65!50}%
+ \colorlet{HKS65-60}{HKS65!60}%
+ \colorlet{HKS65-70}{HKS65!70}%
+ \colorlet{HKS65-80}{HKS65!80}%
+ \colorlet{HKS65-90}{HKS65!90}%
+ \colorlet{HKS65-100}{HKS65!100}%
+ \colorlet{HKS07-10}{HKS07!10}%
+ \colorlet{HKS07-20}{HKS07!20}%
+ \colorlet{HKS07-30}{HKS07!30}%
+ \colorlet{HKS07-40}{HKS07!40}%
+ \colorlet{HKS07-50}{HKS07!50}%
+ \colorlet{HKS07-60}{HKS07!60}%
+ \colorlet{HKS07-70}{HKS07!70}%
+ \colorlet{HKS07-80}{HKS07!80}%
+ \colorlet{HKS07-90}{HKS07!90}%
+ \colorlet{HKS07-100}{HKS07!100}%
}
% \end{macrocode}
-% \end{macro}^^A \setcdcolors@oldcolors
+% \end{macro}^^A \tud@setcolors@old
% Zum Schluss werden die Optionen ausgeführt und ggf. an \pkg{xcolor}
% weitergereicht. Anschließend werden die Farben für das Dokument definiert.
% Ohne die Angabe eines optionalen Argumentes an das Paket \pkg{xcolor} erfolgt
@@ -402,7 +406,7 @@
\ExecuteOptions{reduced}
\ProcessOptions\relax
\RequirePackage{xcolor}[2007/01/21]
-\setcdcolors{}
+\tud@setcolors@do%
% \end{macrocode}
%
% \iffalse
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-comp.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-comp.dtx
index 1943c78f3c7..33fef7ee206 100644
--- a/Master/texmf-dist/source/latex/tudscr/tudscr-comp.dtx
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-comp.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{702}
+% \CheckSum{1488}
% \iffalse meta-comment
%
% ============================================================================
@@ -18,13 +18,13 @@
%
% ----------------------------------------------------------------------------
%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
-% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
-% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
-% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
-% oder spaeter 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.
+% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
+% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
+% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
+% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
+% oder spaeter 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.
%
% ============================================================================
%
@@ -51,24 +51,29 @@
%<*driver>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\ProvidesFile{tudscr-comp.dtx}[%
- 2015/06/15 v2.04 TUD-KOMA-Script\space%
+ 2016/07/26 v2.05 TUD-KOMA-Script\space%
%</driver>
-%<package&identify>\NeedsTeXFormat{LaTeX2e}
-%<package&identify>\ProvidesPackage{tudscrcomp}[%
+%<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>
-%!TUDVersion
-%<package> package
+%!TUD@Version
+%<package&comp> package
+%<package&fontsfix> package for font fixes
(compatibility for old tud(scr) classes)%
]
%</driver|package&identify>
%<*driver>
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
-\documentclass[english,ngerman]{tudscrdoc}
+\documentclass[english,ngerman,xindy]{tudscrdoc}
\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{tudscrfonts} % only load this package, if the fonts are installed
\KOMAoptions{parskip=half-}
+\usepackage{microtype}
+\usepackage{bookmark}
\CodelineIndex
\RecordChanges
\GetFileInfo{tudscr-comp.dtx}
@@ -85,6 +90,8 @@
% mit neuen Schriftfamilien ermöglicht}^^A
% \changes{v2.04}{2015/04/22}{\pkg{tudscrfonts}: Unterstützung veralteter
% Posterklassen}^^A
+% \changes{v2.05}{2015/12/08}{\pkg{fix-tudscrfonts}: Dieses Paket übernimmt die
+% Bereitstellung der Schriften für veraltete Klassen}^^A
%
% \section{Kompatibilität zu früheren Versionen und Klassen}
%
@@ -92,7 +99,7 @@
% von \TUDScript als auch \enquote{veraltete} Klassen und Pakete, welche das
% \CD der \TnUD mehr oder weniger gut umsetzen, unterstützt.
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \StopEventually{\PrintIndex\PrintChanges\PrintToDos}
%
% \subsection{Kompatibilität zu früheren \TUDScript-Versionen}
%
@@ -108,25 +115,27 @@
%<*class|(package&fonts)>
% \fi
%
-% \begin{macro}{\TUD@deprecated@key}
+% \begin{macro}{\TUD@key@deprecated}
% \changes{v2.03}{2015/02/05}{neu}^^A
-% \begin{macro}{\tud@deprecated@cmd}
+% \begin{macro}{\TUD@cmd@deprecated}
% \changes{v2.03}{2015/02/05}{neu}^^A
+% \begin{macro}{\TUD@len@deprecated}
+% \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.
% \begin{macrocode}
%<*option>
-\newcommand*\TUD@deprecated@key[2]{%
-%<*!fonts>
- \ClassWarning{\TUDClassName}%
-%</!fonts>
-%<*fonts>
+\newcommand*\TUD@key@deprecated[2]{%
+%<*class>
+ \ClassWarning{\TUD@Class@Name}%
+%</class>
+%<*package&fonts>
\PackageWarning{tudscrfonts}%
-%</fonts>
+%</package&fonts>
{%
- The option key `#1' is deprecated.\MessageBreak%
+ The option key `#1' is deprecated\MessageBreak%
It's recommended to use `#2'\MessageBreak%
instead%
}%
@@ -138,29 +147,99 @@
% den alten überschrieben.
% \begin{macrocode}
%<*class&body>
-\newcommand*\tud@deprecated@cmd[2]{%
+\newcommand*\TUD@cmd@deprecated[2]{%
\AtBeginDocument{%
- \ifcsdef{#1}{}{%
+ \ifcsundef{#1}{%
\expandafter\newrobustcmd\csname #1\endcsname{%
- \ClassWarning{\TUDClassName}{%
- The command `\@backslashchar#1' is deprecated.\MessageBreak%
+ \ClassWarning{\TUD@Class@Name}{%
+ The command `\@backslashchar#1' is deprecated\MessageBreak%
It's recommended to use `\@backslashchar#2' instead%
}%
\csletcs{#1}{#2}%
- \@nameuse{#2}%
+ \csuse{#2}%
}%
- }%
+ }{}%
}%
}
+\newcommand*\TUD@len@deprecated[2][]{%
+ \ifdim\csuse{#2}<\maxdimen\relax%
+ \ClassWarning{\TUD@Class@Name}{%
+ Using the length `\@backslashchar#2' is deprecated.\MessageBreak%
+ You should use option `#2' instead%
+ }%
+ \csxdef{tud@dim@#2}{\the\csuse{#2}}%
+ \expandafter\setlength\csname #2\endcsname{\maxdimen}%
+ \global\csuse{#2}=\csuse{#2}%
+ #1%
+ \fi%
+}
%</class&body>
% \end{macrocode}
-% \end{macro}^^A \tud@deprecated@cmd
-% \end{macro}^^A \TUD@deprecated@key
+% \end{macro}^^A \TUD@len@deprecated
+% \end{macro}^^A \TUD@cmd@deprecated
+% \end{macro}^^A \TUD@key@deprecated
%
% \iffalse
%<*option>
% \fi
%
+% \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>
+ \ClassWarning{\TUD@Class@Name}%
+%</class>
+%<*package&fonts>
+ \PackageWarning{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}[2014/06/21]%
+ \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.
@@ -169,9 +248,9 @@
\TUD@set@ifkey{cdfonts}{@tempswa}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
\if@tempswa%
- \TUD@deprecated@key{cdfonts=#1}{cdfont=true}%
+ \TUD@key@deprecated{cdfonts=#1}{cdfont=true}%
\else%
- \TUD@deprecated@key{cdfonts=#1}{cdfont=false}%
+ \TUD@key@deprecated{cdfonts=#1}{cdfont=false}%
\fi%
\fi%
}
@@ -179,9 +258,9 @@
\TUD@set@ifkey{tudfonts}{@tempswa}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
\if@tempswa%
- \TUD@deprecated@key{tudfonts=#1}{cdfont=true}%
+ \TUD@key@deprecated{tudfonts=#1}{cdfont=true}%
\else%
- \TUD@deprecated@key{tudfonts=#1}{cdfont=false}%
+ \TUD@key@deprecated{tudfonts=#1}{cdfont=false}%
\fi%
\fi%
}
@@ -195,9 +274,9 @@
\TUD@set@ifkey{heavyfont}{@tempswa}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
\if@tempswa%
- \TUD@deprecated@key{heavyfont}{cdfont=heavy}%
+ \TUD@key@deprecated{heavyfont}{cdfont=heavy}%
\else%
- \TUD@deprecated@key{heavyfont=#1}{cdfont=true}%
+ \TUD@key@deprecated{heavyfont=#1}{cdfont=true}%
\fi%
\fi%
}
@@ -207,16 +286,16 @@
% \begin{option}{nodin}
% \begin{option}{noDIN}
% \changes{v2.04}{2015/04/22}{neu}^^A
-% Diese Optionen dienten zur Auswahl, ob die Schrift DIN~Bold für die
-% Überschriften verwendet werden soll.
+% Diese Optionen dienten zur Auswahl, ob die Schrift \DIN für die Überschriften
+% verwendet werden soll.
% \begin{macrocode}
\TUD@key{din}[true]{%
\TUD@set@ifkey{din}{@tempswa}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
\if@tempswa%
- \TUD@deprecated@key{din}{cdfont=din}%
+ \TUD@key@deprecated{din}{cdfont=din}%
\else%
- \TUD@deprecated@key{din=#1}{cdfont=nodin}%
+ \TUD@key@deprecated{din=#1}{cdfont=nodin}%
\fi%
\fi%
}
@@ -224,9 +303,9 @@
\TUD@set@ifkey{nodin}{@tempswa}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
\if@tempswa%
- \TUD@deprecated@key{nodin}{cdfont=nodin}%
+ \TUD@key@deprecated{nodin}{cdfont=nodin}%
\else%
- \TUD@deprecated@key{nodin=#1}{cdfont=din}%
+ \TUD@key@deprecated{nodin=#1}{cdfont=din}%
\fi%
\fi%
}
@@ -234,9 +313,9 @@
\TUD@set@ifkey{noDIN}{@tempswa}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
\if@tempswa%
- \TUD@deprecated@key{noDIN}{cdfont=nodin}%
+ \TUD@key@deprecated{noDIN}{cdfont=nodin}%
\else%
- \TUD@deprecated@key{noDIN=#1}{cdfont=din}%
+ \TUD@key@deprecated{noDIN=#1}{cdfont=din}%
\fi%
\fi%
}
@@ -256,9 +335,9 @@
\TUD@set@ifkey{sansmath}{@tempswa}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
\if@tempswa%
- \TUD@deprecated@key{sansmath}{cdmath=true}%
+ \TUD@key@deprecated{sansmath}{cdmath=true}%
\else%
- \TUD@deprecated@key{sansmath=#1}{cdmath=false}%
+ \TUD@key@deprecated{sansmath=#1}{cdmath=false}%
\fi%
\fi%
}
@@ -266,9 +345,9 @@
\TUD@set@ifkey{serifmath}{@tempswa}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
\if@tempswa%
- \TUD@deprecated@key{serifmath}{cdmath=false}%
+ \TUD@key@deprecated{serifmath}{cdmath=false}%
\else%
- \TUD@deprecated@key{serifmath=#1}{cdmath=true}%
+ \TUD@key@deprecated{serifmath=#1}{cdmath=true}%
\fi%
\fi%
}
@@ -285,7 +364,7 @@
% Umbennennung der zu allgemein benannten Option, um zukünftigen Konflikten mit
% \KOMAScript{} aus dem Weg zu gehen.
% \begin{macrocode}
-\TUD@key{geometry}[true]{\TUD@deprecated@key{geometry=#1}{cdgeometry=#1}}
+\TUD@key{geometry}[true]{\TUD@key@deprecated{geometry=#1}{cdgeometry=#1}}
% \end{macrocode}
% \end{option}^^A geometry
% \begin{option}{barfont}
@@ -300,15 +379,15 @@
{nocd}{0},{nocdfont}{0},{nocdfonts}{0},{notudfonts}{0},%
{cd}{1},{cdfont}{1},{cdfonts}{1},{tudfonts}{1},%
{light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},%
- {heavy}{2},{heavyfont}{2}%
+ {heavy}{2},{heavyfont}{2},{bold}{2},{boldfont}{2}%
}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
\ifcase\@tempa\relax% false
- \TUD@deprecated@key{barfont=#1}{cdhead=false}%
+ \TUD@key@deprecated{barfont=#1}{cdhead=false}%
\or% true
- \TUD@deprecated@key{barfont=#1}{cdhead=true}%
+ \TUD@key@deprecated{barfont=#1}{cdhead=true}%
\or% heavy
- \TUD@deprecated@key{barfont=#1}{cdhead=heavy}%
+ \TUD@key@deprecated{barfont=#1}{cdhead=heavy}%
\fi%
\fi%
}
@@ -323,9 +402,9 @@
\TUD@set@ifkey{widehead}{@tempswa}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
\if@tempswa%
- \TUD@deprecated@key{widehead}{cdhead=paperwidth}%
+ \TUD@key@deprecated{widehead}{cdhead=paperwidth}%
\else%
- \TUD@deprecated@key{widehead=#1}{cdhead=textwidth}%
+ \TUD@key@deprecated{widehead=#1}{cdhead=textwidth}%
\fi%
\fi%
}
@@ -338,9 +417,9 @@
\TUD@set@ifkey{tudfoot}{@tempswa}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
\if@tempswa%
- \TUD@deprecated@key{tudfoot}{cdfoot=true}%
+ \TUD@key@deprecated{tudfoot}{cdfoot=true}%
\else%
- \TUD@deprecated@key{tudfoot=#1}{cdfoot=false}%
+ \TUD@key@deprecated{tudfoot=#1}{cdfoot=false}%
\fi%
\fi%
}
@@ -367,15 +446,15 @@
}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
\ifcase\@tempa\relax% false
- \TUD@deprecated@key{color=#1}{cd=true}%
+ \TUD@key@deprecated{color=#1}{cd=true}%
\or% true
- \TUD@deprecated@key{color=#1}{cd=color}%
+ \TUD@key@deprecated{color=#1}{cd=color}%
\or% litecolor
- \TUD@deprecated@key{color=#1}{cd=pale}%
+ \TUD@key@deprecated{color=#1}{cd=pale}%
\or% bicolor
- \TUD@deprecated@key{color=#1}{cd=bicolor}%
+ \TUD@key@deprecated{color=#1}{cd=bicolor}%
\or% full
- \TUD@deprecated@key{color=#1}{cd=fullcolor}%
+ \TUD@key@deprecated{color=#1}{cd=fullcolor}%
\fi%
\fi%
}
@@ -394,22 +473,39 @@
% \changes{v2.02}{2014/08/22}{neu}^^A
% \begin{macro}{\tud@v@first}
% \changes{v2.02}{2014/08/22}{neu}^^A
-% \begin{macro}{\tud@v@2.02}
+% \begin{macro}{\tud@v@2.00}
% \changes{v2.02}{2014/08/22}{neu}^^A
-% \begin{macro}{\tud@v@v2.02}
+% \begin{macro}{\tud@v@2.01}
+% \changes{v2.02}{2014/08/22}{neu}^^A
+% \begin{macro}{\tud@v@2.01a}
+% \changes{v2.02}{2014/08/22}{neu}^^A
+% \begin{macro}{\tud@v@2.01b}
+% \changes{v2.02}{2014/08/22}{neu}^^A
+% \begin{macro}{\tud@v@2.02}
% \changes{v2.02}{2014/08/22}{neu}^^A
% \begin{macro}{\tud@v@2.03}
% \changes{v2.03}{2015/01/13}{neu}^^A
-% \begin{macro}{\tud@v@v2.03}
-% \changes{v2.03}{2015/01/13}{neu}^^A
+% \begin{macro}{\tud@v@2.03a}
+% \changes{v2.03a}{2015/06/12}{neu}^^A
% \begin{macro}{\tud@v@2.04}
% \changes{v2.04}{2015/02/18}{neu}^^A
-% \begin{macro}{\tud@v@v2.04}
-% \changes{v2.04}{2015/02/18}{neu}^^A
+% \begin{macro}{\tud@v@2.04a}
+% \changes{v2.04a}{2015/07/24}{neu}^^A
+% \begin{macro}{\tud@v@2.04b}
+% \changes{v2.04b}{2015/10/06}{neu}^^A
+% \begin{macro}{\tud@v@2.04c}
+% \changes{v2.04c}{2015/11/29}{neu}^^A
+% \begin{macro}{\tud@v@2.04d}
+% \changes{v2.04d}{2016/03/26}{neu}^^A
+% \begin{macro}{\tud@v@2.04e}
+% \changes{v2.04e}{2016/06/17}{neu}^^A
+% \begin{macro}{\tud@v@2.05}
+% \changes{v2.05}{2015/07/03}{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
% In einigen Fällen sind Änderungen mit früheren Versionen nicht kompatibel
% oder unerwünscht, weil diese beispielsweise das Ausgabeergebnis verändern.
% Standardmäßig werden die Klassen in der aktuellen Version geladen. Mit
@@ -420,33 +516,33 @@
% \begin{macrocode}
\newcommand*\tud@v@comp{\tud@v@last}
\TUD@key{tudscrver}[last]{%
- \ifcsvoid{tud@v@#1}{%
- \def\tud@v@comp{0}%
+ \tud@v@get\@tempa{#1}%
+ \ifcsundef{tud@v@\@tempa}{%
%<*class>
- \ClassWarningNoLine{\TUDClassName}%
+ \ClassWarningNoLine{\TUD@Class@Name}%
%</class>
%<*package&fonts>
\PackageWarningNoLine{tudscrfonts}%
%</package&fonts>
{%
- You have set option `tudscrver' to `#1', but\MessageBreak%
+ You have set option `tudscrver' to `\@tempa', but\MessageBreak%
this value is not supported. Because of this, the\MessageBreak%
value for `tudscrver' was set to `first'%
}%
- \FamilyKeyStateProcessed%
+ \def\tud@v@comp{0}%
}{%
%<*class>
- \ClassInfoNoLine{\TUDClassName}%
+ \ClassInfoNoLine{\TUD@Class@Name}%
%</class>
%<*package&fonts>
\PackageInfoNoLine{tudscrfonts}%
%</package&fonts>
{%
- Switching compatibility level to `#1'%
+ Switching compatibility level to `\@tempa'%
}%
- \edef\tud@v@comp{\@nameuse{tud@v@#1}}%
- \FamilyKeyStateProcessed%
+ \edef\tud@v@comp{\csuse{tud@v@\@tempa}}%
}%
+ \FamilyKeyStateProcessed%
}
% \end{macrocode}
% Eine zusätzliche Bedingung gibt es noch: Die Kompatibilität kann nur beim
@@ -461,7 +557,7 @@
{%
\TUD@key{tudscrver}[]{%
%<*class>
- \ClassError{\TUDClassName}%
+ \ClassError{\TUD@Class@Name}%
%</class>
%<*package&fonts>
\PackageError{tudscrfonts}%
@@ -469,7 +565,7 @@
{Option `tudscrver' too late}{%
Option `tudscrver' can only be set while loading the\MessageBreak%
%<*class>
- class `\TUDClassName'
+ class `\TUD@Class@Name'
%</class>
%<*package&fonts>
package `tudscrfonts'
@@ -479,25 +575,26 @@
\FamilyKeyStateProcessed%
}%
% \end{macrocode}
-% Außerdem wird darauf geachtet, dass mindestens \KOMAScript-Version~v3.17
-% vorhanden ist, andernfalls wird ein Fehler erzeugt.
+% Außerdem wird darauf geachtet, dass die mindestens benötigte Version von
+% \KOMAScript{} installiert ist. (\cs{\TUD@Version@KOMA}: \TUD@Version@KOMA).
+% Sollte dies nicht der Fall sein, wird ein Fehler erzeugt.
% \begin{macrocode}
%<*class>
- \ifcsdef{scr@v@3.17}{%
- \ifnum\scr@compatibility<\@nameuse{scr@v@3.12}\relax%
- \ClassError{\TUDClassName}{%
+ \ifcsdef{scr@v@\TUD@Version@KOMA}{%
+ \ifnum\scr@compatibility<\csuse{scr@v@3.12}\relax%
+ \ClassError{\TUD@Class@Name}{%
KOMA-Script compatibility level too low%
}{%
- \TUDVersion\space has to be used at least with\MessageBreak%
- KOMA-Script compatibility option `version=v3.12'.%
+ \TUD@Version\space must be used at least with\MessageBreak%
+ KOMA-Script compatibility option `version=3.12'.%
}%
\fi%
}{%
- \ClassError{\TUDClassName}{%
- KOMA-Script v3.17 is required%
+ \ClassError{\TUD@Class@Name}{%
+ KOMA-Script v\TUD@Version@KOMA is required%
}{%
- \TUDVersion\space has to be used with KOMA-Script v3.17\MessageBreak%
- at least. You're using \KOMAScriptVersion%
+ \TUD@Version\space must at least be used with\MessageBreak%
+ KOMA-Script v\TUD@Version@KOMA. You're using \KOMAScriptVersion%
}%
}%
%</class>
@@ -506,39 +603,89 @@
% Die numerischen Werte zu den einzelnen Versionen.
% \ToDo{Für jede neue Version der entsprechende Befehl}[Release]
% \begin{macrocode}
-\@namedef{tud@v@first}{0}
-\@namedef{tud@v@2.02}{0}
-\@namedef{tud@v@v2.02}{0}
-\@namedef{tud@v@2.03}{1}
-\@namedef{tud@v@v2.03}{1}
-\@namedef{tud@v@2.04}{2}
-\@namedef{tud@v@v2.04}{2}
-\@namedef{tud@v@last}{2}
+\csdef{tud@v@first}{0}
+\csdef{tud@v@2.00}{0}
+\csdef{tud@v@2.01}{0}
+\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}
+\csdef{tud@v@2.04a}{2}
+\csdef{tud@v@2.04b}{2}
+\csdef{tud@v@2.04c}{2}
+\csdef{tud@v@2.04d}{2}
+\csdef{tud@v@2.04e}{2}
+\csdef{tud@v@2.05}{3}
+\csdef{tud@v@last}{3}
% \end{macrocode}
% \end{macro}^^A \tud@v@last
-% \end{macro}^^A \tud@v@v2.04
+% \end{macro}^^A \tud@v@2.05
+% \end{macro}^^A \tud@v@2.04e
+% \end{macro}^^A \tud@v@2.04d
+% \end{macro}^^A \tud@v@2.04c
+% \end{macro}^^A \tud@v@2.04b
+% \end{macro}^^A \tud@v@2.04a
% \end{macro}^^A \tud@v@2.04
-% \end{macro}^^A \tud@v@v2.03
+% \end{macro}^^A \tud@v@2.03a
% \end{macro}^^A \tud@v@2.03
-% \end{macro}^^A \tud@v@v2.02
% \end{macro}^^A \tud@v@2.02
+% \end{macro}^^A \tud@v@2.01b
+% \end{macro}^^A \tud@v@2.01a
+% \end{macro}^^A \tud@v@2.01
+% \end{macro}^^A \tud@v@2.00
% \end{macro}^^A \tud@v@first
% \end{macro}^^A \tud@v@comp
% \end{option}^^A tudscrver
-% \begin{macro}{\tud@ifverlower}
+% \begin{macro}{\tud@v@get}
+% \changes{v2.05}{2016/05/31}{neu}^^A
+% Mit \cs{tud@v@get} wird die angegebene Versionsnummer in eine Normalform
+% gebracht und an das Makro im ersten Argument übergeben. Damit spielt es keine
+% Rolle, ob die im zweiten Argument übergebene Versionsnummer mit oder ohne
+% führendes \enquote{v} angegeben wird.
+% \begin{macrocode}
+\newcommand*\tud@v@get[2]{%
+ \begingroup%
+ \def\@tempa{\kernel@ifnextchar v{\@tempb}{\@tempb v}}%
+ \def\@tempb v##1\@nil{\def\@tempc{##1}}%
+ \@tempa #2\@nil%
+ \edef\tud@reserved{%
+ \endgroup%
+ \etex@unexpanded{\def#1}{\@tempc}%
+ }%
+ \tud@reserved%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@v@get
+% \begin{macro}{\tud@if@v@lower}
% \changes{v2.03}{2015/01/13}{neu}^^A
% Mit diesem Befehl können abhängig von der gegebenen Kompatibilitätsversion in
% den Klassen unterschiedliche Einstellungen vorgenommen werden.
% \begin{macrocode}
-\newcommand*\tud@ifverlower[1]{%
- \ifnum\tud@v@comp<\@nameuse{tud@v@#1}\relax%
- \expandafter\@firstoftwo%
- \else%
- \expandafter\@secondoftwo%
- \fi%
+\newcommand*\tud@if@v@lower[1]{%
+ \begingroup%
+ \tud@v@get\@tempa{#1}%
+ \ifcsdef{tud@v@\@tempa}{%
+ \ifnum\tud@v@comp<\csuse{tud@v@\@tempa}\relax%
+ \def\tud@reserved{\endgroup\@firstoftwo}%
+ \else%
+ \def\tud@reserved{\endgroup\@secondoftwo}%
+ \fi%
+ }{%
+ \def\tud@reserved{%
+ \ClassWarningNoLine{\TUD@Class@Name}{%PackageWarning!
+ Erroneous usage of `\string\tud@if@v@lower'.\MessageBreak%
+ There's no defined macro `\string\tud@v@\@tempa'%
+ }%
+ \endgroup\@firstoftwo%
+ }%
+ }%
+ \tud@reserved%
}
% \end{macrocode}
-% \end{macro}^^A \tud@ifverlower
+% \end{macro}^^A \tud@if@v@lower
%
% \iffalse
%</option>
@@ -546,12 +693,42 @@
%<*class&body>
% \fi
%
+% \begin{length}{\footlogoheight}
+% \changes{v2.03}{2015/01/27}{neu}^^A
+% Um die Höhe von Logos im Fußbereich der \pgs{tudheadings}-Seitenstile
+% einheitlich festzulegen, gab es bis einschließlich der Version~v2.04 die
+% Länge \cs{footlogoheight} anstelle der Option \opt{footlogoheight}. Sollte
+% der Anwender diese anpassen, wird \cs{tud@dim@footlogoheight} auf diesen Wert
+% gesetzt und eine Warnung erzeugt.
+% \begin{macrocode}
+\newlength\footlogoheight
+\setlength\footlogoheight{\maxdimen}
+% \end{macrocode}
+% \end{length}^^A \footlogoheight
+% \begin{length}{\pageheadingsvskip}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% \begin{length}{\headingsvskip}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% Mit diesen Längen konnte der Anwender vor der Version~v2.05 die Überschriften
+% von Titel, Teilen und Kapiteln vertikal verschieben. Diese Funktionalität
+% wird seitdem mit den Optionen \opt{headingsvskip} und \opt{pageheadingsvskip}
+% abgedeckt.
+% \begin{macrocode}
+%<*book|report|article>
+\newlength\pageheadingsvskip
+\setlength\pageheadingsvskip{\maxdimen}
+\newlength\headingsvskip
+\setlength\headingsvskip{\maxdimen}
+%</book|report|article>
+% \end{macrocode}
+% \end{length}^^A \headingsvskip
+% \end{length}^^A \pageheadingsvskip
% \begin{length}{\chapterheadingvskip}
% Die Länge \cs{chapterheadingvskip} wird aus Gründen der Kompatibilität zu
% älteren Versionen definiert.
% \begin{macrocode}
%<*book|report>
-\newlength\chapterheadingvskip
+\newcommand*\chapterheadingvskip{}
\let\chapterheadingvskip\headingsvskip
%</book|report>
% \end{macrocode}
@@ -560,63 +737,73 @@
% Für die Angabe des Lehrstuhls bzw. der Professur mit kann anstelle von
% \cs{chair} als Aliasbefehl auch \cs{professorship} genutzt werden.
% \begin{macrocode}
-\tud@deprecated@cmd{professorship}{chair}
+\TUD@cmd@deprecated{professorship}{chair}
% \end{macrocode}
% \end{macro}^^A \professorship
+%
+% \iffalse
+%<*book|report|article>
+% \fi
+%
% \begin{macro}{\studentid}
% \begin{macro}{\matriculationid}
% Zur Angabe von Matrikelnummer kann auch \cs{studentid} oder
% \cs{matriculationnumber} genutzt werden.
% \begin{macrocode}
-\tud@deprecated@cmd{studentid}{matriculationnumber}
-\tud@deprecated@cmd{matriculationid}{matriculationnumber}
+\TUD@cmd@deprecated{studentid}{matriculationnumber}
+\TUD@cmd@deprecated{matriculationid}{matriculationnumber}
% \end{macrocode}
% \end{macro}^^A \matriculationid
% \end{macro}^^A \studentid
% \begin{macro}{\enrolmentyear}
% Das Immatrikulationsjahr kann auch mit \cs{enrolmentyear} angegeben werden.
% \begin{macrocode}
-\tud@deprecated@cmd{enrolmentyear}{matriculationyear}%
+\TUD@cmd@deprecated{enrolmentyear}{matriculationyear}
% \end{macrocode}
% \end{macro}^^A \enrolmentyear
% \begin{macro}{\birthplace}
% Zur Angabe des Geburtsortes kann auch \cs{birthplace} verwendet werden.
% \begin{macrocode}
-\tud@deprecated@cmd{birthplace}{placeofbirth}
+\TUD@cmd@deprecated{birthplace}{placeofbirth}
% \end{macrocode}
% \end{macro}^^A \birthplace
-% \begin{macro}{\location}
-% Für die Angabe des Ortes kann auch \cs{location} genutzt werden.
-% \begin{macrocode}
-\tud@deprecated@cmd{location}{place}
-% \end{macrocode}
-% \end{macro}^^A \location
% \begin{macro}{\submissiondate}
% Der Befehl \cs{submissiondate} kann als Aliasbefehl für den Standardbefehl
% \cs{date} zur Datumsangabe genutzt werden.
% \begin{macrocode}
-\tud@deprecated@cmd{submissiondate}{date}
+\TUD@cmd@deprecated{submissiondate}{date}
% \end{macrocode}
% \end{macro}^^A \submissiondate
% \begin{macro}{\oralexaminationdate}
% Für \cs{defensedate} kann als Aliasbefehl auch \cs{oralexaminationdate}
% verwendet werden.
% \begin{macrocode}
-\tud@deprecated@cmd{oralexaminationdate}{defensedate}%
+\TUD@cmd@deprecated{oralexaminationdate}{defensedate}
% \end{macrocode}
% \end{macro}^^A \oralexaminationdate
% \begin{macro}{\birthday}
% Der Geburtstag kann auch mit \cs{birthday} angegeben werden.
% \begin{macrocode}
-\tud@deprecated@cmd{birthday}{dateofbirth}
+\TUD@cmd@deprecated{birthday}{dateofbirth}
% \end{macrocode}
% \end{macro}^^A \birthday
+%
+% \iffalse
+%</book|report|article>
+% \fi
+%
+% \begin{macro}{\location}
+% Für die Angabe des Ortes kann auch \cs{location} genutzt werden.
+% \begin{macrocode}
+\TUD@cmd@deprecated{location}{place}
+% \end{macrocode}
+% \end{macro}^^A \location
% \begin{macro}{\logofile}
% \begin{macro}{\logofilename}
% Diese beiden Befehle können anstelle von \cs{headlogo} eingesetzt werden.
% \begin{macrocode}
-\tud@deprecated@cmd{logofile}{headlogo}
-\tud@deprecated@cmd{logofilename}{headlogo}
+\TUD@cmd@deprecated{logofile}{headlogo}
+\TUD@cmd@deprecated{logofilename}{headlogo}
% \end{macrocode}
% \end{macro}^^A \logofilename
% \end{macro}^^A \logofile
@@ -627,19 +814,56 @@
% anzusehen.
% \begin{macrocode}
\AfterPackage{tudscrsupervisor}{%
- \tud@deprecated@cmd{startdate}{issuedate}%
- \tud@deprecated@cmd{finaldate}{duedate}%
- \tud@deprecated@cmd{maturitydate}{duedate}%
+ \TUD@cmd@deprecated{startdate}{issuedate}%
+ \TUD@cmd@deprecated{finaldate}{duedate}%
+ \TUD@cmd@deprecated{maturitydate}{duedate}%
}
% \end{macrocode}
% \end{macro}^^A \maturitydate
% \end{macro}^^A \finaldate
% \end{macro}^^A \startdate
%
-%
% \iffalse
%</class&body>
-%<*package&preset>
+%<*body>
+%<*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>
+\AtEndOfPackage%
+%</package>
+{%
+ \tud@if@v@lower{2.04}{\TUDoptions{relspacing=false}}{}%
+}
+% \end{macrocode}
+%
+% \iffalse
+%</class|(package&fonts)>
+%<*package>
+% \fi
+%
+% \begin{macro}{\dinBold}
+% \changes{v2.05}{2015/07/13}{neu}^^A
+% \begin{macro}{\dinfamily}
+% \changes{v2.05}{2015/07/13}{neu}^^A
+% Für die explizite Schriftauswahl gibt es ebenfalls zwei ältere Befehle.
+% \begin{macrocode}
+\def\dinBold{\dinbn}
+\def\dinfamily{\dinbn}
+% \end{macrocode}
+% \end{macro}^^A \dinfamily
+% \end{macro}^^A \dinBold
+%
+% \iffalse
+%</package>
+%</body>
% \fi
%
% \subsection{Das Paket \pkg{tudscrcomp} -- Kompatibilität veralteter Klassen}
@@ -652,52 +876,58 @@
% durch die Klassen die \TUDScript-Klassen in der Version~v1.0 sowie die
% Posterklassen \cls{tudmathposter} bzw. \cls{tudposter} bereitgestellt wurden.
%
-% \ToDo{%
-% Optionen für \cls{tudbook} und \cls{tudmathposter}\val{=Mathematik(A0)}%
-% }[v2.05]
+% \iffalse
+%<*package&comp>
+%<*base>
+% \fi
%
-% Zunächst sollten vor der Definition der Kompatibilitätseinstellungen passende
-% Makros zur Fallunterscheidung definiert werden.
+% \subsubsection{Erkennen der geladenen Klasse}
%
-% \begin{macro}{\if@tud@oldclass}
-% \changes{v2.02}{2014/08/29}{neu}^^A
-% Wenn eine der alten Klassen aus den Vorlagen von Klaus Bergmann geladen
-% wurde, wird dies für spätere Anpassungen registriert. Die alten Posterklassen
-% werden ebenfalls unterstützt.
-% \ToDo{Klasse tudbeamer und beamer-Stil tud einpflegen}[v2.xx]
-% \begin{macrocode}
-\newif\if@tud@oldclass
-\@ifclassloaded{tudbook}{\@tud@oldclasstrue}{}%
-\@ifclassloaded{tudbeamer}{\@tud@oldclasstrue}{}%
-\@ifclassloaded{tudfax}{\@tud@oldclasstrue}{}%
-\@ifclassloaded{tudform}{\@tud@oldclasstrue}{}%
-\@ifclassloaded{tudhaus}{\@tud@oldclasstrue}{}%
-\@ifclassloaded{tudletter}{\@tud@oldclasstrue}{}%
-\@ifclassloaded{tudposter}{\@tud@oldclasstrue}{}%
-\@ifclassloaded{tudmathposter}{\@tud@oldclasstrue}{}%
-% \end{macrocode}
-% \end{macro}^^A if@tud@oldclass
-% \begin{macro}{\if@tud@oldscrclass}
-% \changes{v2.02}{2014/08/29}{neu}^^A
-% Soll das Paket \pkg{tudscrfonts} mit den \TUDScript-Klassen der Version~v1.0
-% genutzt werden, sind ebenfalls einige Anpassungen notwendig.
+% Damit je nach geladener Klasse die passenden Kompatibilitätseinstellungen und
+% -befehle bereitgestellt werden können, wird auf die geladene Klasse geprüft.
+% Danach wird das dazu passende Paket geladen.
% \begin{macrocode}
-\newif\if@tud@oldscrclass
-\@ifclassloaded{tudscrbookold}{\@tud@oldscrclasstrue}{}%
-\@ifclassloaded{tudscrreprtold}{\@tud@oldscrclasstrue}{}%
-\@ifclassloaded{tudscrartclold}{\@tud@oldscrclasstrue}{}%
+\PassOptionsToPackage{oldcolors}{tudscrcolor}
+\@ifclassloaded{tudscrposter}{%
+ \RequirePackageWithOptions{tudscrcomp-poster}[\TUD@Version]%
+}{%
+ \RequirePackageWithOptions{tudscrcomp-book}[\TUD@Version]%
+}
% \end{macrocode}
-% \end{macro}^^A if@tud@oldclass
%
+% \iffalse
+%</base>
+%<*!base>
+%<*body>
+% \fi
+%
+% \subsubsection{Gemeinsame Optionen und Befehle für alle Klassen}
+%
+% Zunächst werden alle Optionen und Befehle definiert, die unabhängig von der
+% geladenen Klasse generell bereitgestellt werden.
%
-% Jetzt folgen noch einige veraltete Befehle für die \TUDScript-Klassen.
+% \begin{macro}{\einrichtung}
+% \begin{macro}{\fachrichtung}
+% \begin{macro}{\institut}
+% \begin{macro}{\professur}
+% Es werden Aliasbefehle für die Eingabefelder definiert.
+% \begin{macrocode}
+\newcommand*\einrichtung{\faculty}
+\newcommand*\fachrichtung{\department}
+\newcommand*\institut{\institute}
+\newcommand*\professur{\chair}
+% \end{macrocode}
+% \end{macro}^^A \professur
+% \end{macro}^^A \institut
+% \end{macro}^^A \fachrichtung
+% \end{macro}^^A \einrichtung
%
% \iffalse
-%</package&preset>
-%<*package&option&!fonts>
+%</body>
+%<*book>
+%<*option>
% \fi
%
-%
% \subsubsection{Kompatibilität zu \cls{tudbook}}
%
% Die folgenden Optionen und Befehle werden durch die Klasse \cls{tudbook} und
@@ -751,26 +981,19 @@
% \end{option}^^A ddcfooter
%
% \iffalse
-%</package&option&!fonts>
-%<*package&body&!fonts>
+%</option>
+%<*body>
% \fi
%
-% \begin{macro}{\einrichtung}
-% \begin{macro}{\fachrichtung}
-% \begin{macro}{\institut}
-% \begin{macro}{\professur}
% \begin{macro}{\moreauthor}
% \begin{macro}{\submitdate}
% \begin{macro}{\supervisorII}
% \begin{macro}{\supervisedby}
% \begin{macro}{\supervisedIIby}
% \begin{macro}{\submittedon}
-% Es werden Aliasbefehle für die Eingabefelder definiert.
+% Es werden weitere Aliasbefehle für die Eingabefelder der \cls{tudbook}-Klasse
+% definiert.
% \begin{macrocode}
-\newcommand*\einrichtung{\faculty}
-\newcommand*\fachrichtung{\department}
-\newcommand*\institut{\institute}
-\newcommand*\professur{\chair}
\newcommand*\moreauthor{\authormore}
\newcommand*\submitdate{\date}
\newcommand*\supervisorII[1]{%
@@ -786,10 +1009,6 @@
% \end{macro}^^A \supervisorII
% \end{macro}^^A \submitdate
% \end{macro}^^A \moreauthor
-% \end{macro}^^A \professur
-% \end{macro}^^A \institut
-% \end{macro}^^A \fachrichtung
-% \end{macro}^^A \einrichtung}
% \begin{macro}{\dissertation}
% Bei der Definition des Typs der Abschlussarbeit mit \cs{dissertation} wird
% die Lokalisierungsvariable \cs{dissertationname} verwendet und die Feldnamen
@@ -808,8 +1027,8 @@
% Eine rudimentäre Umgebung für ein Glossar.
% \begin{macrocode}
\AtBeginDocument{%
- \ifdef{\theglossary}{}{%
- \providecommand*{\glossaryname}{Glossar}
+ \ifundef{\theglossary}{%
+ \providecommand*\glossaryname{Glossar}%
\newenvironment{theglossary}[1][]{%
\PackageWarning{tudscrcomp}{%
Using the environment `theglossary' is not\MessageBreak%
@@ -824,19 +1043,19 @@
\setlength\labelwidth{\z@}%
\setlength\itemindent{-\leftmargin}%
}%
- }{\endlist}
+ }{\endlist}%
\newcommand\glossitem[1]{\item[] #1\par}%
- }%
+ }{}%
}
% \end{macrocode}
% \end{macro}^^A \glossitem
% \end{macro}^^A \glossaryname
% \end{environment}^^A theglossary
% \begin{macro}{\chapterpage}
-% \begin{macro}{\if@tud@chapterpage@temp}
-% \begin{macro}{\tud@chapterpage@set}
-% \begin{macro}{\tud@chapterpage@unset}
-% \begin{macro}{\tud@chapterpage@wrn}
+% \begin{macro}{\if@tud@comp@chapterpage}
+% \begin{macro}{\tud@comp@chapterpage@set}
+% \begin{macro}{\tud@comp@chapterpage@unset}
+% \begin{macro}{\tud@comp@chapterpage@wrn}
% Die alte \cls{tudbook}-Klasse stellt den Befehl \cs{chapterpage} bereit.
% Mit diesem ist es möglich, das Verhalten der Kapitelseiten~-- welches durch
% die Option \opt{chapterpage} gesteuert wird~-- temporär umzuschalten, also
@@ -844,20 +1063,20 @@
% typographisch durchaus zu hinterfragen, allerdings sollen die neuen Klassen
% möglichst kompatibel zu der alten sein, weshalb diese Funktionalität trotzdem
% implementiert wird. Der Befehl \cs{chapterpage} setzt den globalen Schalter
-% \cs{if@tud@chapterpage@temp}. Der Befehl \cs{tud@chapterpage@set} setzt für
-% Kapitel das komplementäre Verhalten zur eigentlich gewählten
-% \opt{chapterpage}"=Option. Nach dem Setzen der entsprechenden Überschrift
-% wird \cs{tud@chapterpage@set} nochmals aufgerufen, das Verhalten auf den
+% \cs{if@tud@comp@chapterpage}. Der Befehl \cs{tud@comp@chapterpage@set} setzt
+% für Kapitel das komplementäre Verhalten zur eigentlich gewählten
+% \opt{chapterpage}-Option. Nach dem Setzen der entsprechenden Überschrift
+% wird \cs{tud@comp@chapterpage@set} nochmals aufgerufen, das Verhalten auf den
% ursprünglichen Zustand geschaltet und der globale Schalter
-% \cs{if@tud@chapterpage@temp} zurückgesetzt.
+% \cs{if@tud@comp@chapterpage} zurückgesetzt.
% \begin{macrocode}
-\newif\if@tud@chapterpage@temp
+\newif\if@tud@comp@chapterpage
\newcommand*\chapterpage{%
- \global\@tud@chapterpage@temptrue%
- \tud@chapterpage@wrn%
+ \global\@tud@comp@chapterpagetrue%
+ \tud@comp@chapterpage@wrn%
}
-\newcommand*\tud@chapterpage@set[1][]{%
- \if@tud@chapterpage@temp%
+\newcommand*\tud@comp@chapterpage@set[1][]{%
+ \if@tud@comp@chapterpage%
\if@tud@chapterpage%
\TUDoptions{chapterpage=false}%
\else%
@@ -865,27 +1084,27 @@
\fi%
\fi%
}
-\newcommand*\tud@chapterpage@unset[1][]{%
- \tud@chapterpage@set%
- \global\@tud@chapterpage@tempfalse%
+\newcommand*\tud@comp@chapterpage@unset[1][]{%
+ \tud@comp@chapterpage@set%
+ \global\@tud@comp@chapterpagefalse%
}
% \end{macrocode}
% Da wie bereits beschrieben das Vorgehen äußerst fragwürdig ist, wird bei der
% Verwendung von \cs{chapterpage} zumindest einmalig eine Warnung ausgegeben.
% \begin{macrocode}
-\newcommand*\tud@chapterpage@wrn{%
+\newcommand*\tud@comp@chapterpage@wrn{%
\PackageWarning{tudscrcomp}{%
The command \string\chapterpage\space is not\MessageBreak%
recommended. You should use the same style for\MessageBreak%
- chapters throughout the document
+ chapters throughout the document%
}%
- \global\let\tud@chapterpage@wrn\relax%
+ \global\let\tud@comp@chapterpage@wrn\relax%
}
% \end{macrocode}
-% \end{macro}^^A \tud@chapterpage@wrn
-% \end{macro}^^A \tud@chapterpage@unset
-% \end{macro}^^A \tud@chapterpage@set
-% \end{macro}^^A \if@tud@chapterpage@temp
+% \end{macro}^^A \tud@comp@chapterpage@wrn
+% \end{macro}^^A \tud@comp@chapterpage@unset
+% \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}
@@ -894,22 +1113,24 @@
% Hier erfolgt die notwendige Anpassungen der internen Gliederungsbefehle.
% \begin{macrocode}
\AtEndPreamble{%
- \pretocmd{\tud@chapter}{\tud@chapterpage@set}%
- {}{\tud@patch@wrn{tud@nchapter}}%
- \apptocmd{\tud@chapter}{\tud@chapterpage@unset}%
- {}{\tud@patch@wrn{tud@nchapter}}%
- \pretocmd{\tud@schapter}{\tud@chapterpage@set}%
- {}{\tud@patch@wrn{tud@schapter}}%
- \apptocmd{\tud@schapter}{\tud@chapterpage@unset}%
- {}{\tud@patch@wrn{tud@schapter}}%
- \pretocmd{\tud@addchap}{\tud@chapterpage@set}%
- {}{\tud@patch@wrn{tud@naddchap}}%
- \apptocmd{\tud@addchap}{\tud@chapterpage@unset}%
- {}{\tud@patch@wrn{tud@naddchap}}%
- \pretocmd{\tud@saddchap}{\tud@chapterpage@set}%
- {}{\tud@patch@wrn{tud@saddchap}}%
- \apptocmd{\tud@saddchap}{\tud@chapterpage@unset}%
- {}{\tud@patch@wrn{tud@saddchap}}%
+ \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}}%
+ \fi%
}
% \end{macrocode}
% \end{macro}^^A \tud@saddchap
@@ -917,124 +1138,793 @@
% \end{macro}^^A \tud@schapter
% \end{macro}^^A \tud@chapter
%
+%
+% \iffalse
+%</body>
+%</book>
+%<*poster>
+%<*option>
+% \fi
+%
% \subsubsection{Kompatibilität zu \cls{tudmathposter}}
%
-% \ToDo{%
-% Folgende Befehle sollten für maximale Kompatibilität unterstützt werden:
-% \begin{itemize}
-% \item Umgebung \env{farbtabellen} mit \cs{grautabelle} und \cs{blautabelle}
-% \item \cs{telefon}, \cs{fax}, \cs{homepage}, \cs{email}
-% \item \cs{fusszeile} \cs{footcolumn} Die linke Spalte enthält Hochschule,
-% Einrichtung, Fachrichtung, Institut und Professur. Die rechte Spalte ist
-% frei wählbar, und kann mit den Variablen \cs{author}, \cs{telefon},
-% \cs{email} und \cs{homepage} oder mit einem frei gewählten Absatz
-% (\cs{footcolumn2}) gefüllt werden.
-% \item \cs{zweitlogo}, \cs{drittlogo}, \cs{institutslogo}
-% \item \cs{maketitle}
-% \item \cs{schnittrand} mit \pkg{crop}?
-% \item Abstände der Gliederungsebenen?
-% \item Umgebungen \env{tablehere} und \env{figurehere}
-% \item \cs{multicolsep}
-% \item Optionen \opt{Mathematik} und \opt{MathematikA0}
-% \end{itemize}%
-% Testen mit \texttt{beispiel-utf8-serifmath.tex}
-% }[v2.05]
+% Die hier bereitgestellten Optionen und Befehle werden durch die Klasse
+% \cls{tudmathposter} bzw. \cls{tudposter} definiert.
+%
+% \begin{option}{bluebg}
+% \changes{v2.05}{2016/04/17}{neu}^^A
+% Mit der Option \opt{bluebg} kann der Hintergrund des Posters in \val{HKS41}
+% gesetzt werden.
+% \begin{macrocode}
+\TUD@key{bluebg}[true]{%
+ \TUD@set@ifkey{bluebg}{@tempswa}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \if@tempswa%
+ \TUDoptions{backgroundcolor=true}%
+ \else%
+ \TUDoptions{backgroundcolor=false}%
+ \fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{option}^^A bluebg
%
% \iffalse
-%</package&body&!fonts>
-%<*package&body&fonts>
+%</option>
+%<*body>
% \fi
%
-% \subsection{Neue Schriftfamilien für alte TUD-Klassen}
+% \begin{pagestyle}{tudposter}
+% \changes{v2.05}{2016/07/26}{neu}^^A
+% Der Seitenstil \pgs{tudposter} wird als Alias für \pgs{empty.tudheadings}
+% definiert.
+% \begin{macrocode}
+\newcommand*\ps@tudposter{}
+\let\ps@tudposter\ps@empty
+\AfterPackage*{scrlayer-scrpage}{%
+ \DeclarePageStyleAlias{tudposter}{empty.tudheadings}%
+}
+% \end{macrocode}
+% \end{pagestyle}^^A tudposter
+% \begin{macro}{\telefon}
+% \changes{v2.05}{2016/04/17}{neu}^^A
+% \begin{macro}{\fax}
+% \changes{v2.05}{2016/04/17}{neu}^^A
+% \begin{macro}{\email}
+% \changes{v2.05}{2016/04/17}{neu}^^A
+% Hier werden Feldbefehle auf die \TUDScript-Pendants gelegt und der Befehl
+% \cs{tud@split@author@list} um diese Befehle erweitert.
+% \begin{macrocode}
+\newrobustcmd*\telefon{\telephone}
+\patchcmd{\tud@split@author@list}{telephone}{%
+ telephone,telefon%
+}{}{\tud@patch@wrn{tud@split@author@list}}
+\newrobustcmd*\fax{\telefax}
+\patchcmd{\tud@split@author@list}{telefax}{%
+ telefax,fax%
+}{}{\tud@patch@wrn{tud@split@author@list}}
+\newrobustcmd*\email[1]{\emailaddress*{#1}}
+\patchcmd{\tud@split@author@list}{emailaddress}{%
+ emailaddress,email%
+}{}{\tud@patch@wrn{tud@split@author@list}}
+% \end{macrocode}
+% \end{macro}^^A \email
+% \end{macro}^^A \fax
+% \end{macro}^^A \telefon
+% \begin{macro}{\homepage}
+% \changes{v2.05}{2016/04/17}{neu}^^A
+% Für die Angabe einer Website wird \cs{webpage*} verwendet, um etwaige Makros
+% zur Formatierung nicht beachten zu müssen.
+% \begin{macrocode}
+\newcommand*\homepage[1]{\webpage*{#1}}
+% \end{macrocode}
+% \end{macro}^^A \homepage
+% \begin{macro}{\zweitlogofile}
+% \changes{v2.05}{2016/04/17}{neu}^^A
+% \begin{macro}{\zweitlogo}
+% \changes{v2.05}{2016/04/17}{neu}^^A
+% \begin{macro}{\institutslogofile}
+% \changes{v2.05}{2016/04/17}{neu}^^A
+% \begin{macro}{\institutslogo}
+% \changes{v2.05}{2016/04/17}{neu}^^A
+% \begin{macro}{\drittlogofile}
+% \changes{v2.05}{2016/04/17}{neu}^^A
+% \begin{macro}{\drittlogo}
+% \changes{v2.05}{2016/04/17}{neu}^^A
+% Die Makros zur Angabe von Logo-Dateien (\cs{\dots{}logofile}) werden auf die
+% passenden \TUDScript-Befehle gelegt. Die Änderung der Makros, welche für die
+% Einbindung der Logos verantwortlich sind (\cs{\dots{}logo}), wird allerdings
+% nicht unterstützt.
+% \begin{macrocode}
+\newcommand*\zweitlogofile[2][]{\headlogo[#1]{#2}}
+\newcommand*\zweitlogo[1]{%
+ \PackageWarning{tudscrcomp}{%
+ It isn't possible to redefine the definition for\MessageBreak%
+ including a logo in the header. Please see the\MessageBreak%
+ documentation of \string\headlogo%
+ }%
+}
+\newcommand*\institutslogofile[2][]{\footlogo[#1]{,,,,,,,#2,}}
+\newcommand*\institutslogo[1]{%
+ \PackageWarning{tudscrcomp}{%
+ It isn't possible to redefine the definition for\MessageBreak%
+ including a logo in the footer. Please see the\MessageBreak%
+ documentation of \string\footlogo%
+ }%
+}
+\newcommand*\drittlogofile[1]{%
+ \PackageWarning{tudscrcomp}{%
+ Nothing happened, you should use \string\footlogo\MessageBreak
+ instead. Please see the documentation of \string\footlogo\MessageBreak%
+ and option `ddc' or `ddcfoot'%
+ }%
+}
+\newcommand*\drittlogo[1]{%
+ \PackageWarning{tudscrcomp}{%
+ It isn't possible to redefine the definition for\MessageBreak%
+ including a logo in the footer. Please see the\MessageBreak%
+ documentation of \string\footlogo\space and option\MessageBreak%
+ `ddc' or `ddcfoot'%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \drittlogo
+% \end{macro}^^A \drittlogofile
+% \end{macro}^^A \institutslogo
+% \end{macro}^^A \institutslogofile
+% \end{macro}^^A \zweitlogo
+% \end{macro}^^A \zweitlogofile
+% \begin{macro}{\topsection}
+% \changes{v2.05}{2016/04/17}{neu}^^A
+% \begin{macro}{\topsubsection}
+% \changes{v2.05}{2016/04/17}{neu}^^A
+% Die Klasse \cls{tudmathposter} definiert zusätzliche Gliederungsbefehle,
+% welche allerdings völlig willkürliche vertikale Abstände davor und danach
+% verwendet. Es besteht keinerlei Ambition, diese genau abzubilden. Falls hier
+% tatsächlich ein Anpassungsbedarf besteht, kann dies mit den entsprechenden
+% Mitteln von \KOMAScript{} (\cs{RedeclareSectionCommand}) nach dem Laden von
+% \pkg{tudscrcomp} erfolgen.
%
-% Wird das Paket \pkg{tudscrfonts} mit den alten TUD-Klassen \cls{tudbook},
-% \cls{tudmathposter} etc. oder \TUDScript in der Version~v1.0 verwendet,
-% müssen einige Kompatibilitätseinstellungen vorgenmommen werden. Hierfür sind
-% einige Patches notwendig. Bei den alten TUD-Klassen, müssen in erster Linie
-% einige Kompatibilitätseinstellungen vorgenmommen werden. Dies betrifft
-% insbesondere die Mathematikschriften sowie allerhand darin definierter, fixer
-% Schriften.
+% Die neuen Gliederungsbefehle erschließen sich mir ohnehin nicht, wirken eher
+% so, als ob diese entstanden sind, weil auf Anwendungsebene etwas nicht so
+% funktioniert hat, wie gewollt und statt einer vernünftigen Ursachenforschung
+% einfach ein eigenes Konstrukt erschaffen wurde, um unzulängliche Fähigkeiten
+% 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]
% \begin{macrocode}
-\ifbool{@tud@oldclass}{%
- \AtBeginDocument{%
- \if@tud@fontspec%
- \DeclareFixedFont{\univLightVII}{\encodingdefault}%
- {UniversLight}{m}{n}{7}%
- \DeclareFixedFont{\univLightObliqueVII}{\encodingdefault}%
- {UniversLightOblique}{m}{n}{7}%
- \DeclareFixedFont{\univBoldVII}{\encodingdefault}%
- {UniversBold}{m}{n}{7}%
- \DeclareFixedFont{\univLightIX}{\encodingdefault}%
- {UniversLight}{m}{n}{9}%
- \DeclareFixedFont{\univLightObliqueIX}{\encodingdefault}%
- {UniversLightOblique}{m}{n}{9}%
- \DeclareFixedFont{\univBoldIX}{\encodingdefault}%
- {UniversBold}{m}{n}{9}%
- \DeclareFixedFont{\univLightXI}{\encodingdefault}%
- {UniversLight}{m}{n}{11}%
- \DeclareFixedFont{\univLightObliqueXI}{\encodingdefault}%
- {UniversLightOblique}{m}{n}{11}%
- \DeclareFixedFont{\univBoldXI}{\encodingdefault}%
- {UniversBold}{m}{n}{11}%
- \DeclareFixedFont{\univLightXV}{\encodingdefault}%
- {UniversLight}{m}{n}{15}%
- \DeclareFixedFont{\univLightObliqueXV}{\encodingdefault}%
- {UniversLightOblique}{m}{n}{15}%
- \DeclareFixedFont{\univBoldXV}{\encodingdefault}%
- {UniversBold}{m}{n}{15}%
+\newcounter{topsection}
+\let\c@topsection\c@section
+\newcommand*\topsectionnumdepth{\sectionnumdepth}
+\newcommand*\scr@topsection@sectionindent{\scr@section@sectionindent}
+\newcommand*\scr@topsection@beforeskip{\scr@section@beforeskip}
+\newcommand*\scr@topsection@afterskip{\scr@section@afterskip}
+\newcommand*\topsectiontocdepth{\sectiontocdepth}
+\newcommand*\scr@topsection@tocindent{\scr@section@tocindent}
+\newcommand*\scr@topsection@tocnumwidth{\scr@section@tocnumwidth}
+\newcommand*\l@topsection{\l@section}
+\DeclareNewSectionCommand[%
+ style=section,%
+ font={\usekomafont{section}},
+ beforeskip=\z@,%
+]{topsection}
+\newcounter{topsubsection}
+\let\c@topsubsection\c@subsection
+\newcommand*\topsubsectionnumdepth{\subsectionnumdepth}
+\newcommand*\scr@topsubsection@sectionindent{\scr@subsection@sectionindent}
+\newcommand*\scr@topsubsection@beforeskip{\scr@subsection@beforeskip}
+\newcommand*\scr@topsubsection@afterskip{\scr@subsection@afterskip}
+\newcommand*\topsubsectiontocdepth{\subsectiontocdepth}
+\newcommand*\scr@topsubsection@tocindent{\scr@subsection@tocindent}
+\newcommand*\scr@topsubsection@tocnumwidth{\scr@subsection@tocnumwidth}
+\newcommand*\l@topsubsection{\l@subsection}
+\DeclareNewSectionCommand[%
+ style=section,%
+ font={\usekomafont{subsection}},
+ beforeskip=\z@,%
+]{topsubsection}
+% \end{macrocode}
+% \end{macro}^^A \topsubsection
+% \end{macro}^^A \topsection
+% \begin{macro}{\centersection}
+% \changes{v2.05}{2016/04/17}{neu}^^A
+% \begin{macro}{\centersubsection}
+% \changes{v2.05}{2016/04/17}{neu}^^A
+% \begin{macro}{\topcentersection}
+% \changes{v2.05}{2016/04/17}{neu}^^A
+% \begin{macro}{\topcentersubsection}
+% \changes{v2.05}{2016/04/17}{neu}^^A
+% \begin{macro}{\tud@comp@centersection}
+% \changes{v2.05}{2016/04/17}{neu}^^A
+% Weiterhin werden Gliederungsebenen definiert, die unabhängig vom restlichen
+% Layout zentriert gesetzt werden. Eine Mischung von unterschiedlichen Stilen
+% gleichartiger Ebenen ist aus sicht von Typographie und Layout eher fraglich.
+% \begin{macrocode}
+\newcommand*\centersection[2][\@nil]{%
+ \tud@comp@centersection{section}{#1}{#2}%
+}
+\newcommand*\centersubsection[2][\@nil]{%
+ \tud@comp@centersection{subsection}{#1}{#2}%
+}
+\newcommand*\topcentersection[2][\@nil]{%
+ \tud@comp@centersection{topsection}{#1}{#2}%
+}
+\newcommand*\topcentersubsection[2][\@nil]{%
+ \tud@comp@centersection{topsubsection}{#1}{#2}%
+}
+% \end{macrocode}
+% Alle Gliederungsbefehle nutzen die passenden Ebenen mit der standardmaßig
+% Ausrichtung und passen kurzfristig \cs{raggedsection} an. Dabei auch darauf
+% geachtet, ob das optionale Argument durch den Anwender verwendet wird.
+% \begin{macrocode}
+\newcommand*\tud@comp@centersection[3]{%
+ \tud@cmd@store{raggedsection}%
+ \let\raggedsection\centering%
+ \ifx#2\@nil\relax%
+ \csuse{#1}{#3}%
+ \else%
+ \csuse{#1}[#2]{#3}%
+ \fi%
+ \tud@cmd@restore{raggedsection}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@comp@centersection
+% \end{macro}^^A \topcentersubsection
+% \end{macro}^^A \topcentersection
+% \end{macro}^^A \centersubsection
+% \end{macro}^^A \centersection
+% \begin{macro}{\sectiontopskip}
+% \changes{v2.05}{2016/04/17}{neu}^^A
+% \begin{macro}{\subsectiontopskip}
+% \changes{v2.05}{2016/04/17}{neu}^^A
+% Die Klasse \cls{tudmathposter} stellt zu den neuen Gliederungsbefehlen noch
+% zusätzlich die beiden Makros \cs{sectiontopskip} und \cs{subsectiontopskip}
+% bereit. Diese werden in darin bei der Definition dieser Gliederungsebenen
+% verwendet. Da die \TUDScript-Klassen den Ansatz verfolgen, dem Benutzer
+% weitestgehende Freiheiten bei der Gestaltung des Layouts einzuräumen, werden
+% diese an die Einstellungen der zentralen \KOMAScript"=Benutzerschnittstelle
+% gekoppelt.
+% \begin{macrocode}
+\newcommand\sectiontopskip{\scr@section@beforeskip}
+\newcommand\subsectiontopskip{\scr@subsection@beforeskip}
+% \end{macrocode}
+% \end{macro}^^A \subsectiontopskip
+% \end{macro}^^A \sectiontopskip
+% \begin{counter}{secnumdepth}
+% Standardmäßig wird die Nummerierung aller Gliederungsebenen deaktiviert.
+% \begin{macrocode}
+\setcounter{secnumdepth}{-1}
+% \end{macrocode}
+% \end{counter}^^A secnumdepth
+% \begin{macro}{\fusszeile}
+% \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{*}
+% verwendet, so bleibt der bisherige Inhalt erhalten.
+% \begin{macrocode}
+\newcommand*\fusszeile[2][]{\footcontent[#1]{#2}}
+\newcommand*\footcolumn[2]{%
+ \ifxnumber{#1}{%
+ \ifcase#1\relax%
+ \footcontent{#2}%
+ \or%
+ \footcontent{#2}[*]%
+ \or%
+ \footcontent{*}[#2]%
+ \fi%
+ }{}%
+}
+% \end{macrocode}
+% \end{macro}^^A \footcolumn
+% \end{macro}^^A \fusszeile
+%
+% \iffalse
+%</body>
+%<*option>
+% \fi
+%
+% \begin{option}{tudmathposterfoot}
+% \changes{v2.05}{2016/04/17}{neu}^^A
+% \begin{macro}{\if@tud@mathposterfoot}
+% \changes{v2.05}{2016/04/17}{neu}^^A
+% Mit der Option \opt{tudmathposterfoot} kann die Darstellung des Fußes im
+% Poster angepasst werden. Die Klasse \cls{tudmathposter} setzt den Fußbereich
+% in zwei asymmetrischen Spalten, wohingegen die \TUDScript-Klassen diesen
+% zentriert und symmetrisch zum Satzspiegel platzieren.
+% \begin{macrocode}
+\newif\if@tud@mathposterfoot
+\TUD@key{tudmathposterfoot}[true]{%
+ \TUD@set@ifkey{tudmathposterfoot}{@tud@mathposterfoot}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \if@tud@mathposterfoot%
+ \footcontent[\small]{%
+ \tud@footcontent@@left{}%
+ }[%
+ \tud@footcontent@@right{}{}%
+ ]%
\else%
- \if@tud@univers%
- \DeclareFixedFont{\univLightVII}{\encodingdefault}%
- {\tud@univers}{l}{n}{7}%
- \DeclareFixedFont{\univLightObliqueVII}{\encodingdefault}%
- {\tud@univers}{l}{sl}{7}%
- \DeclareFixedFont{\univBoldVII}{\encodingdefault}%
- {\tud@univers}{b}{n}{7}%
- \DeclareFixedFont{\univLightIX}{\encodingdefault}%
- {\tud@univers}{l}{n}{9}%
- \DeclareFixedFont{\univLightObliqueIX}{\encodingdefault}%
- {\tud@univers}{l}{sl}{9}%
- \DeclareFixedFont{\univBoldIX}{\encodingdefault}%
- {\tud@univers}{b}{n}{9}%
- \DeclareFixedFont{\univLightXI}{\encodingdefault}%
- {\tud@univers}{l}{n}{11}%
- \DeclareFixedFont{\univLightObliqueXI}{\encodingdefault}%
- {\tud@univers}{l}{sl}{11}%
- \DeclareFixedFont{\univBoldXI}{\encodingdefault}%
- {\tud@univers}{b}{n}{11}%
- \DeclareFixedFont{\univLightXV}{\encodingdefault}%
- {\tud@univers}{l}{n}{15}%
- \DeclareFixedFont{\univLightObliqueXV}{\encodingdefault}%
- {\tud@univers}{l}{sl}{15}%
- \DeclareFixedFont{\univBoldXV}{\encodingdefault}%
- {\tud@univers}{b}{n}{15}%
- \fi%
+ \footcontent{%
+ \tud@footcontent@@left{\contactname}%
+ }[%
+ \tud@footcontent@@right{\authorname}{\contactpersonname}%
+ ]%
\fi%
- \if@sansmath%
- \DeclareSymbolFont{aunLetters}{OT1}{\tud@univers}{l}{sl}%
- \SetSymbolFont{aunLetters}{bold}{OT1}{\tud@univers}{b}{sl}%
- \DeclareSymbolFont{aunOperators}{OT1}{\tud@univers}{l}{n}%
- \SetSymbolFont{aunOperators}{bold}{OT1}{\tud@univers}{b}{n}%
- \DeclareSymbolFont{aunUpright}{OT1}{\tud@univers}{l}{n}%
- \SetSymbolFont{aunUpright}{bold}{OT1}{\tud@univers}{b}{n}%
- \DeclareSymbolFontAlphabet{\mathsf}{aunOperators}%
- \DeclareSymbolFontAlphabet{\mathnormal}{aunLetters}%
- \DeclareMathAlphabet\mathbf{OT1}{\tud@univers}{b}{n}%
- \SetMathAlphabet\mathbf{bold}{OT1}{\tud@univers}{b}{n}%
- \DeclareMathAlphabet\mathit{OT1}{\tud@univers}{l}{sl}%
- \SetMathAlphabet\mathit{bold}{OT1}{\tud@univers}{l}{sl}%
- \@ifpackageloaded{tudfonts}{%
- \let\mv@normal\mv@univers%
- \let\mv@bold\mv@universbold%
- }{}%
+ \fi%
+}
+% \end{macrocode}
+% Die Option \opt{cdfoot} wird um Werte für die Einstellung des Posterfußes
+% erweitert.
+% \begin{macrocode}
+\TUD@key{cdfoot}[true]{%
+ \TUD@set@numkey{cdfoot}{@tempa}{%
+ {tudscrposter}{0},{tudscrposterfoot}{0},{cdposter}{0},{poster}{0},%
+ {tudmathposter}{1},{tudmathposterfoot}{1},{mathposter}{1},{tudposter}{1}%
+ }{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \ifcase\@tempa\relax% tudscrposter
+ \TUDoptions{tudmathposterfoot=false}%
+ \else% tudmathposter
+ \TUDoptions{tudmathposterfoot=true}%
\fi%
- \let\dinBold\dinbn%
- \let\dinfamily\dinbn%
- }%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \if@tud@mathposterfoot
+% \end{option}^^A tudmathposterfoot
+%
+% \iffalse
+%</option>
+%<*body>
+% \fi
+%
+% \begin{macro}{\tud@footcontent@use}
+% \begin{macro}{\tud@comp@mathposterwidth}
+% \changes{v2.05}{2016/04/17}{neu}^^A
+% Um die Option \opt{tudmathposterfoot} abzuarbeiten, muss die Anpassung des
+% Makros \cs{tud@footcontent@use} für die Ausgabe des Fußbereichs erfolgen.
+% Normalerweise wird der Fußbereich in zwei gleichbreite Spalten über die
+% komplette Textbreite aufgeteilt. In \cls{tudmathposter} hingegen, werden
+% beide Fußspalten nicht über den kompletten textberecih versteilt, sondern es
+% verbleibt etwas ungenutzter Platz rechts davon, welcher für ein etwaiges Logo
+% verwendet wird. Dieses Verhalten wird hier nachgebildet.
+% \begin{macrocode}
+\newcommand*\tud@comp@mathposterwidth{4.2\tud@len@widemargin}
+\patchcmd{\tud@footcontent@use}{%
+ \hsize=\dimexpr#2-\@tempdimc\relax%
+}{%
+ \if@tud@mathposterfoot%
+ \hsize=\dimexpr\tud@comp@mathposterwidth\relax%
+ \else%
+ \hsize=\dimexpr#2-\@tempdimc\relax%
+ \fi%
+}{}{\tud@patch@wrn{tud@footcontent@use}}
+\patchcmd{\tud@footcontent@use}{%
+ \hsize=\dimexpr(#2-\columnsep)/2\relax%
+}{%
+ \if@tud@mathposterfoot%
+ \hsize=\dimexpr(\tud@comp@mathposterwidth-\columnsep)/2\relax%
+ \else%
+ \hsize=\dimexpr(#2-\columnsep)/2\relax%
+ \fi%
+}{}{\tud@patch@wrn{tud@footcontent@use}}
+\patchcmd{\tud@footcontent@use}{%
+ \hsize=\dimexpr(#2-\columnsep)/2-\@tempdimc\relax%
+}{%
+ \if@tud@mathposterfoot%
+ \hsize=\dimexpr(\tud@comp@mathposterwidth-\columnsep)/2\relax%
+ \else%
+ \hsize=\dimexpr(#2-\columnsep)/2-\@tempdimc\relax%
+ \fi%
+}{}{\tud@patch@wrn{tud@footcontent@use}}
+% \end{macrocode}
+% \end{macro}^^A \tud@comp@mathposterwidth
+% \end{macro}^^A \tud@footcontent@use
+% \begin{environment}{figurehere}
+% \changes{v2.05}{2016/04/17}{neu}^^A
+% \begin{environment}{tablehere}
+% \changes{v2.05}{2016/04/17}{neu}^^A
+% Weiterhin stellt die Klasse \cls{tudmathposter} zwei Umgebungen bereit, mit
+% denen sich Tabellen und Bilder an einer bestimmten Stelle exakt platzieren
+% lassen. Prinzipiell könnte hierfür auch das Paket \pkg{float} zum Einsatz
+% kommen.
+% \ToDo{Für \cls{tudscrposter} übernehmen?}[v2.07]
+% \begin{macrocode}
+\newenvironment{figurehere}{%
+ \def\@captype{figure}%
+ \renewcommand*\caption{\captionof{figure}}%
+ \renewcommand*\captionabove{\captionaboveof{figure}}%
+ \renewcommand*\captionbelow{\captionbelowof{figure}}%
+ \vskip\intextsep%
+ \vbox \bgroup%
+ \hsize=\columnwidth%
+ \@parboxrestore%
+ \ignorespaces%
+}{%
+ \egroup%
+ \vskip\intextsep%
+ \ignorespaces%
+}
+\newenvironment{tablehere}{%
+ \def\@captype{table}%
+ \renewcommand*\caption{\captionof{table}}%
+ \renewcommand*\captionabove{\captionaboveof{table}}%
+ \renewcommand*\captionbelow{\captionbelowof{table}}%
+ \vskip\intextsep%
+ \vbox \bgroup%
+ \hsize=\columnwidth%
+ \@parboxrestore%
+ \ignorespaces%
+}{%
+ \egroup%
+ \vskip\intextsep%
+ \ignorespaces%
+}
+% \end{macrocode}
+% \end{environment}^^A tablehere
+% \end{environment}^^A figurehere
+% \begin{environment}{farbtabellen}
+% \changes{v2.05}{2016/04/17}{neu}^^A
+% \begin{macro}{\if@tud@comp@graytable}
+% \changes{v2.05}{2016/04/17}{neu}^^A
+% \begin{macro}{\blautabelle}
+% \changes{v2.05}{2016/04/17}{neu}^^A
+% \begin{macro}{\grautabelle}
+% \changes{v2.05}{2016/04/17}{neu}^^A
+% Außerdem wird eine Umgebung für farbige Tabellen sowie zwei Umschaltbefehle
+% für die farbliche Ausprägung der Tabellenzeilen definiert.
+% \begin{macrocode}
+\PassOptionsToPackage{table}{xcolor}
+\newif\if@tud@comp@graytable
+\newcommand*\blautabelle{\@tud@comp@graytablefalse}
+\newcommand*\grautabelle{\@tud@comp@graytabletrue}
+\newenvironment{farbtabellen}{%
+ \if@tud@comp@graytable%
+ \rowcolors{1}{HKS92!20}{HKS92!10}
+ \else%
+ \rowcolors{1}{HKS41!20}{HKS41!10}%
+ \fi%
}{}
% \end{macrocode}
+% \end{macro}^^A \grautabelle
+% \end{macro}^^A \blautabelle
+% \end{macro}^^A \if@tud@comp@graytable
+% \end{environment}^^A farbtabellen
+% \begin{macro}{\schnittrand}
+% \changes{v2.05}{2016/04/17}{neu}^^A
+% Zu guter Letzt geht es an das Makro \cs{schnittrand}. Zur Intension dieses
+% Befehls gab es unter \url{https://github.com/tud-cd/tud-cd/issues/6} bereits
+% eine angeregte Diskussion. Deshalb wird das Makro als Wertzuweisung für die
+% Option \opt{bleedmargin} genutzt.
+% \ToDo{Für \cls{tudscrposter} übernehmen?}[v2.07]
+% \begin{macrocode}
+\ifundef{\schnittrand}{}{%
+ \ifxlen{\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}{%
+ Wrong definition for `\string\schnittrand'%
+ }{%
+ The definition of `\string\schnittrand' does not expand to\MessageBreak%
+ a valid dimension expression.%
+ }
+ }
+}%
+% \end{macrocode}
+% \end{macro}^^A \schnittrand
+%
+% Die Klasse \cls{tudmathposter} lädt allerhand Pakete. Dies ist jedoch für den
+% Anwender alles andere als vorteilhaft, da dadurch unter Umständen Konflikte
+% mit anderen Paketen entstehen oder der Nutzer im Zweifelsfall gar nicht weiß,
+% dass verwendete Befehle aus bestimmten Paketen entspringen. Dennoch werden
+% aus Kompatibilitätsgründen einige Pakete geladen, um bestehende Dokumente
+% trotz alledem nach der Portierung kompiliert werden können. Um den Nutzer die
+% Möglichkeit zu geben, die Pakete selber ggf. mit Optionen zu laden, erfolgt
+% die Anforderung der Pakete erst am ende der Präambel.
+% \begin{macrocode}
+\AtEndPreamble{%
+ \RequirePackage{amsmath}[2016/06/28]%
+ \RequirePackage{amsfonts}[2013/01/14]%
+ \RequirePackage{calc}[2014/10/28]%
+ \RequirePackage{textcomp}[2016/06/19]%
+ \RequirePackage{tabularx}[2016/02/03]%
+}
+% \end{macrocode}
+%
+% \iffalse
+%</body>
+%</poster>
+%</!base>
+%</package&comp>
+% \fi
%
-% \subsubsection{Patches für die Klasse \cls{tudbook}}
+% \subsection{\pkg{fix-tudscrfonts} -- Schriften des \CDs für alte TUD-Klassen}
+%
+% Das Paket \pkg{fix-tudscrfonts} bietet die \TUDScript-Schriftfamilien für die
+% veralteten Klassen von Klaus Bergmann sowie die Posterklassen an.
+%
+% \iffalse
+%<*package&fontsfix>
+%<*option>
+% \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 fetten Schriften ein
+% stärkerer Schriftschnitt genutzt.
+% \begin{macrocode}
+\PassOptionsToPackage{relspacing=false,cdfont=ultrabold}{tudscrfonts}
+\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{tudscrfonts}}
+\ProcessOptions\relax
+\AtEndPreamble{%
+ \tud@fontsfix@maybe@err%
+ \RequirePackage{tudscrfonts}[\TUD@Version]%
+}
+% \end{macrocode}
+% \begin{macro}{\tud@fontsfix@maybe@err}
+% \changes{v2.05}{2016/01/02}{neu}^^A
+% Je nachdem, ob das Paket zu spät oder mit einer falschen Klasse geladen
+% wurde, wird eine Warnung ausgegeben.
+% \begin{macrocode}
+\ifx\usepackage\RequirePackage
+ \newcommand*\tud@fontsfix@maybe@err{%
+ \PackageError{fix-tudscrfonts}{Package too late}{%
+ You must load `fix-tudscrfonts' before\MessageBreak%
+ any document class with `\string\RequirePackage'%
+ }%
+ }%
+\else
+ \newcommand*\tud@fontsfix@maybe@err{%
+ \PackageError{fix-tudscrfonts}{Unsupported class found}{%
+ You have to use `fix-tudscrfonts' only\MessageBreak%
+ with supported classes. These are: `tudbook',\MessageBreak%
+ `tudbeamer', `tudfax', `tudform', `tudhaus',\MessageBreak%
+ `tudletter', `tudposter' and `tudmathposter',\MessageBreak%
+ as well as `tudscrbookold', `tudscrreprtold'\MessageBreak%
+ and `tudscrartclold'. Otherwise it's adequate\MessageBreak%
+ to use package `tudscrfonts' as usual%
+ }%
+ }%
+\fi
+% \end{macrocode}
+% \end{macro}^^A \tud@fontsfix@maybe@err
+%
+% \iffalse
+%</option>
+%<*body>
+% \fi
+%
+% \subsubsection{Patches für die unterstützten Klassen}
+%
+% Für alle unterstützten Klassen sind vor und nach dem Laden einige Anpassungen
+% notwendig.
+%
+% \begin{macro}{\tud@fontsfix@AdaptClass}
+% \changes{v2.05}{2016/01/02}{neu}^^A
+% \begin{macro}{\univBoldHead}
+% \begin{macro}{\univLightHead}
+% \begin{macro}{\univBoldXV}
+% \begin{macro}{\univLightObliqueXV}
+% \begin{macro}{\univLightXV}
+% \begin{macro}{\univBoldXI}
+% \begin{macro}{\univLightObliqueXI}
+% \begin{macro}{\univLightXI}
+% \begin{macro}{\univBoldIX}
+% \begin{macro}{\univLightObliqueIX}
+% \begin{macro}{\univLightIX}
+% \begin{macro}{\univBoldVII}
+% \begin{macro}{\univLightObliqueVII}
+% \begin{macro}{\univLightVII}
+% 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
+% und einige Schriftdefinitionen angepasst. Bei den alten TUD-Klassen betrifft
+% dies in erster Linie die Mathematikschriften sowie die in den Klassen
+% definierten, fixen Schriften.
+% \begin{macrocode}
+\newcommand*\tud@fontsfix@AdaptClass[2]{%
+ \BeforeClass{#1}{%
+ \let\tud@fontsfix@maybe@err\relax%
+ \tud@cmd@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}%
+ \let\normalfont\relax%
+ \PassOptionsToClass{serifmath}{#1}%
+ }%
+ \AfterClass{#1}{%
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \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}%
+ #2%
+ \AfterPackage*{tudscrfonts}{%
+ \AtBeginDocument{%
+ \newcommand*\univLightVII{}%
+ \newcommand*\univLightObliqueVII{}%
+ \newcommand*\univBoldVII{}%
+ \newcommand*\univLightIX{}%
+ \newcommand*\univLightObliqueIX{}%
+ \newcommand*\univBoldIX{}%
+ \newcommand*\univLightXI{}%
+ \newcommand*\univLightObliqueXI{}%
+ \newcommand*\univBoldXI{}%
+ \newcommand*\univLightXV{}%
+ \newcommand*\univLightObliqueXV{}%
+ \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%
+ \else%
+ \DeclareFixedFont{\univLightVII}{\encodingdefault}%
+ {\sfdefault}{\mddefault}{\updefault}{7}%
+ \DeclareFixedFont{\univLightObliqueVII}{\encodingdefault}%
+ {\sfdefault}{\mddefault}{\sldefault}{7}%
+ \DeclareFixedFont{\univBoldVII}{\encodingdefault}%
+ {\sfdefault}{\bfdefault}{\updefault}{7}%
+ \DeclareFixedFont{\univLightIX}{\encodingdefault}%
+ {\sfdefault}{\mddefault}{\updefault}{9}%
+ \DeclareFixedFont{\univLightObliqueIX}{\encodingdefault}%
+ {\sfdefault}{\mddefault}{\sldefault}{9}%
+ \DeclareFixedFont{\univBoldIX}{\encodingdefault}%
+ {\sfdefault}{\bfdefault}{\updefault}{9}%
+ \DeclareFixedFont{\univLightXI}{\encodingdefault}%
+ {\sfdefault}{\mddefault}{\updefault}{11}%
+ \DeclareFixedFont{\univLightObliqueXI}{\encodingdefault}%
+ {\sfdefault}{\mddefault}{\sldefault}{11}%
+ \DeclareFixedFont{\univBoldXI}{\encodingdefault}%
+ {\sfdefault}{\bfdefault}{\updefault}{11}%
+ \DeclareFixedFont{\univLightXV}{\encodingdefault}%
+ {\sfdefault}{\mddefault}{\updefault}{15}%
+ \DeclareFixedFont{\univLightObliqueXV}{\encodingdefault}%
+ {\sfdefault}{\mddefault}{\sldefault}{15}%
+ \DeclareFixedFont{\univBoldXV}{\encodingdefault}%
+ {\sfdefault}{\bfdefault}{\updefault}{15}%
+ \DeclareFixedFont{\univLightHead}{\encodingdefault}%
+ {\sfdefault}{\mddefault}{\updefault}{\tud@head@fntsz}%
+ \DeclareFixedFont{\univBoldHead}{\encodingdefault}%
+ {\sfdefault}{\bfdefault}{\updefault}{\tud@head@fntsz}%
+ \fi%
+ }%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \univLightVII
+% \end{macro}^^A \univLightObliqueVII
+% \end{macro}^^A \univBoldVII
+% \end{macro}^^A \univLightIX
+% \end{macro}^^A \univLightObliqueIX
+% \end{macro}^^A \univBoldIX
+% \end{macro}^^A \univLightXI
+% \end{macro}^^A \univLightObliqueXI
+% \end{macro}^^A \univBoldXI
+% \end{macro}^^A \univLightXV
+% \end{macro}^^A \univLightObliqueXV
+% \end{macro}^^A \univBoldXV
+% \end{macro}^^A \univLightHead
+% \end{macro}^^A \univBoldHead
+% \end{macro}^^A \tud@fontsfix@AdaptClass
+%
+% 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}{}
+% \end{macrocode}
+%
+% Wird das Paket \pkg{fix-tudscrfonts} mit den alten TUD-Klassen \cls{tudbook},
+% \cls{tudmathposter} etc. oder \TUDScript in der Version~v1.0 verwendet,
+% müssen einige Kompatibilitätseinstellungen vorgenmommen werden. Hierfür sind
+% wenige Patches notwendig.
+%
+% \subsubsection{Spezielle Patches für die Klasse \cls{tudbook}}
%
% Die notwendigen Anpassungen der Klasse \cls{tudbook} betreffen die
% Schriftauswahl bei Überschriften.
@@ -1044,114 +1934,178 @@
% \begin{macro}{\section}
% \begin{macro}{\showtitle}
% Die Überschriften sollen abhängig von der Option \opt{cdfont} und nicht immer
-% zwingend in DIN~Bold gesetzt werden.
-% \begin{macrocode}
-\@ifclassloaded{tudbook}{%
- \patchcmd{\@makechapterhead}{\dinBold\Huge\bfseries}%
- {\bfseries\tud@font@heading\Huge}{}{\tud@patch@wrn{@makechapterhead}}%
- \patchcmd{\@makeschapterhead}{\dinBold\Huge\bfseries}%
- {\bfseries\tud@font@heading\Huge}{}{\tud@patch@wrn{@makeschapterhead}}%
- \patchcmd{\section}{\dinBold\Large\bfseries}%
- {\bfseries\tud@font@heading\Large}{}{\tud@patch@wrn{section}}%
- \patchcmd{\showtitle}{\dinBold\Huge\bfseries}%
- {\bfseries\tud@font@heading\Huge}{}{\tud@patch@wrn{showtitle}}%
-}{}
+% zwingend in \DIN gesetzt werden.
+% \begin{macrocode}
+\tud@fontsfix@AdaptClass{tudbook}{%
+ \patchcmd{\@makechapterhead}{\dinBold\Huge\bfseries}{%
+ \tud@sec@fontface[\bfseries]%
+ \if@color\color{HKS41-100}\fi%
+ \Huge%
+ }{}{\tud@patch@wrn{@makechapterhead}}%
+ \patchcmd{\@makechapterhead}{\MakeUppercase}{%
+ \tud@makeuppercase%
+ }{}{\tud@patch@wrn{@makechapterhead}}%
+ \patchcmd{\@makeschapterhead}{\dinBold\Huge\bfseries}{%
+ \tud@sec@fontface[\bfseries]%
+ \if@color\color{HKS41-100}\fi%
+ \Huge%
+ }{}{\tud@patch@wrn{@makeschapterhead}}%
+ \patchcmd{\@makeschapterhead}{\MakeUppercase}{%
+ \tud@makeuppercase%
+ }{}{\tud@patch@wrn{@makeschapterhead}}%
+ \patchcmd{\section}{\dinBold\Large\bfseries\MakeUppercase}{%
+ \tud@sec@fontface[\bfseries]%
+ \if@color\color{HKS41-100}\fi%
+ \Large%
+ \tud@makeuppercase%
+ }{}{\tud@patch@wrn{section}}%
+ \patchcmd{\showtitle}{\dinBold\Huge\bfseries\MakeUppercase}{%
+ \tud@sec@fontface[\bfseries]%
+ \if@colortitle\color{HKS41-30}\fi%
+ \Huge%
+ \tud@makeuppercase%
+ }{}{\tud@patch@wrn{showtitle}}%
+}
% \end{macrocode}
% \end{macro}^^A \showtitle
% \end{macro}^^A \section
% \end{macro}^^A \@makeschapterhead
% \end{macro}^^A \@makechapterhead
%
-% \subsubsection{Patches für \cls{tudposter} und \cls{tudmathposter}}
+% \subsubsection{Spezielle Patches für die Klasse \cls{tudmathposter}}
%
-% Auch für die beiden Posterklassen \cls{tudmathposter} und \cls{tudposter}
-% sowie das Paket \pkg{tudfonts} sind kleine Anpassungen notwendig.
+% Auch für die Posterklasse \cls{tudmathposter} sowie das Paket \pkg{tudfonts}
+% sind kleine Anpassungen notwendig.
%
% \begin{KOMAfont}{title}
% \changes{v2.04}{2015/04/24}{\cls{tudmathposter} wird unterstützt}^^A
+% \begin{macro}{\maketitle}
+% \changes{v2.04}{2015/04/24}{\cls{tudmathposter} wird unterstützt}^^A
% \begin{macro}{\subtitlefont}
% \changes{v2.04}{2015/04/24}{\cls{tudmathposter} wird unterstützt}^^A
+% \begin{macro}{\preprocesstitle}
+% \changes{v2.04}{2015/04/24}{\cls{tudmathposter} wird unterstützt}^^A
% \begin{macro}{\sectionfont}
% \changes{v2.04}{2015/04/24}{\cls{tudmathposter} wird unterstützt}^^A
% \begin{macro}{\subsectionfont}
% \changes{v2.04}{2015/04/24}{\cls{tudmathposter} wird unterstützt}^^A
-% \begin{macro}{\if@sansmath}
+% \begin{macro}{\ps@tudposter}
% \changes{v2.04}{2015/04/24}{\cls{tudmathposter} wird unterstützt}^^A
-% \begin{macro}{\tudfont}
+% \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}
-\@ifclassloaded{tudmathposter}{%
- \setkomafont{title}{\bfseries\tud@font@heading\Huge}%
- \renewcommand*\subtitlefont{\fontseries{m}\tud@font@heading\huge}%
+\tud@fontsfix@AdaptClass{tudmathposter}{%
+ \def\raggedtitle{\tud@raggedright}%
+ \renewcommand*\raggedpart{\tud@raggedright}%
+ \renewcommand*\raggedsection{\tud@raggedright}%
+ \setkomafont{title}{\tud@sec@fontface[\bfseries]\Huge}%
+ \CheckCommand\maketitle{%
+ \if@matheanull
+ \setlength\@tempskipa{31.194586mm-\topsep}%
+ \else
+ \setlength\@tempskipa{33.02mm-\topskip}%
+ \fi
+ \vskip\@tempskipa
+ {%
+ \ifx\@title\@empty\else
+ \usekomafont{title}\preprocesstitle{\@title}%
+ \ifx\@subtitle\@empty\else\\\fi
+ \fi
+ }{
+ \ifx\@subtitle\@empty\else
+ \subtitlefont\preprocesstitle{\@subtitle}%
+ \fi
+ \if@matheanull
+ \vskip 2.9948cm\relax
+ \else
+ \vskip 3.17cm\relax
+ \fi
+ }%
+ }%
+ \apptocmd{\maketitle}{\vspace{-6ex}}{}{\tud@patch@wrn{maketitle}}%
+ \renewcommand*\subtitlefont{%
+ \unskip%
+ \ifstr{\mddefault}{l}{%
+ \tud@sec@fontface[\fontseries{m}]%
+ }{%
+ \tud@sec@fontface[\fontseries{bx}]%
+ }%
+ \huge%
+ }%
+ \renewcommand*\preprocesstitle[1]{\raggedtitle\tud@makeuppercase{#1}}%
\if@mathevorgabe%
- \renewcommand*\sectionfont{\univbn\LARGE}%
- \renewcommand*\subsectionfont{\univbn\large}%
- \fi%
-}{}
-\@ifpackageloaded{tudfonts}{%
- \let\if@sansmath\if@tudfonts@sansmath%
- \renewcommand*\tudfont[1]{\cdfont{#1}}%
- \if@sansmath%
- \if@tudfonts@eulermath%
- \PackageWarningNoLine{tudscrfonts}{%
- You're using non-serif fonts in math mode. It's\MessageBreak%
- recommended to pass the option `noeulermath' to\MessageBreak%
- package `tudfonts'%
- }%
- \fi%
+ \undef\sectionfont%
+ \undef\subsectionfont%
\fi%
-}{%
- \newif\if@tudfonts@nodin%
- \@ifundefined{if@sansmath}{\newif\if@sansmath}{}%
+ \newcommand*\sectionfont{\bfseries\LARGE}%
+ \newcommand*\subsectionfont{\sectionfont\large}%
+% \end{macrocode}
+% Für die Schriftstärke in der Kopfzeile muss der Seitenstil angepasst und
+% anschließend nochmals akiviert werden.
+% \begin{macrocode}
+ \patchcmd{\ps@tudposter}{\textbf{\@einrichtung}}{%
+ \textbf{\fontseries{b}\selectfont\@einrichtung}%
+ }{}{\tud@patch@wrn{ps@tudposter}}%
+ \pagestyle{tudposter}%
}
% \end{macrocode}
-% \end{macro}^^A \tudfont
-% \end{macro}^^A \if@sansmath
+% 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
+% \end{macro}^^A \preprocesstitle
% \end{macro}^^A \subtitlefont
+% \end{macro}^^A \maketitle
% \end{KOMAfont}^^A title
%
-% Für die Klasse \cls{tudposter} muss lediglich ein Schalter übernommen werden.
-%
-% \begin{macrocode}
-\@ifclassloaded{tudposter}{%
- \let\if@sansmath\if@tudposter@sansmath%
-}{}
-% \end{macrocode}
-%
% \subsubsection{Patches für die \TUDScript-Klassen~v1.0}
%
-% Für die Verwendung des Paketes \pkg{tudscrfonts} mit den \TUDScript-Klassen
-% 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.
+% 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}
-\ifbool{@tud@oldscrclass}{%
- \AtBeginDocument{%
- \DeclareSymbolFontAlphabet{\mathrm}{operators}
- \if@tud@fontspec%
- \DeclareFixedFont{\univLightHead}{\encodingdefault}%
- {UniversLight}{m}{n}{\tud@head@fntsz}%
- \DeclareFixedFont{\univBoldHead}{\encodingdefault}%
- {UniversBold}{m}{n}{\tud@head@fntsz}%
- \else%
- \if@tud@univers%
- \DeclareFixedFont{\univLightHead}{\encodingdefault}%
- {\tud@univers}{l}{n}{\tud@head@fntsz}%
- \DeclareFixedFont{\univBoldHead}{\encodingdefault}%
- {\tud@univers}{b}{n}{\tud@head@fntsz}%
- \fi%
- \fi%
- }%
-}{}
+\tud@fontsfix@AdaptClass{tudscrbookold}{\let\@setfonts\relax}
+\tud@fontsfix@AdaptClass{tudscrreprtold}{\let\@setfonts\relax}
+\tud@fontsfix@AdaptClass{tudscrartclold}{\let\@setfonts\relax}
+\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%
+}
% \end{macrocode}
%
% \iffalse
-%</package&body&fonts>
+%</body>
+%</package&fontsfix>
% \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 0b1fa1d050a..4c3ad53cf14 100644
--- a/Master/texmf-dist/source/latex/tudscr/tudscr-doc.dtx
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-doc.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{195}
+% \CheckSum{1618}
% \iffalse meta-comment
%
% ============================================================================
@@ -18,13 +18,13 @@
%
% ----------------------------------------------------------------------------
%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
-% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
-% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
-% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
-% oder spaeter 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.
+% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
+% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
+% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
+% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
+% oder spaeter 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.
%
% ============================================================================
%
@@ -51,16 +51,18 @@
%<*driver>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\ProvidesFile{tudscr-doc.dtx}[%
- 2015/06/12 v2.04 TUD-KOMA-Script\space%
- (source code documentation based on scrdoc)%
+ 2016/07/26 v2.05 TUD-KOMA-Script\space%
+ (source code documentation based on scrartcl/scrdoc)%
]
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
-\documentclass[english,ngerman]{tudscrdoc}
+\documentclass[english,ngerman,xindy]{tudscrdoc}
\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{tudscrfonts} % only load this package, if the fonts are installed
\KOMAoptions{parskip=half-}
+\usepackage{microtype}
+\usepackage{bookmark}
\CodelineIndex
\RecordChanges
\GetFileInfo{tudscr-doc.dtx}
@@ -74,148 +76,1068 @@
% \selectlanguage{ngerman}
%
% \changes{v2.03}{2015/01/09}{\cls{tudscrdoc}: Indextyp Seitenstilebene}^^A
+% \changes{v2.05}{2016/04/21}{Verwendung von \app{texindy} möglich}^^A
%
% \section{Quelltextdokumentation für das \TUDScript-Bundle}
%
% Mit dieser Klasse erfolgt die Quelltextdokumentation des \TUDScript-Bundles.
-% \StopEventually{\PrintIndex\PrintChanges}
+% \StopEventually{\PrintIndex\PrintChanges\PrintToDos}
%
% \iffalse
%<*class>
% \fi
%
-% Sie basiert auf der Klasse \cls{scrdoc}.
+% Sie lädt standarmäßig die Klasse \cls{ltxdoc}, ersetzt allerdings im Stile
+% von \cls{scrdoc} im Hintergrund \cls{article} durch \cls{scrartcl}. Damit der
+% zu \cls{scrartcl} gehörige Titel genutzt werden kann, wird dieser temporär
+% gesichert.
% \begin{macrocode}
-\LoadClassWithOptions{scrdoc}
+\RequirePackage{scrbase}[2013/12/19]%
+\newcommand*\saved@maketitle{}%
+\PassOptionsToClass{toc=left}{scrartcl}%
+\AfterClass{scrartcl}{\let\saved@maketitle\@maketitle}%
+\AfterClass{ltxdoc}{%
+ \let\@maketitle\saved@maketitle%
+ \codeline@indexfalse%
+}%
+\AfterPackage{inputenc}{\RequirePackage{csquotes}[2011/10/22]}%
+% \end{macrocode}
+% Der folgende Quelltext ist 1:1 aus \cls{scrdoc} kopiert.
+% \begin{macrocode}
+\newcommand*\sd@saved@LoadClass{}
+\let\sd@saved@LoadClass=\LoadClass
+\renewcommand*\LoadClass[2][]{%
+ \begingroup
+ \edef\@tempc{#2}\def\@tempb{article}%
+ \ifx\@tempc\@tempb
+ \let\LoadClass\sd@saved@LoadClass
+ \def\@tempc{scrartcl}%
+ \fi
+ \edef\@tempc{%
+ \noexpand\endgroup\noexpand\sd@saved@LoadClass[{#1}]{\@tempc}}%
+ \@tempc
+}
+\newcommand*\sd@saved@PassOptionsToClass{}
+\let\sd@saved@PassOptionsToClass=\PassOptionsToClass
+\renewcommand*\PassOptionsToClass[2]{%
+ \begingroup
+ \edef\@tempc{#2}\def\@tempb{article}%
+ \ifx\@tempc\@tempb
+ \def\@tempc{scrartcl}%
+ \fi
+ \edef\@tempc{%
+ \noexpand\endgroup\noexpand\sd@saved@PassOptionsToClass{#1}{%
+ \@tempc}}%
+ \@tempc
+}
+\LoadClassWithOptions{ltxdoc}
+\setcounter{IndexColumns}{2}
% \end{macrocode}
+% Befehle, welche bei der Verwednung von \cs{EnableCrossrefs} dennoch nicht im
+% Index erscheinen sollen.
+% \begingroup%
+% \makeatletter%
+% \@bsphack\scan@allowedfalse\@esphack%
+% \makeatother%
+% \begin{macrocode}
+%^^A\DoNotIndex{\ ,\",\.,\@,\\,\{,\}}
+%^^A\DoNotIndex{\@abstrtfalse,\@abstrttrue,\@addtoreset}
+%^^A\DoNotIndex{\@afterheading,\@afterindentfalse}
+%^^A\DoNotIndex{\@Alph,\@alph,\@arabic}
+%^^A\DoNotIndex{\@beginparpenalty}
+%^^A\DoNotIndex{\@car,\@cdr,\@centercr}
+%^^A\DoNotIndex{\@dblfloat,\@dotsep,\@dottedtocline}
+%^^A\DoNotIndex{\@empty,\@endparpenalty}
+%^^A\DoNotIndex{\@float,\@fontswitch}
+%^^A\DoNotIndex{\@gobbletwo}
+%^^A\DoNotIndex{\@hangfrom,\@highpenalty}
+%^^A\DoNotIndex{\@ifnextchar,\@ifundefined,\@itempenalty}
+%^^A\DoNotIndex{\@latex@warning}
+%^^A\DoNotIndex{\@M,\@m,\@medpenalty,\@minus,\@mkboth}
+%^^A\DoNotIndex{\@mparswitchfalse,\@mparswitchtrue}
+%^^A\DoNotIndex{\@ne,\@nil,\@nobreakfalse,\@nobreaktrue,\@nomath}
+%^^A\DoNotIndex{\@plus}
+%^^A\DoNotIndex{\@Roman,\@roman}
+%^^A\DoNotIndex{\@tempa,\@tempb,\@tempc}
+%^^A\DoNotIndex{\@tempcnta,\@tempcntb,\@tempcntc}
+%^^A\DoNotIndex{\@tempdima,\@tempdimb,\@tempdimc}
+%^^A\DoNotIndex{\@tempskipka,\@tempskipkb,\@tempskipkc}
+%^^A\DoNotIndex{\@tempswafalse,\@tempswatrue,\@tempswbfalse,\@tempswbtrue}
+%^^A\DoNotIndex{\@tocrmarg,\@topnewpage,\@topnum}
+%^^A\DoNotIndex{\@twocolumnfalse,\@twocolumntrue,\@twosidefalse,\@twosidetrue}
+%^^A\DoNotIndex{\@whiledim,\@whilenum}
+%^^A\DoNotIndex{\addcontentsline,\addpenalty,\addtocontents}
+%^^A\DoNotIndex{\addtolength,\addvspace,\advance}
+%^^A\DoNotIndex{\begin,\begingroup,\bfseries,\box,\bullet}
+%^^A\DoNotIndex{\c@figure,\c@page,\c@secnumdepth,\c@table,\c@tocdepth,\cdot}
+%^^A\DoNotIndex{\centering,\changes,\cleardoublepage,\clearpage,\cmd}
+%^^A\DoNotIndex{\CodelineIndex,\col@number,\cs,\CurrentOption}
+%^^A\DoNotIndex{\dblfloatpagefraction,\dbltopfraction,\def,\divide,\DoNotIndex}
+%^^A\DoNotIndex{\DeclareOldFontCommand,\DeclareOption,\DisableCrossrefs}
+%^^A\DoNotIndex{\else,\em,\empty,\EnableCrossrefs,\end,\end@dblfloat,\end@float}
+%^^A\DoNotIndex{\endgroup,\endlist,\endquotation,\endtitlepage,\everypar}
+%^^A\DoNotIndex{\ExecuteOptions,\expandafter}
+%^^A\DoNotIndex{\fboxrule,\fboxsep,\fi}
+%^^A\DoNotIndex{\gdef,\global}
+%^^A\DoNotIndex{\hangindent,\hbox,\hfil,\hrule,\hsize,\hskip,\hspace,\hss}
+%^^A\DoNotIndex{\if,\if@tempswa,\ifcase,\ifdim,\ifnum,\ifodd,\ifx,\include}
+%^^A\DoNotIndex{\input,\InputIfFileExists,\item,\itshape}
+%^^A\DoNotIndex{\kern}
+%^^A\DoNotIndex{\leavevmode,\leftmark,\leftskip,\let,\lineskip,\list,\long}
+%^^A\DoNotIndex{\m@ne,\m@th,\marginpar,\markboth,\markright}
+%^^A\DoNotIndex{\mathbf,\mathcal,\mathit,\mathnormal,\mathrm,\mathsf,\mathtt}
+%^^A\DoNotIndex{\MessageBreak,\month}
+%^^A\DoNotIndex{\newblock,\newcommand,\newcount,\newcounter,\newdimen}
+%^^A\DoNotIndex{\newenvironment,\newlength,\newpage,\nobreak,\noindent}
+%^^A\DoNotIndex{\normalcolor,\normalfont,\normallineskip,\normalsize}
+%^^A\DoNotIndex{\null,\number,\numberline}
+%^^A\DoNotIndex{\OldMakeindex,\OnlyDescription,\or,\overfullrule}
+%^^A\DoNotIndex{\p@,\PackageError,\PackageInfo,\PackageWarningNoLine}
+%^^A\DoNotIndex{\pagenumbering,\pagestyle,\par,\paragraph,\parbox}
+%^^A\DoNotIndex{\PassOptionsToPackage,\pcal,\penalty,\protect,\providecommand}
+%^^A\DoNotIndex{\PrintIndex,\PrintChanges,\ProcessOptions,\ProvidesClass}
+%^^A\DoNotIndex{\raggedbottom,\raggedleft,\raggedright,\refstepcounter,\relax}
+%^^A\DoNotIndex{\renewcommand,\RequirePackage,\reset@font,\rightmargin}
+%^^A\DoNotIndex{\rightmark,\rightskip,\rmfamily}
+%^^A\DoNotIndex{\scshape,\secdef,\setbox,\setcounter,\setlength,\settowidth}
+%^^A\DoNotIndex{\sfcode,\sffamily,\skip,\sloppy,\slshape,\space,\string}
+%^^A\DoNotIndex{\the,\thispagestyle,\ttfamily,\twocolumn,\typeout}
+%^^A\DoNotIndex{\undefined,\usecounter}
+%^^A\DoNotIndex{\vfil,\vfill,\vspace}
+%^^A\DoNotIndex{\wd}
+%^^A\DoNotIndex{\xdef}
+%^^A\DoNotIndex{\year}
+%^^A\DoNotIndex{\z@}
+% \end{macrocode}
+% Damit sind alle Einträge, welche nicht im Index auftauchen sollen, definiert.
+% \endgroup%
+% \begin{option}{final}
+% \begin{macro}{\tudfinalflag}
+% Option bzw. Flag für das automatisierte Erzeugen der Quelltextdokumentation
+% mit einem Skript ohne ToDo-Befehle.
+% \begin{macrocode}
+\DeclareOption{final}{\let\tudfinalflag\relax}
+% \end{macrocode}
+% \end{macro}^^A \tudfinalflag
+% \end{option}^^A final
+% \begin{option}{texindy}
+% \changes{v2.05}{2016/04/21}{neu}^^A
+% \begin{option}{xindy}
+% \changes{v2.05}{2016/04/21}{neu}^^A
+% \begin{option}{xdy}
+% \changes{v2.05}{2016/04/21}{neu}^^A
+% \begin{macro}{\tudxdyflag}
+% \changes{v2.05}{2016/04/21}{neu}^^A
+% Option(en) für das Erstellen der Indexdateien im Stil von \app{texindy}.
+% \begin{macrocode}
+\DeclareOption{texindy}{\let\tudxdyflag\relax}
+\DeclareOption{xindy}{\let\tudxdyflag\relax}
+\DeclareOption{xdy}{\let\tudxdyflag\relax}
+% \end{macrocode}
+% \end{macro}^^A \tudxdyflag
+% \end{option}^^A xdy
+% \end{option}^^A xindy
+% \end{option}^^A texindy
+% Die beiden Optionen werden abgearbeitet
+% \begin{macrocode}
+\ProcessOptions\relax
+% \end{macrocode}
+% \begin{length}{\topmargin}
+% \begin{length}{\headheight}
+% \begin{length}{\headsep}
+% \begin{length}{\footskip}
+% \begin{length}{\marginparwidth}
+% \begin{length}{\marginparsep}
+% \begin{length}{\oddsidemargin}
+% \begin{length}{\textheight}
+% \begin{length}{\textwidth}
% Die Seitenränder werden so eingestellt, dass für die Darstellung des
% Quelltextes genau 80~Zeichen zur Verfügung stehen.
% \begin{macrocode}
-\setlength\marginparwidth{140pt}
-\setlength\marginparsep{8pt}
-\setlength\oddsidemargin{\dimexpr\marginparwidth+\marginparsep-1in\relax}
-\setlength\textwidth{%
- \dimexpr\paperwidth-1in-\oddsidemargin-2\marginparsep\relax%
-}
\setlength\topmargin{-1in}
\setlength\headheight{0pt}
\setlength\headsep{30pt}
-\setlength\footskip{1.25\headsep}
-\setlength\textheight{\dimexpr\paperheight-2\headsep-\footskip\relax}
-\AfterPackage{tudscrfonts}{\AtBeginDocument{\setlength\columnsep{10pt}}}
+\setlength\footskip{1.5\headsep}
+\setlength\textheight{\dimexpr\paperheight-2.5\headsep-\footskip\relax}
+\setlength\marginparwidth{150pt}
+\setlength\marginparsep{0pt}
+\setlength\oddsidemargin{\dimexpr\marginparwidth+\marginparsep-1in\relax}
+\setlength\textwidth{%
+ \dimexpr\paperwidth-1in-\oddsidemargin-.5\headsep\relax%
+}
+% \end{macrocode}
+% \end{length}^^A \textwidth
+% \end{length}^^A \textheight
+% \end{length}^^A \oddsidemargin
+% \end{length}^^A \marginparsep
+% \end{length}^^A \marginparwidth
+% \end{length}^^A \footskip
+% \end{length}^^A \headsep
+% \end{length}^^A \headheight
+% \end{length}^^A \topmargin
+% Mit dem Paket~\pkg{dox} können weitere Eintragstypen erstellt werden. Dieses
+% lädt außerdem das Paket~\pkg{doc}, welches die Grundfunktionalitäten für die
+% Erstellung von \file{dtx}-Dateien bereitstellt. In der momentanen Version
+% unterstützt das Paket~\pkg{dox} die aktuellen Anpassungen an die Erstellung
+% von Änderungsnotizen durch \pkg{doc} nicht, weshalb im Folgenden einige
+% Patches notwendig sind. Hierfür wird das Paket \pkg{tudscrbase} geladen.
+% \begin{macrocode}
+\RequirePackage{tudscrbase}[\TUD@Version]
\RequirePackage{dox}[2010/12/16]
-\def\generalname{Allgemeines}
+\@ifpackagelater{dox}{2010/12/17}{%
+ \ClassWarning{\TUD@Class@Name}{%
+ Package `dox' was updated so some patches\MessageBreak%
+ are maybe outdated
+ }%
+}{}%
+% \end{macrocode}
+% \begin{macro}{\m@cro@}
+% Nach dem Laden der Pakete werden die Definitionen einiger Makros überprüft.
+% \begin{macrocode}
+\CheckCommand\m@cro@[2]{%
+ \endgroup \topsep\MacroTopsep \trivlist
+ \edef\saved@macroname{\string#2}%
+ #1
+ \let\saved@indexname\saved@macroname
+ \else
+ \edef\saved@indexname{\expandafter\@gobble\string#2}%
+ \fi
+ \def\makelabel##1{\llap{##1}}%
+ \if@inlabel
+ \let\@tempa\@empty \count@\macro@cnt
+ \loop \ifnum\count@>\z@
+ \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m@ne \repeat
+ \edef\makelabel##1{\llap{\vtop to\baselineskip
+ {\@tempa\hbox{##1}\vss}}}%
+ \advance \macro@cnt \@ne
+ \else \macro@cnt\@ne \fi
+ \edef\@tempa{\noexpand\item[%
+ #1%
+ \noexpand\PrintMacroName
+ \else
+ \noexpand\PrintEnvName
+ \fi
+ {\string#2}]}%
+ \@tempa
+ \global\advance\c@CodelineNo\@ne
+ #1%
+ \SpecialMainIndex{#2}\nobreak
+ \DoNotIndex{#2}%
+ \else
+ \SpecialMainEnvIndex{#2}\nobreak
+ \fi
+ \global\advance\c@CodelineNo\m@ne
+ \ignorespaces
+}
+% \end{macrocode}
+% \end{macro}^^A \m@cro@
+% \begin{macro}{\changes@}
+% Bei der Erstellung der Änderungsliste fehlt bei Makros in der aktuellen
+% Version von \pkg{doc} ein Leerzeichen. Das Problem ist bereits gemeldet.
+% \begin{macrocode}
+\CheckCommand*\changes@[3]{%
+ \protected@edef\@tempa{%
+ \noexpand\glossary{%
+ #1\levelchar
+ \ifx\saved@macroname\@empty
+ \space
+ \actualchar
+ \generalname
+ \else
+ \saved@indexname
+ \actualchar
+ \string\verb\quotechar*%
+ \verbatimchar\saved@macroname
+ \verbatimchar
+ \fi
+ :\levelchar #3%
+ }%
+ }%
+ \@tempa\endgroup\@esphack%
+}
+% \end{macrocode}
+% Bei der Erzeugung der Änderungseinträge wird zwischen der Verwendung von
+% \app{makeindex} und \app{xindy} unterschieden. Für die Reihenfolge des
+% Erscheinens der einzelnen Einträge wird das angegebene Datum zur Sortierung
+% genutzt.
+% \begin{macrocode}
+\ifdefined\tudxdyflag%
+ \renewcommand*\changes@[3]{%
+% \end{macrocode}
+% Einträge sollen nur erzeugt werden, wenn diese vollständig sind.
+% \begin{macrocode}
+ \@tempswatrue%
+ \ifblank{#1}{\@tempswafalse}{}%
+ \ifblank{#3}{\@tempswafalse}{}%
+ \if@tempswa%
+ \protected@edef\@tempa{%
+ \noexpand\glossary{%
+ #1\levelchar%
+ \ifx\saved@macroname\@empty%
+ \generalname%
+ \else%
+ \implementationname%
+ \fi%
+ \levelchar
+ \ifx\saved@macroname\@empty\else%
+ \saved@indexname
+ \ifx\saved@idxtype\@empty\else%
+ \space\saved@idxtype
+ \fi%
+ \actualchar
+ \string\verb\quotechar*%
+ \verbatimchar\saved@macroname
+ \verbatimchar%
+ \ifx\saved@idxtype\@empty\else%
+ \space(\saved@idxtype)%
+ \fi%
+ :\levelchar
+ \fi
+ #2 #3%
+ \actualchar%
+ #3% (#2)%
+ }%
+ }%
+ \else%
+ \let\@tempa\relax%
+ \fi%
+ \@tempa\endgroup\@esphack%
+ }%
+\else%
+ \renewcommand*\changes@[3]{%
+ \protected@edef\@tempa{%
+ \noexpand\glossary{%
+ #1\levelchar
+ \ifx\saved@macroname\@empty
+ \quotechar!
+ \actualchar
+ \generalname
+ \else
+ \saved@indexname
+ \actualchar
+ \string\verb\quotechar*%
+ \verbatimchar\saved@macroname
+ \verbatimchar
+ \fi
+ :\levelchar #3%
+ }%
+ }%
+ \@tempa\endgroup\@esphack%
+ }%
+\fi%
+% \end{macrocode}
+% \end{macro}^^A \changes@
+% \begin{macro}{\@wrglossary}
+% \begin{macro}{\filesep}
+% Für die Ausgabe der Änderungsliste soll nicht einfach nur die Seitenzahl
+% sondern tatsächlich die Codezeile ausgegeben werden.
+% \begin{macrocode}
+\CheckCommand*\@wrglossary[1]{%
+ \protected@write\@glossaryfile{}%
+ {\string\glossaryentry{#1}{\thepage}}%
+ \endgroup
+ \@esphack%
+}
+% \end{macrocode}
+% Da \cs{filesep} leer ist, falls nicht \cs{DocInclude} verwendet wird, lassen
+% sich im Index Seitenzahlen und Codezeilen nicht sofort unterscheiden, weshalb
+% das Makro hier standardmäßig mit \val{?-} als Präfix für letztere definiert
+% wird.
+% \begin{macrocode}
+\def\filesep{?-}
+\def\@wrglossary#1{%
+% \end{macrocode}
+% Der erste Zweig ist aktiv, wenn der Index mit Seitenzahlen erzeugt wird.
+% Werden Codezeilen als Basis verwendet, entsprechend der zweite.
+% \begin{macrocode}
+ \ifx\special@index\index%
+ \@tempswafalse%
+ \else%
+ \@tempswatrue%
+ \fi%
+% \end{macrocode}
+% Für einen allgemeinen Eintrag soll definitiv die Seitenzahl verwendet werden.
+% \begin{macrocode}
+ \ifx\saved@macroname\@empty%
+ \@tempswafalse%
+ \fi%
+ \if@tempswa%
+ \global\advance\c@CodelineNo\@ne
+ \protected@write\@glossaryfile{}{%
+ \string\glossaryentry{#1}{\filesep\number\c@CodelineNo}%
+ }
+ \global\advance\c@CodelineNo\m@ne
+ \else%
+ \protected@write\@glossaryfile{}{\string\glossaryentry{#1}{\thepage}}
+ \fi%
+ \endgroup
+ \@esphack%
+}
+% \end{macrocode}
+% \end{macro}^^A \filesep
+% \end{macro}^^A \@wrglossary
+% \begin{macro}{\generalname}
+% \begin{macro}{\implementationname}
+% Die Bezeichnungen für den allgemeinen und den Implementierungsteil.
+% \ToDo{\cs{filesep} fehlt in der allgemeinen Liste}[v2.06]
+% \begin{macrocode}
+\renewcommand*\generalname{Allgemein}
+\newcommand*\implementationname{Implementierung}
+% \end{macrocode}
+% \end{macro}^^A \implementationname
+% \end{macro}^^A \generalname
+% \begin{macro}{\hypersourcedef}
+% \changes{v2.05}{2016/04/26}{neu}^^A
+% \begin{macro}{\hypersource@def}
+% \changes{v2.05}{2016/04/26}{neu}^^A
+% \begin{macro}{\hypersourceref}
+% \changes{v2.05}{2016/04/26}{neu}^^A
+% \begin{macro}{\hypersource@ref}
+% \changes{v2.05}{2016/04/26}{neu}^^A
+% Diese Makros werden verwendet, um im Index respektive in der Änderungsliste
+% mithilfe von \pkg{hyperref} Hyperlinks auf die entsprechenden Codezeilen im
+% Dokument zu setzen.
+% \begin{macrocode}
+\newcommand*\hypersourcedef[1]{}
+\newcommand*\hypersource@def{}
+\newcommand*\hypersourceref[1]{#1}
+\newcommand*\hypersource@ref[2][]{}
+\PassOptionsToPackage{hyperindex=false}{hyperref}
+\AfterPackage{hyperref}{%
+% \end{macrocode}
+% Mit \cs{hypersourcedef} wird ein Textanker gesetzt, falls dieser noch nicht
+% definiert wurde, was durch \cs{hypersource@def} abgesichert wird. Als
+% Argument wird hierfür die aktuelle Codezeile verwendet.
+% \begin{macrocode}
+ \renewcommand*\hypersourcedef[1]{%
+ \ifstr{#1}{\hypersource@def}{}{%
+ \Hy@raisedlink{\hyperdef{}{source:#1}{}}%
+ \xdef\hypersource@def{#1}%
+ }%
+ }%
+% \end{macrocode}
+% Mit \cs{hypersource@ref} wird auf den Textanker verlinkt. Dies kann entweder
+% direkt mit \cs{hypersourceref} erfolgen oder indirekt über das Attribut
+% \val{main}, welches bei der Definitionen von Befehlen etc. im Index genutzt
+% wird. Hierfür wird das Makro \cs{main} umdefiniert.
+% \begin{macrocode}
+ \renewcommand*\hypersourceref[1]{\hypersource@ref{#1}}%
+ \renewcommand*\main[1]{\hypersource@ref[\underline]{#1}}%
+% \end{macrocode}
+% Die Referenz im Argument kann entweder in der Form \val{<Letter>-<Codezeile>}
+% oder direkt als Seitenzahl oder angegeben werden. Deshalb wird dafür gesorgt,
+% dass das angegebene Argument dementsprechend ausgewertet wird.
+% \begin{macrocode}
+ \renewcommand*\hypersource@ref[2][\@firstofone]{%
+ \begingroup%
+ \def\@tempa##1-##2\relax{%
+ \IfArgIsEmpty{##2}{%
+ \hyperlink{page.\@tempc}{#1{\@tempc}}%
+ }{%
+ \hyperref{}{}{source:\@tempc}{#1{\@tempc}}%
+ }%
+ }%
+ \def\@tempb##1{%
+ \def\@tempc{##1}%
+ \expandafter\@tempa##1-\relax%
+ }%
+ \forcsvlist\@tempb{#2}%
+ \endgroup%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \hypersource@ref
+% \end{macro}^^A \hypersourceref
+% \end{macro}^^A \hypersource@def
+% \end{macro}^^A \hypersourcedef
+% \begin{macro}{\@doxcreatespecialmainindex}
+% \begin{macro}{\@doxcreatespecialmainmacrolikeindex}
+% \begin{macro}{\@doxcreatespecialindex}
+% \begin{macro}{\@doxcreatespecialindex}
+% Für den Index muss bei diesen Makros eine kleine Anpassung erfolgen, damit
+% die Sortierung auch bei der Verwendung von \app{texindy} richtig erfolgt und
+% keine Einträge, welche es trotz gleicher Bezeichnung für unterschiedliche
+% Eintragstypen (bspw. Umgebung \env{abstract} und Option \opt{abstract}) gibt,
+% unterschlagen werden. Außerdem wird hier die Definition der Quelltextanker
+% eingehangen.
+% \begin{macrocode}
+\CheckCommand*\@doxcreatespecialmainindex[3]{%
+ \expandafter\def\csname SpecialMain#1Index\endcsname##1{%
+ \@bsphack%
+ \special@index{##1\actualchar{\string\ttfamily\space##1} (#2)
+ \encapchar main}%
+ \special@index{#3:\levelchar##1\actualchar{\string\ttfamily\space##1}
+ \encapchar main}%
+ \@esphack%
+ }%
+}
+\patchcmd{\@doxcreatespecialmainindex}{\actualchar}{%
+ \space(#2)\actualchar%
+}{}{\tud@patch@wrn{@doxcreatespecialmainindex}}
+\patchcmd{\@doxcreatespecialmainindex}{\@esphack}{%
+ \@esphack\hypersourcedef{\filesep\number\c@CodelineNo}%
+}{}{\tud@patch@wrn{@doxcreatespecialmainindex}}
+\CheckCommand*\@doxcreatespecialmainmacrolikeindex[3]{%
+ \expandafter\def\csname SpecialMain#1Index\endcsname##1{%
+ \@SpecialIndexHelper@##1\@nil
+ \@bsphack%
+ \special@index{\@gtempa\actualchar
+ \string\verb\quotechar*\verbatimchar\bslash\@gtempa\verbatimchar
+ \space(#2)\encapchar main}%
+ \special@index{#3:\levelchar\@gtempa\actualchar%
+ \string\verb\quotechar*\verbatimchar\bslash\@gtempa\verbatimchar
+ \encapchar main}%
+ \@esphack%
+ }%
+}
+\patchcmd{\@doxcreatespecialmainmacrolikeindex}{\actualchar}{%
+ \space(#2)\actualchar%
+}{}{\tud@patch@wrn{@doxcreatespecialmainmacrolikeindex}}
+\patchcmd{\@doxcreatespecialmainmacrolikeindex}{\@esphack}{%
+ \@esphack\hypersourcedef{\filesep\number\c@CodelineNo}%
+}{}{\tud@patch@wrn{@doxcreatespecialmainmacrolikeindex}}
+\CheckCommand*\@doxcreatespecialindex[3]{%
+ \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}
+ \encapchar usage}%
+ \@esphack%
+ }%
+}
+\patchcmd{\@doxcreatespecialindex}{\actualchar}{%
+ \space(#2)\actualchar%
+}{}{\tud@patch@wrn{@doxcreatespecialindex}}
+\CheckCommand*\@doxcreatespecialmacrolikeindex[3]{%
+ \expandafter\def\csname Special#1Index\endcsname##1{%
+ \@SpecialIndexHelper@##1\@nil
+ \@bsphack%
+ \index{\@gtempa\actualchar
+ \string\verb\quotechar*\verbatimchar\bslash\@gtempa\verbatimchar
+ \space(#2)\encapchar usage}%
+ \index{#3:\levelchar\@gtempa\actualchar
+ \string\verb\quotechar*\verbatimchar\bslash\@gtempa\verbatimchar
+ \encapchar usage}%
+ \@esphack%
+ }%
+}
+\patchcmd{\@doxcreatespecialmacrolikeindex}{\actualchar}{%
+ \space(#2)\actualchar%
+}{}{\tud@patch@wrn{@doxcreatespecialmacrolikeindex}}
+% \end{macrocode}
+% \end{macro}^^A \@doxcreatespecialindex
+% \end{macro}^^A \@doxcreatespecialindex
+% \end{macro}^^A \@doxcreatespecialmainmacrolikeindex
+% \end{macro}^^A \@doxcreatespecialmainindex
+% \begin{macro}{\doxitem}
+% \begin{macro}{\@doxcreateenv}
+% \begin{macro}{\@doxcreatemacrolikeindexname}
+% \begin{macro}{\@doxcreateindexname}
+% \begin{macro}{\saved@idxtype}
+% \begin{macro}{\@@doxenv}
+% Jetzt die Anpassungen der Änderungsliste für das Paket \pkg{dox}.
+% \begin{macrocode}
+\CheckCommand\doxitem[4][]{%
+ \@nameuse{dox@macrolike\dox@macrolikedefault}%
+ \def\dox@idxtype{#3}%
+ \setkeys{dox}{#1}
+ \@ifundefined{Print#2Name}{%
+ \ifdox@macrolike
+ \expandafter\def\csname Print#2Name\endcsname##1{%
+ \strut\MacroFont\string ##1\ }
+ \else
+ \expandafter\def\csname Print#2Name\endcsname##1{%
+ \strut\MacroFont ##1\ }
+ \fi}{}
+ \ifdox@macrolike
+ \def\@doxexpr{\@doxcreatespecialmainmacrolikeindex{#2}}%
+ \else
+ \def\@doxexpr{\@doxcreatespecialmainindex{#2}}%
+ \fi
+ \expandafter\@doxexpr\expandafter{\dox@idxtype}{#4}%
+ \@ifundefined{PrintDescribe#2}{%
+ \ifdox@macrolike
+ \expandafter\def\csname PrintDescribe#2\endcsname##1{%
+ \strut\MacroFont\string ##1\ }
+ \else
+ \expandafter\def\csname PrintDescribe#2\endcsname##1{%
+ \strut\MacroFont ##1\ }
+ \fi}{}
+ \ifdox@macrolike
+ \def\@doxexpr{\@doxcreatespecialmacrolikeindex{#2}}%
+ \else
+ \def\@doxexpr{\@doxcreatespecialindex{#2}}%
+ \fi
+ \expandafter\@doxexpr\expandafter{\dox@idxtype}{#4}%
+ \@doxcreatedescribe{#2}
+ \@doxcreateenv{#2}{#3}%
+}
% \end{macrocode}
-% Titelei.
+% Da das direkte Patchen von \cs{doxitem} mit den Mitteln von \pkg{etoolbox}
+% aufgrund des optionalen Argumentes nicht möglich ist, wird der notwendige
+% Patch einfach zu Beginn von \cs{@doxcreateenv} eingehängt.
% \begin{macrocode}
-\title{%
- \texttt{\filename}\thanks{%
- Dies ist Version \fileversion\ von Datei \texttt{\filename}.%
+\CheckCommand\doxitem[4][]{%
+ \@nameuse{dox@macrolike\dox@macrolikedefault}%
+ \def\dox@idxtype{#3}%
+ \setkeys{dox}{#1}
+ \@ifundefined{Print#2Name}{%
+ \ifdox@macrolike
+ \expandafter\def\csname Print#2Name\endcsname##1{%
+ \strut\MacroFont\string ##1\ }
+ \else
+ \expandafter\def\csname Print#2Name\endcsname##1{%
+ \strut\MacroFont ##1\ }
+ \fi}{}
+ \ifdox@macrolike
+ \def\@doxexpr{\@doxcreatespecialmainmacrolikeindex{#2}}%
+ \else
+ \def\@doxexpr{\@doxcreatespecialmainindex{#2}}%
+ \fi
+ \expandafter\@doxexpr\expandafter{\dox@idxtype}{#4}%
+ \@ifundefined{PrintDescribe#2}{%
+ \ifdox@macrolike
+ \expandafter\def\csname PrintDescribe#2\endcsname##1{%
+ \strut\MacroFont\string ##1\ }
+ \else
+ \expandafter\def\csname PrintDescribe#2\endcsname##1{%
+ \strut\MacroFont ##1\ }
+ \fi}{}
+ \ifdox@macrolike
+ \def\@doxexpr{\@doxcreatespecialmacrolikeindex{#2}}%
+ \else
+ \def\@doxexpr{\@doxcreatespecialindex{#2}}%
+ \fi
+ \expandafter\@doxexpr\expandafter{\dox@idxtype}{#4}%
+ \@doxcreatedescribe{#2}
+ \@doxcreateenv{#2}{#3}%
+}
+\CheckCommand*\@doxcreateenv[2]{%
+ \expandafter\def\csname #2\endcsname{%
+ \@ifnextchar[%]
+ {\@doxenv{#1}}{\@doxenv{#1}[]}}
+ \expandafter\let\csname end#2\endcsname\endtrivlist%
+}
+\pretocmd{\@doxcreateenv}{%
+ \ifdox@macrolike%
+ \def\@doxexpr{\@doxcreatemacrolikeindexname{#1}}%
+ \else%
+ \def\@doxexpr{\@doxcreateindexname{#1}}%
+ \fi%
+ \expandafter\@doxexpr\expandafter{\dox@idxtype}%
+}{}{\tud@patch@wrn{@doxcreateenv}}
+% \end{macrocode}
+% Nun noch die beiden Befehle, welche durch den Patch ausgeführt werden.
+% \begin{macrocode}
+\newcommand*\saved@idxtype{}
+\def\@doxcreatemacrolikeindexname#1#2{%
+ \expandafter\def\csname Set#1IndexName\endcsname##1{%
+ \edef\saved@indexname{\expandafter\@gobble##1}%
+ \edef\saved@idxtype{#2}%
+ }%
+}
+\def\@doxcreateindexname#1#2{%
+ \expandafter\def\csname Set#1IndexName\endcsname##1{%
+ \let\saved@indexname##1%
+ \edef\saved@idxtype{#2}%
}%
}
-\author{Falk Hanisch\thanks{\tudscrmail}}
-\date{\filedate}
% \end{macrocode}
-% Befehle, welche nicht im Index auftauchen sollen.
+% In \cs{@@doxenv} sollen die bei der Verwendung von \cs{doxitem} respektive
+% \cs{@doxcreateenv} definierten Makros \cs{Set\dots{}IndexName} ausgeführt
+% werden. Zuerst das Prüfen des Befehls\dots
+% \begin{macrocode}
+\CheckCommand\@@doxenv[2]{%
+ \endgroup%
+ \topsep\MacroTopsep \trivlist%
+ \edef\saved@macroname{\string#2}%
+ \def\makelabel##1{\llap{##1}}%
+ \if@inlabel%
+ \let\@tempa\@empty%
+ \count@\macro@cnt%
+ \loop\ifnum\count@>\z@%
+ \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m@ne%
+ \repeat%
+ \edef\makelabel##1{\llap{\vtop to\baselineskip{\@tempa\hbox{##1}\vss}}}%
+ \advance\macro@cnt\@ne%
+ \else%
+ \macro@cnt\@ne%
+ \fi%
+ \ifdox@noprint%
+ \item%
+ \else%
+ \edef\@tempa{%
+ \noexpand\item[%
+ \expandafter\noexpand\csname Print#1Name\endcsname{\saved@macroname}]}%
+ \@tempa%
+ \fi%
+ \ifdox@noindex\else%
+ \global\advance\c@CodelineNo\@ne%
+ \@nameuse{SpecialMain#1Index}{#2}\nobreak%
+ \global\advance\c@CodelineNo\m@ne%
+ \fi%
+ \ignorespaces%
+}
+% \end{macrocode}
+% \dots und nun der eigentliche Patch sowie die Basisdefinitionen.
% \begin{macrocode}
-\DoNotIndex{\",\\,,\if,\@}
+\patchcmd{\@@doxenv}{\ignorespaces}{%
+ \csname Set#1IndexName\endcsname{\saved@macroname}\ignorespaces%
+}{}{\tud@patch@wrn{@@doxenv}}
+% \end{macrocode}
+% \end{macro}^^A \@@doxenv
+% \end{macro}^^A \saved@idxtype
+% \end{macro}^^A \@doxcreateindexname
+% \end{macro}^^A \@doxcreatemacrolikeindexname
+% \end{macro}^^A \@doxcreateenv
+% \end{macro}^^A \doxitem
+% \begin{macro}{\SetMacroIndexName}
+% \begin{macro}{\SetEnvIndexName}
+% \begin{macro}{\SpecialMainMacroIndex}
+% Da für Makros und Umgebungen die notwendigen Makros nicht über \cs{doxitem}
+% kreiert werden können, erfolgt dies hier direkt.
+% \begin{macrocode}
+\def\SetMacroIndexName#1{%
+ \edef\saved@indexname{\expandafter\@gobble#1}
+ \let\saved@idxtype\@empty%
+}
+\def\SetEnvIndexName#1{%
+ \let\saved@indexname#1%
+ \edef\saved@idxtype{environment}%
+}
+\CheckCommand*\SpecialMainMacroIndex[1]{%
+ \SpecialMainIndex{#1}\nobreak%
+ \DoNotIndex{#1}%
+}
+\apptocmd{\SpecialMainMacroIndex}{%
+ \hypersourcedef{\filesep\number\c@CodelineNo}%
+}{}{\tud@patch@wrn{SpecialMainMacroIndex}}
% \end{macrocode}
-% Weitere Eintragstypen mittels Paket~\pkg{dox}.
+% \end{macro}^^A \SpecialMainMacroIndex
+% \end{macro}^^A \SetEnvIndexName
+% \end{macro}^^A \SetMacroIndexName
+% Nachdem nun die Anpassungen für die Änderungsliste erfolgt sind, können nun
+% die für die Dokumentatiton notwendigen Umgebungen erstellt werden.
% \begin{macrocode}
+\doxitem[idxtype=Umgebung]{Env}{environment}{Umgebungen}
\doxitem[idxtype=Option]{Option}{option}{Optionen}
\doxitem[idxtype=Parameter]{Parameter}{parameter}{Parameter}
-\doxitem[idxtype=Seitenstil]{Pagestyle}{pagestyle}{Seitenstile}
+\doxitem[idxtype=Seitenstil]{PageStyle}{pagestyle}{Seitenstile}
\doxitem[idxtype=Layer]{Layer}{layer}{Layer (Seitenstilebenen)}
\doxitem[macrolike,idxtype=L\noexpand\"ange]{Length}{length}{L\noexpand\"angen}
\doxitem[idxtype=Z\noexpand\"ahler]{Counter}{counter}{Z\noexpand\"ahler}
\doxitem[idxtype=Farbe]{Color}{color}{Farben}
\doxitem[macrolike,idxtype=Lok.]{Locale}{locale}{Lokalisierungsvariablen}
\doxitem[macrolike,idxtype=Feld]{Field}{field}{Eingabefelder}
+\doxitem[idxtype=Schriftelement]{Font}{KOMAfont}{Schriftelemente}
% \end{macrocode}
-% Zusätzliche Auszeichnungsbefehle.
+% \begin{macro}{\tud@write@replace}
+% \changes{v2.05}{2016/04/21}{neu}^^A
+% \begin{macro}{\tud@read@replace}
+% \changes{v2.05}{2016/04/21}{neu}^^A
+% \begin{macro}{\tud@line@replace}
+% \changes{v2.05}{2016/04/21}{neu}^^A
+% \begin{macro}{\actualchar}
+% \begin{macro}{\quotechar}
+% \begin{macro}{\levelchar}
+% Damit die erzeugten Dateien für Index und Änderungsliste von \app{texindy}
+% verarbeitet werden können, müssen einige Steuerzeichen in der originalen
+% \val{.ind}-Datei getauscht werden. Dafür wird diese zeilenweise eingelesen,
+% 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
+% \end{macrocode}
+% Die Makros für die fraglichen Steuerzeichen werden so angepasst, dass die
+% Wahrscheinlichkeit für eine Verwendung dieser Kombination in einem Makro-
+% oder Umgebungsnamen sehr gering ist. Anschließend werden die erzeugten
+% Hilfsdateien für Index und Änderungsliste für \app{texindy} angepasst. Dabei
+% werden diese automatisch erzeugt, falls dies möglich ist.
% \begin{macrocode}
-\DeclareRobustCommand*{\cls}[1]{\mbox{\textsf{\textbf{#1}}}}
-\DeclareRobustCommand*{\pkg}[1]{\mbox{\textsf{\textbf{#1}}}}
-\DeclareRobustCommand*{\opt}[1]{\mbox{\texttt{#1}}}
-\DeclareRobustCommand*{\val}[1]{\mbox{\texttt{#1}}}
-\DeclareRobustCommand*{\pgs}[1]{\mbox{\texttt{#1}}}
-\DeclareRobustCommand*{\env}[1]{\mbox{\texttt{#1}}}
+ \def\actualchar{<&1&>}
+ \def\quotechar{<&2&>}
+ \def\levelchar{<&3&>}
+ \begingroup
+ \endlinechar=-1\relax%
+ \def\tud@reserved#1#2{%
+ \immediate\openin\tud@read@replace=\jobname.#1\relax%
+ \immediate\openout\tud@write@replace=\jobname-xdy.#1\relax%
+ \@tempswafalse%
+ \loop\unless\ifeof\tud@read@replace%
+ \readline\tud@read@replace to\tud@line@replace%
+ \tud@replace\tud@line@replace{"}{""}%
+ \tud@replace\tud@line@replace{!}{"!}%
+ \tud@replace\tud@line@replace{:}{":}%
+ \tud@replace\tud@line@replace{@}{"@}%
+ \tud@replace\tud@line@replace{\"@}{"\@backslashchar"@}%
+ \expandafter\tud@replace\expandafter\tud@line@replace%
+ \expandafter{\actualchar}{@}%
+ \expandafter\tud@replace\expandafter\tud@line@replace%
+ \expandafter{\quotechar}{"}%
+ \expandafter\tud@replace\expandafter\tud@line@replace%
+ \expandafter{\levelchar}{!}%
+ \tud@replace\tud@line@replace{" @}{}%
+ \ifeof\tud@read@replace\else%
+ \immediate\write\tud@write@replace{%
+ \unexpanded\expandafter{\tud@line@replace}%
+ }%
+ \@tempswatrue%
+ \fi%
+ \repeat%
+ \immediate\closein\tud@read@replace%
+ \immediate\closeout\tud@write@replace%
+ \ifnum\pdfshellescape=\@ne\relax%
+ \if@tempswa%
+ \immediate\write18{%
+ texindy\space%
+ -o \jobname.#2\space%
+ -M \@currname-#2.xdy\space%
+ -L german-din\space%
+ -t \jobname-#2.xlg\space%
+ \jobname-xdy.#1
+ }%
% \end{macrocode}
+% Falls nichts geschrieben wurde, wird eine leere Ausgabedatei erzeugt.
+% \begin{macrocode}
+ \else%
+ \immediate\openout\tud@write@replace=\jobname.#2\relax%
+ \immediate\closeout\tud@write@replace%
+ \fi%
+ \fi%
+ }%
+ \tud@reserved{idx}{ind}%
+ \tud@reserved{glo}{gls}%
+ \endgroup
+% \end{macrocode}
+% Sollte \app{texindy} nicht aktiv sein, werden Index und Änderungsliste mit
+% \app{makeindex} automatisch erzeugt.
+% \begin{macrocode}
+\else
+ \ifnum\pdfshellescape=\@ne\relax%
+ \immediate\write18{makeindex -s gglo.ist -o \jobname.gls \jobname.glo}%
+ \immediate\write18{makeindex -s gind.ist -o \jobname.ind \jobname.idx}%
+ \fi%
+\fi
+% \end{macrocode}
+% Jetzt werden noch die Einleitungen für Index und Änderungsliste angepasst.
+% \begin{macrocode}
+\IndexPrologue{%
+ \addsec{Index}%
+ Unterstrichene Zahlen, die gegebenenfalls mit einem Hyperlink versehen sind,
+ verweisen auf die \ifcodeline@index Codezeile der \fi Definition, alle
+ weiteren sind \ifcodeline@index Zeilennummern\else Seitenzahlen\fi, wo der
+ jeweilige Eintrag verwendet wird.
+}
+\GlossaryPrologue{\addsec{\"Anderungsliste}}
+% \end{macrocode}
+% \end{macro}^^A \levelchar
+% \end{macro}^^A \quotechar
+% \end{macro}^^A \actualchar
+% \end{macro}^^A \tud@line@replace
+% \end{macro}^^A \tud@read@replace
+% \end{macro}^^A \tud@write@replace
+% \begin{macro}{\PrintToDos}
+% \changes{v2.05}{2016/05/19}{neu}^^A
+% Für ToDo-Notizen wird am Ende eine Liste aller offenen Punkte ausgegeben.
+% \begin{macrocode}
+\DeclareNewTOC[%
+ type=todo,%
+ listname={Liste der noch zu erledigenden Punkte},%
+ name=ToDo,%
+ tocentryindent=\z@,%
+ owner=\@currname,%
+]{tdo}
+\setuptoc{tdo}{totoc}
+\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
+% einzeln ausgegeben wird, muss der Befehl \cs{@docinclude} angepasst werden.
+% \begin{macrocode}
+\patchcmd{\@docinclude}{%
+ \let\@ltxdoc@PrintIndex\PrintIndex
+ \let\PrintIndex\relax
+ \let\@ltxdoc@PrintChanges\PrintChanges
+ \let\PrintChanges\relax
+}{%
+ \let\@ltxdoc@PrintIndex\PrintIndex
+ \let\PrintIndex\relax
+ \let\@ltxdoc@PrintChanges\PrintChanges
+ \let\PrintChanges\relax
+ \let\@ltxdoc@PrintToDos\PrintToDos
+ \let\PrintToDos\relax
+}{}{\tud@patch@wrn{@docinclude}}
+\patchcmd{\@docinclude}{%
+ \let\PrintIndex\@ltxdoc@PrintIndex
+ \let\PrintChanges\@ltxdoc@PrintChanges
+}{%
+ \let\PrintIndex\@ltxdoc@PrintIndex
+ \let\PrintChanges\@ltxdoc@PrintChanges
+ \let\PrintToDos\@ltxdoc@PrintToDos
+}{}{\tud@patch@wrn{@docinclude}}
+% \end{macrocode}
+% \end{macro}^^A \PrintToDos
% \begin{macro}{\ToDo}
% \changes{v2.02}{2014/07/25}{neu}^^A
% \begin{macro}{\@ToDo}
% \changes{v2.02}{2014/07/25}{neu}^^A
-% \begin{macro}{\@@ToDo}
-% \changes{v2.02}{2014/07/25}{neu}^^A
% Die Befehle für die ToDo-Notizen. Um in der gleichen Nomenklatur wie beim
% Handbuch bleiben zu können, wird die Randnotizmarke als optionales Argument
% hinter dem eigentlichen Text angegeben.
% \begin{macrocode}
\newcommand*\ToDo[2][]{%
- \@ifnextchar[
- {\@ToDo{#2}}{\@ToDo{#2}[]}
+ \kernel@ifnextchar[{\@ToDo{#2}}{\@ToDo{#2}[]}%
}
\newcommand*\@ToDo{}
-\newcommand*\@@ToDo{}%
\def\@ToDo#1[#2]{%
\ifdefined\tudfinalflag\else%
- \def\@@ToDo{\ifstr{#2}{}{ToDo}{ToDo: #2}}%
- \endgraf%
- \hfuzz0.8pt%
- \leavevmode\marginpar{\raggedleft\fbox{\@@ToDo\strut}}%
- \fbox{\parbox{\dimexpr\textwidth-2\fboxsep\relax}{#1\strut}}%
- \endgraf%
+ \begingroup%
+ \csuse{phantomsection}%
+ \def\tud@reserved{\ifxblank{#2}{ToDo: ??}{ToDo: #2}}%
+ \endgraf%
+ \hfuzz0.8pt%
+ \leavevmode\marginpar{\raggedleft\fbox{\tud@reserved\strut}}%
+ \fbox{\parbox{\dimexpr\textwidth-2\fboxsep\relax}{#1\strut}}%
+ \endgraf%
+ \global\advance\c@CodelineNo\@ne
+ \addxcontentsline{tdo}{todo}{#2:~#1~(\filesep\number\c@CodelineNo)}%
+ \global\advance\c@CodelineNo\m@ne
+ \endgroup%
\fi%
-}%
+}
% \end{macrocode}
-% \end{macro}^^A \@@ToDo
% \end{macro}^^A \@ToDo
% \end{macro}^^A \ToDo
-% Optionen bzw. Flag für das automatisierte Erstellen der Quelltextdokumentation
-% mit einem Skript ohne ToDo-Befehle.
+% Zum Schluss erfolgen einige Anpassungen mit \cs{AtBeginDocument}, um abhängig
+% vom Ladezustand einiger Pakete reagieren zu können.
% \begin{macrocode}
-\DeclareOption{final}{\let\tudfinalflag\relax}
-\ProcessOptions\relax
+\AtBeginDocument{%
% \end{macrocode}
-% Und noch etwas Kleinkram für \pkg{hyperref}, \pkg{babel} und \pkg{csquotes}.
+% \begin{macro}{\newrobustcmd}
+% Sollte \pkg{etoolbox} nicht geladen sein, wird der Befehl \cs{newrobustcmd}
+% definiert, welcher anschließend für die Markup-Befehle genutzt wird.
+% \begin{macrocode}
+ \@ifpackageloaded{etoolbox}{}{%
+ \providecommand*\newrobustcmd{\DeclareRobustCommand}%
+ }%
+% \end{macrocode}
+% \end{macro}^^A \newrobustcmd
+% \begin{macro}{\app}
+% \begin{macro}{\cls}
+% \begin{macro}{\pkg}
+% \begin{macro}{\opt}
+% \begin{macro}{\val}
+% \begin{macro}{\pgs}
+% \begin{macro}{\env}
+% \begin{macro}{\file}
+% Zusätzliche Auszeichnungsbefehle.
+% \begin{macrocode}
+ \newrobustcmd*\app[1]{\mbox{\textsl{\textbf{#1}}}}
+ \newrobustcmd*\cls[1]{\mbox{\textsf{\textbf{#1}}}}
+ \newrobustcmd*\pkg[1]{\mbox{\textsf{\textbf{#1}}}}
+ \newrobustcmd*\opt[1]{\mbox{\texttt{#1}}}
+ \newrobustcmd*\val[1]{\mbox{\texttt{#1}}}
+ \newrobustcmd*\pgs[1]{\mbox{\texttt{#1}}}
+ \newrobustcmd*\env[1]{\mbox{\texttt{#1}}}
+ \newrobustcmd*\file[1]{\mbox{\texttt{#1}}}
+% \end{macrocode}
+% \end{macro}^^A \file
+% \end{macro}^^A \env
+% \end{macro}^^A \pgs
+% \end{macro}^^A \val
+% \end{macro}^^A \opt
+% \end{macro}^^A \pkg
+% \end{macro}^^A \cls
+% \end{macro}^^A \app
+% \begin{macro}{\hypersetup}
+% \begin{macro}{\phantomsection}
+% \begin{macro}{\texorpdfstring}
+% Etwas Kleinkram für \pkg{hyperref}\dots
+% \begin{macrocode}
+ \@ifpackageloaded{hyperref}{%
+ \pdfstringdefDisableCommands{%
+ \def\TUDScript{TUD-KOMA-Script}%
+ \let\cls\@firstofone%
+ \let\pkg\@firstofone%
+ }%
+ }{%
+ \RequirePackage{url}[2013/09/16]%
+ \providecommand*\hypersetup[1]{}%
+ \providecommand*\phantomsection{}%
+ \providecommand*\texorpdfstring[2]{#1}%
+ }%
+% \end{macrocode}
+% \end{macro}^^A \texorpdfstring
+% \end{macro}^^A \phantomsection
+% \end{macro}^^A \hypersetup
+% \begin{macro}{\selectlanguage}
+% \begin{macro}{\glqq}
+% \begin{macro}{\grqq}
+% \dots sowie \pkg{babel}\dots
% \begin{macrocode}
-\AfterPackage{hyperref}{%
- \pdfstringdefDisableCommands{\def\TUDScript{TUD-KOMA-Script}}%
-}
-\AfterPackage{babel}{%
- \AfterPackage*{inputenc}{\RequirePackage{csquotes}[2011/10/22]}%
-}
-\AtBeginDocument{%
- \providecommand*\url[1]{\texttt{#1}}%
- \providecommand*\texorpdfstring[2]{#1}%
\@ifpackageloaded{babel}{}{%
- \ClassWarning{\TUDClassName}{Package `babel' not loaded}%
+ \ClassWarning{\TUD@Class@Name}{Package `babel' not loaded}%
\let\selectlanguage\@gobble%
\let\glqq\relax%
\let\grqq\relax%
}%
+% \end{macrocode}
+% \end{macro}^^A \grqq
+% \end{macro}^^A \glqq
+% \end{macro}^^A \selectlanguage
+% \begin{macro}{\enquote}
+% \dots und \pkg{csquotes}.
+% \begin{macrocode}
\@ifpackageloaded{csquotes}{}{%
- \ClassWarning{\TUDClassName}{Package `csquotes' not loaded}%
- \providecommand\enquote[1]{\glqg#1\grqq{}}%
+ \ClassWarning{\TUD@Class@Name}{Package `csquotes' not loaded}%
+ \providecommand\enquote[1]{\glqq#1\grqq{}}%
}%
- \providecommand*\ifdin[2]{#2}%
-}
% \end{macrocode}
+% \end{macro}^^A \enquote
% Sollte das Paket \pkg{tudscrfonts} geladen worden sein, so wird die Stärke
% der Schriften für die Quelltextausgabe etwas erhöht, um die Lesbarkeit zu
-% verbessern. Andernfalls wird das Paket \pkg{lmodern} geladen.
+% verbessern.
% \begin{macrocode}
-\AtBeginDocument{%
- \@ifundefined{tud@cdfont}{\def\tud@cdfont{0}}{}%
- \ifnum\tud@cdfont>\z@\relax% true/heavy
+ \@ifpackageloaded{tudscrfonts}{%
\RequirePackage{mweights}[2013/07/21]%
- \def\mddefault{m}%
- \def\mdseries@tt{m}%
- \renewcommand*\@pnumwidth{1.7em}%
- \else%
+ \ifnum\tud@cdfont@num>\z@\relax% true/heavy
+ \def\mddefault{m}%
+ \def\mdseries@tt{m}%
+ \renewcommand*\@pnumwidth{1.7em}%
+ \renewcommand*\@tocrmarg{2.7em}%
+ \fi%
+ \setlength\columnsep{10pt}%
+% \end{macrocode}
+% Andernfalls wird das Paket \pkg{lmodern} geladen und die fehlenden Befehle
+% zur Schriftauswahl rudimentär definiert.
+% \begin{macrocode}
+ }{%
\RequirePackage{lmodern}[2009/10/30]%
- \fi%
-}%
+ \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}}%
+ }%
+% \end{macrocode}
+% Und ganz zum Schluss noch die Titelei.
+% \begin{macrocode}
+ \title{%
+ \file{\filename}\thanks{%
+ Dies ist Version \fileversion\nobreakspace{}von Datei \file{\filename}.%
+ }%
+ }%
+ \author{Falk Hanisch\thanks{\tudscrmail}}%
+ \date{\filedate}%
+}
% \end{macrocode}
%
% \iffalse
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-fields.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-fields.dtx
index c0fb3c05490..fbd211859ad 100644
--- a/Master/texmf-dist/source/latex/tudscr/tudscr-fields.dtx
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-fields.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{647}
+% \CheckSum{835}
% \iffalse meta-comment
%
% ============================================================================
@@ -18,13 +18,13 @@
%
% ----------------------------------------------------------------------------
%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
-% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
-% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
-% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
-% oder spaeter 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.
+% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
+% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
+% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
+% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
+% oder spaeter 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.
%
% ============================================================================
%
@@ -51,15 +51,17 @@
%<*driver>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\ProvidesFile{tudscr-fields.dtx}[%
- 2015/06/12 v2.04 TUD-KOMA-Script (input fields)%
+ 2016/07/22 v2.05 TUD-KOMA-Script (input fields)%
]
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
-\documentclass[english,ngerman]{tudscrdoc}
+\documentclass[english,ngerman,xindy]{tudscrdoc}
\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{tudscrfonts} % only load this package, if the fonts are installed
\KOMAoptions{parskip=half-}
+\usepackage{microtype}
+\usepackage{bookmark}
\CodelineIndex
\RecordChanges
\GetFileInfo{tudscr-fields.dtx}
@@ -72,7 +74,7 @@
%
% \selectlanguage{ngerman}
%
-% \changes{v2.02}{2014/06/23}{Unterstützung für \pkg{titlepage} entfernt}^^A
+% \changes{v2.02}{2014/06/23}{Paket \pkg{titlepage} nicht weiter unterstützt}^^A
%
% \section{Eingabefelder für den Nutzer}
%
@@ -87,133 +89,245 @@
% \pkg{titlepage}-Paket entworfen worden. Um gleichzeitig konsistent zu diesem
% Paket zu sein, werden für die entsprechenden Felder Alias-Befehle definiert.
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \StopEventually{\PrintIndex\PrintChanges\PrintToDos}
%
% \iffalse
-%<*class|poster>
+%<*class&!manual>
% \fi
%
% \subsection{Textfelder}
%
-% Für das Setzen von Feldern werden bei einem übergebenen Argument führende und
-% angehängte Leerzeichen beseitigt.
-% \begin{macrocode}
-%<class>\RequirePackage{trimspaces}[2009/09/17]
-% \end{macrocode}
-% Von den Klassen benötigte Formularfelder werden definiert.
+% Von den Klassen benötigte Formularfelder werden definiert. Für das Setzen von
+% Feldern werden mit dem Makro \cs{trim@spaces} aus dem Paket \pkg{trimspaces}
+% bei einem übergebenen Argument führende und angehängte Leerzeichen beseitigt.
% \begin{macro}{\faculty}
% \begin{field}{\@faculty}
-% \begin{field}{\@faculty@foot}
-% \changes{v2.04}{2015/05/06}{neu}^^A
+% \begin{field}{\@@faculty}
+% \changes{v2.05}{2015/07/06}{neu}^^A
% \begin{macro}{\department}
% \begin{field}{\@department}
-% \begin{field}{\@department@foot}
-% \changes{v2.04}{2015/05/06}{neu}^^A
+% \begin{field}{\@@department}
+% \changes{v2.05}{2015/07/06}{neu}^^A
% \begin{macro}{\institute}
% \begin{field}{\@institute}
-% \begin{field}{\@institute@foot}
-% \changes{v2.04}{2015/05/06}{neu}^^A
+% \begin{field}{\@@institute}
+% \changes{v2.05}{2015/07/06}{neu}^^A
% \begin{macro}{\chair}
% \begin{field}{\@chair}
-% \begin{field}{\@chair@foot}
-% \changes{v2.04}{2015/05/06}{neu}^^A
+% \begin{field}{\@@chair}
+% \changes{v2.05}{2015/00/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.
-%
-% Das optionale Argument wird zur Kompatibilität zum Paket \pkg{tudscrposter}
+%
+% 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. Hierfür werden
-% die Felder \cs{@faculty@foot}, \cs{@department@foot}, \cs{@institute@foot}
-% sowie \cs{@chair@foot} definiert.
+% Angabe der Struktureinheiten im Fußbereich variiert werden. Dafür werden die
+% Felder \cs{@@faculty}, \cs{@@department}, \cs{@@institute} sowie \cs{@@chair}
+% definiert.
% \begin{macrocode}
-%<*class>
\newcommand*\@faculty{}
-\newcommand*\faculty[2][]{\gdef\@faculty{\trim@spaces{#2}}}
\newcommand*\@department{}
-\newcommand*\department[2][]{\gdef\@department{\trim@spaces{#2}}}
\newcommand*\@institute{}
-\newcommand*\institute[2][]{\gdef\@institute{\trim@spaces{#2}}}
\newcommand*\@chair{}
-\newcommand*\chair[2][]{\gdef\@chair{\trim@spaces{#2}}}
-%</class>
+%<*book|report|article>
+\newcommand*\faculty[2][]{\tud@head@text@field{faculty}{#2}}
+\newcommand*\department[2][]{\tud@head@text@field{department}{#2}}
+\newcommand*\institute[2][]{\tud@head@text@field{institute}{#2}}
+\newcommand*\chair[2][]{\tud@head@text@field{chair}{#2}}
+%</book|report|article>
%<*poster>
-\newcommand*\@faculty@foot{}
-\renewcommand*\faculty[2][\@empty]{\tud@foot@line@add{faculty}{#2}{#1}}
-\newcommand*\@department@foot{}
-\renewcommand*\department[2][\@empty]{\tud@foot@line@add{department}{#2}{#1}}
-\newcommand*\@institute@foot{}
-\renewcommand*\institute[2][\@empty]{\tud@foot@line@add{institute}{#2}{#1}}
-\newcommand*\@chair@foot{}
-\renewcommand*\chair[2][\@empty]{\tud@foot@line@add{chair}{#2}{#1}}
+\newcommand*\@@faculty{}
+\newcommand*\@@department{}
+\newcommand*\@@institute{}
+\newcommand*\@@chair{}
+\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@foot
+% \end{field}^^A \@@chair
% \end{field}^^A \@chair
% \end{macro}^^A \chair
-% \end{field}^^A \@institute@foot
+% \end{field}^^A \@@institute
% \end{field}^^A \@institute
% \end{macro}^^A \institute
-% \end{field}^^A \@department@foot
+% \end{field}^^A \@@department
% \end{field}^^A \@department
% \end{macro}^^A \department
-% \end{field}^^A \@faculty@foot
+% \end{field}^^A \@@faculty
% \end{field}^^A \@faculty
% \end{macro}^^A \faculty
-%
-% \iffalse
-%</class|poster>
-%<*class>
-% \fi
-%
% \begin{macro}{\extraheadline}
% \begin{field}{\@extraheadline}
-% Für die Angabe einer freien zweiten bzw. dritten Textzeile im Kopf. Dies ist
-% laut \CD nur in besonderen Ausnahmefällen gestattet.
+% Für die Angabe weiteren, freien Textzeile im Kopf. Dies ist laut \CD nur in
+% besonderen Ausnahmefällen gestattet.
% \begin{macrocode}
\newcommand*\@extraheadline{}
-\newcommand*\extraheadline[1]{\gdef\@extraheadline{\trim@spaces{#1}}}
+\newcommand*\extraheadline[1]{\tud@head@text@field{extraheadline}{#1}}
% \end{macrocode}
% \end{field}^^A \@extraheadline
% \end{macro}^^A \extraheadline
+% \begin{macro}{\tud@head@text@field}
+% \changes{v2.05}{2015/11/26}{neu}^^A
+% Wird ein Feld gesetzt, muss im Zweifel die Kopfzeile neu erstellt werden.
+% \begin{macrocode}
+\newcommand*\tud@head@text@field[2]{%
+ \csgdef{@#1}{\trim@spaces{#2}}%
+ \global\@tud@head@text@settrue%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@head@text@field
+% \begin{macro}{\tud@foot@line@add}
+% \changes{v2.05}{2015/07/06}{neu}^^A
+% \begin{macro}{\tud@foot@line@write}
+% \changes{v2.05}{2015/07/06}{neu}^^A
+% 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 abgelegt, andernfalls das dritte.
+%
+% Damit wird es für Poster möglich, die Befehle \cs{faculty}, \cs{department},
+% \cs{institute}, \cs{chair} und \cs{professor} dahingehend zu erweitern, dass
+% unterschiedliche Angaben für die Kopf- und Fußzeile gemacht werden können.
+% Wird eines der zuvor genannten Makros lediglich mit einem obligatorischen
+% Argument verwendet, so enthalten Kopf und Fuß den gleichen Eintrag. Wird
+% jedoch zusätzlich das optionale Argument genutzt, so wird dessen Inhalt im
+% Fußbereich mit \cs{tud@foot@line@write} ausgegeben.
+% \begin{macrocode}
+%<*poster>
+\newcommand*\tud@foot@line@add[3]{%
+ \tud@head@text@field{#1}{#2}%
+ \ifx\@empty#3\relax%
+ \global\csletcs{@@#1}{@#1}%
+ \else%
+ \csgdef{@@#1}{\trim@spaces{#3}}%
+ \fi%
+}
+\newcommand*\tud@foot@line@write[1]{%
+ \protected@edef\@tempa{\csuse{@@#1}}%
+ \ifx\@tempa\@empty\else\newline\mbox{\csuse{@@#1}}\fi%
+}
+%</poster>
+% \end{macrocode}
+% \end{macro}^^A \tud@foot@line@write
+% \end{macro}^^A \tud@foot@line@add
% \begin{macro}{\title}
+% \begin{field}{\@title}
% \begin{field}{\@@title}
% \changes{v2.02}{2014/11/06}{\cs{protected@xdef} genutzt}^^A
-% \begin{field}{\@@author}
-% \changes{v2.02}{2014/07/25}{entfernt}^^A
% Für die spätere Verwendung im Dokument des Titels~-- beispielsweise für die
% Aufgabenstellung oder die Selbstständigkeitserklärung~-- wird das Feld
% \cs{@@title} definiert. In diesem wird der mit \cs{title} gesicherte Eintrag
-% ohne die etwaigen Fußnoten gespeichert. Das Feld \cs{@@author} wurde mit der
-% Version~v2.02 entfernt.
+% ohne die etwaigen Fußnoten gespeichert.
% \begin{macrocode}
\newcommand*\@@title{}
+\robustify\@title
\renewcommand*\title[1]{%
\gdef\@title{#1}%
\begingroup%
\let\thanks\@gobble%
\let\footnote\@gobble%
+ \def\newline{\space\ignorespaces}%
+ \def\\{\space\ignorespaces}%
\protected@xdef\@@title{\trim@spaces{#1}}%
\endgroup%
}
% \end{macrocode}
-% \end{field}^^A \@@author
% \end{field}^^A \@@title
+% \end{field}^^A \@title
% \end{macro}^^A \title
+% \begin{macro}{\author}
+% \begin{field}{\@author}
+% \begin{field}{\@@author}
% \begin{macro}{\authormore}
% \begin{field}{\@authormore}
-% Ausgabe einer zusätzlichen Zeile mit \cs{authormore}\marg{Textzeile} direkt
-% unterhalb der Angabe des Autors auf der Titelseite, wird im Makro
+% Die Ausgabe einer zusätzlichen Zeile mit \cs{authormore}\marg{Textzeile}
+% direkt unterhalb der Angabe des Autors auf der Titelseite, wird im Makro
% \cs{@authormore} gespeichert.
% \begin{macrocode}
+\newcommand*\@@author{}
+\renewcommand*\author[1]{%
+ \gdef\@author{#1}%
+% \end{macrocode}
+% Das Feld \cs{@@author} soll lediglich die Autoren ohne weitere Anmerkungen
+% enthalten. Deshalb werden die gewöhnlichen Formatierungsbefehle des Titels
+% temporär unschädlich gemacht.
+% \begin{macrocode}
+ \begingroup%
+ \let\thanks\@gobble%
+ \let\footnote\@gobble%
+ \def\newline{\space\ignorespaces}%
+ \def\\{\space\ignorespaces}%
+% \end{macrocode}
+% Die Makros aus \cs{tud@split@author@list} werden zu \cs{relax} gesetzt, um
+% diese nach der Expansion weiter zu behandeln.
+% \begin{macrocode}
+ \def\@tempa##1{\csdef{##1}####1{\noexpand\relax}}%
+ \let\@tempb\tud@split@author@list%
+ \robustify\and%
+ \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}%
+ \protected@edef\@@author{#1}%
+% \end{macrocode}
+% Da die Befehle für Zusatzinformationen unter Umständen ungewollte Leerzeichen
+% im Feld \cs{@@author} hinterlassen, werden diese entfernt.
+% \begin{macrocode}
+ \tud@replace\@@author{ \relax }{}%
+ \tud@replace\@@author{\relax }{}%
+ \tud@replace\@@author{ \relax}{}%
+ \tud@replace\@@author{\relax}{}%
+ \tud@replace\@@author{ \and }{\and}%
+ \tud@replace\@@author{ \and}{\and}%
+ \tud@replace\@@author{\and }{\and}%
+ \protected@xdef\@@author{\trim@spaces{\@@author}}%
+ \endgroup%
+}
\newcommand*\@authormore{}
-\newrobustcmd*\authormore[1]{\gdef\@authormore{#1}}
+\newrobustcmd*\authormore[1]{\gdef\@authormore{#1}\ignorespaces}
% \end{macrocode}
% \end{field}^^A \@authormore
% \end{macro}^^A \authormore
+% \end{field}^^A \@@author
+% \end{field}^^A \@author
+% \end{macro}^^A \author
+% \begin{macro}{\course}
+% \begin{field}{\@course}
+% Studiengang für den Titel sowie den Kopf der Aufgabenstellung, wird im Makro
+% \cs{@course} gespeichert.
+% \begin{macrocode}
+\newcommand*\@course{}
+\newrobustcmd*\course[1]{\gdef\@course{#1}\ignorespaces}
+% \end{macrocode}
+% \end{field}^^A \@course
+% \end{macro}^^A \course
+% \begin{macro}{\discipline}
+% \changes{v2.02}{2014/05/16}{neu, von \cs{branch} umbenannt}^^A
+% \begin{field}{\@discipline}
+% \changes{v2.02}{2014/05/16}{neu, von \cs{@branch} umbenannt}^^A
+% Studienrichtung bzw. Fachrichtung für Titel und Kopf der Aufgabenstellung,
+% wird im Makro \cs{@discipline} gespeichert.
+% \begin{macrocode}
+\newcommand*\@discipline{}
+\newrobustcmd*\discipline[1]{\gdef\@discipline{#1}\ignorespaces}
+% \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}{\thesis}
% \begin{field}{\@thesis}
% \changes{v2.02}{2014/11/06}{\cs{protected@xdef} genutzt}^^A
@@ -221,25 +335,25 @@
% \changes{v2.02}{2014/11/06}{\cs{protected@xdef} genutzt}^^A
% \begin{macro}{\subject}
% \begin{field}{\@subject}
-% \begin{macro}{\tud@thesis}
-% \begin{macro}{\tud@@thesis}
+% \begin{macro}{\tud@thesis@do}
+% \begin{macro}{\tud@thesis@@do}
% \begin{macro}{\tud@thanks}
% Art bzw. Typ der Abschlussarbeit kann \cs{thesis}\marg{Abschlussarbeit}
% angegeben werden und wird im Makro \cs{@thesis} gespeichert. Alternativ
% dazu kann auch der Befehl \cs{subject} verwendet werden. Mit dem Befehl
-% \cs{tud@thesis} wird in den Feldern \@thesis bzw. \@subject nach bestimmten
-% Schlagwörtern für Abschlussarbeiten o.\,ä. gesucht. Wird eines dieser Wörter
-% gefunden, wird der entsprechende reguläre Ausdruck für dieses Feld gesetzt.
-% Zusätzlich wird durch \cs{tud@@thesis} dafür gesorgt, dass gegebenenfalls der
-% Inhalt von \cs{@subject} in \cs{@thesis} verschoben und die entsprechende
-% Option \opt{subjectthesis} gesetzt wird. In \cs{@@thesis} wird die angegebene
-% Abschlussarbeit ohne etwaige Fußnoten gespeichert.
+% \cs{tud@thesis@do} wird in den Feldern \@thesis respektive \@subject nach
+% bestimmten Schlagwörtern für Abschlussarbeiten o.\,ä. gesucht. Wird eines
+% dieser Wörter gefunden, wird der entsprechende reguläre Ausdruck für dieses
+% Feld gesetzt. Zusätzlich wird durch \cs{tud@thesis@@do} dafür gesorgt, dass
+% gegebenenfalls der Inhalt von \cs{@subject} in \cs{@thesis} verschoben und
+% die entsprechende Option \opt{subjectthesis} gesetzt wird. In \cs{@@thesis}
+% wird die angegebene Abschlussarbeit ohne etwaige Fußnoten gespeichert.
% \begin{macrocode}
\newcommand*\@thesis{}
\newcommand*\@@thesis{}
-\newcommand*\thesis[1]{\tud@thesis{thesis}{#1}}
+\newcommand*\thesis[1]{\tud@thesis@do{thesis}{#1}}
\newcommand*\tud@thanks{}
-\newcommand*\tud@thesis[2]{%
+\newcommand*\tud@thesis@do[2]{%
\begingroup%
% \end{macrocode}
% Hier das gleiche wie an anderer Stelle auch schon. Der Inhalt einer eventuell
@@ -255,43 +369,47 @@
\ifstr{#1}{thesis}{\protected@xdef\@@thesis{#2}}{}%
\global\let\@tempa\@tempa%
\endgroup%
- \ifstr{\@tempa}{diss}{\tud@@thesis{#1}{\dissertationname}}{%
- \ifstr{\@tempa}{doctoral}{\tud@@thesis{#1}{\dissertationname}}{%
- \ifstr{\@tempa}{phd}{\tud@@thesis{#1}{\dissertationname}}{%
- \ifstr{\@tempa}{diploma}{\tud@@thesis{#1}{\diplomathesisname}}{%
- \ifstr{\@tempa}{master}{\tud@@thesis{#1}{\masterthesisname}}{%
- \ifstr{\@tempa}{bachelor}{\tud@@thesis{#1}{\bachelorthesisname}}{%
- \ifstr{\@tempa}{student}{\tud@@thesis{#1}{\studentresearchname}}{%
- \ifstr{\@tempa}{project}{\tud@@thesis{#1}{\projectpapername}}{%
- \ifstr{\@tempa}{seminar}{\tud@@thesis{#1}{\seminarpapername}}{%
- \ifstr{\@tempa}{research}{\tud@@thesis{#1}{\researchname}}{%
- \ifstr{\@tempa}{log}{\tud@@thesis{#1}{\logname}}{%
- \ifstr{\@tempa}{report}{\tud@@thesis{#1}{\reportname}}{%
- \ifstr{\@tempa}{internship}{\tud@@thesis{#1}{\internshipname}}{%
- \@namedef{@#1}{#2}%
- }}}}}}}}}}}}}%
+ \ifstr{\@tempa}{diss}{\tud@thesis@@do{#1}{\dissertationname}}{%
+ \ifstr{\@tempa}{doctoral}{\tud@thesis@@do{#1}{\dissertationname}}{%
+ \ifstr{\@tempa}{phd}{\tud@thesis@@do{#1}{\dissertationname}}{%
+ \ifstr{\@tempa}{diploma}{\tud@thesis@@do{#1}{\diplomathesisname}}{%
+ \ifstr{\@tempa}{master}{\tud@thesis@@do{#1}{\masterthesisname}}{%
+ \ifstr{\@tempa}{bachelor}{\tud@thesis@@do{#1}{\bachelorthesisname}}{%
+ \ifstr{\@tempa}{student}{\tud@thesis@@do{#1}{\studentthesisname}}{%
+ \ifstr{\@tempa}{evidence}{\tud@thesis@@do{#1}{\studentresearchname}}{%
+ \ifstr{\@tempa}{project}{\tud@thesis@@do{#1}{\projectpapername}}{%
+ \ifstr{\@tempa}{seminar}{\tud@thesis@@do{#1}{\seminarpapername}}{%
+ \ifstr{\@tempa}{term}{\tud@thesis@@do{#1}{\termpapername}}{%
+ \ifstr{\@tempa}{research}{\tud@thesis@@do{#1}{\researchname}}{%
+ \ifstr{\@tempa}{log}{\tud@thesis@@do{#1}{\logname}}{%
+ \ifstr{\@tempa}{report}{\tud@thesis@@do{#1}{\reportname}}{%
+ \ifstr{\@tempa}{internship}{\tud@thesis@@do{#1}{\internshipname}}{%
+ \csdef{@#1}{#2}%
+ }}}}}}}}}}}}}}}%
}
-\newcommand*\tud@@thesis[2]{%
+\newcommand*\tud@thesis@@do[2]{%
\ifstr{#1}{subject}{%
\ifx\@thesis\@empty\else%
- \ClassWarning{\TUDClassName}{Field `thesis' is overwritten by `subject'}%
+ \ClassWarning{\TUD@Class@Name}{%
+ Field `thesis' is overwritten by `subject'%
+ }%
\fi%
- \TUD@std@ifkey@lock{subjectthesis}{true}%
+ \TUD@std@ifkey@lock{subjectthesis}{@tud@subjectthesis}{true}%
}{%
- \TUD@std@ifkey@lock{subjectthesis}{false}%
+ \TUD@std@ifkey@lock{subjectthesis}{@tud@subjectthesis}{false}%
}%
\ifx\tud@thanks\relax%
\gdef\@thesis{#2}%
\else%
\protected@xdef\@thesis{\noexpand#2\noexpand\thanks{\tud@thanks}}%
\fi%
- \gdef\@@thesis{#2}%
+ \protected@xdef\@@thesis{\trim@spaces{#2}}%
}
-\renewcommand*\subject[1]{\tud@thesis{subject}{#1}}
+\renewcommand*\subject[1]{\tud@thesis@do{subject}{#1}}
% \end{macrocode}
% \end{macro}^^A \tud@thanks
-% \end{macro}^^A \tud@@thesis
-% \end{macro}^^A \tud@thesis
+% \end{macro}^^A \tud@thesis@@do
+% \end{macro}^^A \tud@thesis@do
% \end{field}^^A \@subject
% \end{macro}^^A \subject
% \end{field}^^A \@@thesis
@@ -301,67 +419,71 @@
% \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}{\@graduationabbr}
+% \begin{field}{\@@graduation}
% \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{@graduationabbr}
+% akademischen Grades angegeben werden, wird in \cs{@@graduation}
% gespeichert.
% \begin{macrocode}
\newcommand*\@graduation{}
-\newcommand*\@graduationabbr{}
+\newcommand*\@@graduation{}
\newcommand*\graduation[2][]{%
- \ifxblank{#1}{\gdef\@graduationabbr{}}{\gdef\@graduationabbr{(#1)}}%
+ \ifxblank{#1}{\gdef\@@graduation{}}{\gdef\@@graduation{(#1)}}%
\gdef\@graduation{#2}%
}
% \end{macrocode}
-% \end{field}^^A \@graduationabbr
+% \end{field}^^A \@@graduation
% \end{field}^^A \@graduation
% \end{macro}^^A \graduation
%
% \iffalse
-%</class>
-%<*class|poster>
+%</book|report|article>
% \fi
%
% \begin{macro}{\professor}
% \begin{field}{\@professor}
-% \begin{field}{\@professor@foot}
-% \changes{v2.04}{2015/05/06}{neu}^^A
+% \begin{field}{\@@professor}
+% \changes{v2.05}{2015/07/06}{neu}^^A
% Angabe des verantwortlichen Hochschullehrers für Titel und Aufgabenstellung,
% wird im Makro \cs{@professor} gespeichert.
% \begin{macrocode}
-%<*class>
+%<*book|report|article>
\newcommand*\@professor{}
-\newcommand*\professor[2][]{\gdef\@professor{#2}}
-%</class>
+\newcommand*\professor[1]{\gdef\@professor{#1}}
+%</book|report|article>
%<*poster>
-\newcommand*\@professor@foot{}
-\renewcommand*\professor[2][\@empty]{\tud@foot@line@add{professor}{#2}{#1}}
+\newcommand*\@@professor{}
+\newcommand*\professor[1]{\gdef\@@professor{#1}}
%</poster>
% \end{macrocode}
-% \end{field}^^A \@professor@foot
+% \end{field}^^A \@@professor
% \end{field}^^A \@professor
% \end{macro}^^A \professor
-%
-% \iffalse
-%</class|poster>
-%<*class>
-% \fi
-%
% \begin{macro}{\supervisor}
% \changes{v2.02}{2014/05/16}{erzeugter Eintrag der Betreuer mit
% \cs{supervisor} für Selbstständigkeitserklärung verworfen}^^A
% \begin{field}{\@supervisor}
% (Erst- und Zweit"~)Betreuer bei Abschlussarbeiten, wird in \cs{@supervisor}
-% gespeichert. Mehrere Betreuer werden durch \cs{and} getrennt.
+% gespeichert. Mehrere Betreuer werden durch \cs{and} getrennt. Für Poster kann
+% der Befehl als Äquivalent zu \cs{contactperson} genutzt werden.
% \begin{macrocode}
+%<*book|report|article>
\newcommand*\@supervisor{}
\newcommand*\supervisor[1]{\gdef\@supervisor{#1}}
+%</book|report|article>
+%<*poster>
+\newcommand*\supervisor[1]{}
+%</poster>
% \end{macrocode}
% \end{field}^^A \@supervisor
% \end{macro}^^A \supervisor
+%
+% \iffalse
+%<*book|report|article>
+% \fi
+%
% \begin{macro}{\supporter}
% \changes{v2.02}{2014/05/16}{erzeugter Eintrag der Betreuer mit
% \cs{supervisor} für Selbstständigkeitserklärung verworfen}^^A
@@ -411,7 +533,7 @@
% \begin{macrocode}
\newcommand*\@matriculationnumber{}
\newrobustcmd*\matriculationnumber[1]{%
- \gdef\@matriculationnumber{#1}%
+ \gdef\@matriculationnumber{#1}\ignorespaces%
}
% \end{macrocode}
% \end{field}^^A \@matriculationnumber
@@ -422,7 +544,7 @@
% gespeichert.
% \begin{macrocode}
\newcommand*\@matriculationyear{}
-\newrobustcmd*\matriculationyear[1]{\gdef\@matriculationyear{#1}}
+\newrobustcmd*\matriculationyear[1]{\gdef\@matriculationyear{#1}\ignorespaces}
% \end{macrocode}
% \end{field}^^A \@matriculationyear
% \end{macro}^^A \matriculationyear
@@ -431,52 +553,33 @@
% Der Geburtsort für den Titel wird in \cs{@placeofbirth} gespeichert.
% \begin{macrocode}
\newcommand*\@placeofbirth{}
-\newrobustcmd*\placeofbirth[1]{\gdef\@placeofbirth{#1}}
+\newrobustcmd*\placeofbirth[1]{\gdef\@placeofbirth{#1}\ignorespaces}
% \end{macrocode}
% \end{field}^^A \@placeofbirth
% \end{macro}^^A \placeofbirth
-% \begin{macro}{\publisher}
-% \begin{field}{\@publisher}
-% \changes{v2.02}{2014/07/25}{entfernt}^^A
-% Kleine Korrektur für \KOMAScript, der Befehl sollte im Singular stehen.
-% \begin{macrocode}
-\providecommand*\publisher[1]{\publishers{#1}}
-% \end{macrocode}
-% \end{field}^^A \@publisher
-% \end{macro}^^A \publisher
-% \begin{length}{\tud@signatureskip}
+% \begin{length}{\tud@len@signatureskip}
% \changes{v2.04}{2015/05/06}{neu}^^A
% Für alle Formatvorlagen, welche eine Unterschriftenzeile bereitstellen, wird
% ein einheitlicher Abstand verwendet.
% \begin{macrocode}
-\newlength\tud@signatureskip
-\setlength\tud@signatureskip{15mm plus 10mm minus 10mm}
+\newlength\tud@len@signatureskip
+\setlength\tud@len@signatureskip{8ex plus 6ex minus 6ex}
% \end{macrocode}
-% \end{length}^^A \tud@signatureskip
+% \end{length}^^A \tud@len@signatureskip
% \begin{macro}{\confirmationclosing}
% \begin{field}{\@confirmationclosing}
-% \changes{v2.02}{2014/07/25}{\cs{@@date} durch \cs{@date} ersetzt}^^A
-% \changes{v2.04}{2015/06/10}{Nutzung von \cs{tud@split@author}}^^A
% Als Abschluss der Selbstständigkeitserklärung für Ort und Unterschrift.
% \begin{macrocode}
\newcommand*\@confirmationclosing{%
- \tud@datecheck%
+ \tud@date@check%
\ifx\@date\@empty\else%
\medskip\noindent%
\ifx\@place\@empty\else\@place,\nobreakspace\fi\@date%
\fi%
- \vskip\tud@signatureskip\noindent%
+ \vskip\tud@len@signatureskip\noindent%
\begingroup%
- \let\thanks\@gobble%
- \let\footnote\@gobble%
- \renewcommand*\tud@split@author[2]{%
- \tud@multiple@fields@store{@author}{##1}%
- \ignorespaces##1%
- \tud@multiple@fields@restore{@author}%
- \tud@multiple@@@split{##2}{\hfil}%
- }%
- \tud@multiple@split{@author}%
- \hfil%
+ \let\and\hfil%
+ \@@author\hfil%
\endgroup%
}
\newcommand*\confirmationclosing[1]{\gdef\@confirmationclosing{#1}}
@@ -485,9 +588,9 @@
% \end{macro}^^A \confirmationclosing
% \begin{macro}{\place}
% \begin{field}{\@place}
-% Die Angabe des Ortes mit \cs{place} für die Selbstständigkeitserklärung wird
-% im Makro \cs{@place} gespeichert und standardmäßig mit \enquote{Dresden}
-% gesetzt.
+% Die Angabe des Ortes mit \cs{place} für die Selbstständigkeitserklärung und
+% ggf. das Datum wird im Makro \cs{@place} gespeichert und standardmäßig mit
+% \enquote{Dresden} gesetzt.
% \begin{macrocode}
\newcommand*\@place{Dresden}
\newcommand*\place[1]{\gdef\@place{#1}}
@@ -495,6 +598,48 @@
% \end{field}^^A \@place
% \end{macro}^^A \place
%
+% \iffalse
+%</book|report|article>
+%<*poster>
+% \fi
+%
+% \begin{macro}{\webpage}
+% \changes{v2.05}{2015/07/06}{neu}^^A
+% \begin{field}{\@webpage}
+% \changes{v2.05}{2015/07/06}{neu}^^A
+% \begin{macro}{\tud@webpage@simple}
+% \changes{v2.05}{2016/07/09}{neu}^^A
+% \begin{macro}{\tud@webpage@hyper}
+% \changes{v2.05}{2016/07/09}{neu}^^A
+% Im Fußbereich eines Posters kann zusätzlich eine Web-Seite angegeben werden.
+% \begin{macrocode}
+\newcommand*\@webpage{}
+\newrobustcmd*\webpage{%
+ \kernel@ifstar{\tud@webpage@simple}{\tud@webpage@hyper}%
+}
+\newrobustcmd*\tud@webpage@simple[1]{\gdef\@webpage{#1}}
+\newrobustcmd*\tud@webpage@hyper[2][]{\gdef\@webpage{#2}}
+\AfterPackage{hyperref}{%
+ \renewrobustcmd*\tud@webpage@hyper[2][hidelinks]{%
+ \gdef\@webpage{%
+ \begingroup%
+ \urlstyle{same}%
+ \hypersetup{#1}%
+ \url{#2}%
+ \endgroup%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@webpage@hyper
+% \end{macro}^^A \tud@webpage@simple
+% \end{field}^^A \@webpage
+% \end{macro}^^A \webpage
+%
+% \iffalse
+%</poster>
+% \fi
+%
% \subsection{Datumsfelder}
%
% \begin{macro}{\printdate}
@@ -503,12 +648,12 @@
% diesem Paket gehörende Befehl \cs{printdate} in die Definition der
% eigentlichen Datumsfelder integriert. Sollte das \pkg{isodate}-Paket nicht
% geladen werden, so muss dieser Befehl trotzdem definiert sein.
+% \ToDo{Unterstützung für \pkg{datetime2}}[v2.06]
% \begin{macrocode}
-\newcommand*\printdate[1]{#1}
-\BeforePackage{isodate}{\undef\printdate}
+\TUD@UnwindPackage{isodate}{\providecommand*\printdate[1]{#1}}
% \end{macrocode}
% \end{macro}^^A \printdate
-% \begin{macro}{\tud@printdate}
+% \begin{macro}{\tud@x@isodate@printdate}
% Damit die Datumsfelder definiert werden können und das \pkg{isodate}-Paket
% unterstützen, muss beim Festlegen der Datumsfelder einiges beachtet werden.
% So müssen beispielsweise leere Argumente und Sonderfälle separat betrachtet
@@ -516,7 +661,7 @@
% 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@printdate[2]{%
+\newcommand*\tud@x@isodate@printdate[2]{%
\ifx\today#2\relax%
\gdef#1{#2}%
\else%
@@ -526,62 +671,130 @@
\fi%
}
% \end{macrocode}
-% \end{macro}^^A \tud@printdate
-% \begin{macro}{\tud@datecheck}
+% \end{macro}^^A \tud@x@isodate@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.
% \begin{macrocode}
-\newcommand*\tud@datecheck{%
+\newcommand*\tud@date@check{%
\ifdefvoid{\@duedate}{%
- \ClassWarning{\TUDClassName}{%
- `\string\date' was not given.\MessageBreak%
+ \ClassWarning{\TUD@Class@Name}{%
+ `\string\date' was not given\MessageBreak%
Since a thesis is a self-contained work, an end\MessageBreak%
date should be specified by the author.\MessageBreak%
Nevertheless, today's date is used%
}%
}{%
- \ClassWarning{\TUDClassName}{%
- `\string\date' was not given.\MessageBreak%
+ \ClassWarning{\TUD@Class@Name}{%
+ `\string\date' was not given\MessageBreak%
It's substituted by the given due date%
}%
\global\let\@date\@duedate%
}%
- \global\let\tud@datecheck\relax%
+ \global\let\tud@date@check\relax%
}
% \end{macrocode}
-% \end{macro}^^A \tud@datecheck
+% \end{macro}^^A \tud@date@check
% \begin{macro}{\date}
% \begin{field}{\@date}
-% \begin{field}{\@@date}
-% \changes{v2.02}{2014/07/25}{entfernt}^^A
-% \begin{field}{\@datemore}
+% \begin{macro}{\tud@date@set}
+% \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 als optionales Argument eine Ergänzung angehängt
-% werden~-- beispielsweise als Erklärung für eine verspätete Abgabe aufgrund
-% einer offiziellen Verlängerung der Bearbeitungszeit~-- welche im Feld
-% \cs{@datemore} gespeichert wird. Der originale Standardbefehl für das Datum
-% \cs{date} wird erweitert, das Feld \cs{@@date} wurde entfernt.
-% \begin{macrocode}
-\newcommand*\@datemore{}
-\renewcommand*\date[2][]{%
- \gdef\@datemore{\trim@spaces{#1}}%
- \tud@printdate{\@date}{#2}%
- \global\let\tud@datecheck\relax%
+% 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
+% 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}
+\renewcommand*\date{%
+ \kernel@ifstar{%
+ \TUD@parameter@set{date}{pre=\noexpand\@place{,}}%
+ \tud@date@set%
+ }{\tud@date@set}%
+}
+\newcommand*\tud@date@set[2][]{%
+ \TUD@parameter@set{date}{#1}%
+ \tud@x@isodate@printdate{\@date}{#2}%
+ \global\let\tud@date@check\relax%
}
% \end{macrocode}
-% \end{field}^^A \@datemore
-% \end{field}^^A \@@date
+% \end{macro}^^A \tud@date@set
% \end{field}^^A \@date
% \end{macro}^^A \date
+% \begin{field}{\tud@date@pre}
+% \changes{v2.05}{2016/05/27}{neu}^^A
+% \begin{field}{\tud@date@app}
+% \changes{v2.05}{2016/05/27}{neu}^^A
+% \begin{parameter}{before}
+% \changes{v2.05}{2016/05/27}{neu}^^A
+% \begin{parameter}{after}
+% \changes{v2.05}{2016/05/27}{neu}^^A
+% \begin{parameter}{prefix}
+% \changes{v2.05}{2016/05/27}{neu}^^A
+% \begin{parameter}{suffix}
+% \changes{v2.05}{2016/05/27}{neu}^^A
+% \begin{parameter}{pre}
+% \changes{v2.05}{2016/05/27}{neu}^^A
+% \begin{parameter}{app}
+% \changes{v2.05}{2016/05/27}{neu}^^A
+% \begin{parameter}{place}
+% \changes{v2.05}{2016/05/27}{neu}^^A
+% \begin{macrocode}
+\newcommand*\tud@date@pre{}
+\newcommand*\tud@date@app{}
+\TUD@parameter@family{date}{%
+ \TUD@parameter@def{before}{\def\tud@date@pre{#1}}%
+ \TUD@parameter@let{pre}{before}%
+ \TUD@parameter@let{prefix}{before}%
+ \TUD@parameter@def{after}{\def\tud@date@app{#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@handler@value{after}%
+}
+% \end{macrocode}
+% \end{parameter}^^A place
+% \end{parameter}^^A app
+% \end{parameter}^^A pre
+% \end{parameter}^^A suffix
+% \end{parameter}^^A prefix
+% \end{parameter}^^A after
+% \end{parameter}^^A before
+% \end{field}^^A \tud@date@app
+% \end{field}^^A \tud@date@pre
+% \begin{macro}{\tud@date@print}
+% \changes{v2.05}{2016/05/27}{neu}^^A
+% Mit diesem Makro erfolgt die eigentliche Ausgabe des Datums und ggf. der
+% optionalen Ergänzungen.
+% \begin{macrocode}
+\newcommand*\tud@date@print{%
+ \ifx\@date\@empty\else%
+ \ifx\tud@date@pre\@empty\else%
+ \expandafter\trim@spaces\expandafter{\tud@date@pre}\nobreakspace%
+ \fi%
+ \@date%
+ \ifx\tud@date@app\@empty\else%
+ \nobreakspace\expandafter\trim@spaces\expandafter{\tud@date@app}%
+ \fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@date@print
+%
+% \iffalse
+%<*book|report|article>
+% \fi
+%
% \begin{macro}{\defensedate}
% \begin{field}{\@defensedate}
% Das Verteidigungsdatum erscheint auf dem Titel und wird in \cs{@defensedate}
% gespeichert.
% \begin{macrocode}
\newcommand*\@defensedate{}
-\newcommand*\defensedate[1]{\tud@printdate{\@defensedate}{#1}}
+\newcommand*\defensedate[1]{\tud@x@isodate@printdate{\@defensedate}{#1}}
% \end{macrocode}
% \end{field}^^A \@defensedate
% \end{macro}^^A \defensedate
@@ -591,15 +804,165 @@
% gespeichert.
% \begin{macrocode}
\newcommand*\@dateofbirth{}
-\newrobustcmd*\dateofbirth[1]{\tud@printdate{\@dateofbirth}{#1}}
+\newrobustcmd*\dateofbirth[1]{%
+ \tud@x@isodate@printdate{\@dateofbirth}{#1}\ignorespaces%
+}
% \end{macrocode}
% \end{field}^^A \@dateofbirth
% \end{macro}^^A \dateofbirth
+%
+% \iffalse
+%</book|report|article>
+%</class&!manual>
+%<*package&supervisor|class&manual>
+% \fi
+%
+% \subsection{Felder für \pkg{tudscrsupervisor} und \cls{tudscrposter}}
+%
+% Die beiden genanntent Pakete stellen einige weitere Felder bereit bzw.
+% erweitern deren Funktionalitäten.
+%
+% \begin{macro}{\chairman}
+% \begin{field}{\@chairman}
+% Angabe des Prüfungsausschussvorsitzenden für die Aufgabenstellung, wird im
+% Makro \cs{@chairman} gespeichert.
+% \begin{macrocode}
+\newcommand*\@chairman{}
+\newcommand*\chairman[1]{\gdef\@chairman{#1}}
+% \end{macrocode}
+% \end{field}^^A \@chairman
+% \end{macro}^^A \chairman
+% \begin{macro}{\grade}
+% \begin{field}{\@grade}
+% \begin{field}{\@headline}
+% Die Befehle dienen zum Abspeichern der entsprechenden Parameter innerhalb
+% der neu definierten Umgebungen aus dem Paket \pkg{tudscrsupervisor}.
+% \begin{macrocode}
+\newcommand*\@grade{}
+\newcommand*\grade[1]{\gdef\@grade{#1}}
+\newcommand*\@headline{}
+% \end{macrocode}
+% \end{field}^^A \@headline
+% \end{field}^^A \@grade
+% \end{macro}^^A \grade
+% \begin{macro}{\issuedate}
+% \begin{field}{\@issuedate}
+% Angabe des Anfangsdatums für die Aufgabenstellung, wird im Makro
+% \cs{@issuedate} gespeichert.
+% \begin{macrocode}
+\newcommand*\@issuedate{}
+\newcommand*\issuedate[1]{\tud@x@isodate@printdate{\@issuedate}{#1}}
+% \end{macrocode}
+% \end{field}^^A \@issuedate
+% \end{macro}^^A \issuedate
+% \begin{macro}{\duedate}
+% \begin{field}{\@duedate}
+% Angabe des geplanten Abgabedatums für die Aufgabenstellung, wird im Makro
+% \cs{@duedate} gespeichert.
+% \begin{macrocode}
+\newcommand*\@duedate{}
+\newcommand*\duedate[1]{\tud@x@isodate@printdate{\@duedate}{#1}}
+\newcommand*\finaldate{}
+\newcommand*\maturitydate{}
+% \end{macrocode}
+% \end{field}^^A \@duedate
+% \end{macro}^^A \duedate
+%
+% \iffalse
+%</package&supervisor|class&manual>
+%<*class&poster|package&supervisor|class&manual>
+% \fi
+%
+% Einige Befehle werden nur definiert, falls das Paket nicht mit der Klasse
+% \cls{tudscrposter} verwendet wird -- was allerdings nicht sinnvoll ist.
+% \begin{macrocode}
+%<*supervisor>
+\@ifclassloaded{tudscrposter}{\@tempswafalse}{\@tempswatrue}
+\if@tempswa
+%</supervisor>
+% \end{macrocode}
+% \begin{macro}{\contactperson}
+% \changes{v2.02}{2014/05/16}{neu, Makro \cs{contact} umbenannt}^^A
+% \begin{field}{\@contactperson}
+% \changes{v2.02}{2014/05/16}{neu, Makro \cs{@contact} umbenannt}^^A
+% \begin{macro}{\office}
+% \begin{field}{\@office}
+% \begin{macro}{\telephone}
+% \changes{v2.02}{2014/05/16}{neu, Umbenennung des Makros \cs{phone}}^^A
+% \begin{field}{\@telephone}
+% \changes{v2.02}{2014/05/16}{neu, Umbenennung des Makros \cs{@phone}}^^A
+% \begin{macro}{\telefax}
+% \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.
+% \begin{macrocode}
+\newcommand*\@contactperson{}
+\newcommand*\contactperson[1]{\gdef\@contactperson{#1}}
+%<*poster>
+\let\supervisor\contactperson
+%</poster>
+\newcommand*\@office{}
+\newrobustcmd*\office[1]{\gdef\@office{#1}}
+\newcommand*\@telephone{}
+\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
+% \end{macro}^^A \telephone
+% \end{field}^^A \@office
+% \end{macro}^^A \office
+% \end{field}^^A \@contactperson
+% \end{macro}^^A \contactperson
+%
+% \iffalse
+%</class&poster|package&supervisor|class&manual>
+%<*!manual>
+%<*class>
+% \fi
+%
+% \subsection{Prozessieren von Feldern}
+%
+% Einige Felder sind darauf ausgelegt, dass deren kommagetrennte Inhalte
+% einzeln abgearbeitet und ausgewertet werden können. Die folgenden Makros
+% übernehmen diese Aufgabe.
% \begin{macro}{\tud@multiple@split}
% \begin{macro}{\tud@multiple@@split}
% \begin{macro}{\tud@multiple@@@split}
-% \begin{macro}{\tud@multiple@field}
-% \changes{v2.04}{2015/05/12}{entfernt}^^A
% Für Felder, die mehrere Personen~-- getrennt durch \cs{and}~-- beinhalten
% können und für die zusätzliche Angaben durch die Verwendung weiterer Makros
% innerhalb des Feldbefehlargumentes möglich sind, werden diese Befehle zum
@@ -612,17 +975,19 @@
% Ausgabe das entsprechende Makro \cs{tud@split\meta{Feld}} und zum anderen
% eine Liste der auszuwertenden lokalen Angaben \cs{tud@split\meta{Feld}@list}
% definiert sein. Momentan werden die beiden Felder \cs{@author} und~-- für die
-% Pakete \pkg{tudscrsupervisor} sowie \pkg{tudscrposter}~-- \cs{@contactperson}
-% zur Angabe zusätzlicher Informationen unterstützt.
+% Klasse \cls{tudscrposter} sowie das Paket Pakete \pkg{tudscrsupervisor}~--
+% \cs{@contactperson} zur Angabe zusätzlicher Informationen unterstützt.
% \begin{macrocode}
-\newcommand*\tud@multiple@@split{}%
+\newcommand*\tud@multiple@@split{}
\newcommand*\tud@multiple@split[1]{%
% \end{macrocode}
% Sollte ein Feld verwendet werden, welches initial eine Fehlermeldung enthält,
% so die vorhandene Warnung ausgegeben und danach das Feld als leer definiert.
% \begin{macrocode}
\expandafter\ifpatchable\expandafter{\csname#1\endcsname}{%
- \@latex@warning@no@line}{\csuse{#1}\csgdef{#1}{}%
+ \@latex@warning@no@line%
+ }{%
+ \csuse{#1}\csgdef{#1}{}%
}{}%
% \end{macrocode}
% Das Makro \cs{tud@multiple@@split} wird so definiert, dass der Befehl
@@ -633,10 +998,12 @@
% im ersten Argument und die restlichen im zweiten Argument übergeben.
% \begin{macrocode}
\def\tud@multiple@@split##1\and##2\relax{%
- \expandafter\csname tud@split#1\endcsname{##1}{##2}%
+ \expandafter\csname tud@split#1@do\endcsname{##1}{##2}%
}%
\begingroup%
\let\and\relax%
+ \def\newline{}%
+ \def\\{}%
% \end{macrocode}
% Das Feld wird mit \cs{and} terminiert, um der Definition von
% \cs{tud@multiple@@split} in jedem Fall zu entsprechen.
@@ -662,7 +1029,6 @@
\@tempb%
}
% \end{macrocode}
-% \end{macro}^^A \tud@multiple@field
% \end{macro}^^A \tud@multiple@@@split
% \end{macro}^^A \tud@multiple@@split
% \end{macro}^^A \tud@multiple@split
@@ -670,8 +1036,6 @@
% \changes{v2.04}{2015/05/12}{neu}^^A
% \begin{macro}{\tud@multiple@fields@restore}
% \changes{v2.04}{2015/05/12}{neu}^^A
-% \begin{macro}{\tud@multiple@setfields}
-% \changes{v2.04}{2015/05/12}{entfernt}^^A
% Mit \cs{tud@multiple@fields@store} und \cs{tud@multiple@fields@restore}
% werden zwei Hilfsmakros definiert, um einzelne Feldinhalte lokal ändern und
% nach der Verarbeitung auf den ursprünglichen Wert zurücksetzen zu können.
@@ -684,13 +1048,10 @@
% zu erzeugen.
% \begin{macrocode}
\newcommand*\tud@multiple@fields@store[2]{%
- \letcs\@tempa{tud@split#1@list}%
+ \def\@tempa##1{\ifcsdef{@##1}{\tud@cmd@store{@##1}}{}}%
+ \letcs\@tempb{tud@split#1@list}%
\let\and\relax%
- \@for\@tempb:=\@tempa\do{%
- \ifx\@tempb\@empty\else%
- \ifcsdef{@\@tempb}{\tud@cmd@store{@\@tempb}}{}%
- \fi%
- }%
+ \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}%
\begingroup%
\let\thanks\@gobble%
\let\footnote\@gobble%
@@ -702,261 +1063,117 @@
% bestehenden Feldwerte zurückgesetzt.
% \begin{macrocode}
\newcommand*\tud@multiple@fields@restore[1]{%
- \letcs\@tempa{tud@split#1@list}%
- \let\and\relax%
- \@for\@tempb:=\@tempa\do{%
- \ifx\@tempb\@empty\else%
- \ifcsdef{@\@tempb}{%
- \tud@cmd@restore{@\@tempb}%
- \global\csletcs{@\@tempb}{@\@tempb}%
- }{}%
- \fi%
+ \def\@tempa##1{%
+ \ifcsdef{@##1}{%
+ \tud@cmd@restore{@##1}%
+ \global\csletcs{@##1}{@##1}%
+ }{}%
}%
+ \letcs\@tempb{tud@split#1@list}%
+ \let\and\relax%
+ \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}%
}
% \end{macrocode}
-% \end{macro}^^A \tud@multiple@setfields
% \end{macro}^^A \tud@multiple@fields@restore
% \end{macro}^^A \tud@multiple@fields@store
-% Auf der Titelseite sowie für die Aufgabenstellung \pkg{tudscrsupervisor} und
-% den Seitenfuß von Postern (\pkg{tudscrposter}) wird die Angabe einer
+% \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.
+% \begin{macrocode}
+\newcommand*\tud@multiple@fields@preset[3]{%
+ \def\@tempa##1{%
+ \edef\@tempc{\csuse{##1}}%
+ \ifstr{#2}{*}{%
+ \csdef{@##1}{}%
+ }{%
+ \begingroup%
+ \protected@expandtwoargs\in@{\@tempc}{\csuse{#1}}%
+ \ifin@%
+ \ifcsvoid{@##1}{\@tempc{#2}}{}%
+ \fi%
+ \endgroup%
+ }%
+ }%
+ \letcs\@tempb{tud@split#1@list}%
+ \let\and\relax%
+ \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}%
+ \begingroup%
+ \let\thanks\@gobble%
+ \let\footnote\@gobble%
+ \sbox\z@{#3}%
+ \endgroup%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@multiple@fields@preset
+%
+% \iffalse
+%</class>
+% \fi
+%
+% Auf der Titelseite sowie für die Aufgabenstellung (\pkg{tudscrsupervisor})
+% und den Seitenfuß von Postern (\cls{tudscrposter}) wird die Angabe einer
% kollaborativen Autorenschaft ermöglicht, wo für jeden einzelnen Autor weitere
% Angaben (Matrikelnummer etc.) gemacht werden können. Hierfür werden die
% folgenden Makros bereitgestellt.
-% \begin{macro}{\tud@split@author}
+% \begin{macro}{\tud@split@author@do}
% \changes{v2.02}{2014/07/25}{neu, aus Umbenennung \cs{tud@split@@author}}^^A
% \begin{macro}{\tud@split@author@list}
% \changes{v2.02}{2014/07/25}{neu, Umbenennung \cs{tud@split@@author@list}}^^A
-% Der Befehl \cs{tud@split@author} wird hier als Dummy initialisiert und an der
-% entsprechenden Stelle umdefiniert. Dies betrifft in den Klassen den Titel
-% sowie die Aufgabenstellung in der Umgebung \env{task} und den Seitenfuß bei
-% Postern.
+% \begin{macro}{\tud@split@contactperson@do}
+% \changes{v2.05}{2015/07/06}{neu}^^A
+% \begin{macro}{\tud@split@contactperson@list}
+% \changes{v2.05}{2015/07/06}{neu}^^A
+% Die Befehle \cs{tud@split@author@do} und \cs{tud@split@contactperson@do}
+% werden zunächst jeweils als Dummy initialisiert und an den entsprechenden
+% Stellen umdefiniert. Dies betrifft den Titel, die Aufgabenstellung und den
+% Aushang in den Umgebungen \env{task} und \env{notice} sowie den Seitenfuß bei
+% Postern. Im Makro \cs{tud@split@author@list} werden alle Felder hinterlegt,
+% die durch \cs{tud@multiple@fields@\dots} geprüft und ggf. initialisiert
+% werden sollen.
%
-% Innerhalb von \cs{tud@split@author@list} werden die Feldbefehle hinterlegt,
-% die durch \cs{tud@multiple@fields@\dots} geprüft und ggf. initialisiert
-% werden sollen.
+% Für die Angabe mehrerer Kontaktpersonen im Posterfuß (\cls{tudscrposter})
+% oder auf einem Aushang (\pkg{tudscrsupervisor}) wird äquivalent verfahren.
% \begin{macrocode}
-\newcommand*\tud@split@author[2]{}
+%<*class>
+\newcommand*\tud@split@author@do[2]{}
+%<*book|report|article>
\newcommand*\tud@split@author@list{%
- authormore,matriculationyear,enrolmentyear,%
+ authormore,course,discipline,%
+ matriculationyear,enrolmentyear,%
matriculationnumber,studentid,matriculationid,%
placeofbirth,birthplace,dateofbirth,birthday,%
}
+%</book|report|article>
% \end{macrocode}
-% \end{macro}^^A \tud@split@author@list
-% \end{macro}^^A \tud@split@author
-%
-% \iffalse
-%</class>
-%<*supervisor>
-% \fi
-%
-%
-% \subsection{Felder für \pkg{tudscrsupervisor} und \pkg{tudscrposter}}
-%
-% Die beiden genanntent Pakete stellen einige weitere Felder bereit bzw.
-% erweitern deren Funktionalitäten.
-%
-% \begin{macro}{\course}
-% \begin{field}{\@course}
-% Studiengang für den Kopf der Aufgabenstellung, wird im Makro \cs{@course}
-% gespeichert.
-% \begin{macrocode}
-\newcommand*\@course{}
-\newrobustcmd*\course[1]{\gdef\@course{#1}}
-% \end{macrocode}
-% \end{field}^^A \@course
-% \end{macro}^^A \course
-% \begin{macro}{\discipline}
-% \changes{v2.02}{2014/05/16}{neu, von \cs{branch} umbenannt}^^A
-% \begin{field}{\@discipline}
-% \changes{v2.02}{2014/05/16}{neu, von \cs{@branch} umbenannt}^^A
-% Studienrichtung bzw. Fachrichtung für den Kopf der Aufgabenstellung, wird
-% im Makro \cs{@discipline} gespeichert.
-% \begin{macrocode}
-\newcommand*\@discipline{}
-\newrobustcmd*\discipline[1]{\gdef\@discipline{#1}}
-% \end{macrocode}
-% \end{field}^^A \@discipline
-% \end{macro}^^A \discipline
-% \begin{macro}{\chairman}
-% \begin{field}{\@chairman}
-% Angabe des Prüfungsausschussvorsitzenden für die Aufgabenstellung, wird im
-% Makro \cs{@chairman} gespeichert.
-% \begin{macrocode}
-\newcommand*\@chairman{}
-\newcommand*\chairman[1]{\gdef\@chairman{#1}}
-% \end{macrocode}
-% \end{field}^^A \@chairman
-% \end{macro}^^A \chairman
-% \begin{macro}{\grade}
-% \begin{field}{\@grade}
-% \begin{field}{\@headline}
-% Die Befehle dienen zum Abspeichern der entsprechenden Parameter innerhalb
-% der neu definierten Umgebungen aus dem Paket \pkg{tudscrsupervisor}.
-% \begin{macrocode}
-\newcommand*\@grade{}
-\newcommand*\grade[1]{\gdef\@grade{#1}}
-\newcommand*\@headline{}
-% \end{macrocode}
-% \end{field}^^A \@headline
-% \end{field}^^A \@grade
-% \end{macro}^^A \grade
-% \begin{macro}{\issuedate}
-% \begin{field}{\@issuedate}
-% Angabe des Anfangsdatums für die Aufgabenstellung, wird im Makro
-% \cs{@issuedate} gespeichert.
-% \begin{macrocode}
-\newcommand*\@issuedate{}
-\newcommand*\issuedate[1]{\tud@printdate{\@issuedate}{#1}}
-% \end{macrocode}
-% \end{field}^^A \@issuedate
-% \end{macro}^^A \issuedate
-% \begin{macro}{\duedate}
-% \begin{field}{\@duedate}
-% Angabe des geplanten Abgabedatums für die Aufgabenstellung, wird im Makro
-% \cs{@duedate} gespeichert.
-% \begin{macrocode}
-\newcommand*\@duedate{}
-\newcommand*\duedate[1]{\tud@printdate{\@duedate}{#1}}
-\newcommand*\finaldate{}
-\newcommand*\maturitydate{}
-% \end{macrocode}
-% \end{field}^^A \@duedate
-% \end{macro}^^A \duedate
-%
-% \iffalse
-%</supervisor>
-%<*supervisor|poster>
-% \fi
-%
-% \begin{macrocode}
-\@ifpackageloaded{%
-%<supervisor> tudscrposter%
-%<poster> tudscrsupervisor%
-}{}{%
-% \end{macrocode}
-% \begin{macro}{\contactperson}
-% \changes{v2.02}{2014/05/16}{neu, \cs{contact} umbenannt}^^A
-% \begin{field}{\@contactperson}
-% \changes{v2.02}{2014/05/16}{neu, \cs{@contact} umbenannt}^^A
-% \begin{macro}{\office}
-% \begin{field}{\@office}
-% \begin{macro}{\telephone}
-% \changes{v2.02}{2014/05/16}{neu, \cs{phone} umbenannt}^^A
-% \begin{field}{\@telephone}
-% \changes{v2.02}{2014/05/16}{neu, \cs{@phone} umbenannt}^^A
-% \begin{macro}{\emailaddress}
-% \changes{v2.02}{2014/05/16}{neu, \cs{email} umbenannt}^^A
-% \begin{field}{\@emailaddress}
-% \changes{v2.02}{2014/05/16}{neu, \cs{@email} umbenannt}^^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.
-% \begin{macrocode}
- \newcommand*\@contactperson{}
- \newcommand*\contactperson[1]{\gdef\@contactperson{#1}}
- \newcommand*\@office{}
- \newrobustcmd*\office[1]{\gdef\@office{#1}}
- \newcommand*\@telephone{}
- \newrobustcmd*\telephone[1]{\gdef\@telephone{#1}}
- \newcommand*\@emailaddress{}
- \newrobustcmd*\emailaddress[2][]{\gdef\@emailaddress{#2}}
- \AfterPackage*{hyperref}{%
- \renewrobustcmd*\emailaddress[2][hidelinks]{%
- \gdef\@emailaddress{%
- \begingroup%
- \hypersetup{#1}%
- \href{mailto:#2}{#2}%
- \endgroup%
- }%
- }%
- }%
-% \end{macrocode}
-% \end{field}^^A \@emailaddress
-% \end{macro}^^A \emailaddress
-% \end{field}^^A \@telephone
-% \end{macro}^^A \telephone
-% \end{field}^^A \@office
-% \end{macro}^^A \office
-% \end{field}^^A \@contactperson
-% \end{macro}^^A \contactperson
-% \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.
-% \begin{macrocode}
- \newcommand*\tud@multiple@fields@preset[3]{%
- \letcs\@tempa{tud@split#1@list}%
- \let\and\relax%
- \@for\@tempb:=\@tempa\do{%
- \ifx\@tempb\@empty\else%
- \edef\@tempc{\@nameuse{\@tempb}}%
- \ifstr{#2}{*}{%
- \@namedef{@\@tempb}{}%
- }{%
- \begingroup%
- \protected@expandtwoargs\in@{\@tempc}{\@nameuse{#1}}%
- \ifin@%
- \ifcsempty{@\@tempb}{\@tempc{#2}}{}%
- \fi%
- \endgroup%
- }%
- \fi%
- }%
- \begingroup%
- \let\thanks\@gobble%
- \let\footnote\@gobble%
- \sbox\z@{#3}%
- \endgroup%
- }%
-% \end{macrocode}
-% \end{macro}^^A \tud@multiple@fields@preset
-% \begin{macro}{\tud@split@contactperson}
-% \changes{v2.04}{2015/05/12}{neu}^^A
-% \begin{macro}{\tud@split@contactperson@list}
-% \changes{v2.04}{2015/05/12}{neu}^^A
-% Mit diesen Befehlen werden für einen Aushang die Daten für einen oder mehrere
-% Kontaktpersonen ausgegeben.
-% \begin{macrocode}
- \newcommand*\tud@split@contactperson[2]{}
- \newcommand*\tud@split@contactperson@list{office,telephone,emailaddress}
-% \end{macrocode}
-% \end{macro}^^A \tud@split@contactperson@list
-% \end{macro}^^A \tud@split@contactperson
-% Damit sind alle Felder für die Pakete definiert.
+% Der Befehl \cs{tud@split@author@list} für die Klasse \cls{tudscrposter}.
% \begin{macrocode}
+%<*poster>
+\newcommand*\tud@split@author@list{%
+ authormore,course,discipline,office,telephone,telefax,emailaddress%
}
+%</poster>
+%</class>
+%<*class&poster|package&supervisor>
+\newcommand*\tud@split@contactperson@do[2]{}
+\newcommand*\tud@split@contactperson@list{office,telephone,telefax,emailaddress}
+%</class&poster|package&supervisor>
% \end{macrocode}
-%
-% \iffalse
-%</supervisor|poster>
-%<*poster>
-% \fi
-%
-% \begin{macro}{\webpage}
-% \changes{v2.04}{2015/05/13}{neu}^^A
-% \begin{field}{\@webpage}
-% \changes{v2.04}{2015/05/13}{neu}^^A
-% Im Fußbereich eines Posters kann zusätzlich eine Web-Seite angegeben werden.
+% Damit ist der Teil für das Paket \pkg{tudscrsupervisor} abgeschlossen, wo
+% bei der Verwendung von \cls{tudscrposter} die vorhergenden Befehle nicht
+% definiert werden, beendet.
% \begin{macrocode}
-\newcommand*\@webpage{}
-\newcommand*\webpage[2][]{\gdef\@webpage{#2}}
-\AfterPackage*{hyperref}{%
- \renewcommand*\webpage[2][hidelinks]{%
- \gdef\@webpage{%
- \begingroup%
- \hypersetup{#1}%
- \href{#2}{#2}%
- \endgroup%
- }%
- }%
-}%
+%<*package&supervisor>
+\fi
+%</package&supervisor>
% \end{macrocode}
-% \end{field}^^A \@webpage
-% \end{macro}^^A \webpage
+% \end{macro}^^A \tud@split@contactperson@list
+% \end{macro}^^A \tud@split@contactperson@do
+% \end{macro}^^A \tud@split@author@list
+% \end{macro}^^A \tud@split@author@do
%
% \iffalse
-%</poster>
+%</!manual>
% \fi
%
% \Finale
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx
index c89b94151c4..940d1c81e2d 100644
--- a/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{1323}
+% \CheckSum{1266}
% \iffalse meta-comment
%
% ============================================================================
@@ -18,13 +18,13 @@
%
% ----------------------------------------------------------------------------
%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
-% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
-% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
-% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
-% oder spaeter 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.
+% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
+% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
+% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
+% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
+% oder spaeter 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.
%
% ============================================================================
%
@@ -51,28 +51,24 @@
%<*driver>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\ProvidesFile{tudscr-fonts.dtx}[%
- 2015/11/29 v2.04c TUD-KOMA-Script\space%
+ 2016/07/15 v2.05 TUD-KOMA-Script\space%
%</driver>
-%<package&identify>\NeedsTeXFormat{LaTeX2e}
-%<package&identify>\ProvidesPackage{%
-%<package&identify&!fontsizes> tudscrfonts%
-%<package&identify&fontsizes> tudscrfontsizes%
-%<package&identify>}[%
+%<package&identify>\ProvidesPackage{tudscrfonts}[%
%<*driver|package&identify>
-%!TUDVersion
-%<package> package
-%<!fontsizes> (corporate design fonts)%
-%<fontsizes> (creatings fontsize files)%
+%!TUD@Version
+%<package> package (corporate design fonts)%
]
%</driver|package&identify>
%<*driver>
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
-\documentclass[english,ngerman]{tudscrdoc}
+\documentclass[english,ngerman,xindy]{tudscrdoc}
\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{tudscrfonts} % only load this package, if the fonts are installed
\KOMAoptions{parskip=half-}
+\usepackage{microtype}
+\usepackage{bookmark}
\CodelineIndex
\RecordChanges
\GetFileInfo{tudscr-fonts.dtx}
@@ -85,9 +81,9 @@
%
% \selectlanguage{ngerman}
%
-% \changes{v2.02}{2014/06/23}{Unterstützung für \pkg{titlepage} entfernt}^^A
-% \changes{v2.02}{2014/07/08}{Optionen nutzen \cs{FamilyKeyState}}^^A
-% \changes{v2.02}{2014/08/29}{Verwendung von \pkg{mweights} entfernt}^^A
+% \changes{v2.02}{2014/06/23}{Paket \pkg{titlepage} nicht weiter unterstützt}^^A
+% \changes{v2.02}{2014/07/08}{\cs{FamilyKeyState} wird von Optionen genutzt}^^A
+% \changes{v2.02}{2014/08/29}{Verwendung von \pkg{mweights} unnötig}^^A
% \changes{v2.02}{2014/08/29}{Unterstützung für \pkg{fontspec}}^^A
% \changes{v2.04}{2015/02/27}{Interaktion mit Paketen insbesondere für
% den Mathematiksatz verbessert}^^A
@@ -96,25 +92,24 @@
%
% \section{Schriften des \CDs}
%
-% Für das \CD der Technischen Universität Dresden werden die Schriften Univers
-% und DIN"~Bold zwingend benötigt. Zur fehlerfreien Verwendung dieser Klassen
-% sollten diese bitte installiert werden. Hier werden die \LaTeX-Befehle zur
-% Verwendung der Schriften im Dokument definiert. Sollen nur kurze Passagen in
-% einer anderen Schrift als der restliche Text gesetzt werden, so sollten
-% anstatt der einfachen Schalter wie beispielsweise \cs{univ\dots} besser die
-% Befehle \cs{text\dots}\marg{Auszeichnungstext} verwendet werden.
+% Für das \CD der Technischen Universität Dresden werden die Schriften \Univers
+% und \DIN benötigt. Zur fehlerfreien Verwendung dieser Klassen sollten diese
+% bitte installiert werden. Hier werden die \LaTeX-Befehle zur Verwendung der
+% Schriften im Dokument definiert. Sollen nur kurze Passagen in einer anderen
+% Schrift als der restliche Text gesetzt werden, so sollten anstatt der
+% einfachen Schalter wie beispielsweise \cs{univ\dots} besser die Befehle
+% \cs{text\dots}\marg{Auszeichnungstext} verwendet werden.
%
% Die Schriften des \CDs können nicht nur mit den \TUDScript-Klassen sondern
% auch mit anderen \LaTeX-Dokumentklassen verwendet werden. Hierfür wird das
% Paket \pkg{tudscrfonts} bereitgestellt. Damit kann auf die Installtion der
% Schriftfamilien für die alten Klassen verzichtet werden. Im Vergleich zu
% dieser Installation werden dabei fehlende Glyphen ergänzt und Probleme beim
-% Kerning behoben.
+% Kerning behoben.
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \StopEventually{\PrintIndex\PrintChanges\PrintToDos}
%
% \iffalse
-%<*!fontsizes>
%<*class&option>
% \fi
%
@@ -122,7 +117,7 @@
%
% \begin{macrocode}
\PreventPackageFromLoading[%
- \ClassWarning{\TUDClassName}{%
+ \ClassWarning{\TUD@Class@Name}{%
The package `tudscrfonts' must not be used with\MessageBreak%
a TUD-KOMA-Script class%
}%
@@ -135,18 +130,39 @@
% \fi
%
% Sollte keine \KOMAScript-Klasse genutzt werden, wird zusätzlich das Paket
-% \pkg{scrextend} benötigt. Das Paket \pkg{trimspaces} ist für die alternative
-% Schriftauswahl mit \cs{cdfont} bzw. \cs{textcdfont} notwendig.
+% \pkg{scrextend} benötigt.
% \begin{macrocode}
-\ifcsname KOMAClassName\endcsname\else%
- \RequirePackage{scrextend}[2013/12/19]%
+\ifcsname KOMAClassName\endcsname\else
+ \RequirePackage{scrextend}[2013/12/19]
\fi
-\RequirePackage{trimspaces}[2009/09/17]
+% \end{macrocode}
+% Wird das Paket \pkg{tudscrfonts} nach einer der Klassen verwendet, welche die
+% veralteten Schriftfamilien für \Univers und \DIN definieren, so wird eine
+% Warnung mit dem Hinweis auf das Paket \pkg{fix-tudscrfonts} ausgegeben.
+% \begin{macrocode}
+\@tempswafalse%
+\@for\@tempa:={%
+ tudbook,tudbeamer,tudfax,tudform,tudhaus,tudletter,%
+ tudposter,tudmathposter,tudscrbookold,tudscrreprtold,tudscrartclold%
+}\do{%
+ \@ifclassloaded{\@tempa}{%
+ \if@tempswa\else\@tempswatrue\let\@tempb\@tempa\fi%
+ }{}%
+}%
+\if@tempswa%
+ \@ifpackageloaded{fix-tudscrfonts}{}{%
+ \PackageWarning{tudscrfonts}{%
+ As you loaded class `\@tempb', you should\MessageBreak%
+ load `fix-tudscrfonts' before the class\MessageBreak%
+ with `\string\RequirePackage'%
+ }%
+ }%
+\fi%
% \end{macrocode}
%
% \iffalse
%</package&identify>
-%<*(class|package)&option>
+%<*option>
% \fi
%
% \subsection{Schriftauswahl im \TUDScript-Bundle}
@@ -160,987 +176,260 @@
% Installation der PostScript"=Schriften gut funktioniert, ist diese Variante
% zu bevorzugen. Trotzdem werden beide Varianten, die Schriftfamilie des \CDs
% für den Fließtext und die Überschriften zu verwenden, angeboten.
-% \begin{option}{fontspec}
-% \changes{v2.02}{2014/08/29}{neu}^^A
-% \begin{macro}{\if@tud@fontspec}
+%
+% \begin{macro}{\if@tud@x@fontspec@enabled}
% \changes{v2.02}{2014/08/29}{neu}^^A
+% Wird das Paket \pkg{fontspec} durch den Nutzer geladen, wird der passende
+% Schlüssel gesetzt und die Schrifteinstellungen erfolgen mit den dazugehörigen
+% Befehlen. Dies wurde in früheren Versionen mit der Option \opt{fontspec}
+% realisiert, die auch weiterhin bereitgehalten wird. Deshalb muss der Schalter
+% bereits vor der Abarbeitung der Optionen definiert werden.
+% \begin{macrocode}
+\newif\if@tud@x@fontspec@enabled
+\AfterPackage*{fontspec}{\@tud@x@fontspec@enabledtrue}
+% \end{macrocode}
+% \end{macro}^^A \if@tud@x@fontspec@enabled
+%
+% \iffalse
+%</option>
+%<*body>
+% \fi
+%
+% \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}{\tud@univers}
-% \begin{macro}{\tud@dinbold}
-% \begin{macro}{\tud@mathenc}
-% \changes{v2.04}{2015/02/19}{entfernt}^^A
-% Mit der Option \opt{fontspec} kann die explizite Verwendung des Paketes
-% \pkg{fontspec} aktiviert werden. Alternativ kann das Paket auch durch den
-% Nutzer selbst geladen werden. Zu Beginn werden Schalter und Hilfsmakros
-% definiert.
+% \begin{macro}{\if@tud@dinboldmath}
+% \changes{v2.05}{2015/12/14}{neu}^^A
+% Zu Beginn werden Schalter und Hilfsmakros definiert.
% \begin{macrocode}
-\newif\if@tud@univers
-\newif\if@tud@dinbold
\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}
-% Hier kommt die eigentliche Option.
-% \begin{macrocode}
-\newif\if@tud@fontspec
-\TUD@key{fontspec}[true]{%
-%<*class>
- \ClassWarning{\TUDClassName}%
-%</class>
-%<*package>
- \PackageWarning{tudscrfonts}
-%</package>
- {%
- The option key `fontspec' is deprecated.\MessageBreak%
- You should load the package `fontspec' manually%
- }%
- \TUD@set@ifkey{fontspec}{@tud@fontspec}{#1}%
-}
-% \end{macrocode}
-% Da dieser Prozess sehr tief in die Schriftauswahl eingreift und das Laden des
-% Paketes die Schriftauswahl für das ganze Dokument verändert, wird diese
-% Option nur beim Laden der Klasse zugelassen.
-% \begin{macrocode}
-%<*class>
-\AtEndOfClass%
-%</class>
-%<*package>
-\AtEndOfPackage%
-%</package>
-{%
- \TUD@key{fontspec}[]%
- {%
-%<*class>
- \ClassError{\TUDClassName}%
-%</class>
-%<*package>
- \PackageError{tudscrfonts}%
-%</package>
- {Option `fontspec' too late}{%
- Option `fontspec' can only be set while loading the\MessageBreak%
-%<*class>
- class `\TUDClassName'
-%</class>
-%<*package>
- package `tudscrfonts'
-%</package>
- but you have tried to set it up later.%
- }%
- \FamilyKeyStateProcessed%
- }%
- \if@tud@fontspec%
- \RequirePackage{fontspec}[2014/06/21]%
- \fi%
-}
-% \end{macrocode}
-% Sobald das Paket \opt{fontspec} manuell geladen wurde, wird auch der passende
-% Schlüssel gesetzt.
-% \begin{macrocode}
-\AfterPackage*{fontspec}{\@tud@fontspectrue}
-% \end{macrocode}
-% \end{macro}^^A \tud@mathenc
-% \end{macro}^^A \tud@dinbold
-% \end{macro}^^A \tud@univers
+% \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 \if@tud@fontspec
-% \end{option}^^A fontspec
-%
-% \iffalse
-%</(class|package)&option>
-%<*(class|package)&body>
-% \fi
+% \end{macro}^^A \tud@dinbold
+% \end{macro}^^A \tud@univers
+% \begin{macro}{\tud@font@check}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@x@fontspec@noerror}
+% \changes{v2.05}{2015/12/14}{neu}^^A
+% Mit \cs{tud@font@check} wird überprüft, ob die benötigten Schriften \Univers
+% und \DIN im PostScript- bzw. OTF-Format installiert sind und die passenden
+% Schalter gesetzt. Beim Nichtvorhandensein der Schriften wird im eine Warnung
+% ausgegeben und eine Rückfallebene definiert.
%
-% \begin{macro}{\tud@font@greek@loop}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% Um ggf. Anpassungen an den griechischen Majuskeln vornehmenzu können, wird
-% das Makro \cs{tud@font@greek@loop} definert, mit dem eine Namensliste der
-% Buchstaben durchlaufen wird.
-% \begin{macrocode}
-\newcommand*\tud@font@greek@loop[1]{%
- \@for\@tempa:={%
- Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega%
- }\do{#1{\@tempa}}%
-}
-% \end{macrocode}
-% \end{macro}^^A \tud@font@greek@loop
-% \begin{macro}{\tud@font@greek@declare}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@Gamma}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@Delta}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@Theta}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@Lambda}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@Xi}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@Pi}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@Sigma}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@Upsilon}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@Phi}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@Psi}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@upOmega}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@upGamma}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@upDelta}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@upTheta}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@upLambda}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@upXi}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@upPi}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@upSigma}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@upUpsilon}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@upPhi}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@upPsi}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@upOmega}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@varGamma}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@varDelta}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@varTheta}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@varLambda}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@varXi}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@varPi}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@varSigma}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@varUpsilon}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@varPhi}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@varPsi}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@varOmega}
-% \changes{v2.04}{2014/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
+% Da das Paket \pkg{fontspec} keinen Befehl zum Prüfen auf das Vorhandensein
+% einer bestimmten Schrift bereitstellt, muss hier etwas getrickst werden. Bei
+% der Wahl einer nicht installierten Schrift wird normalerweise ein Fehler
+% ausgegeben. Mit \cs{tud@x@fontspec@noerror} wird dies verhindert, indem die
+% erzeugte Fehlermeldung mit \cs{msg\_redirect\_name:nnn} unterdrückt wird.
+% \begin{macrocode}
+\newcommand*\tud@x@fontspec@noerror{}
+\IfFileExists{expl3.sty}{\@tempswatrue}{\@tempswafalse}
+\if@tempswa
+ \RequirePackage{expl3}[2016/05/18]
+ \ExplSyntaxOn
+ \renewcommand*\tud@x@fontspec@noerror{%
+ \__fontspec_font_suppress_not_found_error:
+ \msg_redirect_name:nnn {fontspec}{font-not-found}{none}
+ }%
+ \ExplSyntaxOff
+\fi
% \end{macrocode}
-% \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@check}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% Mit diesem Makro wird überprüft, ob die relevanten PostScript"=Schriften
-% Univers und DIN~Bold installiert sind. Beim Nichtvorhandensein der Schriften
-% wird im Normalfall eine Warnung ausgegeben und eine Rückfallebene definiert.
-% Wird das Paket \pkg{fontspec} verwendet, werden die Schriften nur für den
-% Mathematiksatz verwendet. Sollten diese nicht vorhanden sein, wird eine
-% Info in die Log-Datei geschrieben.
+% Jetzt kann es mit dem eigentlichen Überprüfen der Schriften losgehen. Für das
+% Prüfen der Mathematikschriften ist es unerheblich, ob \pkg{fontspec} genutzt
+% wird, da hier immer die PostScript-Schriften zum Einsatz kommen.
% \begin{macrocode}
\newcommand*\tud@font@check{%
- \if@tud@fontspec%
- \edef\@tempa{%
- \lowercase{\noexpand\IfFileExists{OT1\tud@univers.fd}}%
- }%
- \edef\@tempb{%
- \lowercase{\noexpand\IfFileExists{OT1\tud@dinbold.fd}}%
- }%
- \def\@tempc##1{%
+ \edef\@tempa##1##2{\lowercase{\noexpand\IfFileExists{##1##2.fd}}}%
+ \def\@tempb##1{%
+ \ifnum\tud@cdfont@num>\z@\relax% true/heavy
+ \if@tud@cdmath%
%<*class>
- \ClassInfoNoLine{\TUDClassName}%
+ \ClassWarningNoLine{\TUD@Class@Name}%
%</class>
%<*package>
- \PackageInfoNoLine{tudscrfonts}%
+ \PackageWarningNoLine{tudscrfonts}%
%</package>
- {%
- `##1' fonts for math typesetting not found\MessageBreak%
- Please use one of the installation scripts for the\MessageBreak%
- tudscr-bundle mentioned in the manual%
- }%
- }%
- \else%
- \edef\@tempa{%
- \lowercase{\noexpand\IfFileExists{\encodingdefault\tud@univers.fd}}%
- }%
- \edef\@tempb{%
- \lowercase{\noexpand\IfFileExists{\encodingdefault\tud@dinbold.fd}}%
- }%
- \def\@tempc##1{%
- \@tempswafalse%
- \ifstr{OT1}{\encodingdefault}{\@tempswatrue}{}
- \ifstr{T1}{\encodingdefault}{\@tempswatrue}{}
-%<*class>
- \ClassWarningNoLine{\TUDClassName}%
-%</class>
-%<*package>
- \PackageWarningNoLine{tudscrfonts}%
-%</package>
- {%
- `##1' fonts not found for encoding `\encodingdefault'.\MessageBreak%
- \if@tempswa%
+ {%
+ `##1' fonts for math typesetting not found\MessageBreak%
Please use one of the installation scripts for the\MessageBreak%
- tudscr-bundle mentioned in the manual.\MessageBreak%
- \else%
- Please choose a possible encoding (`OT1' or `T1').\MessageBreak%
- \fi%
- A fallback layout is used%
- }%
- }%
- \fi%
- \@tempa{\@tud@universtrue}{\@tempc{Univers}}%
- \@tempb{\@tud@dinboldtrue}{\@tempc{DIN Bold}}%
- \undef\tud@font@check%
-}
-% \end{macrocode}
-% \end{macro}^^A \tud@font@check
-% \begin{macro}{\tud@font@init}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\textuln}
-% \begin{macro}{\texturn}
-% \begin{macro}{\textubn}
-% \begin{macro}{\textuxn}
-% \begin{macro}{\textuls}
-% \begin{macro}{\texturs}
-% \begin{macro}{\textubs}
-% \begin{macro}{\textuxs}
-% \begin{macro}{\textdbn}
-% Das Makro \cs{tud@font@init} wird für die Defintion aller Befehle zur Auswahl
-% der Schriften des \CDs verwendet. Er wird als Hook genutzt und abhängig vom
-% Schalter \cs{if@tud@fontspec} entweder für die Verwendung von \pkg{fontspec}
-% oder des NFSS-Schemas mit \cs{preto}\cs{tud@font@init}\marg{Makro} angepasst.
-% \begin{macrocode}
-\newcommand*\tud@font@init{%
-% \end{macrocode}
-% Außerdem werden für die Schriften noch die entsprechenden Textauswahlbefehle
-% bereitgestellt.
-% \begin{macrocode}
- \newcommand*\textuln{}%
- \newcommand*\texturn{}%
- \newcommand*\textubn{}%
- \newcommand*\textuxn{}%
- \newcommand*\textuls{}%
- \newcommand*\texturs{}%
- \newcommand*\textubs{}%
- \newcommand*\textuxs{}%
- \newcommand*\textdbn{}%
- \DeclareTextFontCommand{\textuln}{\univln}%
- \DeclareTextFontCommand{\texturn}{\univrn}%
- \DeclareTextFontCommand{\textubn}{\univbn}%
- \DeclareTextFontCommand{\textuxn}{\univxn}%
- \DeclareTextFontCommand{\textuls}{\univls}%
- \DeclareTextFontCommand{\texturs}{\univrs}%
- \DeclareTextFontCommand{\textubs}{\univbs}%
- \DeclareTextFontCommand{\textuxs}{\univxs}%
- \DeclareTextFontCommand{\textdbn}{\dinbn}%
-% \end{macrocode}
-% Nach der optionsabhängigen Definition der Schriftauswahlbefehle werden die
-% Initialisierungsbefehle undefiniert gesetzt.
-% \begin{macrocode}
- \undef\tud@font@init@fontspec%
- \undef\tud@fontface%
- \undef\tud@fontspec@flag%
- \undef\tud@fontspec@error%
- \undef\tud@font@init@nfss%
- \undef\tud@font@init%
-}
-% \end{macrocode}
-% \end{macro}^^A \textdbn
-% \end{macro}^^A \textuxs
-% \end{macro}^^A \textubs
-% \end{macro}^^A \texturs
-% \end{macro}^^A \textuls
-% \end{macro}^^A \textuxn
-% \end{macro}^^A \textubn
-% \end{macro}^^A \texturn
-% \end{macro}^^A \textuln
-% \end{macro}^^A \tud@font@init
-% \begin{macro}{\univln}
-% \begin{macro}{\univrn}
-% \begin{macro}{\univbn}
-% \begin{macro}{\univxn}
-% \begin{macro}{\univls}
-% \begin{macro}{\univrs}
-% \begin{macro}{\univbs}
-% \begin{macro}{\univxs}
-% \begin{macro}{\dinbn}
-% \begin{macro}{\@dinbn}
-% Es werden mehrere Schalter zur expliziten Auswahl für die Schriftschnitte
-% Univers~45~Light, Univers~55~Regular, Univers~65~Bold, Univers~75~Black,
-% Univers~45~Light~Oblique, Univers~55~Regular~Oblique, Univers~65~Bold~Oblique
-% sowie Univers~75~Black~Oblique und DIN~Bold definiert. Diese können so im
-% Dokument unabhängig von der Option \opt{cdfont} genutzt werden. Bei der
-% Schriftauswahl der DIN~Bold wird neben dieser noch die entsprechende
-% Mathematikschrift aktiviert. Dabei ist zu beachten, dass die Schriften evtl.
-% gar nicht installiert sind und für diesen Fall eine Rückfallebene notwendig
-% ist.
-% \begin{macro}{\tud@font@init@fontspec}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\if@tud@fontspec@missing}
-% \changes{v2.04c}{2015/11/29}{neu}^^A
-% \begin{macro}{\tud@fontface}
-% \changes{v2.04c}{2015/11/29}{neu}^^A
-% \begin{macro}{\tud@fontspec@flag}
-% \changes{v2.04c}{2015/11/29}{neu}^^A
-% \begin{macro}{\tud@fontspec@error}
-% \changes{v2.04c}{2015/11/29}{neu}^^A
-% Leider exisitiert im Paket \pkg{fontspec} keine einfache Möglichkeit, auf das
-% Vorhandensein von Schriften zu testen. Deshalb wird hier etwa getrickst, um
-% die Schriften nur zu laden, falls diese auch tatsächlich existieren und die
-% ggf. auftrtende Fehlermeldung zu unterdrücken.
-% \begin{macrocode}
-\newif\if@tud@fontspec@missing
-\newcommand*\tud@font@init@fontspec{}
-% \end{macrocode}
-% Alles etwas umständlich, aber leider geht es nicht anders. Um die Fehler
-% zu unterdrücken, ist die Syntax von \LaTeX{}3 notwendig. Es wird mit
-% dem Paket \pkg{xparse} der Befehl \cs{tud@fontface} welcher eigentlch den
-% Befehl \cs{newfontface} nutzt und für denn Fall, dass keine Schrift
-% exisitiert, den entsprechenden Befehl leer definiert.
-% \begin{macrocode}
-\IfFileExists{xparse.sty}{\@tempswatrue}{\@tempswafalse}%
-\if@tempswa
- \RequirePackage{xparse}
- \newcommand*\tud@fontspec@flag{\global\@tud@fontspec@missingtrue\@gobbletwo}%
- \NewDocumentCommand\tud@fontface{mmo}{%
- \global\@tud@fontspec@missingfalse%
- \newfontface#1{#2}[#3]%
- \if@tud@fontspec@missing%
- \renewrobustcmd*#1{}%
- \fi%
- }%
-% \end{macrocode}
-% Um die Fehler bei dem Laden der Schrift zu unterdrücken, wird der dafür
-% verantwortliche Befehl gesichertr und anschließend passend neu definiert.
-% \begin{macrocode}
- \ExplSyntaxOn
- \renewcommand*\tud@font@init@fontspec{%
- \cs_set_eq:NN \tud@fontspec@error \__fontspec_error:nx
- \cs_set_eq:NN \__fontspec_error:nx \tud@fontspec@flag
-% \end{macrocode}
-% Für die Schriften werden feste NFSS-Namen vergeben, um diese unter anderem
-% auch beim Setzen des Kopfes im \CD der \TnUD explizit auswählen zu können.
-% \begin{macrocode}
- \tud@fontface\univln{Univers Light}[NFSSFamily=UniversLight]%
- \tud@fontface\univrn{Univers}[NFSSFamily=UniversRegular]%
- \tud@fontface\univbn{Univers Bold}[NFSSFamily=UniversBold]%
- \tud@fontface\univxn{Univers Black}[NFSSFamily=UniversBlack]%
- \tud@fontface\univls{Univers Light Oblique}[NFSSFamily=UniversLightOblique]%
- \tud@fontface\univrs{Univers Oblique}[NFSSFamily=UniversRegularOblique]%
- \tud@fontface\univbs{Univers Bold Oblique}[NFSSFamily=UniversBoldOblique]%
- \tud@fontface\univxs{Univers Black Oblique}[NFSSFamily=UniversBlackOblique]%
-% \end{macrocode}
-% Nach der Univers-Schriftfamilie wird für DIN~Bold äquivalent verfahren. Da
-% dieser Schriftschnitt zwingend für die Überschriften benötigt wird, sollte
-% dieser zumindest auch auf deren Stil schalten.
-% \begin{macrocode}
- \tud@fontface\@dinbn{DIN Bold}[NFSSFamily=DINBold,BoldFont = DIN Bold]%
- \if@tud@fontspec@missing%
- \newrobustcmd*\dinbn{\sectfont}%
- \else%
- \if@tud@dinbold%
- \newrobustcmd*\dinbn{\@dinbn\mathversion{dinbold}}%
- \else%
- \newrobustcmd*\dinbn{\@dinbn}%
+ tudscr-bundle mentioned in the manual%
+ }%
\fi%
\fi%
-% \end{macrocode}
-% Zum Schluss wird noch die Fehlermeldungen auf ihre ursprüngliche Definition
-% gesetzt und damit ist der ganze Zauber vorbei.
-% \begin{macrocode}
- \cs_set_eq:NN \__fontspec_error:nx \tud@fontspec@error
}%
- \ExplSyntaxOff
-\fi%
% \end{macrocode}
-% \end{macro}^^A \tud@fontspec@error
-% \end{macro}^^A \tud@fontspec@flag
-% \end{macro}^^A \tud@fontface
-% \end{macro}^^A \if@tud@fontspec@missing
-% \end{macro}^^A \tud@font@init@fontspec
-% \begin{macro}{\tud@font@init@nfss}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% Falls \opt{fontspec} nicht aktiv ist, werden die Schriften klassisch nach dem
-% NFSS definiert. Sind die Univer-Schriften installiert, dann werden dazu
-% passende Schalter erstellt.
-% \begin{macrocode}
-\newcommand*\tud@font@init@nfss{%
- \if@tud@univers%
- \newrobustcmd*\univln{\usefont{\encodingdefault}{\tud@univers}{l}{n}}%
- \newrobustcmd*\univrn{\usefont{\encodingdefault}{\tud@univers}{m}{n}}%
- \newrobustcmd*\univbn{\usefont{\encodingdefault}{\tud@univers}{b}{n}}%
- \newrobustcmd*\univxn{\usefont{\encodingdefault}{\tud@univers}{eb}{n}}%
- \newrobustcmd*\univls{\usefont{\encodingdefault}{\tud@univers}{l}{sl}}%
- \newrobustcmd*\univrs{\usefont{\encodingdefault}{\tud@univers}{m}{sl}}%
- \newrobustcmd*\univbs{\usefont{\encodingdefault}{\tud@univers}{b}{sl}}%
- \newrobustcmd*\univxs{\usefont{\encodingdefault}{\tud@univers}{eb}{sl}}%
-% \end{macrocode}
-% Ansonsten werden die Schalter für die Rückfallebene so definert, dass diese
-% einfach nichts machen.
+% Existieren die Schriften, werden die Schalter auf \val{true} gesetzt, sonst
+% wird eine Warnung ausgegeben, falls die Schriften eigentlich verwendet werden
+% sollen.
% \begin{macrocode}
- \else%
- \newrobustcmd*\univln{}%
- \newrobustcmd*\univrn{}%
- \newrobustcmd*\univbn{}%
- \newrobustcmd*\univxn{}%
- \newrobustcmd*\univls{}%
- \newrobustcmd*\univrs{}%
- \newrobustcmd*\univbs{}%
- \newrobustcmd*\univxs{}%
- \fi%
+ \@tempa{OT1}{\tud@univers}{\@tud@universmathtrue}{\@tempb{Univers}}%
+ \@tempa{OT1}{\tud@dinbold}{\@tud@dinboldmathtrue}{\@tempb{DIN Bold}}%
% \end{macrocode}
-% Nach der Univers-Schriftfamilie wird für DIN~Bold äquivalent verfahren.
+% Für jede der OTF-Schriften wird eine Warnung ausgegeben, falls diese nicht
+% installiert ist. Um sicher zu gehen, dass das Layout komplett genutzt werden
+% kann, ist es hinreichend, wenn eine der benötigten Schriften nicht existiert,
+% um die Rückfallebene zu aktivieren.
% \begin{macrocode}
- \if@tud@dinbold%
- \newrobustcmd*\dinbn{%
- \usefont{\encodingdefault}{\tud@dinbold}{b}{n}%
- \mathversion{dinbold}%
- }%
- \else%
- \newrobustcmd*\dinbn{\sectfont}%
- \fi%
-}
-% \end{macrocode}
-% \end{macro}^^A \tud@font@init@nfss
-% \end{macro}^^A \@dinbn
-% \end{macro}^^A \dinbn
-% \end{macro}^^A \univxs
-% \end{macro}^^A \univbs
-% \end{macro}^^A \univrs
-% \end{macro}^^A \univls
-% \end{macro}^^A \univxn
-% \end{macro}^^A \univbn
-% \end{macro}^^A \univrn
-% \end{macro}^^A \univln
-% \begin{macro}{\cdfont}
-% \changes{v2.04}{2015/03/04}{neu}^^A
-% \begin{macro}{\tudfont}
-% \changes{v2.04}{2015/04/24}{\cls{tudmathposter} wird unterstützt}^^A
-% \begin{macro}{\textcdfont}
-% \changes{v2.04}{2015/03/04}{neu}^^A
-% \begin{macro}{\@cdfont}
-% \changes{v2.04}{2015/03/04}{neu}^^A
-% \begin{macro}{\tud@trimfontname}
-% \changes{v2.04}{2015/03/04}{neu}^^A
-% \begin{macro}{\tud@@trimfontname}
-% \changes{v2.04}{2015/03/04}{neu}^^A
-% Die Klassen \cls{tudposter} und \cls{tudmathposter} definieren den Befehl
-% \cs{tudfont}, mit welchem die Schriften des \CDs der \TnUD auch mit Klarnamen
-% ausgewählt werden können. Zur Kompatibilität wird der Befehl \cs{cdfont}
-% definiert, welcher die gleiche Funktionalität bereitstellt. Zusätzlich wird
-% der Befehl \cs{textcdfont} bereitgestellt, der die Auswahl der Schrift als
-% Textbefehl ermöglicht.
-% \begin{macrocode}
-\newcommand*\cdfont[1]{%
- \@cdfont{#1}%
- \ifx\@tempc\relax\else%
- \ifstr{\@tempc}{dinbn}{\dinbn}{\@nameuse{univ\@tempc}}%
- \fi%
-}
-\providecommand*\tudfont[1]{\cdfont{#1}}
-\newcommand*\textcdfont[2]{%
- \@cdfont{#1}%
- \ifx\@tempc\relax\else%
- \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\@nameuse{textu\@tempc}{#2}}%
- \fi%
-}
-\newcommand*\@cdfont[1]{%
- \tud@trimfontname\@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%
- \PackageWarning{tudscrfonts}{The font `#1' is unknown}%
- }}}}}}}}}}}}}}%
-}
-\newcommand*\tud@trimfontname[2]{%
- \protected@edef\@tempa{\trim@spaces{#2}}%
- \tud@lowerstring{\@tempa}{\@tempa}%
- \tud@@trimfontname{ }{}%
- \tud@@trimfontname{-}{}%
- \tud@@trimfontname{_}{}%
- \tud@@trimfontname{~}{}%
- \tud@@trimfontname{ce}{}%
- \tud@@trimfontname{ff}{}%
- \tud@@trimfontname{univers}{}%
- \tud@@trimfontname{60}{65}%
- \tud@@trimfontname{light}{45}%
- \tud@@trimfontname{regular}{55}%
- \tud@@trimfontname{bold}{65}%
- \tud@@trimfontname{black}{75}%
- \tud@@trimfontname{4545}{45}%
- \tud@@trimfontname{5555}{55}%
- \tud@@trimfontname{6565}{65}%
- \tud@@trimfontname{7575}{75}%
- \tud@@trimfontname{italic}{oblique}%
- \tud@@trimfontname{slanted}{oblique}%
- \let#1\@tempa%
-}
-\newcommand*\tud@@trimfontname[2]{%
- \def\@tempb##1#1##2\relax{\def\@tempa{##1#2##2}}%
- \@expandtwoargs\in@{#1}{\@tempa}%
- \@whilesw\ifin@\fi{%
- \expandafter\@tempb\@tempa\relax%
- \@expandtwoargs\in@{#1}{\@tempa}%
- }%
-}
-% \end{macrocode}
-% \end{macro}^^A \tud@@trimfontname
-% \end{macro}^^A \tud@trimfontname
-% \end{macro}^^A \@cdfont
-% \end{macro}^^A \textcdfont
-% \end{macro}^^A \tudfont
-% \end{macro}^^A \cdfont
-% \begin{macro}{\tud@font@math@init}
-% \changes{v2.04}{2014/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~Bold 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@fontspec\if@tud@univers\if@tud@dinbold%
- \@ifpackagewith{fontspec}{no-math}{}{%
+ \if@tud@x@fontspec@enabled%
+ \def\@tempc##1##2{%
+ \fontspec{##1}%
+ \expandafter\ifx\the\font\nullfont%
+ ##2%
+ \ifnum\tud@cdfont@num>\z@\relax% true/heavy
%<*class>
- \ClassWarningNoLine{\TUDClassName}%
+ \ClassWarningNoLine{\TUD@Class@Name}%
%</class>
%<*package>
- \PackageWarningNoLine{tudscrfonts}%
+ \PackageWarningNoLine{tudscrfonts}%
%</package>
- {%
- It's recommended to load package `fontspec' with\MessageBreak%
- option `no-math'%
- }%
+ {%
+ `##1' fonts not found for encoding `\encodingdefault'\MessageBreak%
+ It seems, you haven't installed the required\MessageBreak%
+ OTF-font on your system. A fallback layout is used%
+ }%
+ \fi%
+ \fi%
}%
- \fi\fi\fi%
- \if@tud@univers%
- \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{\mathcal}{univers}{OMS}{lmsy}{m}{n}%
- \SetMathAlphabet{\mathcal}{universbold}{OMS}{lmsy}{b}{n}%
- \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}%
-% \end{macrocode}
-% Das Paket \pkg{cmbright} bringt zusätzlich noch Schriftschnitte für die
-% \pkg{ams}"=Pakete 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~Bold werden mathematische Glyphen bereitgestellt.
-% Diese wurden aus dem \pkg{iwona}"=Paket entnommen. Auch die verwendeten
-% Symbole stammen aus diesem Paket.
-% \begin{macrocode}
- \if@tud@dinbold%
- \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{\mathbf}{dinbold}{OT1}{\tud@dinbold}{b}{n}%
- \SetMathAlphabet{\mathsf}{dinbold}{OT1}{\tud@dinbold}{b}{n}%
- \SetMathAlphabet{\mathit}{dinbold}{OT1}{\tud@dinbold}{b}{sl}%
- \fi%
-% \end{macrocode}
-% Wird das Paket \pkg{unicode-math} verwendet, werden keine Einstellungen für
-% die Mathematikschriften vorgenommen\dots
-% \begin{macrocode}
- \@ifpackageloaded{unicode-math}{%
- \let\tud@font@math@set\relax%
- \bool@set@lock{@tud@cdmath}{false}%
- }{%
-% \end{macrocode}
-% Für die griechischen Buchstaben wird 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}
- \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%
- \tud@font@greek@loop\tud@font@greek@init%
-% \end{macrocode}
-% Zum Schluss werden abhängig von der gewählten Einstellung für die Schriftart
-% der Option \opt{cdfont} die benötigten Mathematikversionen geladen.
-% \begin{macrocode}
- \tud@font@math@set%
- }%
-% \end{macrocode}
-% Daran anschließend werden die DIN-Bold-Schriften in einer Box verwendet, um
-% das Laden der Schriftdefinitionen am Dokumentbeginn zu forcieren.
-% \begin{macrocode}
- \sbox\z@{\dinbn$ $}%
-% \end{macrocode}
-% Zuletzt wird der Befehl für die Initialisierung der Mathematikschriften
-% undefiniert gesetzt.
-% \begin{macrocode}
- \undef\tud@font@math@init%
-}
-% \end{macrocode}
-% \end{macro}^^A \mv@dinbold
-% \end{macro}^^A \mv@universbold
-% \end{macro}^^A \mv@univers
-% \end{macro}^^A \tud@font@math@init
-% Samtliche Schrifteinstellungen erfolgen erst am Ende der Präambel, um etwaige
-% Einstellungen irgendwelcher Schriftpakete beachten zu können. Dabei erfolgt
-% das Setzen der Mathematikschriften druch \cs{AtBeginDocument} innerhalb von
-% \cs{AtEndPreamble} am Ende \emph{aller} \cs{AtBeginDocument}.
-%
-% Für das Paket müssen zuvor einige Einstellungen angepasst werden, damit bei
-% der Verwendung einer alten Klasse alles reibungslos funktioniert.
-% \begin{macrocode}
-%<*package>
-\ifbool{@tud@oldscrclass}{%
- \let\univln\relax%
- \let\univrn\relax%
- \let\univbn\relax%
- \let\univxn\relax%
- \let\univls\relax%
- \let\univrs\relax%
- \let\univbs\relax%
- \let\univxs\relax%
- \let\dinbn\relax%
- \let\textuln\relax%
- \let\texturn\relax%
- \let\textubn\relax%
- \let\textuxn\relax%
- \let\textuls\relax%
- \let\texturs\relax%
- \let\textubs\relax%
- \let\textuxs\relax%
- \let\textdbn\relax%
- \AtBeginDocument{%
- \cmd@restore{rmdefault}%
- \cmd@restore{sfdefault}%
- \cmd@restore{bfdefault}%
- \cmd@restore{mddefault}%
- \cmd@restore{familydefault}%
- \cmd@restore{seriesdefault}%
- \cmd@restore{shapedefault}%
- \cmd@restore{rmfamily}%
- \cmd@restore{sffamily}%
- \cmd@restore{ttfamily}%
- }%
-}{}
-%</package>
-% \end{macrocode}
-% Jetzt kommt es zur eigentlichen Initialisierung der Schriften.
-% \begin{macrocode}
-%<class>\AtEndPreamble%
-%<package>\AtBeginDocument%
-{%
- \tud@font@check%
-% \end{macrocode}
-% Es erfolgt das optionsabhängige Voranstellen von \cs{tud@font@init@fontspec}
-% respektive \cs{tud@font@init@nfss} bei \cs{tud@font@init}.
-% \begin{macrocode}
- \if@tud@fontspec%
- \preto\tud@font@init\tud@font@init@fontspec%
+ \begingroup%
+ \tud@x@fontspec@noerror%
+ \global\@tud@universtrue%
+ \@tempc{Univers Light}{\global\@tud@universfalse}%
+ \@tempc{Univers}{\global\@tud@universfalse}%
+ \@tempc{Univers Bold}{\global\@tud@universfalse}%
+ \@tempc{Univers Black}{\global\@tud@universfalse}%
+ \@tempc{Univers Light Oblique}{\global\@tud@universfalse}%
+ \@tempc{Univers Oblique}{\global\@tud@universfalse}%
+ \@tempc{Univers Bold Oblique}{\global\@tud@universfalse}%
+ \@tempc{Univers Black Oblique}{\global\@tud@universfalse}%
+ \global\@tud@dinboldtrue%
+ \@tempc{DIN Bold}{\global\@tud@dinboldfalse}%
+ \endgroup%
\else%
- \preto\tud@font@init\tud@font@init@nfss%
- \fi%
% \end{macrocode}
-% Nachdem auf die Schriften geprüft wurde, erfolgt die Verarbeitung der Option
-% \pkg{fontspec}. Da es so gut wie keine freien OpenType"=Schriften für den
-% mathmatischen Formelsatz gibt, werden unabhängig vom Status der Option
-% \emph{immer} die PostScript"=Schriften verwendet, falls diese installiert
-% sind. Damit \pkg{tudscrfonts} reibungslos mit den nachfolgenden Definitionen
-% funktioniert, wird im Bedarfsfall der Befehl \cs{sectfont} vorgehalten.
+% Ist \pkg{fontspec} nicht aktiv, wird auf die Schriften für den Fließtext im
+% gleichen Maße geprüft.
% \begin{macrocode}
+ \def\@tempc##1{%
+ \ifnum\tud@cdfont@num>\z@\relax% true/heavy
+ \@tempswafalse%
+ \ifstr{OT1}{\encodingdefault}{\@tempswatrue}{}%
+ \ifstr{T1}{\encodingdefault}{\@tempswatrue}{}%
+%<*class>
+ \ClassWarningNoLine{\TUD@Class@Name}%
+%</class>
%<*package>
- \ifdef{\sectfont}{}{\let\sectfont\relax}%
+ \PackageWarningNoLine{tudscrfonts}%
%</package>
- \tud@font@init%
-% \end{macrocode}
-% Damit die Schrift im Dokument später noch umgestellt werden kann, werden
-% sämtliche Einstellungen erst am Ende der Präambel gesichert. Deshalb wird
-% der dafür verantwortliche Befehl \cs{tud@font@set} hier zum ersten Mal
-% verwendet. Damit ist es möglich, die Schriften eventuell geladener Pakete wie
-% \pkg{lmodern} oder \pkg{libertine} vorher zu sichern und später wieder zu
-% aktivieren. Die Einstellungen für den Mathematiksatz erfolgen erst zu Beginn
-% des Dokumentes, um insbesondere auf Einstellungen des Paketes \pkg{fontspec}
-% reagieren zu können.
-% \begin{macrocode}
- \tud@font@set[nomath]%
-%<class> \AtBeginDocument{\tud@font@math@init}%
-%<package> \tud@font@math@init%
-}
-% \end{macrocode}
-% \begin{macro}{\tud@font@greek@init}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\upDelta}
-% \begin{macro}{\upGamma}
-% \begin{macro}{\upLambda}
-% \begin{macro}{\upOmega}
-% \begin{macro}{\upPhi}
-% \begin{macro}{\upPi}
-% \begin{macro}{\upPsi}
-% \begin{macro}{\upSigma}
-% \begin{macro}{\upTheta}
-% \begin{macro}{\upUpsilon}
-% \begin{macro}{\upXi}
-% \begin{macro}{\varDelta}
-% \begin{macro}{\varGamma}
-% \begin{macro}{\varLambda}
-% \begin{macro}{\varOmega}
-% \begin{macro}{\varPhi}
-% \begin{macro}{\varPi}
-% \begin{macro}{\varPsi}
-% \begin{macro}{\varSigma}
-% \begin{macro}{\varTheta}
-% \begin{macro}{\varUpsilon}
-% \begin{macro}{\varXi}
-% Dieses Makro sorgt dafür, dass neben den normalen Makros für die griechischen
-% Majuskeln die zusätzlichen Befehle für das explizite Auswählen aufrechter und
-% kursiver Buchstaben.
-% \begin{macrocode}
-\newcommand*\tud@font@greek@init[1]{%
- \ifcsdef{up#1}{}{%
- \if@tempswa%
- \csletcs{up#1}{tud@up#1}%
- \else%
- \csletcs{up#1}{#1}%
- \fi%
- }%
- \ifcsdef{var#1}{}{%
- \if@tempswa%
- \csletcs{var#1}{#1}%
- \else%
- \csletcs{var#1}{tud@var#1}%
- \fi%
- }%
+ {%
+ `##1' fonts not found for encoding `\encodingdefault'\MessageBreak%
+ \if@tempswa%
+ Please use one of the installation scripts for the\MessageBreak%
+ tudscr-bundle mentioned in the manual.\MessageBreak%
+ \else%
+ Please choose a possible encoding (`OT1' or `T1').\MessageBreak%
+ \fi%
+ A fallback layout is used%
+ }%
+ \fi%
+ }%
+ \@tempa{\encodingdefault}%
+ {\tud@univers}{\@tud@universtrue}{\@tempc{Univers}}%
+ \@tempa{\encodingdefault}%
+ {\tud@dinbold}{\@tud@dinboldtrue}{\@tempc{DIN Bold}}%
+ \fi%
+ \undef\tud@font@check%
}
% \end{macrocode}
-% \end{macro}^^A \varXi
-% \end{macro}^^A \varUpsilon
-% \end{macro}^^A \varTheta
-% \end{macro}^^A \varSigma
-% \end{macro}^^A \varPsi
-% \end{macro}^^A \varPi
-% \end{macro}^^A \varPhi
-% \end{macro}^^A \varOmega
-% \end{macro}^^A \varLambda
-% \end{macro}^^A \varGamma
-% \end{macro}^^A \varDelta
-% \end{macro}^^A \upXi
-% \end{macro}^^A \upUpsilon
-% \end{macro}^^A \upTheta
-% \end{macro}^^A \upSigma
-% \end{macro}^^A \upPsi
-% \end{macro}^^A \upPi
-% \end{macro}^^A \upPhi
-% \end{macro}^^A \upOmega
-% \end{macro}^^A \upLambda
-% \end{macro}^^A \upGamma
-% \end{macro}^^A \upDelta
-% \end{macro}^^A \tud@font@greek@init
+% \end{macro}^^A \tud@x@fontspec@noerror
+% \end{macro}^^A \tud@font@check
%
% \iffalse
-%</(class|package)&body>
-%<*(class|package)&option>
+%</body>
+%<*option>
% \fi
%
-% \begin{macro}{\tud@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}
-% Für das Setzen der Überschriften in Majuskeln\footnote{Großbuchstaben} mit
-% \cs{MakeTextUppercase}, was den internen \LaTeX-Befehl \cs{MakeUppercase}
-% verbessert, wird das Paket \pkg{textcase} genutzt. Damit Fußnoten nicht
-% automatisch in Majuskeln gesetzt werden, wird außerdem der interne Befehl
-% \cs{@uclcnotmath} aus diesem Paket angepasst.
-% \begin{macrocode}
-\RequirePackage{textcase}[2004/10/07]
-\newcommand*\tud@uclcnotmath{%
- \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@uclcnotmath
-}{}{\tud@patch@wrn{@uclcnotmath}}%
-% \end{macrocode}
-% \end{macro}^^A \@uclcnotmath
-% \end{macro}^^A \tud@uclcnotmath
-% \begin{macro}{\tud@font@heading}
-% Mit \cs{tud@font@heading} wird die Schriftart für Überschriften im Layout des
-% \CDs definiert. Normalerweise wird hierfür DIN-Bold verwendet, was allerdings
-% per Option auch deaktiviert werden kann.
-% \begin{macrocode}
-\newcommand*\tud@font@heading{\dinbn\tud@raggedright}
-% \end{macrocode}
-% \end{macro}^^A \tud@font@heading
+% \subsubsection{Schriften für den Fließtext}
+%
+% Hier werden die Optionen und Befehle zur Schriftauswahl definiert.
+%
% \begin{option}{cdfont}
% \changes{v2.02}{2014/07/08}{Schlüsselwerte für \opt{cdhead}}^^A
% \changes{v2.02}{2014/08/29}{Schlüsselwerte für \opt{fontspec}}^^A
-% \begin{macro}{\tud@cdfont}
+% \changes{v2.05}{2016/04/04}{Schlüsselwerte für \val{ultrabold}}^^A
+% \begin{macro}{\tud@cdfont@num}
+% \begin{macro}{\if@tud@cdfont@din}
+% \begin{macro}{\if@tud@cdfont@ultrabold}
+% \changes{v2.05}{2016/04/04}{neu}^^A
% Mit dieser Option wird die zentrale Benutzerschnittstelle für alle möglichen
% Schrifteinstellungen innerhalb Dokumentes geschaffen. Durch diese Option
% können sowohl die verwendete Schrift für den Fließtext, als auch die Stärke
% der Schrift geändert werden. Zusätzlich lässt sich die Verwendung von
-% DIN~Bold für die Überschriften deaktivieren. Außerdem kann eingestellt
-% werden, ob für den Mathematiksatz serifenlose Schriften zum Einsatz kommen
-% sollen.
+% \DIN für die Überschriften deaktivieren. Außerdem kann eingestellt werden, ob
+% für den Mathematiksatz serifenlose Schriften zum Einsatz kommen sollen.
% \begin{macrocode}
-\newcommand*\tud@cdfont{1}
+\newif\if@tud@cdfont@din
+\newif\if@tud@cdfont@ultrabold
+\@tud@cdfont@dintrue
+\newcommand*\tud@cdfont@num{1}
\TUD@key{cdfont}[true]{%
\TUD@set@numkey{cdfont}{@tempa}{%
\TUD@numkey@bool,%
{light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},%
- {heavy}{2},{heavyfont}{2},%
- {nodin}{3},{nodinbold}{3},{noDIN}{3},{noDINBold}{3},%
- {din}{4},{dinbold}{4},{DIN}{4},{DINBold}{4},%
+ {heavy}{2},{heavyfont}{2},{bold}{2},{boldfont}{2},%
+ {normalbold}{3},{boldnormal}{3},%
+ {ultrabold}{4},{boldultra}{4},{heavybold}{4},{boldheavy}{4},%
+ {extendedbold}{4},{boldextended}{4},%
+ {nodin}{5},{nodinbold}{5},{noDIN}{5},{noDINBold}{5},%
+ {din}{6},{dinbold}{6},{DIN}{6},{DINBold}{6},%
%<*class>
- {nohead}{5},{nocdhead}{5},{noheadfont}{5},{noheadcdfont}{5},%
- {nocdheadfont}{5},{nobar}{5},{nobarfont}{5},%
- {head}{6},{headfont}{6},{cdhead}{6},{headcdfont}{6},{cdheadfont}{6},%
- {bar}{6},{barfont}{6},%
- {lighthead}{6},{lightheadfont}{6},{lightfonthead}{6},%
- {lightcdhead}{6},{lightheadcdfont}{6},{lightcdheadfont}{6},%
- {lightbar}{6},{lightbarfont}{6},{lightfontbar}{6},%
- {headlight}{6},{headfontlight}{6},{headlightfont}{6},%
- {cdheadlight}{6},{headcdfontlight}{6},{cdheadfontlight}{6},%
- {barlight}{6},{barfontlight}{6},{barlightfont}{6},%
- {litehead}{6},{liteheadfont}{6},{litefonthead}{6},%
- {litecdhead}{6},{liteheadcdfont}{6},{litecdheadfont}{6},%
- {litebar}{6},{litebarfont}{6},{litefontbar}{6},%
- {headlite}{6},{headfontlite}{6},{headlitefont}{6},%
- {cdheadlite}{6},{headcdfontlite}{6},{cdheadfontlite}{6},%
- {barlite}{6},{barfontlite}{6},{barlitefont}{6},%
- {noheavyhead}{6},{noheavyheadfont}{6},{noheavyfonthead}{6},%
- {noheavycdhead}{6},{noheavyheadcdfont}{6},{noheavycdheadfont}{6},%
- {noheavybar}{6},{noheavybarfont}{6},{noheavyfontbar}{6},%
- {headnoheavy}{6},{headfontnoheavy}{6},{headnoheavyfont}{6},%
- {cdheadnoheavy}{6},{headcdfontnoheavy}{6},{cdheadfontnoheavy}{6},%
- {barnoheavy}{6},{barfontnoheavy}{6},{barnoheavyfont}{6},%
- {heavyhead}{7},{heavyheadfont}{7},{heavyfonthead}{7},%
- {heavycdhead}{7},{heavyheadcdfont}{7},{heavycdheadfont}{7},%
- {heavybar}{7},{heavybarfont}{7},{heavyfontbar}{7},%
- {headheavy}{7},{headfontheavy}{7},{headheavyfont}{7},%
- {cdheadheavy}{7},{headcdfontheavy}{7},{cdheadfontheavy}{7},%
- {barheavy}{7},{barfontheavy}{7},{barheavyfont}{7},%
+ {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},%
%</class>
- {nomath}{8},{nocdmath}{8},%
- {serifmath}{8},{serif}{8},{nosansmath}{8},{nosans}{8},%
- {math}{9},{cdmath}{9},{sansmath}{9},{sans}{9},%
- {upgreek}{10},{upright}{10},{uprightgreek}{10},{uprightGreek}{10},%
- {slgreek}{11},{slanted}{11},{slantedgreek}{11},{slantedGreek}{11},%
- {fontspec}{12},{luatex}{12},{lualatex}{12}{xetex}{12},{xelatex}{12},%
- {nofontspec}{13},{nfss}{13},{pdftex}{13},{pdflatex}{13}%
+ {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}
@@ -1148,21 +437,36 @@
% den Fließtext.
% \begin{macrocode}
\ifcase\@tempa\relax% false
- \def\tud@cdfont{0}%
- \if@atdocument\tud@font@set\fi%
+ \renewcommand*\tud@cdfont@num{0}%
+ \TUD@SpecialOptionAtDocument{tud@font@set}%
\or% true
- \def\tud@cdfont{1}%
- \if@atdocument\tud@font@set\fi%
+ \renewcommand*\tud@cdfont@num{1}%
+ \TUD@SpecialOptionAtDocument{tud@font@set}%
\or% heavy
- \def\tud@cdfont{2}%
- \if@atdocument\tud@font@set\fi%
+ \renewcommand*\tud@cdfont@num{2}%
+ \TUD@SpecialOptionAtDocument{tud@font@set}%
+% \end{macrocode}
+% Die Definition des fetten Schriftschnittes.
+% \begin{macrocode}
+ \or% normalbold
+ \@tud@cdfont@ultraboldfalse%
+ \ifcase\tud@cdfont@num\relax% false to true
+ \renewcommand*\tud@cdfont@num{1}%
+ \fi%
+ \TUD@SpecialOptionAtDocument{tud@font@set}%
+ \or% ultrabold
+ \@tud@cdfont@ultraboldtrue%
+ \ifcase\tud@cdfont@num\relax% false to true
+ \renewcommand*\tud@cdfont@num{1}%
+ \fi%
+ \TUD@SpecialOptionAtDocument{tud@font@set}%
% \end{macrocode}
-% Hier wird die Verwendung von DIN~Bold für die Überschirften festgelegt.
+% Hier wird die Verwendung von \DIN für die Überschirften festgelegt.
% \begin{macrocode}
\or% nodin
- \renewcommand*\tud@font@heading{\tud@RaggedRight}%
+ \@tud@cdfont@dinfalse%
\or% din
- \renewcommand*\tud@font@heading{\dinbn\tud@raggedright}%
+ \@tud@cdfont@dintrue%
% \end{macrocode}
% Die Schrift für den Querbalken.
% \begin{macrocode}
@@ -1170,14 +474,23 @@
%<*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>
% \end{macrocode}
% Die Mathematikschriften.
% \begin{macrocode}
@@ -1205,38 +518,75 @@
% dass es sich bei diesem um die gewünschte Schriftgröße handelt.
% \begin{macrocode}
\else%
- \KOMAoptions{fontsize=#1}%
- \ifcase\tud@cdfont\relax% false to true
- \def\tud@cdfont{1}%
- \if@atdocument\tud@font@set\fi%
- \fi%
+ \ifdimen{#1}{%
+ \ifdim#1>\z@\relax%
+ \TUD@KOMAoptions{fontsize=#1}%
+ \csname @tud@fontsize@settrue\endcsname%
+ \ifcase\tud@cdfont@num\relax% false to true
+ \renewcommand*\tud@cdfont@num{1}%
+ \TUD@SpecialOptionAtDocument{tud@font@set}%
+ \fi%
+ \FamilyKeyStateProcessed%
+ \fi%
+ }{}%
\fi%
}
% \end{macrocode}
-% \end{macro}^^A \tud@cdfont
+% \end{macro}^^A \if@tud@cdfont@ultrabold
+% \end{macro}^^A \if@tud@cdfont@din
+% \end{macro}^^A \tud@cdfont@num
% \end{option}^^A cdfont
+% \begin{option}{relspacing}
+% \changes{v2.05}{2015/12/17}{neu}^^A
+% \begin{macro}{\if@tud@relspacing}
+% \changes{v2.05}{2015/12/17}{neu}^^A
% \begin{option}{fontsize}
% \changes{v2.04}{2015/04/24}{Option aus \KOMAScript{} erweitert}^^A
-% Mit der \KOMAScript-Option \opt{fontsize} kann die Schriftgröße eingestellt
-% werden. Durch \TUDScript werden bei aktiven Schriften im \CD verschiedene
-% Abstände mit \cs{tud@font@skip@set} schriftgrößenabhängig definiert.
-% \begin{macrocode}
+% Die Option \opt{relspacing} setzt einige Abstände und Längen in Abhängigkeit
+% der aktuellen Grundschriftgröße, wenn sie aktiviert wurde. Die Schriftgröße
+% kann mit der \KOMAScript-Option \opt{fontsize} eingestellt werden. Durch das
+% Makro \cs{tud@font@skip@set} wird die Definiton der Längen vorgenommen.
+% \begin{macrocode}
+\newif\if@tud@relspacing
+\TUD@key{relspacing}[true]{%
+ \TUD@set@numkey{relspacing}{@tempa}{%
+ \TUD@numkey@bool,%
+ {absolute}{0},{classic}{0},{standard}{0},%
+ {relative}{1},{fontsize}{1},{font}{1},{size}{1}%
+ }{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \ifcase\@tempa\relax% false
+ \@tud@relspacingfalse%
+ \or% true
+ \@tud@relspacingtrue%
+ \fi%
+ \TUD@SpecialOptionAtDocument{tud@font@skip@set}%
+ \fi%
+}
\DefineFamilyMember{KOMA}
\DefineFamilyKey{KOMA}{fontsize}{%
- \AtEndOfFamilyOptions{\if@atdocument\tud@font@skip@set\fi}%
+ \TUD@SpecialOptionAtDocument{tud@font@skip@set}%
\FamilyKeyStateProcessed%
}
% \end{macrocode}
% \end{option}^^A fontsize
+% \end{macro}^^A \if@tud@relspacing
+% \end{option}^^A relspacing
%
% \iffalse
-%</(class|package)&option>
-%<*(class|package)&body>
+%</option>
+%<*body>
% \fi
%
+% Mit dem Paket \pkg{trimspaces} werden für die alternative Schriftauswahl mit
+% \cs{cdfont} bzw. \cs{textcdfont} eventuell vorhandene Leerzeichen aus dem
+% Argument entfernt. Auch beim Einlesen von Feldern wird dies genutzt.
+% \begin{macrocode}
+\RequirePackage{trimspaces}[2009/09/17]
+% \end{macrocode}
% \begin{macro}{\tud@font@set}
% \changes{v2.04}{2015/03/01}{Unterstützung für das Paket \pkg{mweights}}^^A
-% \begin{macro}{\if@tud@mweights}
+% \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
@@ -1263,22 +613,40 @@
% Mit diesem Befehl werden entweder die normalen oder aber die Schriften des
% \CDs aktiviert. Dabei wird die Option \opt{fontspec} beachtet.
% \begin{macrocode}
-\newif\if@tud@mweights
-\AfterPackage*{mweights}{\@tud@mweightstrue}
-\newcommand*\tud@font@set[1][]{%
- \if@tud@mweights%
- \ifdef{\bfseries@rm}{}{\edef\bfseries@rm{\bfdefault}}%
- \ifdef{\bfseries@sf}{}{\edef\bfseries@sf{\bfdefault}}%
- \ifdef{\bfseries@tt}{}{\edef\bfseries@tt{\bfdefault}}%
- \ifdef{\mdseries@rm}{}{\edef\mdseries@rm{\mddefault}}%
- \ifdef{\mdseries@sf}{}{\edef\mdseries@sf{\mddefault}}%
- \ifdef{\mdseries@tt}{}{\edef\mdseries@tt{\mddefault}}%
+\newif\if@tud@x@mweights@enabled
+\AfterPackage*{mweights}{\@tud@x@mweights@enabledtrue}
+\newcommand*\tud@font@set{%
+% \end{macrocode}
+% Wurde die Option \opt{cdfont} nicht in der Präambel genutzt, wird im Fall,
+% dass die Schriften des \CDs nicht installiert sind, eine Warnung erzeugt.
+% \begin{macrocode}
+ \if@atdocument%
+ \ifnum\tud@cdfont@num>\z@\relax% true/heavy
+ \if@tud@univers\else%
+%<*class>
+ \ClassWarning{\TUD@Class@Name}%
+%</class>
+%<*package>
+ \PackageWarning{tudscrfonts}%
+%</package>
+ {`Univers' fonts not found}%
+ \fi%
+ \if@tud@dinbold\else%
+%<*class>
+ \ClassWarning{\TUD@Class@Name}%
+%</class>
+%<*package>
+ \PackageWarning{tudscrfonts}%
+%</package>
+ {`DIN Bold' fonts not found}%
+ \fi%
+ \fi%
\fi%
% \end{macrocode}
% Werden die Schriften des \CDs deaktiviert, wird auf die zu Dokumentbeginn
% gesicherten Schriften\footnote{mit und ohne Serifen} zurückgeschaltet.
% \begin{macrocode}
- \ifcase\tud@cdfont\relax% false
+ \ifcase\tud@cdfont@num\relax% false
\tud@cmd@restore{rmdefault}%
\tud@cmd@restore{sfdefault}%
\tud@cmd@restore{ttdefault}%
@@ -1288,7 +656,7 @@
\tud@cmd@restore{familydefault}%
\tud@cmd@restore{seriesdefault}%
\tud@cmd@restore{shapedefault}%
- \if@tud@mweights%
+ \if@tud@x@mweights@enabled%
\tud@cmd@restore{bfseries@rm}%
\tud@cmd@restore{bfseries@sf}%
\tud@cmd@restore{bfseries@tt}%
@@ -1301,10 +669,15 @@
% \begin{macrocode}
\bool@std@lock{@tud@cdmath}{false}%
% \end{macrocode}
-% Innerhalb der Klassen wird auch die Schrift im Querbalken zurückgsetzt.
+% Innerhalb der Klassen wird auch die Schrift im Querbalken zurückgsetzt, wenn
+% kein Layout im \CD genutzt wird.
% \begin{macrocode}
%<*class>
- \cs@std@lock{tud@head@font}{0}%
+ \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>
% \end{macrocode}
% Ist die Verwendung der Schriften des \CDs gewünscht, werden die Schnitte der
@@ -1321,7 +694,7 @@
\tud@cmd@store{familydefault}%
\tud@cmd@store{seriesdefault}%
\tud@cmd@store{shapedefault}%
- \if@tud@mweights%
+ \if@tud@x@mweights@enabled%
\tud@cmd@store{bfseries@rm}%
\tud@cmd@store{bfseries@sf}%
\tud@cmd@store{bfseries@tt}%
@@ -1338,96 +711,86 @@
% Die Schrift im Querbalken wird bei den Klassen angepasst.
% \begin{macrocode}
%<*class>
- \cs@std@lock{tud@head@font}{\tud@cdfont}%
+ \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@fontspec%
- \ifnum\tud@cdfont=\@ne\relax% true
- \setsansfont{Univers Light}[%
- BoldFont = Univers,%
- ItalicFont = Univers Light Oblique,%
- BoldItalicFont = Univers Oblique,%
- ]%
- \setmonofont{LMMonoLt10-Regular}[%
- BoldFont = LMMono10-Regular,%
- ItalicFont = LMMonoLt10-Oblique,%
- BoldItalicFont = LMMonoSlant10-Regular,%
- ]%
-% \end{macrocode}
-% Für die alten Klassen von Klaus Bergmann sowie \TUDScript in der Version~v1.0
-% werden die fetten Schriften in einem stärkeren Schriftschnitt gesetzt.
-% \begin{macrocode}
-%<*package>
- \ifboolexpr{bool {@tud@oldclass} or bool {@tud@oldscrclass}}{%
- \setsansfont{Univers Light}[%
- BoldFont = Univers Bold,%
- ItalicFont = Univers Light Oblique,%
- BoldItalicFont = Univers Bold Oblique,%
- ]%
- }{}%
-%</package>
- \else% heavy
+ \if@tud@univers%
+ \if@tud@x@fontspec@enabled%
\setsansfont{Univers}[%
- BoldFont = Univers Bold,%
- ItalicFont = Univers Oblique,%
- BoldItalicFont = Univers Bold Oblique,%
+ FontFace = {l}{\updefault}{Univers Light},%
+ FontFace = {m}{\updefault}{Univers},%
+ FontFace = {b}{\updefault}{Univers Bold},%
+ FontFace = {bx}{\updefault}{Univers Bold},%
+ FontFace = {eb}{\updefault}{Univers Black},%
+ FontFace = {l}{\sldefault}{Univers Light Oblique},%
+ FontFace = {m}{\sldefault}{Univers Oblique},%
+ FontFace = {b}{\sldefault}{Univers Bold Oblique},%
+ FontFace = {bx}{\sldefault}{Univers Bold Oblique},%
+ FontFace = {eb}{\sldefault}{Univers Black Oblique},%
+ NFSSFamily = \tud@univers%
]%
\setmonofont{LMMono10-Regular}[%
- BoldFont = LMMonoLt10-Bold,%
- ItalicFont = LMMonoSlant10-Regular,%
- BoldItalicFont = LMMonoLt10-BoldOblique,%
+ 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%
]%
- \fi%
% \end{macrocode}
% \dots nach dem NFSS.
% \begin{macrocode}
- \else%
- \if@tud@univers%
+ \else%
\renewcommand*\sfdefault{\tud@univers}%
\renewcommand*\ttdefault{\tud@univers t}%
- \ifnum\tud@cdfont=\@ne\relax% true
+ \fi%
+ \ifnum\tud@cdfont@num=\@ne\relax% true
+ \if@tud@cdfont@ultrabold% ultrabold
+ \renewcommand*\bfdefault{b}%
+ \else% normalbold
\renewcommand*\bfdefault{m}%
-% \end{macrocode}
-% Bei den alten Klassen von Klaus Bergmann bzw. \TUDScript~v1.0 sind die fetten
-% Schriften stärker.
-% \begin{macrocode}
-%<*package>
- \ifboolexpr{bool {@tud@oldclass} or bool {@tud@oldscrclass}}{%
- \renewcommand*\bfdefault{b}%
- }{}%
-%</package>
- \renewcommand*\mddefault{l}%
- \if@tud@mweights%
- \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
+ \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}%
- \renewcommand*\mddefault{m}%
- \if@tud@mweights%
- \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*\mddefault{m}%
+ \if@tud@x@mweights@enabled%
+ \def\bfseries@rm{b}%
+ \def\bfseries@sf{b}%
+ \def\bfseries@tt{b}%
+ \def\mdseries@rm{m}%
+ \def\mdseries@sf{m}%
+ \def\mdseries@tt{m}%
\fi%
\fi%
+ \renewcommand*\rmdefault{\sfdefault}%
+ \renewcommand*\itdefault{\sldefault}%
\fi%
- \renewcommand*\rmdefault{\sfdefault}%
\renewcommand*\familydefault{\sfdefault}%
\renewcommand*\seriesdefault{\mddefault}%
\renewcommand*\shapedefault{\updefault}%
\fi%
- \if@tud@mweights%
+ \if@tud@x@mweights@enabled%
\edef\rmdef@ult{\rmdefault}%
\edef\sfdef@ult{\sfdefault}%
\edef\ttdef@ult{\ttdefault}%
@@ -1439,11 +802,12 @@
% definiert. Danach erfolgt die Behandlung der Mathematikschriften und die
% gewählte Standardschrift aktiviert. Zum Schluss wird das Layout erneuert.
% \begin{macrocode}
+ \ifdef{\tud@font@math@init}{}{\tud@font@math@set}%
\tud@font@skip@set%
- \ifstr{#1}{nomath}{}{\tud@font@math@set}%
\normalfont\selectfont%
%<*class>
\tud@layout@process%
+ \global\@tud@head@font@settrue%
%</class>
}
% \end{macrocode}
@@ -1458,7 +822,7 @@
% \end{macro}^^A \bfseries@tt
% \end{macro}^^A \bfseries@sf
% \end{macro}^^A \bfseries@rm
-% \end{macro}^^A \if@tud@mweights
+% \end{macro}^^A \if@tud@x@mweights@enabled
% \end{macro}^^A \tud@font@set
% \begin{macro}{\tud@font@skip@set}
% \changes{v2.04}{2015/02/17}{neu}^^A
@@ -1484,39 +848,35 @@
% Es werden die Standardeinstellungen abhängig von \opt{cdfont} entweder
% wiederhergestellt oder gesichert und neu definiert.
% \begin{macrocode}
- \tud@ifverlower{2.04}{}{%
- \ifcase\tud@cdfont\relax% false
- \tud@skip@restore{smallskipamount}%
- \tud@skip@restore{medskipamount}%
- \tud@skip@restore{bigskipamount}%
- \tud@skip@restore{abovecaptionskip}%
- \tud@skip@restore{belowcaptionskip}%
- \tud@skip@restore{columnsep}%
- \else% true/heavy
- \tud@skip@store{smallskipamount}%
- \tud@skip@store{medskipamount}%
- \tud@skip@store{bigskipamount}%
- \tud@skip@store{abovecaptionskip}%
- \tud@skip@store{belowcaptionskip}%
- \tud@skip@store{columnsep}%
- \tud@font@skip@@set%
- \fi%
- }%
+ \if@tud@relspacing%
+ \tud@skip@store{smallskipamount}%
+ \tud@skip@store{medskipamount}%
+ \tud@skip@store{bigskipamount}%
+ \tud@skip@store{abovecaptionskip}%
+ \tud@skip@store{belowcaptionskip}%
+ \tud@skip@store{columnsep}%
+ \tud@font@skip@@set%
+ \else%
+ \tud@skip@restore{smallskipamount}%
+ \tud@skip@restore{medskipamount}%
+ \tud@skip@restore{bigskipamount}%
+ \tud@skip@restore{abovecaptionskip}%
+ \tud@skip@restore{belowcaptionskip}%
+ \tud@skip@restore{columnsep}%
+ \fi%
}
% \end{macrocode}
% Hiermit erfolgt das eigentliche Setzen der Abstände.
% \begin{macrocode}
\newcommand*\tud@font@skip@@set{%
- \setlength{\@tempdimb}{\f@baselineskip}%
- \scr@setlength\smallskipamount{\dimexpr\@tempdimb/4\relax}%
- {\dimexpr\@tempdimb/12\relax}{\dimexpr\@tempdimb/12\relax}%
- \scr@setlength\medskipamount{\dimexpr\@tempdimb/2\relax}%
- {\dimexpr\@tempdimb/6\relax}{\dimexpr\@tempdimb/6\relax}%
- \scr@setlength\bigskipamount{\@tempdimb}%
- {\dimexpr\@tempdimb/3\relax}{\dimexpr\@tempdimb/3\relax}%
- \tud@skip@set\abovecaptionskip{\dimexpr4\@tempdimb/5\relax}%
- \tud@skip@set\belowcaptionskip{\z@}%
- \tud@skip@set\columnsep{1.1\baselineskip}%
+ \smallskipamount=\partopsep%
+ \medskipamount=\partopsep%
+ \multiply\medskipamount by 2%
+ \bigskipamount=\partopsep%
+ \multiply\bigskipamount by 4%
+ \tud@skip@set{abovecaptionskip}{\dimexpr\bigskipamount*5/6\relax}%
+ \tud@skip@set{belowcaptionskip}{\z@}%
+ \tud@skip@set{columnsep}{1.1\baselineskip}%
}
% \end{macrocode}
% \end{macro}^^A \columnsep
@@ -1527,75 +887,270 @@
% \end{macro}^^A \smallskipamount
% \end{macro}^^A \tud@font@skip@@set
% \end{macro}^^A \tud@font@skip@set
-% \begin{macro}{\tud@font@math@set}
-% Mit diesem Befehl werden die Einstellungen für den Mathematiksatz übernommen.
-% Die Option \opt{cdmath} wird ausgewertet, um zwischen dem Standard"~ und
-% neuem Mathematiksatz hin"~ und herschalten zu können. Dabei wird zum einen
-% das Mapping der griechischen Glyphen geändert, zum anderen werden die
-% originalen Mathematikversionen überschrieben respektive wiederhergestellt.
+% \begin{macro}{\tud@font@init}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@font@fallback}
+% \changes{v2.05}{2015/12/14}{neu}^^A
+% \begin{macro}{\tud@font@wrn}
+% \changes{v2.05}{2015/12/14}{neu}^^A
+% \begin{macro}{\univln}
+% \begin{macro}{\univrn}
+% \begin{macro}{\univbn}
+% \begin{macro}{\univxn}
+% \begin{macro}{\univls}
+% \begin{macro}{\univrs}
+% \begin{macro}{\univbs}
+% \begin{macro}{\univxs}
+% \begin{macro}{\dinbn}
+% \begin{macro}{\tud@dinbn}
+% \begin{macro}{\textuln}
+% \begin{macro}{\texturn}
+% \begin{macro}{\textubn}
+% \begin{macro}{\textuxn}
+% \begin{macro}{\textuls}
+% \begin{macro}{\texturs}
+% \begin{macro}{\textubs}
+% \begin{macro}{\textuxs}
+% \begin{macro}{\textdbn}
+% Das Makro \cs{tud@font@init} wird für die Defintion aller Befehle zur Auswahl
+% der Schriften des \CDs verwendet.
+% \begin{macrocode}
+\newcommand*\tud@font@init{%
+% \end{macrocode}
+% Es werden mehrere Schalter zur expliziten Auswahl für die Schriftschnitte
+% \textuln{Univers~45~Light}, \texturn{Univers~55~Regular},
+% \textubn{Univers~65~Bold}, \textuxn{Univers~75~Black},
+% \textuls{Univers~45~Light~Oblique}, \texturs{Univers~55~Regular~Oblique},
+% \textubs{Univers~65~Bold~Oblique} sowie \textuxs{Univers~75~Black~Oblique}
+% und \DIN definiert. Diese können so im Dokument unabhängig von der Option
+% \opt{cdfont} genutzt werden. Bei der Schriftauswahl der \DIN wird neben
+% dieser noch die entsprechende Mathematikschrift aktiviert.
% \begin{macrocode}
-\newcommand*\tud@font@math@set{%
\if@tud@univers%
- \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%
+ \newrobustcmd*\univln{\usefont{\encodingdefault}{\tud@univers}{l}{n}}%
+ \newrobustcmd*\univrn{\usefont{\encodingdefault}{\tud@univers}{m}{n}}%
+ \newrobustcmd*\univbn{\usefont{\encodingdefault}{\tud@univers}{b}{n}}%
+ \newrobustcmd*\univxn{\usefont{\encodingdefault}{\tud@univers}{eb}{n}}%
+ \newrobustcmd*\univls{\usefont{\encodingdefault}{\tud@univers}{l}{sl}}%
+ \newrobustcmd*\univrs{\usefont{\encodingdefault}{\tud@univers}{m}{sl}}%
+ \newrobustcmd*\univbs{\usefont{\encodingdefault}{\tud@univers}{b}{sl}}%
+ \newrobustcmd*\univxs{\usefont{\encodingdefault}{\tud@univers}{eb}{sl}}%
+% \end{macrocode}
+% Sind die notwendigen Schriften nicht installiert, werden die Schalter für die
+% Rückfallebene so definiert, dass diese eine Warnung ausgeben.
+% \begin{macrocode}
+ \else%
+ \newrobustcmd*\univln{\tud@font@fallback{Univers Light}{md}{up}}%
+ \newrobustcmd*\univrn{\tud@font@fallback{Univers}{md}{up}}%
+ \newrobustcmd*\univbn{\tud@font@fallback{Univers Bold}{bf}{up}}%
+ \newrobustcmd*\univxn{\tud@font@fallback{Univers Black}{bf}{up}}%
+ \newrobustcmd*\univls{\tud@font@fallback{Univers Light Oblique}{md}{sl}}%
+ \newrobustcmd*\univrs{\tud@font@fallback{Univers Oblique}{md}{sl}}%
+ \newrobustcmd*\univbs{\tud@font@fallback{Univers Bold Oblique}{bf}{sl}}%
+ \newrobustcmd*\univxs{\tud@font@fallback{Univers Black Oblique}{bf}{sl}}%
+ \fi%
+% \end{macrocode}
+% Nach der Univers-Schriftfamilie wird für DIN~Bold äquivalent verfahren. Da
+% dieser Schriftschnitt zwingend für die Überschriften benötigt wird, sollte
+% dieser zumindest auch auf deren Stil schalten.
+% \begin{macrocode}
+ \if@tud@dinbold%
+ \if@tud@x@fontspec@enabled%
+ \newfontface\tud@dinbn{DIN Bold}[%
+ FontFace = {l}{\updefault}{DIN Bold},%
+ FontFace = {m}{\updefault}{DIN Bold},%
+ FontFace = {b}{\updefault}{DIN Bold},%
+ FontFace = {bx}{\updefault}{DIN Bold},%
+ FontFace = {eb}{\updefault}{DIN Bold},%
+ FontFace = {l}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},%
+ FontFace = {m}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},%
+ FontFace = {b}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},%
+ FontFace = {bx}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},%
+ FontFace = {eb}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},%
+ NFSSFamily = \tud@dinbold%
+ ]%
\else%
- \tud@cmd@restore{mv@normal}%
- \tud@cmd@restore{mv@bold}%
- \tud@font@greek@loop\tud@font@greek@reset%
+ \newrobustcmd*\tud@dinbn{\usefont{\encodingdefault}{\tud@dinbold}{b}{n}}%
\fi%
- \fi%
- \if@tud@slantedgreek%
- \tud@font@greek@loop\tud@font@greek@slanted%
+ \if@tud@dinboldmath%
+ \appto\tud@dinbn{\mathversion{dinbold}}%
+ \fi%
+ \newrobustcmd*\dinbn{\tud@dinbn}%
\else%
- \tud@font@greek@loop\tud@font@greek@upright%
+ \newrobustcmd*\tud@dinbn{\sectfont}%
+ \newrobustcmd*\dinbn{\tud@font@wrn{DIN Bold}\tud@dinbn}%
\fi%
- \mathversion{normal}%
+% \end{macrocode}
+% Außerdem werden für die Schriften noch die entsprechenden Textauswahlbefehle
+% bereitgestellt.
+% \begin{macrocode}
+ \newcommand*\textuln{}%
+ \newcommand*\texturn{}%
+ \newcommand*\textubn{}%
+ \newcommand*\textuxn{}%
+ \newcommand*\textuls{}%
+ \newcommand*\texturs{}%
+ \newcommand*\textubs{}%
+ \newcommand*\textuxs{}%
+ \newcommand*\textdbn{}%
+ \DeclareTextFontCommand\textuln{\univln}%
+ \DeclareTextFontCommand\texturn{\univrn}%
+ \DeclareTextFontCommand\textubn{\univbn}%
+ \DeclareTextFontCommand\textuxn{\univxn}%
+ \DeclareTextFontCommand\textuls{\univls}%
+ \DeclareTextFontCommand\texturs{\univrs}%
+ \DeclareTextFontCommand\textubs{\univbs}%
+ \DeclareTextFontCommand\textuxs{\univxs}%
+ \DeclareTextFontCommand\textdbn{\dinbn}%
+% \end{macrocode}
+% Nach der optionsabhängigen Definition der Schriftauswahlbefehle wird der
+% Initialisierungsbefehle undefiniert gesetzt.
+% \begin{macrocode}
+ \undef\tud@font@init%
}
% \end{macrocode}
-% \end{macro}^^A \tud@font@math@set
-% \begin{macro}{\tud@font@greek@set}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% \begin{macro}{\tud@font@greek@reset}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% Mit diesen beiden Befehlen kann innerhalb des Dokumentes problemlos zwischen
-% griechischen Buchstaben für die CD-Schriften und den normalen gewechselt
-% werden.
+% Hier wird die Rückfallebene für die Schriftschalter sowie die dazugehörige
+% Warnung definiert.
% \begin{macrocode}
-\newcommand*\tud@font@greek@set[1]{%
- \tud@cmd@store{#1}%
- \tud@cmd@store{up#1}%
- \tud@cmd@store{var#1}%
- \csletcs{#1}{tud@#1}%
- \csletcs{up#1}{tud@up#1}%
- \csletcs{var#1}{tud@var#1}%
+\newcommand*\tud@font@fallback[3]{%
+ \tud@font@wrn{#1}%
+ \sffamily\csuse{#2series}\csuse{#3shape}%
}
-\newcommand*\tud@font@greek@reset[1]{%
- \tud@cmd@restore{#1}%
- \tud@cmd@restore{up#1}%
- \tud@cmd@restore{var#1}%
+\newcommand*\tud@font@wrn[1]{%
+%<*class>
+ \ClassWarning{\TUD@Class@Name}%
+%</class>
+%<*package>
+ \PackageWarning{tudscrfonts}%
+%</package>
+ {%
+ The requested font `#1' is not available, so\MessageBreak%
+ a fallback layout is used%
+ }%
}
% \end{macrocode}
-% \end{macro}^^A \tud@font@greek@reset
-% \end{macro}^^A \tud@font@greek@set
-% \begin{macro}{\tud@font@greek@upright}
-% \begin{macro}{\tud@font@greek@slanted}
-% \changes{v2.04}{2014/03/10}{neu}^^A
-% Mit den beiden Befehlen kann die Definition der griechischen Buchstaben
-% entweder auf aufrecht bzw. kursiv gesetzt werden.
+% \end{macro}^^A \textdbn
+% \end{macro}^^A \textuxs
+% \end{macro}^^A \textubs
+% \end{macro}^^A \texturs
+% \end{macro}^^A \textuls
+% \end{macro}^^A \textuxn
+% \end{macro}^^A \textubn
+% \end{macro}^^A \texturn
+% \end{macro}^^A \textuln
+% \end{macro}^^A \tud@dinbn
+% \end{macro}^^A \dinbn
+% \end{macro}^^A \univxs
+% \end{macro}^^A \univbs
+% \end{macro}^^A \univrs
+% \end{macro}^^A \univls
+% \end{macro}^^A \univxn
+% \end{macro}^^A \univbn
+% \end{macro}^^A \univrn
+% \end{macro}^^A \univln
+% \end{macro}^^A \tud@font@wrn
+% \end{macro}^^A \tud@font@fallback
+% \end{macro}^^A \tud@font@init
+% \begin{macro}{\cdfont}
+% \changes{v2.04}{2015/03/04}{neu}^^A
+% \begin{macro}{\tudfont}
+% \changes{v2.04}{2015/04/24}{\cls{tudmathposter} wird unterstützt}^^A
+% \begin{macro}{\textcdfont}
+% \changes{v2.04}{2015/03/04}{neu}^^A
+% \begin{macro}{\tud@cdfont@get}
+% \changes{v2.04}{2015/03/04}{neu}^^A
+% \begin{macro}{\tud@cdfont@trim}
+% \changes{v2.04}{2015/03/04}{neu}^^A
+% \begin{macro}{\tud@cdfont@@trim}
+% \changes{v2.04}{2015/03/04}{neu}^^A
+% Die Klassen \cls{tudposter} und \cls{tudmathposter} definieren den Befehl
+% \cs{tudfont}, mit welchem die Schriften des \CDs der \TnUD auch mit Klarnamen
+% ausgewählt werden können. Zur Kompatibilität wird der Befehl \cs{cdfont}
+% definiert, welcher die gleiche Funktionalität bereitstellt. Zusätzlich wird
+% der Befehl \cs{textcdfont} bereitgestellt, der die Auswahl der Schrift als
+% Textbefehl ermöglicht.
% \begin{macrocode}
-\newcommand*\tud@font@greek@upright[1]{\csletcs{#1}{up#1}}
-\newcommand*\tud@font@greek@slanted[1]{\csletcs{#1}{var#1}}
+\newcommand*\cdfont[1]{%
+ \tud@cdfont@get{#1}%
+ \ifx\@tempc\relax\else%
+ \ifstr{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}%
+ \fi%
+}
+\providecommand*\tudfont[1]{\cdfont{#1}}
+\newcommand*\textcdfont[2]{%
+ \tud@cdfont@get{#1}%
+ \ifx\@tempc\relax\else%
+ \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}%
+ \fi%
+}
+\newcommand*\tud@cdfont@get[1]{%
+ \tud@cdfont@trim\@tempa{#1}%
+ \ifstr{\@tempa}{45}{\def\@tempc{ln}}{%
+ \ifstr{\@tempa}{55}{\def\@tempc{rn}}{%
+ \ifstr{\@tempa}{65}{\def\@tempc{bn}}{%
+ \ifstr{\@tempa}{75}{\def\@tempc{xn}}{%
+ \ifstr{\@tempa}{45oblique}{\def\@tempc{ls}}{%
+ \ifstr{\@tempa}{55oblique}{\def\@tempc{rs}}{%
+ \ifstr{\@tempa}{65oblique}{\def\@tempc{bs}}{%
+ \ifstr{\@tempa}{75oblique}{\def\@tempc{xs}}{%
+ \ifstr{\@tempa}{oblique45}{\def\@tempc{ls}}{%
+ \ifstr{\@tempa}{oblique55}{\def\@tempc{rs}}{%
+ \ifstr{\@tempa}{oblique65}{\def\@tempc{bs}}{%
+ \ifstr{\@tempa}{oblique75}{\def\@tempc{xs}}{%
+ \ifstr{\@tempa}{din}{\def\@tempc{dinbn}}{%
+ \ifstr{\@tempa}{din65}{\def\@tempc{dinbn}}{%
+ \let\@tempc\relax%
+%<*class>
+ \ClassWarning{\TUD@Class@Name}%
+%</class>
+%<*package>
+ \PackageWarning{tudscrfonts}%
+%</package>
+ {The font `#1' is unknown}%
+ }}}}}}}}}}}}}}%
+}
+\newcommand*\tud@cdfont@trim[2]{%
+ \protected@edef\@tempa{\trim@spaces{#2}}%
+ \tud@lowerstring{\@tempa}{\@tempa}%
+ \tud@cdfont@@trim{ }{}%
+ \tud@cdfont@@trim{-}{}%
+ \tud@cdfont@@trim{_}{}%
+ \tud@cdfont@@trim{~}{}%
+ \tud@cdfont@@trim{ce}{}%
+ \tud@cdfont@@trim{ff}{}%
+ \tud@cdfont@@trim{univers}{}%
+ \tud@cdfont@@trim{60}{65}%
+ \tud@cdfont@@trim{light}{45}%
+ \tud@cdfont@@trim{regular}{55}%
+ \tud@cdfont@@trim{bold}{65}%
+ \tud@cdfont@@trim{black}{75}%
+ \tud@cdfont@@trim{4545}{45}%
+ \tud@cdfont@@trim{5555}{55}%
+ \tud@cdfont@@trim{6565}{65}%
+ \tud@cdfont@@trim{7575}{75}%
+ \tud@cdfont@@trim{italic}{oblique}%
+ \tud@cdfont@@trim{slanted}{oblique}%
+ \let#1\@tempa%
+}
+\newcommand*\tud@cdfont@@trim[2]{%
+ \def\@tempb##1#1##2\relax{\def\@tempa{##1#2##2}}%
+ \@expandtwoargs\in@{#1}{\@tempa}%
+ \@whilesw\ifin@\fi{%
+ \expandafter\@tempb\@tempa\relax%
+ \@expandtwoargs\in@{#1}{\@tempa}%
+ }%
+}
% \end{macrocode}
-% \end{macro}^^A \tud@font@greek@slanted
-% \end{macro}^^A \tud@font@greek@upright
+% \end{macro}^^A \tud@cdfont@@trim
+% \end{macro}^^A \tud@cdfont@trim
+% \end{macro}^^A \tud@cdfont@get
+% \end{macro}^^A \textcdfont
+% \end{macro}^^A \tudfont
+% \end{macro}^^A \cdfont
%
% \iffalse
-%</(class|package)&body>
-%<*(class|package)&option>
+%</body>
+%<*option>
% \fi
%
% \subsection{Schriften für den Mathematiksatz}
@@ -1624,10 +1179,10 @@
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
\ifcase\@tempa\relax% false
\bool@set@lock{@tud@cdmath}{false}%
- \if@atdocument\tud@font@math@set\fi%
+ \TUD@SpecialOptionAtDocument{tud@font@math@set}%
\or% true
\bool@set@lock{@tud@cdmath}{true}%
- \if@atdocument\tud@font@math@set\fi%
+ \TUD@SpecialOptionAtDocument{tud@font@math@set}%
\or% upgreek
\TUDoptions{slantedgreek=false}%
\or% slgreek
@@ -1651,7 +1206,7 @@
\TUD@set@ifkey{slantedgreek}{@tud@slantedgreek}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
\bool@set@lock{@tud@slantedgreek}{#1}%
- \if@atdocument\tud@font@math@set\fi%
+ \TUD@SpecialOptionAtDocument{tud@font@math@set}%
\fi%
}
\TUD@key{slantedGreek}[true]{\TUDoptions{slantedgreek=#1}}
@@ -1662,119 +1217,543 @@
% \end{option}^^A slantedgreek
%
% \iffalse
-%</(class|package)&option>
-%<*class&body>
+%</option>
+%<*body>
% \fi
%
-% \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}{Fix für die Änderung von \cs{spaceskip} durch
-% \pkg{ragged2e}}^^A
-% \begin{macro}{\tud@head@font@bold}
-% \begin{macro}{\tud@head@font@light}
-% Die Schrift der Kopfzeile wird entweder in den Schriften des \CDs oder aber
-% in den serifenlosen Standardschriften gesetzt, wobei für beide Varianten
-% sowohl eine fettgedruckte als auch eine normale Version benötigt wird. Die
-% Schrifthöhe ist durch das \CD unabhängig von der gewählten Schriftgröße im
-% Dokument vorgegeben und wird in Abhängigkeit von der Papiergröße gewählt und
-% in \cs{tud@head@font@size} gespeichert.
-% \begin{macrocode}
-\newcommand*\tud@head@font@bold{}
-\newcommand*\tud@head@font@light{}
-\newcommand*\tud@head@font@set{%
-% \end{macrocode}
-% Das Paket \pkg{ragged2e} ändert im Zweifelsfall die Länge \cs{spaceskip}. Um
-% den Kopf unbeeinflusst davon immer in der gleichen Gestalt erscheinen zu
-% lassen, wird dies hier temporär unterdrückt.
-% \begin{macrocode}
- \ifdef{\@raggedtwoe@everyselectfont}{%
- \let\@raggedtwoe@everyselectfont\relax%
- \setlength\spaceskip{\z@}%
- \selectfont%
- }{}%
+% \begin{macro}{\tud@font@greek@loop}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% Um ggf. Anpassungen an den griechischen Majuskeln vornehmenzu können, wird
+% das Makro \cs{tud@font@greek@loop} definert, mit dem eine Namensliste der
+% Buchstaben durchlaufen wird.
+% \begin{macrocode}
+\newcommand*\tud@font@greek@loop[1]{%
+ \@for\@tempa:={%
+ Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega%
+ }\do{#1{\@tempa}}%
+}
% \end{macrocode}
-% Zuerst die Rückfallebene für den Fall, dass keine Schriften im \CD verendet
-% werden.
+% \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}
- \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}%
- {\sfdefault}{bx}{n}{\tud@head@font@size}%
- \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
- {\sfdefault}{\mddefault}{n}{\tud@head@font@size}%
+\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}
-% Die Option \opt{cdhead} wird ausgewertet.
+% \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}
- \@tempswafalse%
- \ifcase\tud@head@font\relax% false
- \ifnum\tud@cdfont>\z@\relax% true/heavy
- \ClassWarning{\TUDClassName}{%
- It isn't possible to use `cdhead=false'\MessageBreak%
- together with `cdfont=true'%
+\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%
+ }%
}%
- \@tempswatrue%
- \fi%
- \else% true/heavy
- \@tempswatrue%
+ }{}%
+ \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 die
+% \pkg{ams}-Pakete 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}
-% Die Schriften für den Kopf im \CD werden aktiviert.
+% 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@tempswa% true/heavy
+ \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}
-% Damit \cs{DeclareFixedFont} zusammen mit \pkg{fontspec} verwendet werden
-% kann, wurde zu Beginn der Klasse den drei benötigten Schriftschnitten der
-% Univers spezielle Namen zugewiesen, die hier verwendet werden.
+% Wird das Paket \pkg{unicode-math} verwendet, werden keine Einstellungen für
+% die Mathematikschriften vorgenommen\dots
% \begin{macrocode}
- \if@tud@fontspec%
- \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}%
- {UniversBold}{m}{n}{\tud@head@font@size}%
- \ifcase\tud@head@font\relax\or% true
- \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
- {UniversLight}{m}{n}{\tud@head@font@size}%
- \or% heavy
- \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
- {UniversRegular}{m}{n}{\tud@head@font@size}%
- \fi%
+ \@ifpackageloaded{unicode-math}{%
+ \let\tud@font@math@set\relax%
+ \bool@set@lock{@tud@cdmath}{false}%
+ }{%
% \end{macrocode}
-% Die klassische Auswahl mittels NFSS-Schriftname und \cs{mddefault}.
+% Für die griechischen Buchstaben wird 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}
+ \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%
+ \tud@font@greek@loop\tud@font@greek@init%
+% \end{macrocode}
+% Zum Schluss werden abhängig von der gewählten Einstellung für die Schriftart
+% der Option \opt{cdfont} die benötigten Mathematikversionen geladen.
+% \begin{macrocode}
+ \tud@font@math@set%
+ }%
+% \end{macrocode}
+% Daran anschließend werden die \DIN-Schriften in einer Box verwendet, um das
+% Laden der Schriftdefinitionen am Dokumentbeginn zu forcieren.
+% \begin{macrocode}
+ \sbox\z@{\tud@dinbn$ $}%
+% \end{macrocode}
+% Zuletzt wird der Befehl für die Initialisierung der Mathematikschriften
+% undefiniert gesetzt.
+% \begin{macrocode}
+ \undef\tud@font@math@init%
+}
+% \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@init}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\upDelta}
+% \begin{macro}{\upGamma}
+% \begin{macro}{\upLambda}
+% \begin{macro}{\upOmega}
+% \begin{macro}{\upPhi}
+% \begin{macro}{\upPi}
+% \begin{macro}{\upPsi}
+% \begin{macro}{\upSigma}
+% \begin{macro}{\upTheta}
+% \begin{macro}{\upUpsilon}
+% \begin{macro}{\upXi}
+% \begin{macro}{\varDelta}
+% \begin{macro}{\varGamma}
+% \begin{macro}{\varLambda}
+% \begin{macro}{\varOmega}
+% \begin{macro}{\varPhi}
+% \begin{macro}{\varPi}
+% \begin{macro}{\varPsi}
+% \begin{macro}{\varSigma}
+% \begin{macro}{\varTheta}
+% \begin{macro}{\varUpsilon}
+% \begin{macro}{\varXi}
+% Dieses Makro sorgt dafür, dass neben den normalen Makros für die griechischen
+% Majuskeln die zusätzlichen Befehle für das explizite Auswählen aufrechter und
+% kursiver Buchstaben.
+% \begin{macrocode}
+\newcommand*\tud@font@greek@init[1]{%
+ \ifcsundef{up#1}{%
+ \if@tempswa%
+ \csletcs{up#1}{tud@up#1}%
\else%
- \if@tud@univers%
- \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}%
- {\tud@univers}{b}{n}{\tud@head@font@size}%
- \ifcase\tud@head@font\relax\or% true
- \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
- {\tud@univers}{l}{n}{\tud@head@font@size}%
- \or% heavy
- \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
- {\tud@univers}{m}{n}{\tud@head@font@size}%
+ \csletcs{up#1}{#1}%
+ \fi%
+ }{}%
+ \ifcsundef{var#1}{%
+ \if@tempswa%
+ \csletcs{var#1}{#1}%
+ \else%
+ \csletcs{var#1}{tud@var#1}%
+ \fi%
+ }{}%
+}
+% \end{macrocode}
+% \end{macro}^^A \varXi
+% \end{macro}^^A \varUpsilon
+% \end{macro}^^A \varTheta
+% \end{macro}^^A \varSigma
+% \end{macro}^^A \varPsi
+% \end{macro}^^A \varPi
+% \end{macro}^^A \varPhi
+% \end{macro}^^A \varOmega
+% \end{macro}^^A \varLambda
+% \end{macro}^^A \varGamma
+% \end{macro}^^A \varDelta
+% \end{macro}^^A \upXi
+% \end{macro}^^A \upUpsilon
+% \end{macro}^^A \upTheta
+% \end{macro}^^A \upSigma
+% \end{macro}^^A \upPsi
+% \end{macro}^^A \upPi
+% \end{macro}^^A \upPhi
+% \end{macro}^^A \upOmega
+% \end{macro}^^A \upLambda
+% \end{macro}^^A \upGamma
+% \end{macro}^^A \upDelta
+% \end{macro}^^A \tud@font@greek@init
+% \begin{macro}{\tud@font@math@set}
+% Mit diesem Befehl werden die Einstellungen für den Mathematiksatz übernommen.
+% Die Option \opt{cdmath} wird ausgewertet, um zwischen dem Standard"~ und
+% neuem Mathematiksatz hin"~ und herschalten zu können. Dabei wird zum einen
+% das Mapping der griechischen Glyphen geändert, zum anderen werden die
+% originalen Mathematikversionen überschrieben respektive wiederhergestellt.
+% \begin{macrocode}
+\newcommand*\tud@font@math@set{%
+% \end{macrocode}
+% Wurde per Option die Verwendung der Mathematikschriften im \CD aktiviert,
+% wird für den Fall, dass die Schriften des \CDs nicht installiert sind, eine
+% Warnung erzeugt.
+% \begin{macrocode}
+ \if@atdocument%
+ \ifnum\tud@cdfont@num>\z@\relax% true/heavy
+ \if@tud@cdmath%
+ \if@tud@universmath\else%
+%<*class>
+ \ClassWarning{\TUD@Class@Name}%
+%</class>
+%<*package>
+ \PackageWarning{tudscrfonts}%
+%</package>
+ {`Univers' math fonts not found}%
+ \fi%
+ \if@tud@dinboldmath\else%
+%<*class>
+ \ClassWarning{\TUD@Class@Name}%
+%</class>
+%<*package>
+ \PackageWarning{tudscrfonts}%
+%</package>
+ {`DIN Bold' math fonts not found}%
\fi%
\fi%
\fi%
\fi%
+ \if@tud@universmath%
+ \if@tud@cdmath%
+ \tud@cmd@store{mv@normal}%
+ \tud@cmd@store{mv@bold}%
+ \let\mv@normal\mv@univers%
+ \let\mv@bold\mv@universbold%
+ \tud@font@greek@loop\tud@font@greek@set%
+ \else%
+ \tud@cmd@restore{mv@normal}%
+ \tud@cmd@restore{mv@bold}%
+ \tud@font@greek@loop\tud@font@greek@reset%
+ \fi%
+ \fi%
+ \if@tud@slantedgreek%
+ \tud@font@greek@loop\tud@font@greek@slanted%
+ \else%
+ \tud@font@greek@loop\tud@font@greek@upright%
+ \fi%
+ \mathversion{normal}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@font@math@set
+% \begin{macro}{\tud@font@greek@set}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% \begin{macro}{\tud@font@greek@reset}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% Mit diesen beiden Befehlen kann innerhalb des Dokumentes problemlos zwischen
+% griechischen Buchstaben für die CD-Schriften und den normalen gewechselt
+% werden.
+% \begin{macrocode}
+\newcommand*\tud@font@greek@set[1]{%
+ \tud@cmd@store{#1}%
+ \tud@cmd@store{up#1}%
+ \tud@cmd@store{var#1}%
+ \csletcs{#1}{tud@#1}%
+ \csletcs{up#1}{tud@up#1}%
+ \csletcs{var#1}{tud@var#1}%
+}
+\newcommand*\tud@font@greek@reset[1]{%
+ \tud@cmd@restore{#1}%
+ \tud@cmd@restore{up#1}%
+ \tud@cmd@restore{var#1}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@font@greek@reset
+% \end{macro}^^A \tud@font@greek@set
+% \begin{macro}{\tud@font@greek@upright}
+% \begin{macro}{\tud@font@greek@slanted}
+% \changes{v2.04}{2015/03/10}{neu}^^A
+% Mit den beiden Befehlen kann die Definition der griechischen Buchstaben
+% entweder auf aufrecht bzw. kursiv gesetzt werden.
+% \begin{macrocode}
+\newcommand*\tud@font@greek@upright[1]{\csletcs{#1}{up#1}}
+\newcommand*\tud@font@greek@slanted[1]{\csletcs{#1}{var#1}}
+% \end{macrocode}
+% \end{macro}^^A \tud@font@greek@slanted
+% \end{macro}^^A \tud@font@greek@upright
+% Samtliche Schrifteinstellungen erfolgen erst am Ende der Präambel, um etwaige
+% Einstellungen irgendwelcher Schriftpakete beachten zu können. Dabei erfolgt
+% das Setzen der Mathematikschriften durch \cs{AtBeginDocument} innerhalb von
+% \cs{AtEndPreamble} am Ende \emph{aller} \cs{AtBeginDocument}.
+% \begin{macrocode}
+%<class>\AtEndPreamble%
+%<package>\AtBeginDocument%
+{%
+% \end{macrocode}
+% Falls \pkg{mweights} geladen wurde, werden im Bedarfsfall die vom Paket
+% erwarteten Makros für die Schriftschnitte der einzelnen Schriftfamilien
+% definiert. Beim Aufruf von \cs{tud@font@set} werden diese anschließend
+% gesichert.
+% \begin{macrocode}
+ \if@tud@x@mweights@enabled%
+ \ifundef{\bfseries@rm}{\edef\bfseries@rm{\bfdefault}}{}%
+ \ifundef{\bfseries@sf}{\edef\bfseries@sf{\bfdefault}}{}%
+ \ifundef{\bfseries@tt}{\edef\bfseries@tt{\bfdefault}}{}%
+ \ifundef{\mdseries@rm}{\edef\mdseries@rm{\mddefault}}{}%
+ \ifundef{\mdseries@sf}{\edef\mdseries@sf{\mddefault}}{}%
+ \ifundef{\mdseries@tt}{\edef\mdseries@tt{\mddefault}}{}%
+ \fi%
+ \tud@font@check%
+% \end{macrocode}
+% Damit \pkg{tudscrfonts} reibungslos mit den nachfolgenden Definitionen
+% funktioniert, wird im Bedarfsfall der Befehl \cs{sectfont} vorgehalten.
+% \begin{macrocode}
+%<*package>
+ \ifdef{\sectfont}{}{\let\sectfont\relax}%
+%</package>
+% \end{macrocode}
+% Damit die Schrift im Dokument später noch umgestellt werden kann, werden
+% sämtliche Einstellungen erst am Ende der Präambel gesichert. Deshalb wird
+% der dafür verantwortliche Befehl \cs{tud@font@set} hier zum ersten Mal
+% verwendet. Damit ist es möglich, die Schriften eventuell geladener Pakete wie
+% \pkg{lmodern} oder \pkg{libertine} vorher zu sichern und später wieder zu
+% aktivieren.
+% \begin{macrocode}
+ \tud@font@set%
+% \end{macrocode}
+% Nachdem auf die Schriften geprüft wurde, werden noch die Schriftschalter und
+% die dazugehörigen Befehle definiert. Außerdem wird eine Warnung ausgegeben,
+% sobald mindestens eine der notwendigen OpenType-Schriften fehlt.
+% \begin{macrocode}
+ \tud@font@init%
+% \end{macrocode}
+% Die Einstellungen für den Mathematiksatz erfolgen erst zu Dokumentbeginn, um
+% insbesondere auf Einstellungen von \pkg{fontspec} reagieren zu können. Da es
+% so gut wie keine freien OpenType"=Schriften für den mathmatischen Formelsatz
+% gibt, werden \emph{immer} die PostScript"=Schriften verwendet, falls diese
+% installiert sind.
+% \begin{macrocode}
+%<class> \AtBeginDocument{\tud@font@math@init}%
+%<package> \tud@font@math@init%
}
% \end{macrocode}
-% \end{macro}^^A \tud@head@font@light
-% \end{macro}^^A \tud@head@font@bold
-% \end{macro}^^A \tud@head@font@set
%
-% \iffalse
-%</class&body>
-%<*(class|package)&body>
-% \fi
+% \subsection{Anpassungen für die Klasse \cls{beamer}}
+%
+% Die \cls{beamer}-Klasse lädt standardmäßig serifenlose Mathematikschriften.
+% Dies soll verhindert werden, damit die Auswahl über die Option \opt{cdmath}
+% erfolgen kann.
+% \begin{macrocode}
+%<*package>
+\AfterClass*{beamer}{\usefonttheme[onlymath]{serif}}
+%</package>
+% \end{macrocode}
+%
+% \subsection{Anpassungen für das Paket \pkg{siunitx}}
+%
+% \begin{macro}{\lseries}
+% Das Paket \pkg{siunitx} nutzt den Befehl \cs{lseries} für den Fall, dass für
+% den Fließtext eine Schrift die Serie \val{l} verwendet. Dem wird hier
+% Rechnung getragen.
+% \begin{macrocode}
+\AfterPackage*{siunitx}{%
+ \providecommand*\lseries{\fontseries{l}\selectfont}%
+}
+% \end{macrocode}
+% \end{macro}^^A \lseries
+%
+% \subsection{Schrifteinstellungen für Überschriften}
%
% \begin{macro}{\ifdin}
% \changes{v2.02}{2014/08/29}{Anpassungen für \pkg{fontspec}}^^A
-% Der Befehl \cs{ifdin} prüft auf die Verwendung von DIN~Bold. Davon abhängig
-% wird entweder das erste oder das zweite Argument ausgeführt. Dies kann für
-% die Befehle aller Gliederungsebenen genutzt werden, um zwischen der Ausgabe
-% im Dokument sowie Inhaltserzeichnis und/oder Kolumnentitel zu unterscheiden.
+% Der Befehl \cs{ifdin} prüft auf die Verwendung von \DIN. Davon abhängig wird
+% entweder das erste oder das zweite Argument ausgeführt. Dies kann für die
+% Befehle aller Gliederungsebenen genutzt werden, um zwischen der Ausgabe im
+% Dokument sowie Inhaltsverzeichnis und/oder Kolumnentitel zu unterscheiden.
% \begin{macrocode}
\newrobustcmd*\ifdin{%
- \@tempswafalse%
- \@expandtwoargs\in@{DINBold}{\f@family}%
- \ifin@\@tempswatrue\fi%
- \ifx\f@family\tud@dinbold\relax\@tempswatrue\fi%
- \if@tempswa%
+ \ifx\f@family\tud@dinbold%
\expandafter\@firstoftwo%
\else%
\expandafter\@secondoftwo%
@@ -1782,34 +1761,27 @@
}
% \end{macrocode}
% \end{macro}^^A \ifdin
-%
-% \subsection{Bedingte Majuskeln für Überschriften}
-%
-% Überschriften sollen bloß in Großbuchstaben gesetzt werden, wenn auch
-% tatsächlich die Schrift DIN~Bold verwendet wird.
-% \begin{macro}{\tud@makeuppercase}
-% Der Befehl führt \cs{MakeTextUppercase}\marg{Text} deshalb nur aus, wenn die
-% richtige Schriftfamilie verwendet wird.
-% \begin{macrocode}
-\newcommand*\tud@makeuppercase[1]{%
- \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}%
-% \end{macrocode}
-% Aufgrund eines Fehlers im \LaTeX-Kernels liegt die Grundlinie für die beiden
-% Gliederungsebenen \cs{section} und \cs{subsection} zu hoch. Mit dem Einfügen
-% des vertikalen Freiraums für die Umlaute wird diese automatisch nach unten
-% verschoben. Allerdings ist das ein ziemlich übler Hack.
-% \begin{macrocode}
- \protect\vphantom{\"A\"O\"U}%
-% \addtokomafont{section}{\strut\ignorespaces}%
+% \begin{macro}{\tud@sec@fontface}
+% \changes{v2.05}{2016/04/04}{Optionales Argument für \pkg{tudscrcomp}}^^A
+% Mit \cs{tud@sec@fontface} wird die Schriftart für Überschriften im
+% Layout des \CDs definiert. Normalerweise wird hierfür \DIN verwendet, was
+% allerdings per Option auch deaktiviert werden kann.
+% \begin{macrocode}
+\newcommand*\tud@sec@fontface[1][]{%
+ \if@tud@cdfont@din%
+ \tud@dinbn\tud@raggedright%
+ \else%
+ \sectfont#1%
+ \fi%
}
% \end{macrocode}
-% \end{macro}^^A \tud@makeuppercase
+% \end{macro}^^A \tud@sec@fontface
%
-% \subsection{Anpassungen für das Paket \pkg{ragged2e}}
+% \subsection{Ausrichtung von Überschriften und das Paket \pkg{ragged2e}}
%
% \begin{macro}{\tud@raggedright}
% \begin{macro}{\tud@RaggedRight}
-% Die Überschriften in DIN"~Bold sollen laut \CD linksbündig und nie mit
+% 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
@@ -1828,843 +1800,36 @@
\renewcommand*\tud@RaggedRight{\RaggedRight}%
}
% \end{macrocode}
-% \end{macro}^^A \tud@ragged2e
+% \end{macro}^^A \tud@RaggedRight
% \end{macro}^^A \tud@raggedright
%
-% \subsection{Anpassungen für das Paket \pkg{siunitx}}
+% \subsection{Bedingte Majuskeln für Überschriften}
%
-% \begin{macro}{\lseries}
-% Das Paket \pkg{siunitx} nutzt den Befehl \cs{lseries} für den Fall, dass für
-% den Fließtext eine Schrift die Serie \val{l} verwendet. Dem wird hier
-% Rechnung getragen.
+% Für Überschriften in Majuskeln\footnote{Großbuchstaben} wird der Befehl
+% \cs{MakeTextUppercase}, was den internen \LaTeX-Befehl \cs{MakeUppercase}
+% verbessert, aus dem Paket \pkg{textcase} genutzt.
% \begin{macrocode}
-\AfterPackage*{siunitx}{%
- \providecommand*\lseries{\fontseries{l}\selectfont}
-}
-% \end{macrocode}
-% \end{macro}^^A \lseries
-%
-% \iffalse
-%</(class|package)&body>
-%</!fontsizes>
-% \fi
-%
-% \Finale
-%
-\endinput
-%
-% \iffalse
-%<*fontsizes>
-% \fi
-%
-% \subsection{Erzeugen von Schriftgrößendateien}
-%
-% Ab der \TUDScript-Version~v2.04 können sowohl eigene Schriftgrößendateien
-% erzeugt werden als auch zusätzlich ein~-- aus \KOMAScript{} abgewandelter~--
-% Befehl zur automatischen Erzeugung dieser Dateien genutzt werden. Im Laufe
-% der Weiterentwicklung von \TUDScript hat sich jedoch gezeigt, dass dies
-% spätestens mit \KOMAScript~v3.17 nicht notwendig ist. Deshalb wird auf die
-% Verwendung dieser Möglichkeiten vorerst verzichtet. Die Schriftgrößendateien
-% und das Paket \pkg{scrfontsizes} werden momentan nicht generiert. Dennoch
-% bleibt der Quelltext bis auf weiteres hier bestehen.
-%
-% \iffalse
-%<*10pt|11pt|12pt>
-% \fi
-%
-% Erst ein bisschen Geplänkel.
-% \begin{macrocode}
-\ProvidesFile{%
-%<10pt> tudscrsize10pt.clo%
-%<11pt> tudscrsize11pt.clo%
-%<12pt> tudscrsize12pt.clo%
-}[%
-%!TUDVersion
- font size class option
-%<10pt> (10pt)%
-%<11pt> (11pt)%
-%<12pt> (12pt)%
-]
-% \end{macrocode}
-% Und jetzt die Schriftgrößendefinition.
-% \begin{macrocode}
-\def\normalsize{%
-%<*10pt>
- \@setfontsize\normalsize{10}{12.5\p@}%
- \abovedisplayskip 10\p@ \@plus2.5\p@ \@minus5\p@
- \abovedisplayshortskip \z@ \@plus3\p@
- \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
-%</10pt>
-%<*11pt>
- \@setfontsize\normalsize{11}{13.75\p@}%
- \abovedisplayskip 11\p@ \@plus2.75\p@ \@minus5.5\p@
- \abovedisplayshortskip \z@ \@plus3.3\p@
- \belowdisplayshortskip 6.6\p@ \@plus3.3\p@ \@minus3.3\p@
-%</11pt>
-%<*12pt>
- \@setfontsize\normalsize{12}{15\p@}%
- \abovedisplayskip 12\p@ \@plus3\p@ \@minus6\p@
- \abovedisplayshortskip \z@ \@plus3.6\p@
- \belowdisplayshortskip 7.2\p@ \@plus3.6\p@ \@minus3.6\p@
-%</12pt>
- \belowdisplayskip\abovedisplayskip
- \let\@listi\@listI
-}
-\def\small{%
-%<*10pt>
- \@setfontsize\small{9}{11.25\p@}%
- \abovedisplayskip 9\p@ \@plus2.25\p@ \@minus4.5\p@
- \abovedisplayshortskip \z@ \@plus2.7\p@
- \belowdisplayshortskip 5.4\p@ \@plus2.7\p@ \@minus2.7\p@
-%</10pt>
-%<*11pt>
- \@setfontsize\small{9.9}{12.375\p@}%
- \abovedisplayskip 9.9\p@ \@plus2.475\p@ \@minus4.95\p@
- \abovedisplayshortskip \z@ \@plus2.97\p@
- \belowdisplayshortskip 5.94\p@ \@plus2.97\p@ \@minus2.97\p@
-%</11pt>
-%<*12pt>
- \@setfontsize\small{10.8}{13.5\p@}%
- \abovedisplayskip 10.8\p@ \@plus2.7\p@ \@minus5.4\p@
- \abovedisplayshortskip \z@ \@plus3.24\p@
- \belowdisplayshortskip 6.48\p@ \@plus3.24\p@ \@minus3.24\p@
-%</12pt>
- \def\@listi{%
- \leftmargin\leftmargini
-%<*10pt>
- \topsep 6\p@ \@plus2\p@ \@minus3\p@
- \parsep 3\p@ \@plus1.5\p@ \@minus\p@
-%</10pt>
-%<*11pt>
- \topsep 6.6\p@ \@plus2.2\p@ \@minus3.3\p@
- \parsep 3.3\p@ \@plus1.65\p@ \@minus1.1\p@
-%</11pt>
-%<*12pt>
- \topsep 7.2\p@ \@plus2.4\p@ \@minus3.6\p@
- \parsep 3.6\p@ \@plus1.8\p@ \@minus1.2\p@
-%</12pt>
- \itemsep\parsep
- }%
- \belowdisplayskip\abovedisplayskip
-}
-\def\footnotesize{%
-%<*10pt>
- \@setfontsize\footnotesize{8}{10\p@}%
- \abovedisplayskip 8\p@ \@plus2\p@ \@minus4\p@
- \abovedisplayshortskip \z@ \@plus2.4\p@
- \belowdisplayshortskip 4.8\p@ \@plus2.4\p@ \@minus2.4\p@
-%</10pt>
-%<*11pt>
- \@setfontsize\footnotesize{8.8}{11\p@}%
- \abovedisplayskip 8.8\p@ \@plus2.2\p@ \@minus4.4\p@
- \abovedisplayshortskip \z@ \@plus2.64\p@
- \belowdisplayshortskip 5.28\p@ \@plus2.64\p@ \@minus2.64\p@
-%</11pt>
-%<*12pt>
- \@setfontsize\footnotesize{9.6}{12\p@}%
- \abovedisplayskip 9.6\p@ \@plus2.4\p@ \@minus4.8\p@
- \abovedisplayshortskip \z@ \@plus2.88\p@
- \belowdisplayshortskip 5.76\p@ \@plus2.88\p@ \@minus2.88\p@
-%</12pt>
- \def\@listi{%
- \leftmargin\leftmargini
-%<*10pt>
- \topsep 4.5\p@ \@plus1.5\p@ \@minus2.25\p@
- \parsep 2.25\p@ \@plus1.125\p@ \@minus\p@
-%</10pt>
-%<*11pt>
- \topsep 4.95\p@ \@plus1.65\p@ \@minus2.475\p@
- \parsep 2.475\p@ \@plus1.2375\p@ \@minus\p@
-%</11pt>
-%<*12pt>
- \topsep 5.4\p@ \@plus1.8\p@ \@minus2.7\p@
- \parsep 2.7\p@ \@plus1.35\p@ \@minus\p@
-%</12pt>
- \itemsep\parsep
- }%
- \belowdisplayskip\abovedisplayskip
-}
-%<*10pt>
-\def\scriptsize{\@setfontsize\scriptsize{6.5}{8.125\p@}}
-\def\tiny{\@setfontsize\tiny{5}{6.25\p@}}
-\def\large{\@setfontsize\large{11}{13.75\p@}}
-\def\Large{\@setfontsize\Large{13}{16.25\p@}}
-\def\LARGE{\@setfontsize\LARGE{16}{20\p@}}
-\def\huge{\@setfontsize\huge{19}{23.75\p@}}
-\def\Huge{\@setfontsize\Huge{22}{27.5\p@}}
-%</10pt>
-%<*11pt>
-\def\scriptsize{\@setfontsize\scriptsize{7.15}{8.9375\p@}}
-\def\tiny{\@setfontsize\tiny{5.5}{6.875\p@}}
-\def\large{\@setfontsize\large{12.1}{15.125\p@}}
-\def\Large{\@setfontsize\Large{14.3}{17.875\p@}}
-\def\LARGE{\@setfontsize\LARGE{17.6}{22\p@}}
-\def\huge{\@setfontsize\huge{20.9}{26.125\p@}}
-\def\Huge{\@setfontsize\Huge{24.2}{30.25\p@}}
-%</11pt>
-%<*12pt>
-\def\scriptsize{\@setfontsize\scriptsize{7.8}{9.75\p@}}
-\def\tiny{\@setfontsize\tiny{6}{7.5\p@}}
-\def\large{\@setfontsize\large{13.2}{16.5\p@}}
-\def\Large{\@setfontsize\Large{15.6}{19.5\p@}}
-\def\LARGE{\@setfontsize\LARGE{19.2}{24\p@}}
-\def\huge{\@setfontsize\huge{22.8}{28.5\p@}}
-\def\Huge{\@setfontsize\Huge{26.4}{33\p@}}
-%</12pt>
-\normalsize
-%<*10pt>
-\setlength{\footnotesep}{7\p@}
-\setlength{\skip\footins}{9\p@ \@plus4\p@ \@minus2\p@}
-\setlength{\floatsep}{12.5\p@ \@plus2.5\p@ \@minus2.5\p@}
-\setlength{\textfloatsep}{20\p@ \@plus2.5\p@ \@minus5\p@}
-%</10pt>
-%<*11pt>
-\setlength{\footnotesep}{7.7\p@}
-\setlength{\skip\footins}{9.9\p@ \@plus4.4\p@ \@minus2.2\p@}
-\setlength{\floatsep}{13.75\p@ \@plus2.75\p@ \@minus2.75\p@}
-\setlength{\textfloatsep}{22\p@ \@plus2.75\p@ \@minus5.5\p@}
-%</11pt>
-%<*12pt>
-\setlength{\footnotesep}{8.4\p@}
-\setlength{\skip\footins}{10.8\p@ \@plus4.8\p@ \@minus2.4\p@}
-\setlength{\floatsep}{15\p@ \@plus3\p@ \@minus3\p@}
-\setlength{\textfloatsep}{24\p@ \@plus3\p@ \@minus6\p@}
-%</12pt>
-\intextsep\floatsep
-\dblfloatsep\floatsep
-\dbltextfloatsep\textfloatsep
-\setlength{\@fptop}{\z@ \@plus1fil}
-%<10pt>\setlength{\@fpsep}{7.5\p@ \@plus2fil}
-%<11pt>\setlength{\@fpsep}{8.25\p@ \@plus2fil}
-%<12pt>\setlength{\@fpsep}{9\p@ \@plus2fil}
-\@fpbot\@fptop
-\@dblfptop\@fptop
-\@dblfpsep\@fpsep
-\@dblfpbot\@dblfptop
-%<10pt>\setlength{\partopsep}{2.5\p@ \@plus1.25\p@ \@minus1.25\p@}
-%<11pt>\setlength{\partopsep}{2.75\p@ \@plus1.375\p@ \@minus1.375\p@}
-%<12pt>\setlength{\partopsep}{3\p@ \@plus1.5\p@ \@minus1.5\p@}
-\def\@listi{%
- \leftmargin\leftmargini
-%<*10pt>
- \topsep 8\p@ \@plus2\p@ \@minus4\p@
- \parsep 4\p@ \@plus2\p@ \@minus\p@
-%</10pt>
-%<*11pt>
- \topsep 8.8\p@ \@plus2.2\p@ \@minus4.4\p@
- \parsep 4.4\p@ \@plus2.2\p@ \@minus1.1\p@
-%</11pt>
-%<*12pt>
- \topsep 9.6\p@ \@plus2.4\p@ \@minus4.8\p@
- \parsep 4.8\p@ \@plus2.4\p@ \@minus1.2\p@
-%</12pt>
- \itemsep\parsep
-}
-\let\@listI\@listi
-\def\@listii{%
- \leftmargin\leftmarginii
- \labelwidth\leftmarginii
- \advance\labelwidth-\labelsep
-%<*10pt>
- \topsep 4\p@ \@plus2\p@ \@minus\p@
- \parsep 2\p@ \@plus\p@ \@minus\p@
-%</10pt>
-%<*11pt>
- \topsep 4.4\p@ \@plus2.2\p@ \@minus1.1\p@
- \parsep 2.2\p@ \@plus1.1\p@ \@minus1.1\p@
-%</11pt>
-%<*12pt>
- \topsep 4.8\p@ \@plus2.4\p@ \@minus1.2\p@
- \parsep 2.4\p@ \@plus1.2\p@ \@minus1.2\p@
-%</12pt>
- \itemsep\parsep
-}
-\def\@listiii{%
- \leftmargin\leftmarginiii
- \labelwidth\leftmarginiii
- \advance\labelwidth-\labelsep
-%<*10pt>
- \topsep 2\p@ \@plus\p@ \@minus\p@
-%</10pt>
-%<*11pt>
- \topsep 2.2\p@ \@plus1.1\p@ \@minus1.1\p@
-%</11pt>
-%<*12pt>
- \topsep 2.4\p@ \@plus1.2\p@ \@minus1.2\p@
-%</12pt>
- \parsep\z@
- \partopsep \z@ \@minus\p@
- \itemsep\topsep
-}
-\def\@listiv{%
- \leftmargin\leftmarginiv
- \labelwidth\leftmarginiv
- \advance\labelwidth-\labelsep
-}
-\def\@listv{%
- \leftmargin\leftmarginv
- \labelwidth\leftmarginv
- \advance\labelwidth-\labelsep
-}
-\def\@listvi{%
- \leftmargin\leftmarginvi
- \labelwidth\leftmarginvi
- \advance\labelwidth-\labelsep
-}
-%<*10pt>
-\setlength{\smallskipamount}{3.125\p@ \@plus1.25\p@ \@minus1.25\p@}
-\setlength{\medskipamount}{6.25\p@ \@plus2.5\p@ \@minus2.5\p@}
-\setlength{\bigskipamount}{12.5\p@ \@plus5\p@ \@minus5\p@}
-%</10pt>
-%<*11pt>
-\setlength{\smallskipamount}{3.4375\p@ \@plus1.375\p@ \@minus1.375\p@}
-\setlength{\medskipamount}{6.875\p@ \@plus2.75\p@ \@minus2.75\p@}
-\setlength{\bigskipamount}{13.75\p@ \@plus5.5\p@ \@minus5.5\p@}
-%</11pt>
-%<*12pt>
-\setlength{\smallskipamount}{3.75\p@ \@plus1.5\p@ \@minus1.5\p@}
-\setlength{\medskipamount}{7.5\p@ \@plus3\p@ \@minus3\p@}
-\setlength{\bigskipamount}{15\p@ \@plus6\p@ \@minus6\p@}
-%</12pt>
-\providecommand*\TUD@AfterKOMAClass[1]{%
- \ifcsname KOMAClassName\endcsname
- \if@atdocument%
- #1
- \else%
- \AfterClass+{\KOMAClassName}{#1}%
- \fi%
- \fi%
-}
-\TUD@AfterKOMAClass{%
-%<10pt> \setlength{\abovecaptionskip}{10\p@}
-%<11pt> \setlength{\abovecaptionskip}{11\p@}
-%<12pt> \setlength{\abovecaptionskip}{12\p@}
- \setlength{\belowcaptionskip}{\z@}
-}
-\@ifundefined{@list@extra}{}{%
- \expandafter\ifnum\scr@v@is@ge{3.17}\par@updaterelative\fi%
- \l@addto@macro{\@listi}{\@list@extra}%
- \let\@listI=\@listi
- \l@addto@macro{\@listii}{\@list@extra}%
- \l@addto@macro{\@listiii}{\@list@extra}%
- \l@addto@macro{\footnotesize}{\protect\add@extra@listi{ftns}}%
- \l@addto@macro{\small}{\protect\add@extra@listi{sml}}%
-}
-\@listi
+\RequirePackage{textcase}[2004/10/07]
% \end{macrocode}
-%
-% \iffalse
-%</10pt|11pt|12pt>
-%<*package&body>
-% \fi
-%
-% Es wird der Inhalt des Pakets \pkg{tudscrfontsizes} definiert, welches auf
-% \pkg{scrfontsizes} aufbaut.
-% \begin{macro}{\changefontsizes}
-% \begin{macro}{\tud@changefontsizes}
-% Das Pendant zum \KOMAScript-Makro \cs{generate@fontfile} ist der hier
-% definierte Befehl \cs{tud@generate@fontfile}. Mit diesem können eigenständige
-% Schriftgrößendateien erstellt werden.
-% \begin{macrocode}
-\RequirePackage{scrfontsizes}[2015/02/07]
-% \end{macrocode}
-% Hiermit kann die Schriftgröße im Dokument geändert werden, falls keine
-% passende Schriftgrößendatei vorhanden ist. Der Befehl lehnt sich stark am
-% \KOMAScript-Befehl \cs{changefontsizes} an, ändert allerdings einige Längen
-% marginal.
-% \begin{macrocode}
-\newcommand*{\tud@changefontsizes}[2][\dimexpr5\@tempdima/4\relax]{%
-%<*class>
- \ClassInfo{\TUDClassName}%
-%</class>
-%<*package>
- \PackageInfo{tudscrfonts}%
-%</package>
- {Calculating font sizes for basic size `#2'}%
- \@defaultunits\@tempdima#2pt\relax\@nnil%
- \setlength{\@tempdimc}{\@tempdima}%
- \addtolength{\@tempdimc}{-10\p@}%
- \edef\@ptsize{\strip@pt\@tempdimc}%
- \setlength{\@tempdimb}{#1}%
- \setlength{\@tempdimc}{\dimexpr (100\@tempdimb / \@tempdima * \p@)}%
- \edef\@tempa{\strip@pt\@tempdimc}%
- \@defaultunits\@tempdimb\dimexpr\@tempa\@tempdima/100\relax pt\relax\@nnil%
- \setlength{\@tempdimc}{\@tempdima}%
- \scr@setlength{\abovedisplayskip}{\dimexpr4\@tempdimb/5\relax}%
- {\dimexpr\@tempdimb/5\relax}{\dimexpr2\@tempdimb/5\relax}%
- \scr@setlength{\abovedisplayshortskip}{\z@}%
- {\dimexpr6\@tempdimb/25\relax}{\z@}%
- \scr@setlength{\belowdisplayshortskip}{\dimexpr12\@tempdimb/25\relax}%
- {\dimexpr6\@tempdimb/25\relax}{\dimexpr6\@tempdimb/25\relax}%
- \setlength{\belowdisplayskip}{\abovedisplayskip}%
- \edef\normalsize{%
- \noexpand\@setfontsize\noexpand\normalsize%
- {\the\@tempdima}{\the\@tempdimb}%
- \abovedisplayskip \the\abovedisplayskip%
- \abovedisplayshortskip \the\abovedisplayshortskip%
- \belowdisplayskip \the\belowdisplayskip%
- \belowdisplayshortskip \the\belowdisplayshortskip%
- \let\noexpand\@listi\noexpand\@listI%
- }%
- \setlength{\@tempdima}{\dimexpr9\@tempdimc/10\relax}%
- \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}%
- \scr@setlength{\abovedisplayskip}{\dimexpr4\@tempdimb/5\relax}%
- {\dimexpr\@tempdimb/5\relax}{\dimexpr2\@tempdimb/5\relax}%
- \scr@setlength{\abovedisplayshortskip}{\z@}%
- {\dimexpr6\@tempdimb/25\relax}{\z@}%
- \scr@setlength{\belowdisplayshortskip}{\dimexpr12\@tempdimb/25\relax}%
- {\dimexpr6\@tempdimb/25\relax}{\dimexpr6\@tempdimb/25\relax}%
- \setlength{\belowdisplayskip}{\abovedisplayskip}%
- \edef\small{%
- \noexpand\@setfontsize\noexpand\small%
- {\the\@tempdima}{\the\@tempdimb}%
- \abovedisplayskip \the\abovedisplayskip%
- \abovedisplayshortskip \the\abovedisplayshortskip%
- \belowdisplayskip \the\belowdisplayskip%
- \belowdisplayshortskip \the\belowdisplayshortskip%
- \let\noexpand\@listi\noexpand\@listi@small%
- }%
- \setlength{\@tempdima}{\dimexpr4\@tempdimc/5\relax}%
- \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}%
- \scr@setlength{\abovedisplayskip}{\dimexpr4\@tempdimb/5\relax}%
- {\dimexpr\@tempdimb/5\relax}{\dimexpr2\@tempdimb/5\relax}%
- \scr@setlength{\abovedisplayshortskip}{\z@}%
- {\dimexpr6\@tempdimb/25\relax}{\z@}%
- \scr@setlength{\belowdisplayshortskip}{\dimexpr12\@tempdimb/25\relax}%
- {\dimexpr6\@tempdimb/25\relax}{\dimexpr6\@tempdimb/25\relax}%
- \setlength{\belowdisplayskip}{\abovedisplayskip}%
- \edef\footnotesize{%
- \noexpand\@setfontsize\noexpand\footnotesize%
- {\the\@tempdima}{\the\@tempdimb}%
- \abovedisplayskip \the\abovedisplayskip%
- \abovedisplayshortskip \the\abovedisplayshortskip%
- \belowdisplayskip \the\belowdisplayskip%
- \belowdisplayshortskip \the\belowdisplayshortskip%
- \let\noexpand\@listi\noexpand\@listi@footnotesize%
- }%
- \setlength{\@tempdima}{\dimexpr13\@tempdimc/20\relax}%
- \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}%
- \edef\scriptsize{%
- \noexpand\@setfontsize\noexpand\scriptsize%
- {\the\@tempdima}{\the\@tempdimb}%
- }%
- \setlength{\@tempdima}{\dimexpr\@tempdimc/2\relax}%
- \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}%
- \edef\tiny{%
- \noexpand\@setfontsize\noexpand\tiny%
- {\the\@tempdima}{\the\@tempdimb}%
- }%
- \setlength{\@tempdima}{\dimexpr11\@tempdimc/10\relax}%
- \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}%
- \edef\large{%
- \noexpand\@setfontsize\noexpand\large%
- {\the\@tempdima}{\the\@tempdimb}%
- }%
- \setlength{\@tempdima}{\dimexpr13\@tempdimc/10\relax}%
- \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}%
- \edef\Large{%
- \noexpand\@setfontsize\noexpand\Large%
- {\the\@tempdima}{\the\@tempdimb}%
- }%
- \setlength{\@tempdima}{\dimexpr16\@tempdimc/10\relax}%
- \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}%
- \edef\LARGE{%
- \noexpand\@setfontsize\noexpand\LARGE%
- {\the\@tempdima}{\the\@tempdimb}%
- }%
- \setlength{\@tempdima}{\dimexpr19\@tempdimc/10\relax}%
- \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}%
- \edef\huge{%
- \noexpand\@setfontsize\noexpand\huge%
- {\the\@tempdima}{\the\@tempdimb}%
- }%
- \setlength{\@tempdima}{\dimexpr22\@tempdimc/10\relax}%
- \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}%
- \edef\Huge{%
- \noexpand\@setfontsize\noexpand\Huge%
- {\the\@tempdima}{\the\@tempdimb}%
- }%
- \normalsize%
- \expandafter\ifnum\scr@v@is@ge{3.17}\par@updaterelative\fi%
- \setlength{\@tempdimb}{\f@baselineskip}%
- \scr@setlength{\topsep}{\dimexpr16\@tempdimb/25\relax}%
- {\dimexpr4\@tempdimb/25\relax}{\dimexpr8\@tempdimb/25\relax}%
- \scr@setlength{\parsep}{\dimexpr8\@tempdimb/25\relax}%
- {\dimexpr4\@tempdimb/25\relax}{\dimexpr2\@tempdimb/25\relax}%
- \@tempswafalse%
- \begingroup%
- \def\@list@extra{\aftergroup\@tempswatrue}%
- \csname @listi\endcsname%
- \endgroup%
- \edef\@listi{\leftmargin\leftmargini%
- \topsep \the\topsep%
- \parsep \the\parsep%
- \itemsep \parsep%
- \if@tempswa\noexpand\@list@extra\fi%
- }%
- \let\@listI\@listi%
- \scr@setlength{\topsep}{\dimexpr12\@tempdimb/25\relax}%
- {\dimexpr4\@tempdimb/25\relax}{\dimexpr6\@tempdimb/25\relax}%
- \scr@setlength{\parsep}{\dimexpr6\@tempdimb/25\relax}%
- {\dimexpr3\@tempdimb/25\relax}{\dimexpr2\@tempdimb/25\relax}%
- \@tempswafalse%
- \begingroup%
- \def\@list@extra{\aftergroup\@tempswatrue}%
- \csname @listi\endcsname%
- \endgroup%
- \edef\@listi@small{\leftmargin\leftmargini%
- \topsep \the\topsep%
- \parsep \the\parsep%
- \itemsep \parsep%
- \if@tempswa\noexpand\@list@extra\fi%
- }%
- \scr@setlength{\topsep}{\dimexpr36\@tempdimb/100\relax}%
- {\dimexpr12\@tempdimb/100\relax}{\dimexpr18\@tempdimb/100\relax}%
- \scr@setlength{\parsep}{\dimexpr18\@tempdimb/100\relax}%
- {\dimexpr9\@tempdimb/100\relax}{\dimexpr6\@tempdimb/100\relax}%
- \@tempswafalse%
- \begingroup%
- \def\@list@extra{\aftergroup\@tempswatrue}%
- \csname @listi\endcsname%
- \endgroup%
- \edef\@listi@footnotesize{\leftmargin\leftmargini%
- \topsep \the\topsep%
- \parsep \the\parsep%
- \itemsep \parsep%
- \if@tempswa\noexpand\@list@extra\fi%
- }%
- \scr@setlength{\topsep}{\dimexpr8\@tempdimb/25\relax}%
- {\dimexpr4\@tempdimb/25\relax}{\dimexpr2\@tempdimb/25\relax}%
- \scr@setlength{\parsep}{\dimexpr4\@tempdimb/25\relax}%
- {\dimexpr2\@tempdimb/25\relax}{\dimexpr2\@tempdimb/25\relax}%
- \@tempswafalse%
- \begingroup%
- \def\@list@extra{\aftergroup\@tempswatrue}%
- \csname @listii\endcsname%
- \endgroup%
- \edef\@listii{\leftmargin\leftmarginii%
- \labelwidth=\dimexpr \leftmargin-\labelsep%
- \topsep \the\topsep%
- \parsep \the\parsep%
- \itemsep \parsep%
- \if@tempswa\noexpand\@list@extra\fi%
- }%
- \scr@setlength{\topsep}{\dimexpr4\@tempdimb/25\relax}%
- {\dimexpr2\@tempdimb/25\relax}{\dimexpr2\@tempdimb/25\relax}%
- \setlength{\partopsep}{\z@ \@plus\z@ \@minus\p@}%
- \@tempswafalse%
- \begingroup%
- \def\@list@extra{\aftergroup\@tempswatrue}%
- \csname @listiii\endcsname%
- \endgroup%
- \edef\@listiii{\leftmargin\leftmarginiii%
- \labelwidth=\dimexpr \leftmargin-\labelsep%
- \topsep \the\topsep%
- \parsep \z@%
- \partopsep \the\partopsep%
- \itemsep \topsep%
- \if@tempswa\noexpand\@list@extra\fi%
- }%
- \@tempswafalse%
- \begingroup%
- \def\@list@extra{\aftergroup\@tempswatrue}%
- \csname @listiv\endcsname%
- \endgroup%
- \edef\@listiv{\leftmargin\leftmarginiv%
- \labelwidth=\dimexpr \leftmargin-\labelsep\relax%
- \if@tempswa\noexpand\@list@extra\fi%
- }%
- \@tempswafalse%
- \begingroup%
- \def\@list@extra{\aftergroup\@tempswatrue}%
- \csname @listv\endcsname%
- \endgroup%
- \edef\@listv{\leftmargin\leftmarginv%
- \labelwidth=\dimexpr \leftmargin-\labelsep\relax%
- \if@tempswa\noexpand\@list@extra\fi%
- }%
- \@tempswafalse%
- \begingroup%
- \def\@list@extra{\aftergroup\@tempswatrue}%
- \csname @listvi\endcsname%
- \endgroup%
- \edef\@listvi{\leftmargin\leftmarginvi%
- \labelwidth=\dimexpr \leftmargin-\labelsep\relax%
- \if@tempswa\noexpand\@list@extra\fi%
- }%
- \@listi%
- \setlength{\@tempdimb}{\f@baselineskip}%
- \setlength{\footnotesep}{\dimexpr14\@tempdimb/25\relax}%
- \scr@setlength{\skip\footins}{\dimexpr18\@tempdimb/25\relax}%
- {\dimexpr8\@tempdimb/25\relax}{\dimexpr4\@tempdimb/25\relax}%
- \scr@setlength{\floatsep}{\@tempdimb}%
- {\dimexpr\@tempdimb/5\relax}{\dimexpr\@tempdimb/5\relax}%
- \scr@setlength{\textfloatsep}{\dimexpr8\@tempdimb/5\relax}%
- {\dimexpr\@tempdimb/5\relax}{\dimexpr2\@tempdimb/5\relax}%
- \setlength{\intextsep}{\floatsep}%
- \setlength{\dblfloatsep}{\floatsep}%
- \setlength{\dbltextfloatsep}{\textfloatsep}%
- \setlength{\@fptop}{\z@ \@plus 1fil}%
- \setlength{\@fpsep}{\dimexpr3\@tempdimb/5\relax \@plus 2fil}%
- \setlength{\@fpbot}{\@fptop}%
- \setlength{\@dblfptop}{\@fptop}%
- \setlength{\@dblfpsep}{\@fpsep}%
- \setlength{\@dblfpbot}{\@fptop}%
- \scr@setlength{\partopsep}{\dimexpr\@tempdimb/5\relax}%
- {\dimexpr\@tempdimb/10\relax}{\dimexpr\@tempdimb/10\relax}%
- \tud@font@skip@@set%
-}
+% \begin{macro}{\tud@makeuppercase}
+% Der Befehl führt \cs{MakeTextUppercase}\marg{Text} nur dann aus, wenn die
+% richtige Schriftfamilie~-- sprich \DIN~-- verwendet wird.
+% \begin{macrocode}
+\newcommand*\tud@makeuppercase[1]{%
+ \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}%
% \end{macrocode}
-% \ToDo{Versionsdatum einfügen}
-% \begin{macrocode}
-\@ifundefined{tud@font@skip@@set}{\RequirePackage{tudscrfonts}[2015/03/27]}{}
-\let\changefontsizes\tud@changefontsizes%
-% \end{macrocode}
-% \end{macro}^^A \tud@changefontsizes
-% \end{macro}^^A \changefontsizes
-% \begin{macro}{\generate@fontfile}
-% \begin{macro}{\tud@generate@fontfile}
-% \begin{macrocode}
-\newcommand*{\tud@generate@fontfile}[2]{%
- \def\@ind{\space\space}%
- \immediate\openout\@fontfile #1#2.clo
- \immediate\write\@fontfile{\@percentchar^^J%
- \@percentchar\space This is file `#1#2.clo', generated with^^J%
- \@percentchar\space tudscrfontsizes
- \csname ver@tudscrfontsizes.sty\endcsname,^^J%
- \@percentchar\space and bases on scrfontsize.sty by Markus Kohm.^^J%
- \@percentchar^^J%
- \string\ProvidesFile{#1#2.clo}[%
- \the\year/\ifnum\month<10 0\fi\the\month/\ifnum\day<10 0\fi\the\day%
- \space generated font size class option (#2)]}%
- \immediate\write\@fontfile{%
- \string\def\string\normalsize{\@percentchar^^J%
- \@ind\string\@setfontsize\string\normalsize{\f@size}{\f@baselineskip}%
- \@percentchar^^J%
- \@ind\string\abovedisplayskip\space \the\abovedisplayskip^^J%
- \@ind\string\abovedisplayshortskip\space \the\abovedisplayshortskip^^J%
- \@ind\string\belowdisplayshortskip\space \the\belowdisplayshortskip^^J%
- \@ind\string\belowdisplayskip\string\abovedisplayskip^^J%
- \@ind\string\let\string\@listi\string\@listI^^J%
- }%
- }%
- \begingroup\small\@listi
- \immediate\write\@fontfile{%
- \string\def\string\small{\@percentchar^^J%
- \@ind\string\@setfontsize\string\small{\f@size}{\f@baselineskip}%
- \@percentchar^^J%
- \@ind\string\abovedisplayskip\space \the\abovedisplayskip^^J%
- \@ind\string\abovedisplayshortskip\space \the\abovedisplayshortskip^^J%
- \@ind\string\belowdisplayshortskip\space \the\belowdisplayshortskip^^J%
- \@ind\string\def\string\@listi{\@percentchar^^J%
- \@ind\@ind\string\leftmargin\string\leftmargini^^J%
- \@ind\@ind\string\topsep \the\topsep^^J%
- \@ind\@ind\string\parsep \the\parsep^^J%
- \@ind\@ind\string\itemsep \string\parsep^^J%
- \@ind}\@percentchar^^J%
- \@ind\string\belowdisplayskip\string\abovedisplayskip^^J%
- }%
- }%
- \endgroup
- \begingroup\footnotesize\@listi
- \immediate\write\@fontfile{%
- \string\def\string\footnotesize{\@percentchar^^J%
- \@ind\string\@setfontsize\string\footnotesize{\f@size}{\f@baselineskip}%
- \@percentchar^^J%
- \@ind\string\abovedisplayskip\space \the\abovedisplayskip^^J%
- \@ind\string\abovedisplayshortskip\space \the\abovedisplayshortskip^^J%
- \@ind\string\belowdisplayshortskip\space \the\belowdisplayshortskip^^J%
- \@ind\string\def\string\@listi{\@percentchar^^J%
- \@ind\@ind\string\leftmargin\string\leftmargini^^J%
- \@ind\@ind\string\topsep \the\topsep^^J%
- \@ind\@ind\string\parsep \the\parsep^^J%
- \@ind\@ind\string\itemsep \string\parsep^^J%
- \@ind}\@percentchar^^J%
- \@ind\string\belowdisplayskip\string\abovedisplayskip^^J%
- }%
- }%
- \endgroup
- \begingroup\scriptsize
- \immediate\write\@fontfile{%
- \string\def\string\scriptsize{%
- \string\@setfontsize\string\scriptsize{\f@size}{\f@baselineskip}%
- }%
- }%
- \endgroup
- \begingroup\tiny
- \immediate\write\@fontfile{%
- \string\def\string\tiny{%
- \string\@setfontsize\string\tiny{\f@size}{\f@baselineskip}%
- }%
- }%
- \endgroup
- \begingroup\large
- \immediate\write\@fontfile{%
- \string\def\string\large{%
- \string\@setfontsize\string\large{\f@size}{\f@baselineskip}%
- }%
- }%
- \endgroup
- \begingroup\Large
- \immediate\write\@fontfile{%
- \string\def\string\Large{%
- \string\@setfontsize\string\Large{\f@size}{\f@baselineskip}%
- }%
- }%
- \endgroup
- \begingroup\LARGE
- \immediate\write\@fontfile{%
- \string\def\string\LARGE{%
- \string\@setfontsize\string\LARGE{\f@size}{\f@baselineskip}%
- }%
- }%
- \endgroup
- \begingroup\huge
- \immediate\write\@fontfile{%
- \string\def\string\huge{%
- \string\@setfontsize\string\huge{\f@size}{\f@baselineskip}%
- }%
- }%
- \endgroup
- \begingroup\Huge
- \immediate\write\@fontfile{%
- \string\def\string\Huge{%
- \string\@setfontsize\string\Huge{\f@size}{\f@baselineskip}%
- }%
- }%
- \endgroup
- \immediate\write\@fontfile{\string\normalsize}%
- \immediate\write\@fontfile{%
- \string\setlength{\string\footnotesep}{\the\footnotesep}^^J%
- \string\setlength{\string\skip\string\footins}{\the\skip\footins}^^J%
- \string\setlength{\string\floatsep}{\the\floatsep}^^J%
- \string\setlength{\string\textfloatsep}{\the\textfloatsep}^^J%
- \string\setlength{\string\intextsep}{\the\intextsep}^^J%
- \string\setlength{\string\dblfloatsep}{\the\dblfloatsep}^^J%
- \string\setlength{\string\dbltextfloatsep}{\the\dbltextfloatsep}^^J%
- \string\setlength{\string\@fptop}{\the\@fptop}^^J%
- \string\setlength{\string\@fpsep}{\the\@fpsep}^^J%
- \string\setlength{\string\@fpbot}{\the\@fpbot}^^J%
- \string\setlength{\string\@dblfptop}{\the\@dblfptop}^^J%
- \string\setlength{\string\@dblfpsep}{\the\@dblfpsep}^^J%
- \string\setlength{\string\@dblfpbot}{\the\@dblfpbot}^^J%
- \string\setlength{\string\partopsep}{\the\partopsep}%
- }%
- \begingroup
- \@listi
- \immediate\write\@fontfile{%
- \string\def\string\@listi{\@percentchar^^J%
- \@ind\string\leftmargin\string\leftmargini^^J%
- \@ind\string\topsep \the\topsep^^J%
- \@ind\string\parsep \the\parsep^^J%
- \@ind\string\itemsep \string\parsep^^J%
- }%
- }%
- \endgroup
- \immediate\write\@fontfile{%
- \string\let\string\@listI\string\@listi
- }%
- \begingroup
- \@listii
- \immediate\write\@fontfile{%
- \string\def\string\@listii{\@percentchar^^J%
- \@ind\string\leftmargin\string\leftmarginii^^J%
- \@ind\string\labelwidth\string\leftmarginii^^J%
- \@ind\string\advance\string\labelwidth-\string\labelsep^^J%
- \@ind\string\topsep \the\topsep^^J%
- \@ind\string\parsep \the\parsep^^J%
- \@ind\string\itemsep \string\parsep^^J%
- }%
- }%
- \endgroup
- \begingroup
- \@listiii
- \immediate\write\@fontfile{%
- \string\def\string\@listiii{\@percentchar^^J%
- \@ind\string\leftmargin\string\leftmarginiii^^J%
- \@ind\string\labelwidth\string\leftmarginiii^^J%
- \@ind\string\advance\string\labelwidth-\string\labelsep^^J%
- \@ind\string\topsep \the\topsep^^J%
- \@ind\string\parsep \the\parsep^^J%
- \@ind\string\partopsep \the\partopsep^^J%
- \@ind\string\itemsep \string\topsep^^J%
- }%
- }%
- \endgroup
- \begingroup
- \@listiv
- \immediate\write\@fontfile{%
- \string\def\string\@listiv{\@percentchar^^J%
- \@ind\string\leftmargin\string\leftmarginiv^^J%
- \@ind\string\labelwidth\string\leftmarginiv^^J%
- \@ind\string\advance\string\labelwidth-\string\labelsep^^J%
- }%
- }%
- \endgroup
- \begingroup
- \@listv
- \immediate\write\@fontfile{%
- \string\def\string\@listv{\@percentchar^^J%
- \@ind\string\leftmargin\string\leftmarginv^^J%
- \@ind\string\labelwidth\string\leftmarginv^^J%
- \@ind\string\advance\string\labelwidth-\string\labelsep^^J%
- }%
- }%
- \endgroup
- \begingroup
- \@listvi
- \immediate\write\@fontfile{%
- \string\def\string\@listvi{\@percentchar^^J%
- \@ind\string\leftmargin\string\leftmarginvi^^J%
- \@ind\string\labelwidth\string\leftmarginvi^^J%
- \@ind\string\advance\string\labelwidth-\string\labelsep^^J%
- }%
- }%
- \endgroup
- \immediate\write\@fontfile{%
- \string\setlength{\string\smallskipamount}{\the\smallskipamount}^^J%
- \string\setlength{\string\medskipamount}{\the\medskipamount}^^J%
- \string\setlength{\string\bigskipamount}{\the\bigskipamount}%
- }%
- \immediate\write\@fontfile{%
- \string\@ifundefined{TUDClassName@KOMA}{}{\@percentchar^^J%
- \@ind\string\AfterClass+{\string\TUDClassName@KOMA}{\@percentchar^^J%
- \@ind\@ind\string\setlength{\string\abovecaptionskip}%
- {\the\abovecaptionskip}^^J%
- \@ind\@ind\string\setlength{\string\belowcaptionskip}%
- {\the\belowcaptionskip}^^J%
- \@ind}\@percentchar^^J%
- }%
- }%
- \immediate\write\@fontfile{%
- \string\@ifundefined{@list@extra}{}{\@percentchar^^J%
- \@ind\string\l@addto@macro{\string\@listi}{\string\@list@extra}%
- \@percentchar^^J%
- \@ind\string\let\string\@listI=\string\@listi^^J%
- \@ind\string\l@addto@macro{\string\@listii}{\string\@list@extra}%
- \@percentchar^^J%
- \@ind\string\l@addto@macro{\string\@listiii}{\string\@list@extra}%
- \@percentchar^^J%
- \@ind\string\l@addto@macro{\string\footnotesize}{\string\protect
- \string\add@extra@listi{ftns}}\@percentchar^^J%
- \@ind\string\l@addto@macro{\string\small}{\string\protect
- \string\add@extra@listi{sml}}\@percentchar^^J%
- }^^J%
- \string\@listi^^J%
- \string\endinput^^J%
- \@percentchar^^J%
- \@percentchar\space End of file `#1#2.clo'.%
- }
- \immediate\closeout\@fontfile
+% Aufgrund eines Fehlers im \LaTeX-Kernels liegt die Grundlinie für die beiden
+% Gliederungsebenen \cs{section} und \cs{subsection} zu hoch. Mit dem Einfügen
+% des vertikalen Freiraums für die Umlaute wird diese automatisch nach unten
+% verschoben. Allerdings ist das ein ziemlich übler Hack.
+% \begin{macrocode}
+ \protect\vphantom{\"A\"O\"U}%
}
-\let\generate@fontfile\tud@generate@fontfile
% \end{macrocode}
-% \end{macro}^^A \tud@generate@fontfile
-% \end{macro}^^A \generate@fontfile
+% \end{macro}^^A \tud@makeuppercase
%
% \iffalse
-%</package&body>
-%</fontsizes>
+%</body>
% \fi
%
% \Finale
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-frontmatter.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-frontmatter.dtx
index cfcf56e9cd2..97910cf9f10 100644
--- a/Master/texmf-dist/source/latex/tudscr/tudscr-frontmatter.dtx
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-frontmatter.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{758}
+% \CheckSum{809}
% \iffalse meta-comment
%
% ============================================================================
@@ -18,13 +18,13 @@
%
% ----------------------------------------------------------------------------
%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
-% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
-% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
-% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
-% oder spaeter 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.
+% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
+% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
+% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
+% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
+% oder spaeter 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.
%
% ============================================================================
%
@@ -51,15 +51,17 @@
%<*driver>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\ProvidesFile{tudscr-frontmatter.dtx}[%
- 2015/06/12 v2.04 TUD-KOMA-Script (frontmatter)%
+ 2016/07/20 v2.05 TUD-KOMA-Script (frontmatter)%
]
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
-\documentclass[english,ngerman]{tudscrdoc}
+\documentclass[english,ngerman,xindy]{tudscrdoc}
\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{tudscrfonts} % only load this package, if the fonts are installed
\KOMAoptions{parskip=half-}
+\usepackage{microtype}
+\usepackage{bookmark}
\CodelineIndex
\RecordChanges
\GetFileInfo{tudscr-frontmatter.dtx}
@@ -72,20 +74,23 @@
%
% \selectlanguage{ngerman}
%
-% \changes{v2.02}{2014/07/08}{Optionen nutzen \cs{FamilyKeyState}}^^A
+% \changes{v2.02}{2014/07/08}{\cs{FamilyKeyState} wird von Optionen genutzt}^^A
+% \changes{v2.05}{2015/07/07}{Umgebung \env{abstract} für Poster}^^A
%
% \section{Befehle und Umgebungen für den Vorspann}
%
-% Im Vorspann des Dokumentes kann der Benutzer eine Zusammenfassung angegeben.
-% Außerdem kann eine Selbstständigkeitserklärung sowie ein Sperrvermerk
-% hinzugefügt werden. Damit für diese das Layout möglichst individuell gewählt
-% werden kann, werden hier entsprechende Optionen und die dafür notwendige
-% Ausgabe definiert. Im weiteren Verlauf der Dokumentation wird der Begriff
-% \enquote{Erklärung} für die unterschiedlichen Elemente verwendet. Die
-% verwendeten Schalter und Befehle zum Setzen der Optionen heißen entweder
-% \cs{tud@abstract@\dots} oder aber \cs{tud@declaration@\dots} je nach Element.
+% Im Vorspann des Dokumentes kann der Benutzer eine Zusammenfassung oder auch
+% Kurzfassung angegeben. Des Weiteren kann eine Selbstständigkeitserklärung
+% sowie ein Sperrvermerk hinzugefügt werden. Damit sich für diese das Layout
+% möglichst individuell wählen lässt, werden hier entsprechende Optionen und
+% die dafür notwendige Ausgabe definiert. Im weiteren Verlauf der Dokumentation
+% werden die Begriffe \enquote{Zusammenfassung}, \enquote{Kurzfassung} sowie
+% \enquote{Erklärung} für die unterschiedlichen Elemente als gleichwertige
+% Synonyme verwendet. Die Schalter und Befehle zum Setzen der Optionen heißen
+% entweder \cs{tud@abstract@\dots} oder aber \cs{tud@declaration@\dots} je nach
+% Element.
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \StopEventually{\PrintIndex\PrintChanges\PrintToDos}
%
% \iffalse
%<*class&body>
@@ -102,17 +107,18 @@
% Das Makro \cs{tud@fm@set} wird zur erstmaligen Verwendung in jedem Fall auf
% die Definition von \cs{tud@fm@first} gesetzt.
% \begin{macrocode}
+%<*book|report|article>
\global\let\tud@fm@set\tud@fm@first%
% \end{macrocode}
% Danach erfolgt ggf. die Prüfung der resultierenden Seitenhöhe.
% \begin{macrocode}
- \ifnumless{\@nameuse{tud@#1@level}}{3}{% false/true/section
+ \ifnumless{\csuse{tud@#1@level@num}}{3}{% false/true/section
\ifboolexpr{%
bool {@titlepage} and bool {@tud@#1@fil} and bool {@tud@#1@multi}%
}{%
\sbox\z@{\vbox{#2}}%
\ifdim\textheight<\dimexpr\ht\z@+\dp\z@\relax%
- \ClassWarning{\TUDClassName}{%
+ \ClassWarning{\TUD@Class@Name}{%
The given content within the `#1'\MessageBreak%
environment is too large, so it wasn't possible\MessageBreak%
to center the body vertically. Setting the option\MessageBreak%
@@ -137,7 +143,7 @@
% Zum Schluss wird ggf. der gesammelte Eintrag im Inhaltsverzeichnis erstellt.
% Danach wird das übergebene Argument ausgeführt.
% \begin{macrocode}
- \ifnum\@nameuse{tud@#1@toc}>\tw@\relax%
+ \ifnum\csuse{tud@#1@toc@num}>\tw@\relax%
\tud@fm@toc{#1}{#2}%
\fi%
% \end{macrocode}
@@ -145,11 +151,17 @@
% \cs{tud@fm@next} innerhalb von \cs{tud@fm@first}~-- abermals auf die
% Definition von \cs{tud@fm@first} gesetzt.
% \begin{macrocode}
+%</book|report|article>
\global\let\tud@fm@set\tud@fm@first%
#2%
}
% \end{macrocode}
% \end{macro}^^A \tud@fm@check
+%
+% \iffalse
+%<*book|report|article>
+% \fi
+%
% \begin{macro}{\tud@fm@toc}
% \changes{v2.04}{2015/03/20}{neu}^^A
% \begin{macro}{\tud@fm@@toc}
@@ -177,7 +189,7 @@
\sbox\z@{\vbox{#2}}%
\protected@edef\@tempa{%
\noexpand\endgroup%
- \noexpand\ifnumodd{\csname tud@#1@toc\endcsname}{%
+ \noexpand\ifnumodd{\csname tud@#1@toc@num\endcsname}{%
%<*book|report>
\noexpand\addchaptertocentry{}{\tud@fm@@toc}%
%</book|report>
@@ -195,7 +207,7 @@
}%
\@tempa%
}{%
- \ClassWarning{\TUDClassName}{%
+ \ClassWarning{\TUD@Class@Name}{%
It isn't possible to use `#1=single'\MessageBreak%
%<*book|report>
or `#1=chapter'
@@ -203,8 +215,8 @@
with `#1=tocmultiple'%
}%
\edef\@tempa{%
- \noexpand\cs@set@lock{tud@#1@toc}{%
- \the\numexpr\@nameuse{tud@#1@toc}-2\relax%
+ \noexpand\cs@set@lock{tud@#1@toc@num}{%
+ \the\numexpr\csuse{tud@#1@toc@num}-2\relax%
}%
}%
\@tempa%
@@ -214,6 +226,11 @@
% \end{macro}^^A \tud@fm@@@toc
% \end{macro}^^A \tud@fm@@toc
% \end{macro}^^A \tud@fm@toc
+%
+% \iffalse
+%</book|report|article>
+% \fi
+%
% \begin{macro}{\tud@fm@set}
% \changes{v2.02}{2014/07/18}{Neuimplementierung für \pkg{scrlayer-scrpage}}^^A
% \changes{v2.04}{2015/03/20}{Reimplementierung}^^A
@@ -222,29 +239,25 @@
% \begin{macro}{\tud@fm@next}
% \changes{v2.02}{2014/07/19}{neu}^^A
% \changes{v2.04}{2015/03/20}{Reimplementierung}^^A
+% \changes{v2.05}{2015/07/14}{Bugfix bei vertikaler Zentrierung}^^A
% Mit diesen Makros werden bei der Ausgabe der einzelnen Erklärungen alle
% relevanten Optionen%
% \footnote{%
% \opt{titlepage}, \opt{twocolumn}, \opt{abstract/declaration=multiple},
% \opt{abstract/declaration=fill}%
-% }
-% ausgewertet und die notwendigen vertikalen Abstände diesen entsprechend
+% } ausgewertet und die notwendigen vertikalen Abstände diesen entsprechend
% gesetzt. Dabei wird durch jede Zusammenfassung bzw. Erklärung \cs{tud@fm@set}
% über \cs{tud@fm@body@start} verwendet. Der Inhalt der beiden Umgebungen
% \env{abstract} und \env{descriptions} wird mit \cs{tud@fm@check} ausgegeben.
-% Das Makro \cs{tud@fm@check} setzt die Definition von \cs{tud@fm@set} auf
-% \cs{let}\cs{tud@fm@set}\cs{tud@fm@first}. Bei der erstmaligen Verwendung von
-% \cs{tud@fm@first} wird diese auf \cs{let}\cs{tud@fm@set}\cs{tud@fm@next}
-% geändert.
% \begin{macrocode}
\newcommand\tud@fm@set[1]{}
\newcommand\tud@fm@first[1]{%
- \global\let\tud@fm@set\tud@fm@next%
% \end{macrocode}
% Im Zweispaltensatz wird der Inhalt der Umgebung einfach ausgegeben, eine
% vertikale Zentrierung findet nicht statt. Beim einspaltigen Satz wird die
% \opt{titlepage}-Option beachtet.
% \begin{macrocode}
+%<*book|report|article>
\if@twocolumn\else%
% \end{macrocode}
% Sollte diese aktiv sein, wird jede Erklärung oder Zusammenfassung abhängig
@@ -253,15 +266,16 @@
% diese ggf. vertikal auf der Seite ausgerichtet.
% \begin{macrocode}
\if@titlepage%
- \ifbool{@tud@#1@fil}{%
- \null\vfil%
- \ifnum\@nameuse{tud@#1@level}=\tw@\relax% section
- \vspace{\dimexpr-\parskip-\baselineskip\relax}%
- {\usekomafont{section}{\vspace{-\baselineskip}}}%
- \fi%
- }{}%
+ \ifbool{@tud@#1@fil}{\null\vfil}{}%
\fi%
\fi%
+%</book|report|article>
+% \end{macrocode}
+% Das Makro \cs{tud@fm@check} setzt die Definition von \cs{tud@fm@set} auf
+% \cs{tud@fm@first}. Bei der erstmaligen Verwendung von \cs{tud@fm@first} wird
+% diese auf \cs{tud@fm@next} geändert.
+% \begin{macrocode}
+ \global\let\tud@fm@set\tud@fm@next%
}
% \end{macrocode}
% Bei der abermaligen Verwendung des Makros \cs{tud@fm@set} in der gleichen
@@ -274,7 +288,8 @@
% begonnen.
% \begin{macrocode}
\if@twocolumn%
- \ifbool{@tud@#1@multi}{\par}{\newpage}%
+%<book|report|article> \ifbool{@tud@#1@multi}{\par}{\newpage}%
+%<poster> \par%
\else%
% \end{macrocode}
% Wird eine Titelseite verwendet, wird jede Erklärung oder Zusammenfassung
@@ -282,22 +297,26 @@
% auf eine neue Seite gesetzt, oder aber auf der aktuellen ausgegeben. Dabei
% werden diese ggf. vertikal auf der Seite ausgerichtet.
% \begin{macrocode}
+%<*book|report|article>
\if@titlepage%
\ifbool{@tud@#1@multi}{%
\ifbool{@tud@#1@fil}{\vfil}{}%
}{%
- \ifbool{@tud@#1@fil}{\null\clearpage\null\vfil}{\clearpage}%
+ \ifbool{@tud@#1@fil}{\vfil\null\clearpage\null\vfil}{\clearpage}%
}%
+ \else%
+%</book|report|article>
% \end{macrocode}
% Werden weder Titelseite noch Überschriften verwendet, so führt die Auswahl
% einer Sprache mit \cs{selectlanguage} zu einem zusätzlichen vertikalen
% Abstand. Dieser wird hiermit negiert.
% \begin{macrocode}
- \else%
- \ifnum\@nameuse{tud@#1@level}=\z@%
- \ifdef{\main@language}{\vspace*{-\baselineskip}}{}%
+ \ifnum\csuse{tud@#1@level@num}=\z@\relax%
+ \ifundef{\main@language}{}{\vspace*{-\baselineskip}}%
\fi%
+%<*book|report|article>
\fi%
+%</book|report|article>
\fi%
}
% \end{macrocode}
@@ -308,9 +327,6 @@
% \changes{v2.04}{2015/03/20}{neu}^^A
% \begin{macro}{\tud@fm@body@end}
% \changes{v2.04}{2015/03/20}{neu}^^A
-% \begin{macro}{\tud@fm@body}
-% \changes{v2.04}{2015/03/20}{entfernt}^^A
-% \begin{length}{\multicolsep}
% Das Makro \cs{tud@fm@body@start} setzt erst alle übergebenen Parameter für
% die aktuelle Umgebung. Anschließend werden alle notwendigen vertikalen
% Abstände mit \cs{tud@fm@set} eingefügt und ggf. notwendige Umgebungen
@@ -330,7 +346,9 @@
% Makro \cs{tud@quoting} gespeichert.
% \begin{macrocode}
\if@twocolumn\else\if@titlepage\else\relax%
- \ifnum\@nameuse{tud@#1@level}<\tw@\begin{\tud@quoting}\fi% false/true
+ \ifnum\csuse{tud@#1@level@num}<\tw@\relax% false/true
+ \begin{\tud@quoting}%
+ \fi%
\fi\fi%
% \end{macrocode}
% Sollte das Paket \pkg{multicol} Verwendung finden, wird die entsprechende
@@ -339,9 +357,9 @@
% Gliederungsebene der Überschrift und die dazugehörigen Abstände setzt. Daher
% wird die Länge \cs{multicolsep} auf Null gesetzt.
% \begin{macrocode}
- \ifnum\tud@multicols>\@ne\relax%
- \setlength\multicolsep{\z@}%
- \begin{multicols}{\tud@multicols}[{\tud@fm@head{#1}{#3}}]%
+ \ifnum\tud@x@multicol@num>\@ne\relax%
+ \vspace{-\multicolsep}%
+ \begin{multicols}{\tud@x@multicol@num}[{\tud@fm@head{#1}{#3}}]%
\else%
% \end{macrocode}
% Ansonsten wird lediglich die Überschrift der Zusammenfassung oder Erklärung
@@ -355,19 +373,20 @@
% geöffneten Umgebungen wieder geschlossen.
% \begin{macrocode}
\newcommand*\tud@fm@body@end[1]{%
- \ifnum\tud@multicols>\@ne\relax%
+ \ifnum\tud@x@multicol@num>\@ne\relax%
\end{multicols}%
+ \vspace{-\multicolsep}%
\else%
\par%
\fi%
\if@twocolumn\else\if@titlepage\else\relax%
- \ifnum\@nameuse{tud@#1@level}<\tw@\end{\tud@quoting}\par\fi% false/true
+ \ifnum\csuse{tud@#1@level@num}<\tw@\relax% false/true
+ \end{\tud@quoting}\par%
+ \fi%
\fi\fi%
\endgroup%
}
% \end{macrocode}
-% \end{length}^^A \multicolsep
-% \end{macro}^^A \tud@fm@body
% \end{macro}^^A \tud@fm@body@end
% \end{macro}^^A \tud@fm@body@start
% \begin{macro}{\tud@fm@head}
@@ -376,14 +395,14 @@
% \changes{v2.02}{2014/11/05}{Bugfix Kolumnentitel und Inhaltsverzeichnis}^^A
% \changes{v2.04}{2015/04/21}{Abstände nur, wenn keine Zitatumgebung aktiv}^^A
% Dieses Makro dient zur Ausgabe der Erklärungsüberschrift auf der gewünschten
-% Gliederungsebene. Die gewählte Ebene ist in \cs{tud@\meta{Typ}@level}
+% Gliederungsebene. Die gewählte Ebene ist in \cs{tud@\meta{Typ}@level@num}
% gespeichert. Verwendet wird das Makro folgendermaßen:
% \cs{tud@fm@head}\marg{Erklärungstyp}\marg{Überschrift}. Damit
% die ggf. aktive Option \opt{abstract/declaration=toc} funktionieren kann,
% wird für die Level, in denen keine Standardüberschrift verwendet wird, mit
% dem Befehl \cs{phantomsection} aus dem Paket \pkg{hyperref}~-- wenn es
% tatsächlich geladen wurde~-- ein Anker für einen Hyperlink erzeugt. Ist
-% \cs{if@tud@\meta{Typ}@toc} wahr, so entspricht der erzeugte Eintrag ins
+% \cs{tud@\meta{Typ}@toc@num} ungerade, so entspricht der erzeugte Eintrag ins
% Inhaltsverzeichnis für \cls{tudscrartcl} normalerweise dem eines Abschnitts,
% der für \cls{tudscrbook} und \cls{tudscrreprt} dem eines Kapitels.%
% \footnote{sonst sieht das Inhaltsverzeichnis recht bescheiden aus}
@@ -391,9 +410,9 @@
% reduziert werden.
% \begin{macrocode}
\newcommand*\tud@fm@head[2]{%
- \ifcase\@nameuse{tud@#1@level}\relax% false
+ \ifcase\csuse{tud@#1@level@num}\relax% false
\if@titlepage\endgraf\fi%
- \csname phantomsection\endcsname%
+ \csuse{phantomsection}%
\ifstr{\@currenvir}{\tud@quoting}{}{%
\if@twocolumn%
\vskip\dimexpr\smallskipamount-\parskip\relax%
@@ -403,7 +422,7 @@
}%
\or% true
\if@titlepage\endgraf\fi%
- \csname phantomsection\endcsname%
+ \csuse{phantomsection}%
\@afterindentfalse%
\ifstr{\@currenvir}{\tud@quoting}{}{%
\vskip\dimexpr\bigskipamount-\parskip\relax%
@@ -419,38 +438,43 @@
\@afterheading%
\or% section
\section*{#2}%
+%<*book|report|article>
\ifx\@mkboth\@gobbletwo\else\markright{\MakeMarkcase{#2}}\fi%
%<*book|report>
\or% chapter
\chapter*{#2}%
\@mkdouble{\MakeMarkcase{#2}}%
%</book|report>
+%</book|report|article>
\fi%
+%<*book|report|article>
\ifbool{@tud@#1@markboth}{%
\markboth{\MakeMarkcase{#2}}{\MakeMarkcase{#2}}%
}{}%
- \ifnum\@nameuse{tud@#1@toc}>\z@\relax%
- \ifnum\@nameuse{tud@#1@toc}<\thr@@\relax%
- \ifnumodd{\csname tud@#1@toc\endcsname}{%
+ \ifcase\csuse{tud@#1@toc@num}\relax\or% totoc
%<*book|report>
- \addchaptertocentry{}{#2}%
+ \addchaptertocentry{}{#2}%
%</book|report>
%<*article>
- \addsectiontocentry{}{#2}%
+ \addsectiontocentry{}{#2}%
%</article>
- }{%
+ \or% totocleveldown
%<*book|report>
- \addsectiontocentry{}{#2}%
+ \addsectiontocentry{}{#2}%
%</book|report>
%<*article>
- \addsubsectiontocentry{}{#2}%
+ \addsubsectiontocentry{}{#2}%
%</article>
- }%
- \fi%
\fi%
+%</book|report|article>%
}
% \end{macrocode}
% \end{macro}^^A \tud@fm@head
+%
+% \iffalse
+%<*book|report|article>
+% \fi
+%
% \begin{macro}{\tud@fm@pagestyle}
% \changes{v2.02}{2014/07/19}{neu}^^A
% Dieser Befehl sorgt für die Auswahl des Seitenstiles über die Parameter von
@@ -458,14 +482,14 @@
% \begin{macrocode}
\newcommand*\tud@fm@pagestyle[2]{%
\if@titlepage%
- \ifcsdef{ps@#2}{\def\tud@ps{#2}}{%
- \ClassError{\TUDClassName}{`#2' is no valid pagestyle}{%
+ \ifcsundef{ps@#2}{%
+ \ClassError{\TUD@Class@Name}{`#2' is no valid pagestyle}{%
You tried to use `#2' as a pagestyle for the\MessageBreak%
`#1' environment, but it was never defined.%
}%
- }%
+ }{\def\tud@envir@ps{#2}}%
\else%
- \ClassWarning{\TUDClassName}{%
+ \ClassWarning{\TUD@Class@Name}{%
%<*article>
The key `pagestyle' can only be used with\MessageBreak%
activated option `titlepage'%
@@ -480,21 +504,12 @@
}
% \end{macrocode}
% \end{macro}^^A \tud@fm@pagestyle
-% \begin{macro}{\tud@fm@level@wrn}
-% \changes{v2.02}{2014/07/19}{entfernt}^^A
-% \begin{macro}{\tud@fm@option@wrn}
-% \changes{v2.02}{2014/07/19}{entfernt}^^A
-% \begin{macro}{\tud@fm@multi@wrn}
-% \changes{v2.02}{2014/07/19}{entfernt}^^A
-% Die Befehle für die Warnungen an den Benutzer bei nicht beachteten oder nicht
-% umsetzbaren Einstellungen wurden mit der Version~v2.02 entfernt, da Sie als
-% wenig sinnvoll erachtet wurden.
-% \end{macro}^^A \tud@fm@multi@wrn
-% \end{macro}^^A \tud@fm@option@wrn
-% \end{macro}^^A \tud@fm@level@wrn
+%
+% \iffalse
+%</book|report|article>
+% \fi
+%
% \begin{macro}{\tud@quoting}
-% \begin{macro}{\tud@endquoting}
-% \changes{v2.02}{2014/07/19}{entfernt}^^A
% Mit diesem Befehl kann das empfehlenswerte Paket \pkg{quoting} unterstützt
% werden. Sollte dieses geladen werden, wird für das Setzen der Zusammenfassung
% bei einem Titelkopf die \env{quoting}-Umgebung genutzt.
@@ -502,7 +517,6 @@
\newcommand*\tud@quoting{quotation}
\AfterPackage{quoting}{\renewcommand*\tud@quoting{quoting}}
% \end{macrocode}
-% \end{macro}^^A \tud@endquoting
% \end{macro}^^A \tud@quoting
%
% \iffalse
@@ -528,13 +542,14 @@
% \begin{macrocode}
\newcommand*\tud@fm@switch{%
{section}{2},{sect}{2},{sec}{2},{addsec}{2},%
-%<*article>
+%<*article|poster>
{new}{2},{standard}{2},{heading}{2},%
-%</article>
+%</article|poster>
%<*book|report>
{chapter}{3},{chap}{3},{addchap}{3},%
{new}{3},{standard}{3},{heading}{3},%
%</book|report>
+%<*book|report|article>
{single}{4},{one}{4},{simple}{4},%
{multiple}{5},{multi}{5},{all}{5},{aggregate}{5},%
{two}{5},{both}{5},{double}{5},%
@@ -547,6 +562,7 @@
{totocleveldown}{12},{tocleveldown}{12},{leveldown}{12},%
{tocmultiple}{13},{tocmulti}{13},{tocall}{13},{tocaggregate}{13},%
{totocmultiple}{13},{totocmulti}{13},{totocall}{13},{totocaggregate}{13}%
+%</book|report|article>
}
% \end{macrocode}
% \end{macro}^^A \tud@fm@switch
@@ -556,12 +572,12 @@
% Die \env{abstract}-Umgebung wird um mehrere Optionen erweitert. So kann
% in den neuen \cls{tudscr}-Klassen die Sprache der Zusammenfassung leicht
% eingestellt und auch zwei Zusammenfassungen auf eine Seite gesetzt werden.
-% \begin{macro}{\tud@abstract@level}
-% \begin{macro}{\tud@abstract@toc}
+% \begin{macro}{\tud@abstract@level@num}
+% \begin{macro}{\tud@abstract@toc@num}
% \changes{v2.04}{2015/04/24}{neu}^^A
-% \begin{macro}{\tud@abstract@toc@locked}
+% \begin{macro}{\tud@abstract@toc@num@locked}
% \changes{v2.04}{2015/04/24}{neu}^^A
-% Der Befehl \cs{tud@abstract@level} beschreibt die Gliederungsebene der
+% Der Befehl \cs{tud@abstract@level@num} beschreibt die Gliederungsebene der
% Überschrift der Zusammenfassung numerisch und wird über die Schlüssel der
% Option \opt{abstract} gesetzt. Über \opt{abstract=toc/notoc} wird festgelegt,
% ob die Zusammenfassung einen eigenen Eintrag ins Inhaltsverzeichnis bekommt.
@@ -572,30 +588,35 @@
% standardmäßig eine Überschrift in Form eines Kapitels mit Eintrag ins
% Inhaltsverzeichnis gesetzt.
%
-% Mit \cs{tud@abstract@toc} wird die Gestalt des Inhaltsverzeichniseintrag
+% Mit \cs{tud@abstract@toc@num} wird die Gestalt des Inhaltsverzeichniseintrag
% festgelegt. Folgende Werte sind möglich:
% \begin{description}
% \item[0] kein Eintrag ins Inhaltverzeichnis
% \item[1] Individuelle Einträge auf der obersten Gliederungsebene
-% \item[2] Ein gesammelter Eintrag auf der obersten Gliederungsebene
-% \item[3] Individuelle Einträge auf der zweithöchsten Gliederungsebene
+% \item[2] Individuelle Einträge auf der zweithöchsten Gliederungsebene
+% \item[3] Ein gesammelter Eintrag auf der obersten Gliederungsebene
% \item[4] Ein gesammelter Eintrag auf der zweithöchsten Gliederungsebene
% \end{description}
% Die oberste Gliederungsebene ist \cs{chapter} für \cls{tudscrbook} und
% \cls{tudscrreprt} sowie \cs{section} für \cls{tudscrartcl}.
% \begin{macrocode}
-%<*report|article>
-\newcommand*\tud@abstract@level{0}
-\cs@lock{tud@abstract@toc}{0}
-%</report|article>
+%<*report|article|poster>
+\newcommand*\tud@abstract@level@num{0}
+%<report|article>\cs@lock{tud@abstract@toc@num}{0}
+%</report|article|poster>
%<*book>
-\newcommand*\tud@abstract@level{3}
-\cs@lock{tud@abstract@toc}{1}
+\newcommand*\tud@abstract@level@num{3}
+\cs@lock{tud@abstract@toc@num}{1}
%</book>
% \end{macrocode}
-% \end{macro}^^A \tud@abstract@toc@locked
-% \end{macro}^^A \tud@abstract@toc
-% \end{macro}^^A \tud@abstract@level
+% \end{macro}^^A \tud@abstract@toc@num@locked
+% \end{macro}^^A \tud@abstract@toc@num
+% \end{macro}^^A \tud@abstract@level@num
+%
+% \iffalse
+%<*book|report|article>
+% \fi
+%
% \begin{macro}{\if@tud@abstract@multi}
% Is dieser Schalter aktiviert, wird eine durch \cs{nextabstract} angegebene
% zweite~-- wahrscheinlich in einer Fremdsprache verfasste~-- Zusammenfassung
@@ -623,16 +644,21 @@
\newif\if@tud@abstract@markboth
% \end{macrocode}
% \end{macro}^^A \if@tud@abstract@markboth
+%
+% \iffalse
+%</book|report|article>
+% \fi
+%
% \begin{option}{abstract}
% Alle Klassen unterstützen die Werte, welche in \cs{tud@fm@switch} definiert
-% wurden. Die beiden Klassen \cls{tudscrartcl} und\ cls{tudscrreprt} adaptieren
+% wurden. Die beiden Klassen \cls{tudscrartcl} und \cls{tudscrreprt} adaptieren
% außerdem das aus \KOMAScript{} bekannte Verhalten über die booleschen Werte
% aus \cs{TUD@numkey@bool}.
% \begin{macrocode}
-%<*report|article>
+%<*report|article|poster>
\TUD@key{abstract}[true]{%
\edef\@tempb{\TUD@numkey@bool,\tud@fm@switch}%
-%</report|article>
+%</report|article|poster>
%<*book>
\TUD@key{abstract}[chapter]{%
\edef\@tempb{\tud@fm@switch}%
@@ -645,29 +671,32 @@
% \begin{macrocode}
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
\ifcase\@tempa\relax% false
-%<*report|article>
- \def\tud@abstract@level{0}%
- \cs@std@lock{tud@abstract@toc}{0}%
-%</report|article>
+%<*report|article|poster>
+ \renewcommand*\tud@abstract@level@num{0}%
+%<report|article> \cs@std@lock{tud@abstract@toc@num}{0}%
+%</report|article|poster>
\or% true
-%<*report|article>
- \def\tud@abstract@level{1}%
- \cs@std@lock{tud@abstract@toc}{0}%
-%</report|article>
+%<*report|article|poster>
+ \renewcommand*\tud@abstract@level@num{1}%
+%<report|article> \cs@std@lock{tud@abstract@toc@num}{0}%
+%</report|article|poster>
\or% section
- \def\tud@abstract@level{2}%
- \cs@std@lock{tud@abstract@toc}{1}%
+ \renewcommand*\tud@abstract@level@num{2}%
+%<*book|report|article>
+ \cs@std@lock{tud@abstract@toc@num}{1}%
\or% chapter
%<*book|report>
- \def\tud@abstract@level{3}%
- \cs@std@lock{tud@abstract@toc}{1}%
+ \renewcommand*\tud@abstract@level@num{3}%
+ \cs@std@lock{tud@abstract@toc@num}{1}%
%</book|report>
+%</book|report|article>
% \end{macrocode}
% Neben den Einstellungen für die Art der Gliederungsebene der Überschrift für
% die Zusammenfassung können außerdem noch die Optionen gesetzt werden, ob
% versucht werden soll, eine mögliche Zusammenfassung in einer anderen Sprache
% auf die gleiche Seite wie die erste zu setzen (\opt{abstract=multi}).
% \begin{macrocode}
+%<*book|report|article>
\or% single
\@tud@abstract@multifalse%
\or% multiple
@@ -682,37 +711,47 @@
\@tud@abstract@markbothfalse%
% \end{macrocode}
% Bei den Einstellungen für das Inhaltsverzeichnis werden die unterschiedlichen
-% Möglichkeiten im Makro \cs{tud@abstract@toc} zusammengefasst.
+% Möglichkeiten im Makro \cs{tud@abstract@toc@num} zusammengefasst.
% \begin{macrocode}
\or% nottotoc
- \cs@set@lock{tud@abstract@toc}{0}%
+ \cs@set@lock{tud@abstract@toc@num}{0}%
\or% totoc
- \ifnum\tud@abstract@toc<\thr@@\relax%
- \cs@set@lock{tud@abstract@toc}{1}%
+ \ifnum\tud@abstract@toc@num<\thr@@\relax%
+ \cs@set@lock{tud@abstract@toc@num}{1}%
\else%
- \cs@set@lock{tud@abstract@toc}{3}%
+ \cs@set@lock{tud@abstract@toc@num}{3}%
\fi%
\or% totocleveldown
- \ifnum\tud@abstract@toc<\thr@@\relax%
- \cs@set@lock{tud@abstract@toc}{2}%
+ \ifnum\tud@abstract@toc@num<\thr@@\relax%
+ \cs@set@lock{tud@abstract@toc@num}{2}%
\else%
- \cs@set@lock{tud@abstract@toc}{4}%
+ \cs@set@lock{tud@abstract@toc@num}{4}%
\fi%
\or% totocmutliple
- \ifnum\tud@abstract@toc=\z@\relax%
- \cs@set@lock{tud@abstract@toc}{1}%
+ \ifnum\tud@abstract@toc@num=\z@\relax%
+ \cs@set@lock{tud@abstract@toc@num}{1}%
\fi%
- \ifnum\tud@abstract@toc<\thr@@\relax%
+ \ifnum\tud@abstract@toc@num<\thr@@\relax%
\edef\@tempa{%
- \noexpand\cs@set@lock{tud@abstract@toc}{%
- \the\numexpr\tud@abstract@toc+2\relax%
+ \noexpand\cs@set@lock{tud@abstract@toc@num}{%
+ \the\numexpr\tud@abstract@toc@num+2\relax%
}%
}\@tempa%
\fi%
+%</book|report|article>
\fi%
\fi%
}
% \end{macrocode}
+% Damit der Anwender die erweiterten Einstellungen für die Zusammenfassung auch
+% wie gewohnt über \cs{KOMAoptions} setzen kann, wird die entsprechende Option
+% ebenfalls definiert.
+% \begin{macrocode}
+\DefineFamilyMember{KOMA}
+\DefineFamilyKey{KOMA}{abstract}[true]{%
+ \AtEndOfFamilyOptions{\TUDoptions{abstract=#1}}%
+}
+% \end{macrocode}
% \end{option}^^A abstract
%
% \iffalse
@@ -733,20 +772,22 @@
% Inhalt der Umgebung selbst mit dem Befehl \cs{BODY} zuzugreifen. Dieser
% Mechanismus wird innerhalb von \cs{tud@abstractbody} verwendet.
% \begin{macrocode}
-%<*report|article>
+%<*report|article|poster>
\csundef{abstract}
\csundef{endabstract}
-%</report|article>
+%</report|article|poster>
\NewEnviron{abstract}[1][]{%
% \end{macrocode}
% Sollten Überschriften in Form von Kapiteln gewählt worden sein, so wird
% temporär die \opt{titlepage}-Option aktivert, da alle weiteren notwendigen
% Einstellungen dieser entsprechen. Über den Parameter \opt{pagestyle} kann bei
% der Verwendung einer Titelseite der Seitenstil definiert werden. Dafür wird
-% das dafür verantwortliche Makro \cs{tud@ps} auf \cs{relax} gesetzt.
+% das dafür verantwortliche Makro \cs{tud@envir@ps} auf \cs{relax} gesetzt.
% \begin{macrocode}
- \ifnum\@nameuse{tud@abstract@level}>\tw@\relax\@titlepagetrue\fi% chapter
- \let\tud@ps\relax%
+%<*book|report|article>
+ \ifnum\tud@abstract@level@num>\tw@\relax\@titlepagetrue\fi% chapter
+ \let\tud@envir@ps\relax%
+%</book|report|article>
% \end{macrocode}
% Als nächstes werden die Optionen verarbeitet. Sollte nach Abarbeitung der
% Optionen für \env{abstract} festgestellt werden, dass eine spezielle
@@ -755,19 +796,27 @@
% der Spalten ignoriert und eine Warnung ausgegeben.
% \begin{macrocode}
\TUD@parameter@set{abstract}{#1}%
- \tud@multicols@check%
+ \tud@x@multicol@check%
% \end{macrocode}
% Bei aktiver \opt{titlepage}-Option wird anschließend der aktuelle Seitenstil
% gesichert, um diesen nach der Umgebung wiederherstellen zu können. Wurde über
% die möglichen Parameter \opt{pagestyle} oder indirekt mit \opt{markboth} kein
% Seitenstil definiert, so wird dieser auf \val{empty} gesetzt.
% \begin{macrocode}
+%<*book|report|article>
\if@titlepage%
\tud@currentpagestyle@set%
- \ifx\tud@ps\relax\def\tud@ps{empty}\fi%
+ \ifx\tud@envir@ps\relax%
+ \tud@if@tudheadings{\currentpagestyle}{%
+ \def\tud@envir@ps{empty.tudheadings}%
+ }{%
+ \def\tud@envir@ps{empty}%
+ }%
+ \fi%
\clearpage%
- \tud@ps@select%
+ \tud@envir@selectps%
\fi%
+%</book|report|article>
% \end{macrocode}
% Mit dem Befehl \cs{nextabstract} können einzelne Abschnitte innerhalb einer
% Zusammenfassung getrennt werden.
@@ -787,11 +836,19 @@
% eingefügt.
% \begin{macrocode}
}[%
+%<*book|report|article>
\if@titlepage%
\if@tud@abstract@fil\vfil\null\fi%
\aftergroup\tud@currentpagestyle@reset%
\clearpage%
+ \else%
+%</book|report|article>
+ \ifnum\tud@abstract@level@num=\tw@\relax%
+ \vskip\dimexpr\bigskipamount-\parskip\relax%
+ \fi%
+%<*book|report|article>
\fi%
+%</book|report|article>
]
% \end{macrocode}
% \begin{parameter}{language}
@@ -805,35 +862,37 @@
% Als Schlüssel für die \env{abstract}-Umgebung können Sprache, Anzahl der
% Spalten oder auch die zur Umgebung gehörigen Klassenoptionen angegeben werden.
% \begin{macrocode}
-\TUD@parameter{abstract}{%
- \TUD@parameter@define{language}{\selectlanguage{#1}}%
- \TUD@parameter@define{columns}{\cs@std@lock{tud@multicols}{#1}}%
- \TUD@parameter@define{pagestyle}{\tud@fm@pagestyle{abstract}{#1}}%
+\TUD@parameter@family{abstract}{%
+ \TUD@parameter@def{language}{\selectlanguage{#1}}%
+ \TUD@parameter@def{columns}{\cs@std@lock{tud@x@multicol@num}{#1}}%
+%<*book|report|article>
+ \TUD@parameter@def{pagestyle}{\tud@fm@pagestyle{abstract}{#1}}%
% \end{macrocode}
% Für das Setzen von Kolumnentiteln wird der Seitenstil auf \val{headings}
% gesetzt, falls kein anderer mit \opt{pagestyle} angegeben wurde.
% \begin{macrocode}
- \TUD@parameter@define{markboth}[true]{%
+ \TUD@parameter@def{markboth}[true]{%
\ifstrbool{#1}{%
\@tud@abstract@markbothtrue%
- \ifx\tud@ps\relax\def\tud@ps{headings}\fi%
+ \ifx\tud@envir@ps\relax\def\tud@envir@ps{headings}\fi%
}{%
\@tud@abstract@markbothfalse%
}{%
\@tud@abstract@markbothfalse%
- \ifx\tud@ps\relax\def\tud@ps{headings}\fi%
+ \ifx\tud@envir@ps\relax\def\tud@envir@ps{headings}\fi%
\manualmark\markboth{#1}{#1}%
}%
}%
- \TUD@parameter@define{abstract}{\TUDoption{abstract}{#1}}%
+%</book|report|article>
+ \TUD@parameter@def{abstract}{\TUDoption{abstract}{#1}}%
\TUD@parameter@let{option}{abstract}%
% \end{macrocode}
% Für die Optionsangabe ohne Schlüssel und Wert kann eine Anzahl an Spalten
% oder eine alternative Sprache angegeben werden. Für die Auswertung des
-% Argumentes verantwortlich ist der Befehl \cs{TUD@parameter@defaulthandler},
+% Argumentes verantwortlich ist der Befehl \cs{TUD@parameter@handler@default},
% welcher auch von der Umgebung \env{tudpage} verwendet wird.
% \begin{macrocode}
- \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{abstract}{#1}}%
+ \TUD@parameter@handler@default{}%
}
% \end{macrocode}
% \end{parameter}^^A option
@@ -846,7 +905,7 @@
% verwenden.
% \begin{macrocode}
\newcommand*\nextabstract[1][]{%
- \ClassError{\TUDClassName}{Incorrect usage of `\string\nextabstract'}{%
+ \ClassError{\TUD@Class@Name}{Incorrect usage of `\string\nextabstract'}{%
The command `\string\nextabstract' can only be used within\MessageBreak%
the environment `abstract'.%
}%
@@ -857,6 +916,7 @@
%
% \iffalse
%</class&body>
+%<*book|report|article>
%<*class&option>
% \fi
%
@@ -865,10 +925,10 @@
% Die Befehle für Selbstständigkeitserklärung und Sperrvermerk werden
% äquivalent zur \env{abstract}-Umgebung mit den gleichen Optionen
% ausgestattet.
-% \begin{macro}{\tud@declaration@level}
-% \begin{macro}{\tud@declaration@toc}
+% \begin{macro}{\tud@declaration@level@num}
+% \begin{macro}{\tud@declaration@toc@num}
% \changes{v2.04}{2015/04/24}{neu}^^A
-% \begin{macro}{\tud@declaration@toc@locked}
+% \begin{macro}{\tud@declaration@toc@num@locked}
% \changes{v2.04}{2015/04/24}{neu}^^A
% \begin{macro}{\if@tud@declaration@multi}
% \begin{macro}{\if@tud@declaration@fil}
@@ -877,12 +937,12 @@
% Siehe die Option \opt{abstract}.
% \begin{macrocode}
%<*report|article>
-\newcommand*\tud@declaration@level{1}
-\cs@lock{tud@declaration@toc}{0}
+\newcommand*\tud@declaration@level@num{1}
+\cs@lock{tud@declaration@toc@num}{0}
%</report|article>
%<*book>
-\newcommand*\tud@declaration@level{3}
-\cs@lock{tud@declaration@toc}{1}
+\newcommand*\tud@declaration@level@num{3}
+\cs@lock{tud@declaration@toc@num}{1}
%</book>
\newif\if@tud@declaration@multi
\@tud@declaration@multitrue
@@ -893,9 +953,9 @@
% \end{macro}^^A \if@tud@declaration@markboth
% \end{macro}^^A \if@tud@declaration@fil
% \end{macro}^^A \if@tud@declaration@multi
-% \end{macro}^^A \tud@declaration@toc@locked
-% \end{macro}^^A \tud@declaration@toc
-% \end{macro}^^A \tud@declaration@level
+% \end{macro}^^A \tud@declaration@toc@num@locked
+% \end{macro}^^A \tud@declaration@toc@num
+% \end{macro}^^A \tud@declaration@level@num
% \begin{option}{declaration}
% Siehe die Option \opt{abstract}.
% \begin{macrocode}
@@ -909,18 +969,18 @@
\TUD@set@numkey{declaration}{@tempa}{\@tempb}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
\ifcase\@tempa\relax% false
- \def\tud@declaration@level{0}%
- \cs@std@lock{tud@declaration@toc}{0}%
+ \renewcommand*\tud@declaration@level@num{0}%
+ \cs@std@lock{tud@declaration@toc@num}{0}%
\or% true
- \def\tud@declaration@level{1}%
- \cs@std@lock{tud@declaration@toc}{0}%
+ \renewcommand*\tud@declaration@level@num{1}%
+ \cs@std@lock{tud@declaration@toc@num}{0}%
\or% section
- \def\tud@declaration@level{2}%
- \cs@std@lock{tud@declaration@toc}{1}%
+ \renewcommand*\tud@declaration@level@num{2}%
+ \cs@std@lock{tud@declaration@toc@num}{1}%
\or% chapter
%<*book|report>
- \def\tud@declaration@level{3}%
- \cs@std@lock{tud@declaration@toc}{1}%
+ \renewcommand*\tud@declaration@level@num{3}%
+ \cs@std@lock{tud@declaration@toc@num}{1}%
%</book|report>
\or% single
\@tud@declaration@multifalse%
@@ -935,27 +995,27 @@
\or% nomarkboth
\@tud@declaration@markbothfalse%
\or% nottotoc
- \cs@set@lock{tud@declaration@toc}{0}%
+ \cs@set@lock{tud@declaration@toc@num}{0}%
\or% totoc
- \ifnum\tud@declaration@toc<\thr@@\relax%
- \cs@set@lock{tud@declaration@toc}{1}%
+ \ifnum\tud@declaration@toc@num<\thr@@\relax%
+ \cs@set@lock{tud@declaration@toc@num}{1}%
\else%
- \cs@set@lock{tud@declaration@toc}{3}%
+ \cs@set@lock{tud@declaration@toc@num}{3}%
\fi%
\or% totocleveldown
- \ifnum\tud@declaration@toc<\thr@@\relax%
- \cs@set@lock{tud@declaration@toc}{2}%
+ \ifnum\tud@declaration@toc@num<\thr@@\relax%
+ \cs@set@lock{tud@declaration@toc@num}{2}%
\else%
- \cs@set@lock{tud@declaration@toc}{4}%
+ \cs@set@lock{tud@declaration@toc@num}{4}%
\fi%
\or% totocmutliple
- \ifnum\tud@declaration@toc=\z@\relax%
- \cs@set@lock{tud@declaration@toc}{1}%
+ \ifnum\tud@declaration@toc@num=\z@\relax%
+ \cs@set@lock{tud@declaration@toc@num}{1}%
\fi%
- \ifnum\tud@declaration@toc<\thr@@\relax%
+ \ifnum\tud@declaration@toc@num<\thr@@\relax%
\edef\@tempa{%
- \noexpand\cs@set@lock{tud@declaration@toc}{%
- \the\numexpr\tud@declaration@toc+2\relax%
+ \noexpand\cs@set@lock{tud@declaration@toc@num}{%
+ \the\numexpr\tud@declaration@toc@num+2\relax%
}%
}\@tempa%
\fi%
@@ -985,23 +1045,42 @@
\newif\if@tud@declarations
\NewEnviron{declarations}[1][]{%
\@tud@declarationstrue%
- \ifnum\@nameuse{tud@declaration@level}>\tw@\relax\@titlepagetrue\fi% chapter
- \let\tud@ps\relax%
+ \ifnum\tud@declaration@level@num>\tw@\relax\@titlepagetrue\fi% chapter
+ \let\tud@envir@ps\relax%
\TUD@parameter@set{declaration}{#1}%
- \tud@multicols@check%
+ \tud@x@multicol@check%
\if@titlepage%
\tud@currentpagestyle@set%
- \ifx\tud@ps\relax\def\tud@ps{empty}\fi%
+ \ifx\tud@envir@ps\relax%
+ \tud@if@tudheadings{\currentpagestyle}{%
+ \def\tud@envir@ps{empty.tudheadings}%
+ }{%
+ \def\tud@envir@ps{empty}%
+ }%
+ \fi%
\clearpage%
- \tud@ps@select%
+ \tud@envir@selectps%
\fi%
% \end{macrocode}
-% Im Gegensatz zu \env{abstract} werden in der \env{declarations}-Umgebung alle
-% Erklärungen in einer \emph{geschlossenen} Variante verwendet, um diese mit
-% einzelnen nacheinander angeben zu gönnen. Jedes der möglichen Makros
+% Falls innerhalb der Erklärung durch den Anwender bestimmte Felder verwendet
+% werden, werden vorsichtshalber Befehle für die Titelei \enquote{entschärft}.
+% \begin{macrocode}
+ \def\and{, }%
+ \let\thanks\@gobble%
+% \end{macrocode}
+% Im Gegensatz zur \env{abstract}-Umgebung werden in der Umgebung
+% \env{declarations} alle Erklärungen als \emph{geschlossene} Variante genutzt,
+% um diese einzeln und nacheinander anzugeben. Jedes hierfür nutzbare Makro
% (\cs{declaration}, \cs{nextdeclaration}, \cs{blocking} und \cs{confirmation})
-% führt intern die beiden notwendigen Makros \cs{tud@fm@body@start} sowie
-% \cs{tud@fm@body@end} selbstständig aus.
+% kann so innerhalb der Umgebung verwendet werden und führt intern die beiden
+% Makros \cs{tud@fm@body@start} und \cs{tud@fm@body@end} selbstständig aus.
+% Alternativ dazu müsste relativ umständlich geprüft werden, ob der Aufruf von
+% \cs{tud@fm@body@start} bereits erfolgte \emph{und} danach auch schon Text
+% ausgegeben wurde. Einen Mehrwert bei der Nutzung hätte dies jedoch nicht
+% gehabt außer der äquivalenten Verwendung von \cs{nextdeclaration} und
+% \cs{nextabstract}, worauf der Einfachheit halber gerne verzichtet wurde,
+% insbesondere da die erwartete Nutzung des Befehls \cs{nextdeclaration} als
+% sehr gering einzustufen ist.
% \begin{macrocode}
\tud@fm@check{declaration}{\BODY}%
}[%
@@ -1009,6 +1088,10 @@
\if@tud@declaration@fil\vfil\null\fi%
\aftergroup\tud@currentpagestyle@reset%
\clearpage%
+ \else%
+ \ifnum\tud@declaration@level@num=\tw@\relax%
+ \vskip\dimexpr\bigskipamount-\parskip\relax%
+ \fi%
\fi%
]
% \end{macrocode}
@@ -1032,30 +1115,30 @@
% \opt{option} dienen zum Setzen der Werte, welche auch als Klassenoptionen
% gesetzt werden können.
% \begin{macrocode}
-\TUD@parameter{declaration}{%
- \TUD@parameter@define{language}{\selectlanguage{#1}}%
- \TUD@parameter@define{columns}{\cs@std@lock{tud@multicols}{#1}}%
- \TUD@parameter@define{pagestyle}{\tud@fm@pagestyle{declaration}{#1}}%
- \TUD@parameter@define{markboth}[true]{%
+\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{pagestyle}{\tud@fm@pagestyle{declaration}{#1}}%
+ \TUD@parameter@def{markboth}[true]{%
\ifstrbool{#1}{%
\@tud@declaration@markbothtrue%
- \ifx\tud@ps\relax\def\tud@ps{headings}\fi%
+ \ifx\tud@envir@ps\relax\def\tud@envir@ps{headings}\fi%
}{%
\@tud@declaration@markbothfalse%
}{%
\@tud@declaration@markbothfalse%
- \ifx\tud@ps\relax\def\tud@ps{headings}\fi%
+ \ifx\tud@envir@ps\relax\def\tud@envir@ps{headings}\fi%
\manualmark\markboth{#1}{#1}%
}%
}%
- \TUD@parameter@define{company}{\def\@company{#1}}%
- \TUD@parameter@define{supporter}{\def\@supporter{#1}}%
- \TUD@parameter@define{place}{\def\@place{#1}}%
- \TUD@parameter@define{closing}{\def\@confirmationclosing{#1}}%
+ \TUD@parameter@def{company}{\def\@company{#1}}%
+ \TUD@parameter@def{supporter}{\def\@supporter{#1}}%
+ \TUD@parameter@def{place}{\def\@place{#1}}%
+ \TUD@parameter@def{closing}{\def\@confirmationclosing{#1}}%
\TUD@parameter@let{confirmationclosing}{closing}%
- \TUD@parameter@define{declaration}{\TUDoption{declaration}{#1}}%
+ \TUD@parameter@def{declaration}{\TUDoption{declaration}{#1}}%
\TUD@parameter@let{option}{declaration}%
- \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{declaration}{#1}}%
+ \TUD@parameter@handler@default{}%
}
% \end{macrocode}
% \end{parameter}^^A option
@@ -1068,25 +1151,46 @@
% \end{parameter}^^A pagestyle
% \end{parameter}^^A columns
% \end{parameter}^^A language
+% \begin{macro}{\tud@fm@supporter}
+% \changes{v2.05}{2015/10/27}{neu}^^A
+% Dies ist ein Hilfsmakro, um die Sternversionen der beiden Befehle
+% \cs{declaration} und \cs{confirmation} zu realisieren.
+% \begin{macrocode}
+\newcommand*\tud@fm@supporter{}
+% \end{macrocode}
+% \end{macro}^^A \tud@fm@supporter
% \begin{macro}{\declaration}
% \changes{v2.02}{2014/07/18}{Neuimplementierung für \pkg{scrlayer-scrpage}}^^A
% \changes{v2.03}{2015/01/30}{Bugfix für Spaltenanzahl}^^A
+% \changes{v2.05}{2015/10/27}{Sternversion für Betreuer als Unterstützer}^^A
+% \begin{macro}{\tud@fm@declaration}
+% \changes{v2.05}{2015/10/27}{neu}^^A
% \begin{macro}{\nextdeclaration}
% \changes{v2.04}{2015/03/20}{neu}^^A
% Dieser Befehl dient zur Ausgabe von sowohl Selbstständigkeitserklärung als
% auch Sperrvermerk. Über das optionale Argument kann ohne Schlüssel die
% gewünschte Sprache eingestellt werden. Zusätzlich können Optionen als
-% Schlüssel-Wert-Paare angegeben werden.
+% Schlüssel-Wert-Paare angegeben werden. Die Sternversion erzwingt die Ausgabe
+% der in \cs{@supporter} gespeicherten Betreuer als Unterstützer.
% \begin{macrocode}
-\newcommand*\declaration[1][]{%
+\newcommand*\declaration{%
+ \kernel@ifstar{%
+ \def\tud@fm@supporter{supporter=\@supervisor}%
+ \tud@fm@declaration%
+ }{%
+ \def\tud@fm@supporter{supporter=\@supporter}%
+ \tud@fm@declaration%
+ }%
+}
+\newcommand*\tud@fm@declaration[1][]{%
\ifbool{@tud@declarations}{%
\begingroup%
- \tud@fm@confirmation[#1]%
+ \tud@fm@@confirmation[\tud@fm@supporter,#1]%
\tud@fm@blocking[#1]%
\endgroup%
}{%
- \begin{declarations}[#1]%
- \tud@fm@confirmation%
+ \begin{declarations}[\tud@fm@supporter,#1]%
+ \tud@fm@@confirmation%
\tud@fm@blocking%
\end{declarations}%
}%
@@ -1100,11 +1204,11 @@
% \begin{macrocode}
\newcommand*\nextdeclaration[3][]{%
\ifbool{@tud@declarations}{%
- \tud@fm@body@start{declaration}{#1}{#2}
+ \tud@fm@body@start{declaration}{#1}{#2}%
#3%
\tud@fm@body@end{declaration}%
}{%
- \ClassError{\TUDClassName}{Incorrect usage of `\string\nextdeclaration'}{%
+ \ClassError{\TUD@Class@Name}{Incorrect usage of `\string\nextdeclaration'}{%
The command `\string\nextdeclaration' can only be used\MessageBreak%
within the environment `declarations'.%
}%
@@ -1112,49 +1216,58 @@
}
% \end{macrocode}
% \end{macro}^^A \nextdeclaration
+% \end{macro}^^A \tud@fm@declaration
% \end{macro}^^A \declaration
% \begin{macro}{\confirmation}
% \changes{v2.02}{2014/07/18}{Neuimplementierung für \pkg{scrlayer-scrpage}}^^A
% \changes{v2.03}{2015/01/30}{Bugfix für Spaltenanzahl}^^A
+% \changes{v2.05}{2015/10/27}{Sternversion für Betreuer als Unterstützer}^^A
% \begin{macro}{\tud@fm@confirmation}
+% \changes{v2.05}{2015/10/27}{neu}^^A
+% \begin{macro}{\tud@fm@@confirmation}
% \changes{v2.02}{2014/07/18}{neu}^^A
% Mit diesem Befehl kann die Selbstständigkeitserklärung ausgegeben werden. Das
% optionale Argument bestimmt, wer als Unterstützer angegeben wird. Außerdem
-% sind Schlüssel-Wert-Paare als Option nutzbar.
-% \begin{macrocode}
-\newcommand*\confirmation[1][]{%
-% \end{macrocode}
-% Damit das optionale Argument ohne Schlüssel für die Unterstützer verwendet
-% werden kann, wird der Handler umdefiniert.
+% sind Schlüssel-Wert-Paare als Option nutzbar. Mit der Sternversion werden die
+% mit \cs{supervisor} angegebenen Betreuer als Unterstützer genannt.
% \begin{macrocode}
- \TUD@parameter@sethandler[declaration]{%
- \TUD@parameter@set{declaration}{supporter=##1}%
- }%
- \ifbool{@tud@declarations}{%
- \begingroup%
- \tud@fm@confirmation[#1]%
- \endgroup%
+\newcommand*\confirmation{%
+ \kernel@ifstar{%
+ \def\tud@fm@supporter{supporter=\@supervisor}%
+ \tud@fm@confirmation%
}{%
- \begin{declarations}[#1]%
- \tud@fm@confirmation%
- \end{declarations}%
+ \def\tud@fm@supporter{supporter=\@supporter}%
+ \tud@fm@confirmation%
}%
+}
+\newcommand*\tud@fm@confirmation[1][]{%
% \end{macrocode}
-% Der Handler wird auf das ursprüngliche Verhalten zurückgesetzt.
+% Damit das optionale Argument ohne Schlüssel für die Unterstützer verwendet
+% werden kann, wird der Handler lokal umdefiniert. Außerdem werden irrelevante
+% Parameter undefiniert gesetzt.
% \begin{macrocode}
- \TUD@parameter@sethandler[declaration]{%
- \TUD@parameter@defaulthandler{declaration}{##1}%
- }%
+ \begingroup%
+ \TUD@parameter@handler@default[declaration]{supporter}%
+ \undef\KV@declaration@company%
+ \ifbool{@tud@declarations}{%
+ \tud@fm@@confirmation[\tud@fm@supporter,#1]%
+ }{%
+ \begin{declarations}[\tud@fm@supporter,#1]%
+ \tud@fm@@confirmation%
+ \end{declarations}%
+ }%
+ \endgroup%
}
% \end{macrocode}
% Dies ist der eigentliche Inhalt des Befehls \cs{confirmation}.
% \begin{macrocode}
-\newcommand*\tud@fm@confirmation[1][]{%
+\newcommand*\tud@fm@@confirmation[1][]{%
\tud@fm@body@start{declaration}{#1}{\confirmationname}%
\confirmationtext\vskip\z@\@confirmationclosing%
\tud@fm@body@end{declaration}%
}
% \end{macrocode}
+% \end{macro}^^A \tud@fm@@confirmation
% \end{macro}^^A \tud@fm@confirmation
% \end{macro}^^A \confirmation
% \begin{macro}{\blocking}
@@ -1167,21 +1280,19 @@
% optionale Argument ohne Schlüssel setzt hier die Firma für den Sperrvermerk.
% \begin{macrocode}
\newcommand*\blocking[1][]{%
- \TUD@parameter@sethandler[declaration]{%
- \TUD@parameter@set{declaration}{company=##1}%
- }%
- \ifbool{@tud@declarations}{%
- \begingroup%
+ \begingroup%
+ \TUD@parameter@handler@default[declaration]{company}%
+ \undef\KV@declaration@supporter%
+ \undef\KV@declaration@closing%
+ \undef\KV@declaration@confirmationclosing%
+ \ifbool{@tud@declarations}{%
\tud@fm@blocking[#1]%
- \endgroup%
- }{%
- \begin{declarations}[#1]%
- \tud@fm@blocking%
- \end{declarations}%
- }%
- \TUD@parameter@sethandler[declaration]{%
- \TUD@parameter@defaulthandler{declaration}{##1}%
- }%
+ }{%
+ \begin{declarations}[#1]%
+ \tud@fm@blocking%
+ \end{declarations}%
+ }%
+ \endgroup%
}
% \end{macrocode}
% Dies ist der eigentliche Inhalt des Befehls \cs{blocking}.
@@ -1197,6 +1308,7 @@
%
% \iffalse
%</class&body>
+%</book|report|article>
% \fi
%
% \Finale
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-layout.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-layout.dtx
index 4604eedc717..beda78516a6 100644
--- a/Master/texmf-dist/source/latex/tudscr/tudscr-layout.dtx
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-layout.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{1246}
+% \CheckSum{1488}
% \iffalse meta-comment
%
% ============================================================================
@@ -18,13 +18,13 @@
%
% ----------------------------------------------------------------------------
%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
-% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
-% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
-% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
-% oder spaeter 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.
+% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
+% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
+% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
+% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
+% oder spaeter 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.
%
% ============================================================================
%
@@ -51,15 +51,17 @@
%<*driver>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\ProvidesFile{tudscr-layout.dtx}[%
- 2016/06/17 v2.04e TUD-KOMA-Script (layout)%
+ 2016/07/26 v2.05 TUD-KOMA-Script (layout)%
]
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
-\documentclass[english,ngerman]{tudscrdoc}
+\documentclass[english,ngerman,xindy]{tudscrdoc}
\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{tudscrfonts} % only load this package, if the fonts are installed
\KOMAoptions{parskip=half-}
+\usepackage{microtype}
+\usepackage{bookmark}
\CodelineIndex
\RecordChanges
\GetFileInfo{tudscr-layout.dtx}
@@ -72,7 +74,8 @@
%
% \selectlanguage{ngerman}
%
-% \changes{v2.02}{2014/07/08}{Optionen nutzen \cs{FamilyKeyState}}^^A
+% \changes{v2.02}{2014/07/08}{\cs{FamilyKeyState} wird von Optionen genutzt}^^A
+% \changes{v2.05}{2015/07/06}{Layout für Poster}^^A
%
% \section{Das Layout des \CDs}
%
@@ -81,7 +84,7 @@
% eine durchweg farbige Version bereitgestellt. Außerdem wird hier das Aussehen
% und die Position der Überschriften festgelegt.
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \StopEventually{\PrintIndex\PrintChanges\PrintToDos}
%
% \iffalse
%<*class&option>
@@ -89,45 +92,18 @@
%
% \subsection{Optionen}
%
-% \begin{option}{cd}
-% \changes{v2.04}{2015/05/18}{Wert \val{barcolor} neu}^^A
-% \begin{macro}{\tud@cd}
-% \begin{macro}{\tud@layout@cover}
-% \changes{v2.02}{2014/08/08}{neu}^^A
-% \begin{macro}{\if@tud@layout@cover@locked}
-% \changes{v2.02}{2014/08/08}{neu}^^A
-% \begin{macro}{\tud@layout@title}
-% \begin{macro}{\if@tud@layout@title@locked}
-% \begin{macro}{\tud@layout@part}
-% \begin{macro}{\if@tud@layout@part@locked}
-% \begin{macro}{\tud@layout@chapter}
-% \begin{macro}{\if@tud@layout@chapter@locked}
-% \begin{macro}{\tud@layout@switch}
% Ein zentraler Teil der Wrapper-Klassen ist die Auswahl der Darstellung des
% \CDs. Dabei kann gewählt werden, ob es einfarbig, mit leichtem oder aber mit
-% starkem Farbeinsatz genutzt werden soll. Diese Option dient zur globalen
-% Einstellung für Cover- Titel-, Teil- und Kapitelseiten. Mit dem Schalter
-% werden die gleichen Einstellungen für alle drei Komponenten gesetzt. Die
-% Standardfarbe des Kopfes der \env{tudpage}"=Seite ist schwarz und wird für
-% die farbigen Layouts auf dunkelblau gesetzt. Abhängig von der gewählten
-% Option, die über \cs{tud@layout@switch} festgelegt ist, werden die
-% sogenannten Layoutschlüssel (\cs{tud@layout@\dots}) auf einen Wert gesetzt
-% (0\dots 3), welcher im weiteren Verlauf ausgewertet werden kann. Der Schalter
-% für Kapitel wird lediglich für \cls{tudscrbook}- und \cls{tudscrreprt} jedoch
-% nicht für die \cls{tudscrartcl}-Klasse definiert und genutzt. Eigentlich
-% werden alle Komponenten mit einer zentralen Option festgelegt, können aber
-% auch durch den Nutzer explizit überschrieben werden.
-% \begin{macrocode}
-\cs@lock{tud@layout@cover}{0}
-\cs@lock{tud@layout@title}{0}
-\cs@lock{tud@layout@part}{0}
-%<*book|report>
-\cs@lock{tud@layout@chapter}{0}
-%</book|report>
-% \end{macrocode}
+% starkem Farbeinsatz genutzt werden soll. Die folgenden Optionen sind hierfür
+% zuständig.
+%
+% \begin{macro}{\tud@layout@switch}
% Dies sind die Standardoptionen für alle einzelnen Einstellungen des Layouts.
-% Es gibt die Varianten monochrom~(1), leichter~(2) und voller Farbeinsatz~(3)
-% sowie die Möglichkeit, das \CD vollständig zu deaktivieren (0).
+% 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
+% die farbige Ausprägung des Querbalkens im Zusammenspiel mit dem Seitenkopf
+% 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{%
@@ -143,34 +119,89 @@
{full}{6},{colorfull}{6},{fullcolor}{6},{colourfull}{6},{fullcolour}{6}%
}
% \end{macrocode}
+% \end{macro}^^A \tud@layout@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
+% 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
+% aber auch durch den Nutzer explizit überschrieben werden.
+%
+% Für die Klasse \cls{tudscrposter} wird mit der Option die farbige Ausprägung
+% eines Posters definiert. Dabei sind alle Werte gültig, die auch für die
+% meisten anderen Layouteinstellungen verwendet werden können. Abhängig vom
+% 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.
% \begin{macrocode}
-\newcommand*\tud@cd{0}
+\newcommand*\tud@cd@num{0}
\TUD@key{cd}[true]{%
- \TUD@set@numkey{cd}{tud@cd}{\tud@layout@switch}{#1}%
+ \TUD@set@numkey{cd}{tud@cd@num}{\tud@layout@switch}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
% \end{macrocode}
% Layout nicht im \CD.
% \begin{macrocode}
- \ifcase\tud@cd\relax% false
- \cs@std@lock{tud@layout@cover}{0}%
- \cs@std@lock{tud@layout@title}{0}%
- \cs@std@lock{tud@layout@part}{0}%
+ \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}{0}%
- \TUD@std@ifkey@lock{chapterpage}{false}%
+ \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
- \cs@std@lock{tud@layout@cover}{1}%
- \cs@std@lock{tud@layout@title}{1}%
- \cs@std@lock{tud@layout@part}{1}%
+%<*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}{1}%
- \TUD@std@ifkey@lock{chapterpage}{false}%
+ \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}
@@ -178,59 +209,74 @@
% \end{macrocode}
% Die Umschlagseite wird standardmäßig immer monochrom gesetzt.
% \begin{macrocode}
- \cs@std@lock{tud@layout@cover}{1}%
- \cs@std@lock{tud@layout@title}{2}%
- \cs@std@lock{tud@layout@part}{2}%
+%<*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}{2}%
- \TUD@std@ifkey@lock{chapterpage}{false}%
+ \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
- \cs@std@lock{tud@layout@cover}{1}%
- \cs@std@lock{tud@layout@title}{3}%
- \cs@std@lock{tud@layout@part}{3}%
+%<*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}{3}%
- \TUD@std@ifkey@lock{chapterpage}{false}%
+ \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
- \cs@std@lock{tud@layout@cover}{1}%
- \cs@std@lock{tud@layout@title}{4}%
- \cs@std@lock{tud@layout@part}{4}%
+%<*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}{4}%
- \TUD@std@ifkey@lock{chapterpage}{false}%
+ \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
- \cs@std@lock{tud@layout@cover}{1}%
- \cs@std@lock{tud@layout@title}{5}%
- \cs@std@lock{tud@layout@part}{5}%
+%<*book|report|article>
+ \cs@std@lock{tud@layout@cover@num}{1}%
+%</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}{5}%
- \TUD@std@ifkey@lock{chapterpage}{true}%
+ \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.
% \begin{macrocode}
\or% full
- \cs@std@lock{tud@layout@cover}{1}%
- \cs@std@lock{tud@layout@title}{6}%
- \cs@std@lock{tud@layout@part}{6}%
+%<*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}%
%<*book|report>
- \cs@std@lock{tud@layout@chapter}{6}%
- \TUD@std@ifkey@lock{chapterpage}{true}%
+ \cs@std@lock{tud@layout@chapter@num}{6}%
+ \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{true}%
%</book|report>
+ \cs@std@lock{tud@layout@section@num}{2}%
\fi%
% \end{macrocode}
% Die Ausführung des Befehls \cs{tud@layout@process} sorgt dafür, dass alle
@@ -239,33 +285,33 @@
% Deshalb wird er hier nur innerhalb des Dokumentes genutzt. Dies gilt auch für
% die folgenden Optionen.
% \begin{macrocode}
- \if@atdocument%
- \tud@layout@process%
- \else%
+ \TUD@SpecialOptionAtDocument{tud@layout@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}
% überschrieben werden.
% \begin{macrocode}
- \ifcase\tud@cd\relax% false
- \TUD@std@numkey@lock{cdgeometry}{false}%
+ \if@atdocument\else%
+ \ifcase\tud@cd@num\relax% false
+ \cs@std@lock{tud@cdgeometry@num}{0}%
\else% !false
- \TUD@std@numkey@lock{cdgeometry}{true}%
+ \cs@std@lock{tud@cdgeometry@num}{2}%
\fi%
\fi%
\fi%
}
% \end{macrocode}
-% \end{macro}^^A \tud@layout@switch
-% \end{macro}^^A \if@tud@layout@chapter@locked
-% \end{macro}^^A \tud@layout@chapter
-% \end{macro}^^A \if@tud@layout@part@locked
-% \end{macro}^^A \tud@layout@part
-% \end{macro}^^A \if@tud@layout@title@locked
-% \end{macro}^^A \tud@layout@title
-% \end{macro}^^A \if@tud@layout@cover@locked
-% \end{macro}^^A \tud@layout@cover
-% \end{macro}^^A \if@tud@cd
+% \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
@@ -273,27 +319,29 @@
% Das durch die Option \opt{cd} insgesamt festgelegte Layout kann für die
% einzelnen Elemente Umschlagseite (\opt{cdcover}),\dots
% \begin{macrocode}
+%<*book|report|article>
\TUD@key{cdcover}[true]{%
\TUD@set@numkey{cdcover}{@tempa}{\tud@layout@switch}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
\ifcase\@tempa\relax% false
- \cs@set@lock{tud@layout@cover}{0}%
+ \cs@set@lock{tud@layout@cover@num}{0}%
\or% true
- \cs@set@lock{tud@layout@cover}{1}%
+ \cs@set@lock{tud@layout@cover@num}{1}%
\or% litecolor
- \cs@set@lock{tud@layout@cover}{2}%
+ \cs@set@lock{tud@layout@cover@num}{2}%
\or% barcolor
- \cs@set@lock{tud@layout@cover}{3}%
+ \cs@set@lock{tud@layout@cover@num}{3}%
\or% bicolor
- \cs@set@lock{tud@layout@cover}{4}%
+ \cs@set@lock{tud@layout@cover@num}{4}%
\or% color
- \cs@set@lock{tud@layout@cover}{5}%
+ \cs@set@lock{tud@layout@cover@num}{5}%
\or% full
- \cs@set@lock{tud@layout@cover}{6}%
+ \cs@set@lock{tud@layout@cover@num}{6}%
\fi%
- \if@atdocument\tud@layout@process\fi%
+ \TUD@SpecialOptionAtDocument{tud@layout@process}%
\fi%
}
+%</book|report|article>
% \end{macrocode}
% \end{option}^^A cdcover
% \begin{option}{cdtitle}
@@ -304,21 +352,21 @@
\TUD@set@numkey{cdtitle}{@tempa}{\tud@layout@switch}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
\ifcase\@tempa\relax% false
- \cs@set@lock{tud@layout@title}{0}%
+ \cs@set@lock{tud@layout@title@num}{0}%
\or% true
- \cs@set@lock{tud@layout@title}{1}%
+ \cs@set@lock{tud@layout@title@num}{1}%
\or% litecolor
- \cs@set@lock{tud@layout@title}{2}%
+ \cs@set@lock{tud@layout@title@num}{2}%
\or% barcolor
- \cs@set@lock{tud@layout@title}{3}%
+ \cs@set@lock{tud@layout@title@num}{3}%
\or% bicolor
- \cs@set@lock{tud@layout@title}{4}%
+ \cs@set@lock{tud@layout@title@num}{4}%
\or% color
- \cs@set@lock{tud@layout@title}{5}%
+ \cs@set@lock{tud@layout@title@num}{5}%
\or% full
- \cs@set@lock{tud@layout@title}{6}%
+ \cs@set@lock{tud@layout@title@num}{6}%
\fi%
- \if@atdocument\tud@layout@process\fi%
+ \TUD@SpecialOptionAtDocument{tud@layout@process}%
\fi%
}
% \end{macrocode}
@@ -331,21 +379,21 @@
\TUD@set@numkey{cdpart}{@tempa}{\tud@layout@switch}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
\ifcase\@tempa\relax% false
- \cs@set@lock{tud@layout@part}{0}%
+ \cs@set@lock{tud@layout@part@num}{0}%
\or% true
- \cs@set@lock{tud@layout@part}{1}%
+ \cs@set@lock{tud@layout@part@num}{1}%
\or% litecolor
- \cs@set@lock{tud@layout@part}{2}%
+ \cs@set@lock{tud@layout@part@num}{2}%
\or% barcolor
- \cs@set@lock{tud@layout@part}{3}%
+ \cs@set@lock{tud@layout@part@num}{3}%
\or% bicolor
- \cs@set@lock{tud@layout@part}{4}%
+ \cs@set@lock{tud@layout@part@num}{4}%
\or% color
- \cs@set@lock{tud@layout@part}{5}%
+ \cs@set@lock{tud@layout@part@num}{5}%
\or% full
- \cs@set@lock{tud@layout@part}{6}%
+ \cs@set@lock{tud@layout@part@num}{6}%
\fi%
- \if@atdocument\tud@layout@process\fi%
+ \TUD@SpecialOptionAtDocument{tud@layout@process}%
\fi%
}
% \end{macrocode}
@@ -361,33 +409,52 @@
\TUD@set@numkey{cdchapter}{@tempa}{\tud@layout@switch}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
\ifcase\@tempa\relax% false
- \cs@set@lock{tud@layout@chapter}{0}%
- \TUD@std@ifkey@lock{chapterpage}{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}{1}%
- \TUD@std@ifkey@lock{chapterpage}{false}%
+ \cs@set@lock{tud@layout@chapter@num}{1}%
+ \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}%
\or% litecolor
- \cs@set@lock{tud@layout@chapter}{2}%
- \TUD@std@ifkey@lock{chapterpage}{false}%
+ \cs@set@lock{tud@layout@chapter@num}{2}%
+ \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}%
\or% barcolor
- \cs@set@lock{tud@layout@chapter}{3}%
- \TUD@std@ifkey@lock{chapterpage}{false}%
+ \cs@set@lock{tud@layout@chapter@num}{3}%
+ \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}%
\or% bicolor
- \cs@set@lock{tud@layout@chapter}{4}%
- \TUD@std@ifkey@lock{chapterpage}{false}%
+ \cs@set@lock{tud@layout@chapter@num}{4}%
+ \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}%
\or% color
- \cs@set@lock{tud@layout@chapter}{5}%
- \TUD@std@ifkey@lock{chapterpage}{true}%
+ \cs@set@lock{tud@layout@chapter@num}{5}%
+ \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{true}%
\or% full
- \cs@set@lock{tud@layout@chapter}{6}%
- \TUD@std@ifkey@lock{chapterpage}{true}%
+ \cs@set@lock{tud@layout@chapter@num}{6}%
+ \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{true}%
\fi%
- \if@atdocument\tud@layout@process\fi%
+ \TUD@SpecialOptionAtDocument{tud@layout@process}%
\fi%
}
%</book|report>
% \end{macrocode}
% \end{option}^^A cdchapter
+% \begin{option}{cdsection}
+% \changes{v2.05}{2015/07/07}{neu}^^A
+% Zuletzt noch alle nachgelagerten Gliederungsebenen.
+% \begin{macrocode}
+\TUD@key{cdsection}[true]{%
+ \TUD@set@numkey{cdsection}{@tempa}{\tud@layout@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}%
+ \fi%
+}
+% \end{macrocode}
+% \end{option}^^A cdsection
%
% \iffalse
%<*book|report>
@@ -404,7 +471,7 @@
\TUD@key{parttitle}[true]{%
\TUD@set@ifkey{parttitle}{@tud@parttitle}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
- \if@atdocument\tud@layout@process\fi%
+ \TUD@SpecialOptionAtDocument{tud@layout@process}%
\fi%
}
% \end{macrocode}
@@ -425,24 +492,22 @@
% \end{macro}^^A \if@tud@chapterpage
% \end{option}^^A chapterpage
% \begin{option}{cleardoublespecialpage}
-% \changes{v2.02}{2014/07/08}{Nutzung als globale Klassenoption mit Werten für
-% Seitenstile aus den \KOMAScript{} bzw. \TUDScript-Klassen}^^A
+% \changes{v2.02}{2014/07/08}{Werte für Seitenstil aus den \TUDScript- bzw.
+% \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
% \begin{macro}{\tud@cleardoublepage}
% \begin{macro}{\tud@cleardoublespecialpage}
-% \changes{v2.03}{2015/01/09}{Makro \cs{tud@restorepagecolor} ist aufgrund der
-% Nutzung von \pkg{scrlayer-scrpage} für Seitenhintergrund überflüssig}^^A
% 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
% (\opt{open=right}) zum Tragen kommen.
%
% Diese Option steuert, ob die Rückseite von Titel, Teilen und ggf. auch bei
-% separaten Kapitelseiten\footnote{bei aktivierter \opt{chapterpage}"=Option}
-% entweder zwingend als leere Seite oder aber ~-- abhängig von der
-% \KOMAScript-Option \opt{cleardoublepage}~-- als Vakatseite ausgegeben werden.
-% Auch die Festlegung eines bestimmten Seitenstiles ist möglich.
+% 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.
%
% Der Befehl \cs{tud@cleardoublepage} enthält die Definition der zu erzeugenden
% Doppelseite.
@@ -458,9 +523,9 @@
% \begin{macrocode}
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
\if@tempswa%
- \def\tud@cleardoublepage{\cleardoubleoddpage}%
+ \renewcommand*\tud@cleardoublepage{\cleardoubleoddpage}%
\else%
- \def\tud@cleardoublepage{\null\thispagestyle{empty}\newpage}%
+ \renewcommand*\tud@cleardoublepage{\null\thispagestyle{empty}\newpage}%
\fi%
\else%
% \end{macrocode}
@@ -472,7 +537,7 @@
% Außerdem kann ein Seitenstil gezielt ausgewählt werden.
% \begin{macrocode}
\ifstr{#1}{current}{%
- \def\tud@cleardoublepage{\cleardoubleoddstandardpage}%
+ \renewcommand*\tud@cleardoublepage{\cleardoubleoddstandardpage}%
\FamilyKeyStateProcessed%
}{%
% \end{macrocode}
@@ -482,13 +547,13 @@
% \cs{AfterPreamble} auf den Beginn des Dokumentes verzögert.
% \begin{macrocode}
\AfterPreamble{%
- \ifcsdef{ps@#1}{%
- \def\tud@cleardoublepage{\cleardoubleoddpageusingstyle{#1}}%
- }{%
- \ClassError{\TUDClassName}{`#1' is no valid pagestyle}{%
+ \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%
@@ -567,69 +632,53 @@
% werden dem angegebenen Element die gewünschten Schriftattribute zugeteilt.
% \begin{macrocode}
\newcommand*\tud@font@koma@set[2]{%
- \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\@nameuse{tud@font@koma@#1}}}%
- \@namedef{tud@font@koma@#1}{#2\nobreak}%
+ \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\csuse{tud@font@koma@#1}}}%
+ \csdef{tud@font@koma@#1}{#2\nobreak}%
}
% \end{macrocode}
-% Durch die Option \opt{headings} werden die Schriftelemente zurückgesetzt.
-% Mit dem hier definierten Befehl \cs{tud@font@koma@reset} kann diesen das
-% Hilfsmakro abermals zugewiesen
-% werden.
+% Mit \cs{tud@font@koma@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@reset[1]{%
- \addtokomafont{#1}{\@nameuse{tud@font@koma@#1}}%
+\newcommand*\tud@font@koma@unset[1]{%
+ \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\csuse{tud@font@koma@#1}}}%
+ \csdef{tud@font@koma@#1}{\relax}%
}
% \end{macrocode}
-% Mit \cs{tud@font@koma@unset} kann das angegebene Element wieder zurückgesetzt
-% werden. Dabei wird das zuvor hinzugefügte Makro auf \cs{relax} gesetzt.
+% Durch die Option \opt{headings} werden die Schriftelemente zurückgesetzt.
+% Mit dem hier definierten Befehl \cs{tud@font@koma@reset} kann diesen das
+% Hilfsmakro abermals zugewiesen werden.
% \begin{macrocode}
-\newcommand*\tud@font@koma@unset[1]{%
- \ifcsdef{tud@font@koma@#1}{\@namedef{tud@font@koma@#1}{\relax}}{}%
+\newcommand*\tud@font@koma@reset[1]{%
+ \ifcsdef{tud@font@koma@#1}{\addtokomafont{#1}{\csuse{tud@font@koma@#1}}}{}%
}
% \end{macrocode}
% \end{macro}^^A \tud@font@koma@unset
% \end{macro}^^A \tud@font@koma@reset
% \end{macro}^^A \tud@font@koma@set
-% \begin{macro}{\usesizeofkomafont}
-% \changes{v2.02}{2014/05/17}{entfernt}^^A
-% Mit \TUDScript~v2.02 wurde die Bereitstellung dieses Befehls aufgrund der
-% zwingenden Verwendung von \KOMAScript{}~v3.12 entfernt.
-% \end{macro}^^A \usesizeofkomafont
% \begin{option}{headings}
-% \begin{macro}{\tud@font@heading@size}
-% Die \KOMAScript-Option \opt{headings} setzt die Formatierung aller
-% Überschriften zurück. Damit die Einstellungen für das \CD aktiv bleiben,
-% werden nach der Ausführung der Option die mit \cs{tud@font@koma@set}
-% definierten Makros \cs{tud@font@koma@\meta{Element}} erneut an die
-% entsprechenden Schriftelemente angehängt.
-% \begin{macrocode}
-\newcommand*\tud@font@heading@size{}
-\AtEndOfClass{\let\tud@font@heading@size\size@part}
+% 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}}
+% erneut an die entsprechenden Schriftelemente angehängt. Bei der Verwendung
+% der \KOMAScript-Option \opt{headings=standardclasses} werden außerdem noch
+% die Optionen \opt{open} und \opt{chapterprefix} ausgeführt, weshalb auch auf
+% diese reagiert werden muss.
+% \begin{macrocode}
\DefineFamilyMember{KOMA}
\DefineFamilyKey{KOMA}{headings}{%
- \AtEndOfFamilyOptions{%
- \let\tud@font@heading@size\size@part%
- \if@atdocument%
- \tud@layout@process%
- \ifcase\tud@layout@part\relax\else% !false
- \tud@font@koma@reset{part}%
- \tud@font@koma@reset{partnumber}%
-%<*book|report>
- \fi%
- \ifcase\tud@layout@chapter\relax\else% !false
- \tud@font@koma@reset{chapter}%
- \tud@font@koma@reset{chapterprefix}%
-%</book|report>
- \tud@font@koma@reset{section}%
- \tud@font@koma@reset{subsection}%
- \tud@font@koma@reset{subsubsection}%
- \tud@font@koma@reset{minisec}%
- \fi%
- \fi%
- }%
+ \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}%
+ \FamilyKeyStateProcessed%
+}
+\DefineFamilyKey{KOMA}{open}{%
+ \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}%
+ \FamilyKeyStateProcessed%
+}
+\DefineFamilyKey{KOMA}{chapterprefix}{%
+ \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}%
+ \FamilyKeyStateProcessed%
}
% \end{macrocode}
-% \end{macro}^^A \tud@font@heading@size
% \end{option}^^A headings
%
% \iffalse
@@ -643,91 +692,257 @@
% verschiedener Textelemente sowie die farbliche Gestaltung verstanden. Für das
% \CD gibt es dabei drei Ausprägungen, die für die verschiedenen Elemente
% auch unabhängig gewählt werden können.
+%
+% \begin{macro}{\tud@x@scr@headings@set}
+% \changes{v2.05}{2015/11/24}{neu}^^A
+% \begin{macro}{\tud@x@scr@headings@current}
+% \changes{v2.05}{2015/11/24}{neu}^^A
+% \begin{macro}{\tud@sec@fontsize}
+% \changes{v2.05}{2015/11/24}{neu}^^A
+% \begin{macro}{\tud@thesis@fontsize}
+% \changes{v2.05}{2015/11/24}{neu}^^A
+% Als erstes werden die zuvor erwähnten Optionen verarbeitet, welche Einfluss
+% auf die Formatierung respektive die Schriftgröße der Überschriften haben.
+% Wird mit der Option \opt{headings} eine andere Überschriftengröße gewählt,
+% werden mit \cs{tud@x@scr@headings@set} die passenden Schriftgrößen sowohl für
+% die Überschriften (\cs{tud@sec@fontsize}) als auch die Titelseite
+% (\cs{tud@thesis@fontsize}) gesetzt. In \cs{tud@x@scr@headings@current}
+% wird die über \opt{headings=\dots} gewählte Schriftgröße der Überschriften
+% gesichert.
+% \begin{macrocode}
+\newcommand*\tud@x@scr@headings@current{}
+\newcommand*\tud@sec@fontsize{}
+%<book|report|article>\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}%
+ #1%
+ }%
+ }%
+% \end{macrocode}
+% Wird \cs{tud@x@scr@headings@set} aufgerufen, so werden mit \cs{KOMAoptionOf}
+% die aktuellen Werte der Option \opt{headings} ausgelesen, welche in einer
+% Liste ausgegeben werden. Diese wird durchlaufen und dabei auf die relevanten
+% Werte reagiert.
+% \begin{macrocode}
+ \KOMAoptionOf[\def\@tempb]{\KOMAClassFileName}{headings}%
+ \@for\@tempc:=\@tempb\do{%
+ \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}}{}}}}%
+ }%
+}
+% \end{macrocode}
+% Damit die Einstellungen für die Größe wirksam werden, wird das Makro einmalig
+% zu Beginn des Dokumentes ausgeführt.
+% \begin{macrocode}
+\AtEndPreamble{\tud@x@scr@headings@set}
+% \end{macrocode}
+% \end{macro}^^A \tud@thesis@fontsize
+% \end{macro}^^A \tud@sec@fontsize
+% \end{macro}^^A \tud@x@scr@headings@current
+% \end{macro}^^A \tud@x@scr@headings@set
+% \begin{macro}{\tud@x@scr@headings@reset}
+% \changes{v2.05}{2015/11/24}{neu}^^A
+% Hiermit wird nach dem Ausführen der Option \opt{headings} im Zweifelsfall die
+% Größe und Formatierung der Überschriften neu gesetzt.
+% \begin{macrocode}
+\newcommand*\tud@x@scr@headings@reset{%
+ \tud@layout@process%
+ \tud@x@scr@headings@set[%
+ \ifcase\tud@layout@part@num\relax\else% !false
+ \tud@font@koma@reset{part}%
+ \tud@font@koma@reset{partnumber}%
+ \fi%
+%<*book|report>
+ \ifcase\tud@layout@chapter@num\relax\else% !false
+ \tud@font@koma@reset{chapter}%
+ \tud@font@koma@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}%
+ \fi%
+ ]%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@x@scr@headings@reset
+%
+% \iffalse
+%</class&body>
+%<*class&option>
+% \fi
+%
+% \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.
+% \begin{macrocode}
+\newcommand*\tud@pagecolor{}%
+% \end{macrocode}
+% \end{macro}^^A \tud@pagecolor
+% \begin{option}{backgroundcolor}
+% \changes{v2.05}{2016/04/15}{neu}^^A
+% 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@numkey@bool,%
+ {nocolor}{0},{nocolour}{0},{none}{0},%
+ {color}{1},{colour}{1},{cdcolor}{1},{cdcolour}{1}%
+ }{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \ifcase\@tempa\relax% false
+ \renewcommand*\tud@pagecolor{}%
+ \else% true
+ \renewcommand*\tud@pagecolor{HKS41}%
+ \fi%
+ \else%
+ \renewcommand*\tud@pagecolor{#1}%
+ \FamilyKeyStateProcessed%
+ \fi%
+% \end{macrocode}
+% Wird die Option innerhalb des Dokumentes verwendet, wird mit einer Box erst
+% die gewählte Farbe verifiziert und anschließend auf die am Dokumentbeginn
+% definierte Textfarbe umgestellt.
+% \begin{macrocode}
+ \if@atdocument%
+ \ifdefvoid{\tud@pagecolor}{}{\sbox\z@{\color{\tud@pagecolor}}}%
+ \normalcolor%
+ \fi%
+}
+% \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.
+% \begin{macrocode}
+\AfterPackage{xcolor}{%
+ \CheckCommand*\normalcolor{\let\current@color\default@color\set@color}%
+ \apptocmd{\normalcolor}{%
+ \ifstr{\tud@pagecolor}{HKS41}{\color{white}}{}%
+ }{}{\tud@patch@wrn{normalcolor}}%
+ \AtBeginDocument{%
+ \ifdefvoid{\tud@pagecolor}{}{\sbox\z@{\color{\tud@pagecolor}}}%
+ \normalcolor%
+ }%
+}
+%</poster>
+% \end{macrocode}
+% \end{option}^^A backgroundcolor
+% \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
+% Überschriften von Kapiteln oder die des Titelkopfes (\opt{titlepage=false})
+% verschoben, bei denen nach der Überschrift direkt der Fließtext folgt.
+% \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
+%
+% \iffalse
+%</class&option>
+%<*class&body>
+% \fi
+%
+% \begin{macro}{\tud@title@fontcolor}
% \begin{macro}{\tud@part@fontcolor}
% \begin{macro}{\tud@chapter@fontcolor}
+% \begin{macro}{\tud@section@fontcolor}
+% \changes{v2.05}{2015/07/07}{neu}^^A
% Die Makros werden für die Farbe der Überschriften verwendet.
% \begin{macrocode}
+\newcommand*\tud@title@fontcolor{}
\newcommand*\tud@part@fontcolor{}
%<*book|report>
\newcommand*\tud@chapter@fontcolor{}
%</book|report>
+\newcommand*\tud@section@fontcolor{}
% \end{macrocode}
+% \end{macro}^^A \tud@section@fontcolor
% \end{macro}^^A \tud@chapter@fontcolor
% \end{macro}^^A \tud@part@fontcolor
-% \begin{KOMAfont}{tud@heading}
-% \changes{v2.02}{2014/08/24}{entfernt}^^A
+% \end{macro}^^A \tud@title@fontcolor
+% \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
-% \begin{macro}{\tud@font@heading@numsize}
-% \changes{v2.02}{2014/08/24}{entfernt}^^A
-% \begin{macro}{\tud@font@part}
-% \changes{v2.02}{2014/08/24}{entfernt}^^A
-% \begin{macro}{\tud@font@part@number}
-% \changes{v2.02}{2014/06/23}{entfernt}^^A
-% \begin{macro}{\tud@font@part@title}
-% \changes{v2.02}{2014/06/23}{entfernt}^^A
-% \begin{macro}{\tud@font@chapter}
-% \changes{v2.02}{2014/08/24}{entfernt}^^A
% Es wird das Schriftelement für die Option \opt{parttitle} erstellt.
% \begin{macrocode}
%<*book|report>
\newkomafont{parttitle}{%
- \tud@font@heading%
+ \tud@sec@fontface%
\tud@color{\tud@part@fontcolor}%
\usesizeofkomafont{section}%
}
%</book|report>
% \end{macrocode}
-% \end{macro}^^A \tud@font@chapter
-% \end{macro}^^A \tud@font@part@title
-% \end{macro}^^A \tud@font@part@number
-% \end{macro}^^A \tud@font@part
-% \end{macro}^^A \tud@font@heading@numsize
% \end{KOMAfont}^^A parttitle
-% \end{KOMAfont}^^A tud@heading
-% \begin{length}{\pageheadingsvskip}
-% \changes{v2.02}{2014/06/23}{neu}^^A
-% \begin{length}{\headingsvskip}
-% \changes{v2.02}{2014/06/23}{neu}^^A
-% Mit diesen Längen kann der Anwender die Überschriften von Titel, Teilen und
-% Kapiteln vertikal von ihrer Standardposition verschieben, welche vom \CD
-% eigentlich vorgegeben ist. Die Länge \cs{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 \cs{headingsvskip} werden Überschriften von
-% Kapiteln oder aber die des Titelkopfes (\opt{titlepage=false}) verschoben,
-% bei denen nach der Überschrift direkt der Fließtext folgt.
-% \begin{macrocode}
-\newlength\pageheadingsvskip
-\newlength\headingsvskip
-% \end{macrocode}
-% \end{length}^^A \headingsvskip
-% \end{length}^^A \pageheadingsvskip
-% \begin{macro}{\tud@headmidvskip}
+% \begin{macro}{\tud@headmidvskip@normal}
% \changes{v2.03}{2015/01/21}{neu}^^A
-% \begin{macro}{\tud@headmidvskip@neg}
+% \begin{macro}{\tud@headmidvskip@reverse}
% \changes{v2.03}{2015/01/21}{neu}^^A
-% Mit \cs{tud@headmidvskip} wird der Abstände zwischen Nummerierung eines
-% Titels und der eigentlichen Bezeichnung gesetzt. Das gleiche gilt für eine
-% separate Kapitelnummernzeile (\opt{chapterprefix}) und dem eigentlichen
-% Kapiteltitel. Das Makro \cs{tud@headmidvskip@neg} wird benötigt, um ggf.
-% vorher um den eingefügten Abstand nach oben zu verschieben.
+% 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. Mit dem makro \cs{tud@headmidvskip@reverse} kann ggf. vorher um
+% den eingefügten Abstand nach oben verschoben werden.
% \begin{macrocode}
%<*book|report>
-\newcommand*\tud@headmidvskip{\par\nobreak\vspace{.5\baselineskip}}
-\newcommand*\tud@headmidvskip@neg{%
- \setbox\z@\vbox{\tud@headmidvskip}%
+\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@neg
-% \end{macro}^^A \tud@headmidvskip
+% \end{macro}^^A \tud@headmidvskip@reverse
+% \end{macro}^^A \tud@headmidvskip@normal
% \begin{macro}{\tud@layout@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
+% \changes{v2.05}{2016/04/05}{Einstellung für Ausrichtung der Überschriften}^^A
% Dieser Befehl kümmert sich darum, dass die gewählten Optionen für den
% Seitenstil auch umgesetzt werden. Dabei wird insbesondere darauf Wert gelegt,
-% dass die Optionen auch zur Laufzeit geändert und wiederhergestellt werden
+% dass die Optionen auch im Dokument geändert und wiederhergestellt werden
% können.
% \begin{macrocode}
\newcommand*\tud@layout@process{%
@@ -735,61 +950,76 @@
% Die Einstellungen für die Umschlagseite. Je nachdem, ob das \CD verwendet
% wird, wird der Satzspiegel standardmäßig umgestellt oder eben nicht.
% \begin{macrocode}
- \ifcase\tud@layout@cover\relax% false
- \bool@std@lock{@tud@cover@cdgeometry}{false}%
+%<*book|report|article>
+ \ifcase\tud@layout@cover@num\relax% false
+ \bool@std@lock{@tud@cdgeometry@cover}{false}%
\else% !false
- \bool@std@lock{@tud@cover@cdgeometry}{true}%
- \fi%
+ \bool@std@lock{@tud@cdgeometry@cover}{true}%
+ \fi%
+%</book|report|article>
% \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.
% \begin{macrocode}
- \ifcase\tud@layout@title\relax% false
- \tud@cmd@restore{maketitle}%
- \tud@cmd@restore{@maketitle}%
+ \ifcase\tud@layout@title@num\relax% false
+%<*book|report|article>
\tud@cmd@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}%
+%<*book|report|article>
\tud@font@koma@unset{author}%
\tud@font@koma@unset{date}%
\tud@font@koma@unset{publishers}%
+%</book|report|article>
\else% !false
- \tud@cmd@store{maketitle}%
- \tud@cmd@store{@maketitle}%
+%<*book|report|article>
\tud@cmd@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%
\usekomafont{disposition}%
- \tud@font@heading%
- \tud@font@heading@size%
+ \tud@sec@fontface%
+ \tud@sec@fontsize%
\tud@color{\tud@title@fontcolor}%
}%
\tud@font@koma@set{subtitle}{%
- \tud@font@heading%
+ \raggedtitle%
+ \ifstr{\mddefault}{l}{%
+ \tud@sec@fontface[\fontseries{m}]%
+ }{%
+ \tud@sec@fontface[\fontseries{bx}]%
+ }%
\usesizeofkomafont{section}%
\tud@color{\tud@title@fontcolor}%
}%
\tud@font@koma@set{subject}{%
- \fontfamily{\sfdefault}%
- \fontseries{\bfdefault}%
- \selectfont%
+ \sffamily%
+ \bfseries%
\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}}%
- \let\maketitle\tud@maketitle%
- \renewcommand*\titlepagestyle{plain.tudheadings}%
+%</book|report|article>
\fi%
% \end{macrocode}
% Das gleiche für die Teileseiten.
-% \ToDo{Reimplementierung mit \cs{DeclareSectionCommand}}[v2.05]
% \begin{macrocode}
- \ifcase\tud@layout@part\relax% false
+ \ifcase\tud@layout@part@num\relax% false
\tud@cmd@restore{partheadstartvskip}%
%<*book|report>
\tud@cmd@restore{partheadendvskip}%
@@ -809,26 +1039,41 @@
}%
\tud@sectioning@reset[addpart]{part}%
\tud@font@koma@unset{partnumber}%
+ \tud@cmd@restore{raggedpart}%
% \end{macrocode}
-% Es werden die Standardbefehle gesichert und für das \CD angepasst.
-% \ToDo{Reimplementierung mit \cs{DeclareSectionCommand}}[v2.05]
+% Es werden die Standardbefehle gesichert und für das \CD angepasst. Einigen
+% Makros werden mittels \cs{let} Definitionen von anderen Makros zugewiesen,
+% die sich wiederum am Original orientieren. Hintergrund ist, dass die
+% originalen Befehle angepasst werden sollen. Damit dies nicht bei jeder
+% Optionswahl sondern nur einmalig geschehen muss und um möglichst einfach auf
+% die Originaldefinition zurückschalten zu können, wird so verfahren. Die
+% angepassten Befehle selbst und die dazugehörige Beschreibung sind etwas
+% weiter unten im Quelltext zu finden.
% \begin{macrocode}
\else% !false
\tud@cmd@store{partheadstartvskip}%
+ \let\partheadstartvskip\tud@partheadstartvskip%
%<*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}%
%</book|report>
\ifcsdef{scr@v@3.18}{%
\tud@cmd@store{scr@@startpart}%
+ \let\scr@@startpart\tud@@startpart%
%<*book|report>
\tud@cmd@store{scr@@startspart}%
+ \let\scr@@startspart\tud@@startspart%
%</book|report>
}{%
\tud@cmd@store{@part}%
+ \let\@part\tud@@part%
%<*book|report>
\tud@cmd@store{@spart}%
+ \let\@spart\tud@@spart%
%</book|report>
}%
% \end{macrocode}
@@ -843,43 +1088,18 @@
\else%
%</book|report>
\tud@sectioning@set[addpart]{part}{%
- \tud@font@heading%
+ \tud@sec@fontface%
\tud@color{\tud@part@fontcolor}%
}%
\tud@font@koma@set{partnumber}{%
- \tud@font@heading%
+ \tud@sec@fontface%
\tud@color{\tud@part@fontcolor}%
}%
%<*book|report>
\fi%
%</book|report>
-% \end{macrocode}
-% Einigen Makros werden mittels \cs{let} Definitionen von anderen Makros
-% zugewiesen, die sich wiederum am Original orientieren. Hintergrund ist, dass
-% die originalen Befehle angepasst werden sollen. Damit dies nicht bei jeder
-% Optionswahl sondern nur einmalig geschehen muss und um möglichst einfach auf
-% die Originaldefinition zurückschalten zu können, wird so verfahren. Die
-% angepassten Befehle selbst und die dazugehörige Beschreibung sind etwas
-% weiter unten im Quelltext zu finden.
-% \ToDo{Reimplementierung mit \cs{DeclareSectionCommand}}[v2.05]
-% \begin{macrocode}
- \let\partheadstartvskip\tud@partheadstartvskip%
-%<*book|report>
- \let\partheadendvskip\tud@partheadendvskip%
- \let\partheademptypage\relax%
- \renewcommand*\partpagestyle{plain.tudheadings}%
-%</book|report>
- \ifcsdef{scr@v@3.18}{%
- \let\scr@@startpart\tud@@startpart%
-%<*book|report>
- \let\scr@@startspart\tud@@startspart%
-%</book|report>
- }{%
- \let\@part\tud@@part%
-%<*book|report>
- \let\@spart\tud@@spart%
-%</book|report>
- }%
+ \tud@cmd@store{raggedpart}%
+ \renewcommand*\raggedpart{\tud@raggedright}%
\fi%
% \end{macrocode}
% Die Einstellungen für die Kapitel bzw. die folgenden Gliederungsebenen. Auch
@@ -888,13 +1108,9 @@
% der Anteil für die Kapitel weg. Das Verhalten der nachgelagerten
% Gliederungsebenen orientiert für diese Klasse an den Einstellungen für die
% Teileseiten.
-% \ToDo{Reimplementierung mit \cs{DeclareSectionCommand}}[v2.05]
% \begin{macrocode}
-%<*article>
- \ifcase\tud@layout@part\relax% false
-%</article>
%<*book|report>
- \ifcase\tud@layout@chapter\relax% false
+ \ifcase\tud@layout@chapter@num\relax% false
\tud@cmd@restore{chapterheadstartvskip}%
\tud@cmd@restore{chapterformat}%
\tud@cmd@restore{@chapter}%
@@ -906,50 +1122,106 @@
}%
\tud@sectioning@reset[addchap]{chapter}%
\tud@font@koma@unset{chapterprefix}%
-%</book|report>
- \tud@sectioning@reset[addsec]{section}%
- \tud@sectioning@reset{subsection}%
- \tud@sectioning@reset{subsubsection}%
- \tud@sectioning@reset{minisec}%
+ \tud@cmd@restore{raggedchapter}%
% \end{macrocode}
% Auch hier werden die Standardbefehle für ein mögliches Deaktivieren der
-% Optionen gesichert und anschließend geändert.
-% \ToDo{Reimplementierung mit \cs{DeclareSectionCommand}}[v2.05]
+% Optionen gesichert und anschließend geändert. Dabei erfolgt die Zuweisung der
+% angepassten Befehle abermals über \cs{let}.
% \begin{macrocode}
\else% !false
-%<*book|report>
\tud@cmd@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[addchap]{chapter}{%
- \tud@font@heading%
- \tud@font@heading@size%
+ \tud@sec@fontface%
+ \tud@sec@fontsize%
\tud@color{\tud@chapter@fontcolor}%
}%
\tud@font@koma@set{chapterprefix}{\usesizeofkomafont{partnumber}}%
+ \tud@cmd@store{raggedchapter}%
+ \renewcommand*\raggedchapter{\tud@raggedright}%
+ \fi%
%</book|report>
- \tud@sectioning@set[addsec]{section}{\tud@font@heading}%
- \tud@sectioning@set{subsection}{\tud@font@heading}%
- \tud@sectioning@set{subsubsection}{\tud@font@heading}%
- \tud@sectioning@set{minisec}{\tud@font@heading}%
+ \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}
-% Und wieder erfolgt die Zuweisung der angepassten Befehle über \cs{let}.
+% Auch hier werden die Standardbefehle für ein mögliches Deaktivieren der
+% Optionen gesichert und anschließend geändert.
% \begin{macrocode}
-%<*book|report>
- \let\chapterheadstartvskip\tud@chapterheadstartvskip%
- \ifcsdef{scr@v@3.18}{%
- \let\scr@@makechapterhead\tud@@@makechapterhead%
- }{%
- \let\@@makechapterhead\tud@@@makechapterhead%
+ \else% !false
+ \renewcommand*\tud@section@fontcolor{}%
+ \ifcase\tud@layout@section@num\relax\or\else% *color
+ \renewcommand*\tud@section@fontcolor{HKS41}%
+ \fi%
+ \tud@sectioning@set[addsec]{section}{%
+ \tud@sec@fontface%
+ \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}%
}%
-%</book|report>
+ \tud@sectioning@set{subsection}{%
+ \tud@sec@fontface%
+ \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}%
+ }%
+ \tud@sectioning@set{subsubsection}{%
+ \tud@sec@fontface%
+ \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}%
+ }%
+ \tud@sectioning@set{minisec}{%
+ \tud@sec@fontface%
+ \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}%
+ }%
+ \tud@sectioning@set{paragraph}{%
+ \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}%
+ }%
+ \tud@sectioning@set{subparagraph}{%
+ \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}%
+ }%
+ \tud@cmd@store{raggedsection}%
+ \renewcommand*\raggedsection{\tud@raggedright}%
+ \fi%
+% \end{macrocode}
+% Für Poster wird außerdem der passende Seitenstil und die Ausprägung von Kopf
+% und Fuß sowie die Schriftfarbe festgelegt.
+% \begin{macrocode}
+%<*poster>
+ \ifcase\tud@cd@num\relax% false
+ \pagestyle{empty}%
+ \color{black}%
+ \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}%
+ \color{black}%
+ \or% litecolor
+ \cs@std@lock{tud@head@bar@num}{1}%
+ \bool@std@lock{@tud@foot@colored}{false}%
+ \color{HKS41}%
+ \or% barcolor
+ \cs@std@lock{tud@head@bar@num}{2}%
+ \bool@std@lock{@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}%
+ \color{HKS41}%
+ \fi%
\fi%
+%</poster>
}
% \end{macrocode}
% \end{macro}^^A \tud@layout@process
@@ -996,41 +1268,41 @@
% Für die \cls{tudscrartcl}-Klasse wird der vertikale Standardabstand
% beibehalten und lediglich die Farbanpassung hinzugefügt.
% \begin{macrocode}
-%<*article>
+%<*article|poster>
\newcommand*\tud@partheadstartvskip{}
-\let\tud@partheadstartvskip\partheadstartvskip%
+\let\tud@partheadstartvskip\partheadstartvskip
\pretocmd{\tud@partheadstartvskip}{%
- \def\tud@part@fontcolor{}% false/true
- \ifcase\tud@layout@part\relax\or\else% *color
- \def\tud@part@fontcolor{HKS41}%
+ \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>
+%</article|poster>
% \end{macrocode}
% 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@partheadstartvskip{%
- \def\tud@part@fontcolor{}% false/true
- \ifcase\tud@layout@part\relax\or\or% litecolor
- \def\tud@part@fontcolor{HKS41}%
+ \renewcommand*\tud@part@fontcolor{}% false/true
+ \ifcase\tud@layout@part@num\relax\or\or% litecolor
+ \renewcommand*\tud@part@fontcolor{HKS41}%
\or% barcolor
- \def\tud@part@fontcolor{HKS41}%
+ \renewcommand*\tud@part@fontcolor{HKS41}%
\or% bicolor
- \def\tud@part@fontcolor{HKS41}%
+ \renewcommand*\tud@part@fontcolor{HKS41}%
\or% color
- \def\tud@part@fontcolor{HKS41!30}%
+ \renewcommand*\tud@part@fontcolor{HKS41!30}%
\or% full
- \def\tud@part@fontcolor{HKS41!30}%
+ \renewcommand*\tud@part@fontcolor{HKS41!30}%
\fi%
\tud@layout@specialpage@set{part}%
\begingroup%
\vspace*{%
- \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip-\baselineskip%
- +\parskip\relax%
+ \dimexpr\tud@len@areavskip+\tud@len@areaheadvskip-\baselineskip\relax%
}%
- \vspace*{\pageheadingsvskip}%
+ \TUD@len@deprecated{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
@@ -1039,11 +1311,11 @@
% \begin{macrocode}
\if@tud@parttitle%
\begingroup%
- \tud@font@heading%
- \tud@font@heading@size%
+ \tud@sec@fontface%
+ \tud@sec@fontsize%
\tud@color{\tud@part@fontcolor}%
\ifx\@@title\@empty%
- \ClassWarning{\TUDClassName}{%
+ \ClassWarning{\TUD@Class@Name}{%
You activated the option `parttitle' but\MessageBreak%
no title was given%
}%
@@ -1059,7 +1331,7 @@
{\usekomafont{titlepage}{\vskip 2ex\@plus1ex\@minus1ex}}%
\endgroup%
\else%
- \usekomafont{partnumber}{\tud@headmidvskip@neg}%
+ \usekomafont{partnumber}{\tud@headmidvskip@reverse}%
\fi%
\endgroup%
}
@@ -1083,21 +1355,21 @@
% \begin{macrocode}
\newcommand*\tud@partheadendvskip{%
\tud@cleardoublespecialpage{%
- \def\tud@pagecolor{}%
- \ifcase\tud@layout@part\relax\or% true
- \cs@std@lock{tud@head@bar}{0}%
+ \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}{1}%
+ \cs@set@lock{tud@head@bar@num}{1}%
\or% barcolor
- \cs@set@lock{tud@head@bar}{2}%
+ \cs@set@lock{tud@head@bar@num}{2}%
\or% bicolor
- \cs@set@lock{tud@head@bar}{3}%
+ \cs@set@lock{tud@head@bar@num}{3}%
\or% color
- \def\tud@pagecolor{HKS41}%
- \cs@set@lock{tud@head@bar}{1}%
+ \renewcommand*\tud@pagecolor{HKS41}%
+ \cs@set@lock{tud@head@bar@num}{1}%
\or% full
- \def\tud@pagecolor{HKS41}%
- \cs@set@lock{tud@head@bar}{3}%
+ \renewcommand*\tud@pagecolor{HKS41}%
+ \cs@set@lock{tud@head@bar@num}{3}%
\fi%
\addtokomafont{pagenumber}{\usekomafont{tudheadings}}%
\addtokomafont{pagefoot}{\usekomafont{tudheadings}}%
@@ -1107,39 +1379,48 @@
}
% \end{macrocode}
% \end{macro}^^A \tud@partheadendvskip
-% \begin{macro}{\tud@parttitle}
-% \changes{v2.02}{2014/06/23}{entfernt}^^A
-% \end{macro}^^A \tud@parttitle
%
% \iffalse
%</book|report>
% \fi
%
-% Für Teile ist zur Formatierung etwas Patcherei notwendig. Zuerst die Patches
-% für für \KOMAScript~v3.18:
-% \ToDo{Reimplementierung mit \cs{DeclareSectionCommand}}[v2.05]
-% \begin{macrocode}
-\@tempswafalse
-\ifcsdef{scr@v@3.18}{\@tempswatrue}{}%
-\if@tempswa
-% \end{macrocode}
-%
% \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
+% der entsprechende Befehl vorangestellt. Die Patches für \KOMAScript~v3.18:
% \begin{macrocode}
-%<*article>
+\ifcsdef{scr@v@3.18}{\@tempswatrue}{\@tempswafalse}
+\if@tempswa
+%<*article|poster>
\newcommand*\tud@@startpart{}%
\let\tud@@startpart\scr@@startpart%
- \patchcmd{\tud@@startpart}%
- {\usekomafont{#1prefix}{\@nameuse{#1format}}}%
- {\usekomafont{#1prefix}{\tud@makeuppercase{\@nameuse{#1format}}}}%
- {}{\tud@patch@wrn{scr@@startpart}}%
-%</article>
+ \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}}%
+ \fi%
+%</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
@@ -1155,7 +1436,7 @@
\ifnumbered{#1}{%
\usekomafont{#1prefix}{\nobreak\@nameuse{#1format}}%
\setlength{\@tempskipa}{\@nameuse{scr@#1@innerskip}}%
- \partheadmidvskip
+ \partheadmidvskip%
}{}%
}{%
\ifnumbered{#1}{%
@@ -1163,21 +1444,21 @@
\if@tud@parttitle%
\enskip%
\else%
- \tud@headmidvskip%
+ \tud@headmidvskip@normal%
\fi%
}{%
\if@tud@parttitle\else%
\usekomafont{#1prefix}{\vphantom{\partname}}%
- \tud@headmidvskip%
+ \tud@headmidvskip@normal%
\fi%
}%
- }{}{\tud@patch@wrn{scr@startpart}}%
+ }{}{\tud@patch@wrn{scr@@startpart}}%
\else%
\patchcmd{\tud@@startpart}{%
\ifnumbered{#1}{%
\usekomafont{#1prefix}{\@nameuse{#1format}}%
\setlength{\@tempskipa}{\@nameuse{scr@#1@innerskip}}%
- \partheadmidvskip
+ \partheadmidvskip%
}{}%
}{%
\ifnumbered{#1}{%
@@ -1185,24 +1466,18 @@
\if@tud@parttitle%
\enskip%
\else%
- \tud@headmidvskip%
+ \tud@headmidvskip@normal%
\fi%
}{%
\if@tud@parttitle\else%
\usekomafont{#1prefix}{\vphantom{\partname}}%
- \tud@headmidvskip%
+ \tud@headmidvskip@normal%
\fi%
}%
- }{}{\tud@patch@wrn{scr@startpart}}%
+ }{}{\tud@patch@wrn{scr@@startpart}}%
\fi%
%</book|report>
% \end{macrocode}
-% \end{macro}^^A \scr@@startpart
-% \end{macro}^^A \tud@@startpart
-% \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
% Bei den Teile-Befehlen ohne Gliederungsnummerierung muss zusätzlich der
% Freiraum vorgehalten werden, damit alle Überschriften auf der gleichen
% vertikalen Position liegen.
@@ -1217,32 +1492,23 @@
\normalfont\sectfont\nobreak%
\if@tud@parttitle\else%
\size@partnumber{\vphantom{\partname}}%
- \tud@headmidvskip\nobreak%
+ \tud@headmidvskip@normal\nobreak%
\fi%
}{}{\tud@patch@wrn{scr@@startspart}}%
%</book|report>
% \end{macrocode}
-% \end{macro}^^A \scr@@startspart
-% \end{macro}^^A \tud@@startspart
-%
% Und nun das Gleiche für \KOMAScript~v3.17:
% \begin{macrocode}
\else
-% \end{macrocode}
-% \begin{macro}{\tud@@part}
-% \changes{v2.03}{2015/01/21}{Korrektur bei der Position der Überschrift}^^A
-% \begin{macro}{\@part}
-% \begin{macrocode}
\newcommand*\tud@@part{}%
-%<*article>
- \let\tud@@part\@part
- \patchcmd{\tud@@part}%
- {\size@partnumber{\partformat}}%
- {\size@partnumber{\tud@makeuppercase{\partformat}}}%
- {}{\tud@patch@wrn{@part}}%
-%</article>
+%<*article|poster>
+ \let\tud@@part\@part%
+ \patchcmd{\tud@@part}{\size@partnumber{\partformat}}{%
+ \size@partnumber{\tud@makeuppercase{\partformat}}%
+ }{}{\tud@patch@wrn{@part}}%
+%</article|poster>
%<*book|report>
- \let\tud@@part\@part
+ \let\tud@@part\@part%
\patchcmd{\tud@@part}{%
\ifnumbered{part}{%
\size@partnumber{\partformat}%
@@ -1255,25 +1521,17 @@
\if@tud@parttitle%
\enskip%
\else%
- \tud@headmidvskip%
+ \tud@headmidvskip@normal%
\fi%
}{%
\if@tud@parttitle\else%
\size@partnumber{\vphantom{\partname}}%
- \tud@headmidvskip%
+ \tud@headmidvskip@normal%
\fi%
}%
}{}{\tud@patch@wrn{@part}}%
-%</book|report>
-% \end{macrocode}
-% \end{macro}^^A \@part
-% \end{macro}^^A \tud@@part
-% \begin{macro}{\tud@@spart}
-% \begin{macro}{\@spart}
-% \begin{macrocode}
-%<*book|report>
\newcommand*\tud@@spart{}%
- \let\tud@@spart\@spart
+ \let\tud@@spart\@spart%
\patchcmd{\tud@@spart}{%
\normalfont
\sectfont\nobreak\size@part
@@ -1281,20 +1539,21 @@
\normalfont\sectfont\nobreak%
\if@tud@parttitle\else%
\size@partnumber{\vphantom{\partname}}%
- \tud@headmidvskip\nobreak%
+ \tud@headmidvskip@normal\nobreak%
\fi%
\size@part%
- }{}{\tud@patch@wrn{@spart}}
+ }{}{\tud@patch@wrn{@spart}}%
%</book|report>
+\fi
% \end{macrocode}
% \end{macro}^^A \@spart
% \end{macro}^^A \tud@@spart
-%
-% Damit ist die Patcherei beendet.
-% \ToDo{Reimplementierung mit \cs{DeclareSectionCommand}}[v2.05]
-% \begin{macrocode}
-\fi
-% \end{macrocode}
+% \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
%
% \iffalse
%<*book|report>
@@ -1309,10 +1568,12 @@
% gepatchte Version von \cs{set@@@@preamble}.
% \begin{macrocode}
\newcommand*\tud@partpreamble{%
- \ifnum\tud@abstract@level>\@ne\relax\def\tud@abstract@level{1}\fi% sec/chap
+ \ifnum\tud@abstract@level@num>\@ne\relax% sec/chap
+ \renewcommand*\tud@abstract@level@num{1}%
+ \fi%
\KOMAoptions{titlepage=false}%
\addtokomafont{disposition}{\tud@color{\tud@part@fontcolor}}%
- \addtokomafont{dictumtext}{\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
@@ -1326,38 +1587,31 @@
% \begin{macro}{\tud@chapterheadstartvskip}
% \changes{v2.02}{2014/06/23}{neu}^^A
% \cs{chapterheadstartvskip} wird für die Position der Kapitelüberschriften im
-% \CD angepasst. Mit der Länge \cs{headingsvskip} kann diese Position vertikal
-% durch den Benutzer verschoben werden. Außerdem werden die benötigten Farben
-% für die jeweilig gewählte Option ausgewählt.
+% \CD angepasst. Mit der Option \opt{headingsvskip} kann diese vertikal durch
+% den Benutzer verschoben werden. Außerdem werden die benötigten Farben für die
+% jeweils gewählte Option ausgewählt.
% \begin{macrocode}
\newcommand*\tud@chapterheadstartvskip{%
- \def\tud@chapter@fontcolor{}%
- \ifcase\tud@layout@chapter\relax\or\else% *color
- \def\tud@chapter@fontcolor{HKS41}%
+ \renewcommand*\tud@chapter@fontcolor{}%
+ \ifcase\tud@layout@chapter@num\relax\or\else% *color
+ \renewcommand*\tud@chapter@fontcolor{HKS41}%
\fi%
\vspace*{%
- \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip+\parskip\relax%
+ \dimexpr\tud@len@areavskip+\tud@len@areaheadvskip\relax%
}%
\if@tud@chapterpage%
- \vspace*{\pageheadingsvskip}%
+ \TUD@len@deprecated{pageheadingsvskip}%
+ \vspace*{\tud@dim@pageheadingsvskip}%
\else%
- \vspace*{\headingsvskip}%
+ \TUD@len@deprecated{headingsvskip}%
+ \vspace*{\tud@dim@headingsvskip}%
\fi%
-}%
+}
% \end{macrocode}
% \end{macro}^^A \tud@chapterheadstartvskip
-%
-% Für die Kapitel ist zur Formatierung ebenfalls etwas Patcherei notwendig.
-% Zuerst die Patches für für \KOMAScript~v3.18:
-% \ToDo{Reimplementierung mit \cs{DeclareSectionCommand}}[v2.05]
-% \begin{macrocode}
-\@tempswafalse
-\ifcsdef{scr@v@3.18}{\@tempswatrue}{}%
-\if@tempswa
-% \end{macrocode}
-%
-% \begin{macro}{\tud@@@makechapterhead}
+% \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.
@@ -1367,56 +1621,46 @@
% 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} gesetzt. Somit liegen die Kapitelüberschriften für alle
-% Einstellmöglichkieten der \opt{parskip}-Option immer auf exakt der selben
-% Höhe.
+% \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{}
- \let\tud@@@makechapterhead\scr@@makechapterhead
- \patchcmd{\tud@@@makechapterhead}{%
+\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@neg%
+ \tud@headmidvskip@reverse%
\vskip-\parskip%
\tud@makeuppercase{\csname #1format\endcsname}%
- \tud@headmidvskip%
+ \tud@headmidvskip@normal%
}{}{\tud@patch@wrn{scr@@makechapterhead}}%
% \end{macrocode}
-% \end{macro}^^A \@@makechapterhead
-% \end{macro}^^A \tud@@@makechapterhead
-%
% Und nun das Gleiche für \KOMAScript~v3.17:
% \begin{macrocode}
\else
-% \end{macrocode}
-%
-% \begin{macro}{\tud@@@makechapterhead}
-% \begin{macro}{\@@makechapterhead}
-% \begin{macrocode}
- \newcommand*\tud@@@makechapterhead{}
- \let\tud@@@makechapterhead\@@makechapterhead
- \patchcmd{\tud@@@makechapterhead}{%
+ \let\tud@@makechapterhead\@@makechapterhead%
+ \patchcmd{\tud@@makechapterhead}{%
\chapterformat
\setlength{\@tempskipa}{\scr@chapter@innerskip}%
\chapterheadmidvskip
}{%
- \tud@headmidvskip@neg%
+ \tud@headmidvskip@reverse%
\vskip-\parskip%
\tud@makeuppercase{\chapterformat}%
- \tud@headmidvskip%
+ \tud@headmidvskip@normal%
}{}{\tud@patch@wrn{@@makechapterhead}}%
-% \end{macrocode}
-% \end{macro}^^A \@@makechapterhead
-% \end{macro}^^A \tud@@@makechapterhead
-%
-% Damit ist die Patcherei beendet.
-% \ToDo{Reimplementierung mit \cs{DeclareSectionCommand}}[v2.05]
-% \begin{macrocode}
\fi
% \end{macrocode}
-%
+% \end{macro}^^A \@@makechapterhead
+% \end{macro}^^A \@@makechapterhead
+% \end{macro}^^A \tud@@makechapterhead
% \begin{macro}{\tud@chapterpreamble}
% Um die \KOMAScript-Befehle für die Kapitelpräambel auch für das farbige Layout
% nutzen zu können, müssen diese leicht angepasst werden. Für die Präambeln der
@@ -1424,19 +1668,21 @@
% Ausführung des Befehls durch die gepatchte Version von \cs{set@@@@preamble}.
% \begin{macrocode}
\newcommand*\tud@chapterpreamble{%
- \ifnum\tud@abstract@level>\@ne\relax\def\tud@abstract@level{1}\fi% sec/chap
+ \ifnum\tud@abstract@level@num>\@ne\relax% sec/chap
+ \renewcommand*\tud@abstract@level@num{1}%
+ \fi%
\KOMAoptions{titlepage=false}%
% \end{macrocode}
% Die Farb- und Schrifteinstellungen sind nur für reine Kapitelseiten notwendig.
% \begin{macrocode}
\if@tud@chapterpage%
- \ifcase\tud@cdfont\relax\or% true
+ \ifcase\tud@cdfont@num\relax\or% true
\TUDoptions{cdfont=true}%
\or% heavy
\TUDoptions{cdfont=heavy}%
\fi%
\addtokomafont{disposition}{\tud@color{\tud@chapter@fontcolor}}%
- \addtokomafont{dictumtext}{\tud@color{\tud@chapter@fontcolor}}%
+ \addtokomafont{dictum}{\tud@color{\tud@chapter@fontcolor}}%
\tud@color{\tud@chapter@fontcolor}%
\fi%
\@afterindentfalse\@afterheading%
@@ -1455,6 +1701,11 @@
% müsste innerhalb des Argumentes von \cs{parbox} die \KOMAScript-Option
% \opt{parbox} neu gesetzt werden.
% \begin{macrocode}
+\CheckCommand\set@@@@preamble[6]{%
+ \expandafter\gdef\csname #1@preamble\endcsname{%
+ \hbox to\hsize{#4\parbox[{#2}]{#3}{#6\par}#5\par}%
+ }%
+}
\patchcmd{\set@@@@preamble}{%
\hbox to\hsize{#4\parbox[{#2}]{#3}{#6\par}#5\par}%
}{%
@@ -1500,10 +1751,10 @@
% 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@head@bar@store{}
+\let\tud@head@bar@store\relax
+\newcommand*\tud@head@bar@restore{}
+\let\tud@head@bar@restore\relax
\newcommand*\tud@chapter@app{%
% \end{macrocode}
% Nach dem Setzen der Kapitelüberschrift selbst werden die Farbe für den
@@ -1517,22 +1768,22 @@
% \begin{macrocode}
\if@tud@chapterpage%
\tud@cleardoublespecialpage{%
- \def\tud@pagecolor{}%
+ \renewcommand*\tud@pagecolor{}%
\let\tud@foot@fontcolor\tud@chapter@fontcolor%
- \ifcase\tud@layout@chapter\relax\or% true
- \cs@std@lock{tud@head@bar}{0}%
+ \ifcase\tud@layout@chapter@num\relax\or% true
+ \cs@std@lock{tud@head@bar@num}{0}%
\or% litecolor
- \cs@set@lock{tud@head@bar}{1}%
+ \cs@set@lock{tud@head@bar@num}{1}%
\or% barcolor
- \cs@set@lock{tud@head@bar}{2}%
+ \cs@set@lock{tud@head@bar@num}{2}%
\or% bicolor
- \cs@set@lock{tud@head@bar}{3}%
+ \cs@set@lock{tud@head@bar@num}{3}%
\or% color
- \def\tud@pagecolor{HKS41!10}%
- \cs@set@lock{tud@head@bar}{1}%
+ \renewcommand*\tud@pagecolor{HKS41!10}%
+ \cs@set@lock{tud@head@bar@num}{1}%
\or% fullcolor
- \def\tud@pagecolor{HKS41!10}%
- \cs@set@lock{tud@head@bar}{3}%
+ \renewcommand*\tud@pagecolor{HKS41!10}%
+ \cs@set@lock{tud@head@bar@num}{3}%
\fi%
\addtokomafont{pagenumber}{\usekomafont{tudheadings}}%
\addtokomafont{pagefoot}{\usekomafont{tudheadings}}%
@@ -1545,36 +1796,36 @@
\if@restonecol\twocolumn\fi%
% \end{macrocode}
% Sollten keine reinen Kapitelseiten verwendet werden, wird die Einstellung für
-% die Gestalt des Kopfes im restlichen Dokument (\cs{tud@head@bar}) im Makro
-% \cs{tud@head@bar@store} gesichert und das Makro \cs{tud@head@bar@restore}
+% die Gestalt des Kopfes im restlichen Dokument (\cs{tud@head@bar@num}) im
+% Makro \cs{tud@head@bar@store} gesichert und \cs{tud@head@bar@restore}
% definiert, welches beim Ausführen der Ebene \pgs{tudheadings.last} den
% gesicherten Wert für die darauffolgenden Seite wiederherstellt.
% \begin{macrocode}
\else%
- \edef\tud@head@bar@store{\tud@head@bar}%
+ \edef\tud@head@bar@store{\tud@head@bar@num}%
\edef\tud@head@bar@restore{%
- \gdef\noexpand\tud@head@bar{\tud@head@bar@store}%
+ \gdef\noexpand\tud@head@bar@num{\tud@head@bar@store}%
\global\let\noexpand\tud@head@bar@store\relax%
\global\let\noexpand\tud@head@bar@restore\relax%
}%
- \ifcase\tud@layout@chapter\relax\or% true
- \cs@std@lock{tud@head@bar}{0}%
+ \ifcase\tud@layout@chapter@num\relax\or% true
+ \cs@std@lock{tud@head@bar@num}{0}%
\or% litecolor
- \cs@set@lock{tud@head@bar}{1}%
+ \cs@set@lock{tud@head@bar@num}{1}%
\or% barcolor
- \cs@set@lock{tud@head@bar}{2}%
+ \cs@set@lock{tud@head@bar@num}{2}%
\or% bicolor
- \cs@set@lock{tud@head@bar}{3}%
+ \cs@set@lock{tud@head@bar@num}{3}%
\or% color
- \cs@set@lock{tud@head@bar}{1}%
+ \cs@set@lock{tud@head@bar@num}{1}%
\or% fullcolor
- \cs@set@lock{tud@head@bar}{3}%
+ \cs@set@lock{tud@head@bar@num}{3}%
\fi%
% \end{macrocode}
% Im Kompatibilitätsmodus muss gegebenenfalls zusätzlich genügend Freiraum für
% das \DDC-Logo gelassen werden.
% \begin{macrocode}
- \tud@ifverlower{2.03}{\tud@ddc@enlargepage[\chapterpagestyle]}{}%
+ \tud@if@v@lower{2.03}{\tud@ddc@enlargepage[\chapterpagestyle]}{}%
\fi%
% \end{macrocode}
% Unabhängig von der Option \opt{chapterpage} wird deim zweispaltigen Layout
@@ -1594,7 +1845,7 @@
% und \opt{twoside} verwendet wird.
% \begin{macrocode}
\newcommand*\tud@clearcolor@wrn{%
- \ClassWarning{\TUDClassName}{%
+ \ClassWarning{\TUD@Class@Name}{%
Option `clearcolor' is only available together with\MessageBreak%
options `twoside' and `open=right'%
}%
@@ -1625,39 +1876,11 @@
% \begin{macro}{\tud@ssubsection}
% \begin{macro}{\tud@subsubsection}
% \begin{macro}{\tud@ssubsubsection}
-% \begin{macro}{\tud@npart}
-% \changes{v2.02}{2014/09/12}{entfernt}^^A
-% \begin{macro}{\tud@opart}
-% \changes{v2.02}{2014/09/12}{entfernt}^^A
-% \begin{macro}{\tud@naddpart}
-% \changes{v2.02}{2014/09/12}{entfernt}^^A
-% \begin{macro}{\tud@oaddpart}
-% \changes{v2.02}{2014/09/12}{entfernt}^^A
-% \begin{macro}{\tud@nchapter}
-% \changes{v2.02}{2014/09/12}{entfernt}^^A
-% \begin{macro}{\tud@ochapter}
-% \changes{v2.02}{2014/09/12}{entfernt}^^A
-% \begin{macro}{\tud@naddchap}
-% \changes{v2.02}{2014/09/12}{entfernt}^^A
-% \begin{macro}{\tud@oaddchap}
-% \changes{v2.02}{2014/09/12}{entfernt}^^A
-% \begin{macro}{\tud@nsection}
-% \changes{v2.02}{2014/09/12}{entfernt}^^A
-% \begin{macro}{\tud@osection}
-% \changes{v2.02}{2014/09/12}{entfernt}^^A
-% \begin{macro}{\tud@nsubsection}
-% \changes{v2.02}{2014/09/12}{entfernt}^^A
-% \begin{macro}{\tud@osubsection}
-% \changes{v2.02}{2014/09/12}{entfernt}^^A
-% \begin{macro}{\tud@nsubsubsection}
-% \changes{v2.02}{2014/09/12}{entfernt}^^A
-% \begin{macro}{\tud@osubsubsection}
-% \changes{v2.02}{2014/09/12}{entfernt}^^A
-% Das \CD verlangt, dass sämtliche Auszeichnungen, die in DIN~Bold gesetzt
-% werden, groß zu schreiben sind. Für die Klassen bedeutet dies, 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.
+% 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
@@ -1669,9 +1892,15 @@
%
% Alle für die \TUDScript-Klassen angepassten Gliederungsbefehle von \cs{part}
% bis \cs{subsubsection} werden seit Version~v2.02 ausnahmslos mit \cs{SecDef}
-% erzeugt. Damit wurden die in vorherigen Versionen benötigten Hilfsmakros
-% \cs{tud@n\meta{Gliederungsbefehl}} und \cs{tud@o\meta{Gliederungsbefehl}}
-% überflüssig unt deshalb entfernt.
+% erzeugt.
+% \ToDo{Implementierung gut suchbarer Makronamen (\cs{tud@sec@chapter})}[v2.06]
+% \ToDo{Reimplementierung mit \cs{DeclareSectionCommand}}[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{}
@@ -1692,20 +1921,6 @@
\newcommand*\tud@subsubsection{}
\newcommand*\tud@ssubsubsection{}
% \end{macrocode}
-% \end{macro}^^A \tud@osubsubsection
-% \end{macro}^^A \tud@nsubsubsection
-% \end{macro}^^A \tud@osubsection
-% \end{macro}^^A \tud@nsubsection
-% \end{macro}^^A \tud@osection
-% \end{macro}^^A \tud@nsection
-% \end{macro}^^A \tud@oaddchap
-% \end{macro}^^A \tud@naddchap
-% \end{macro}^^A \tud@ochapter
-% \end{macro}^^A \tud@nchapter
-% \end{macro}^^A \tud@oaddpart
-% \end{macro}^^A \tud@naddpart
-% \end{macro}^^A \tud@opart
-% \end{macro}^^A \tud@npart
% \end{macro}^^A \tud@ssubsubsection
% \end{macro}^^A \tud@subsubsection
% \end{macro}^^A \tud@ssubsection
@@ -1853,7 +2068,7 @@
% Gliederungsüberschriften in Majuskeln verantwortlich. Außerdem wird ggf. die
% Option \opt{footnotes=symbolheadings} umgesetzt.
% \begin{macrocode}
-\robustify{\footnote}%
+\robustify{\footnote}
\newcommand*\tud@sectioning@uppercase[1]{%
\begingroup%
\if@tud@symbolheadings%
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-locale.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-locale.dtx
index a85525bbd13..1e9dc2d60ea 100644
--- a/Master/texmf-dist/source/latex/tudscr/tudscr-locale.dtx
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-locale.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{575}
+% \CheckSum{601}
% \iffalse meta-comment
%
% ============================================================================
@@ -18,13 +18,13 @@
%
% ----------------------------------------------------------------------------
%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
-% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
-% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
-% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
-% oder spaeter 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.
+% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
+% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
+% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
+% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
+% oder spaeter 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.
%
% ============================================================================
%
@@ -51,15 +51,17 @@
%<*driver>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\ProvidesFile{tudscr-locale.dtx}[%
- 2015/06/12 v2.04 TUD-KOMA-Script (localization)%
+ 2016/07/20 v2.05 TUD-KOMA-Script (localization)%
]
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
-\documentclass[english,ngerman]{tudscrdoc}
+\documentclass[english,ngerman,xindy]{tudscrdoc}
\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{tudscrfonts} % only load this package, if the fonts are installed
\KOMAoptions{parskip=half-}
+\usepackage{microtype}
+\usepackage{bookmark}
\CodelineIndex
\RecordChanges
\GetFileInfo{tudscr-locale.dtx}
@@ -72,7 +74,8 @@
%
% \selectlanguage{ngerman}
%
-% \changes{v2.02}{2014/06/23}{Unterstützung für \pkg{titlepage} entfernt}^^A
+% \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}
%
@@ -80,26 +83,53 @@
% bedeutet, dass abhängig von der gewählten Sprache die entsprechenden
% Bezeichner gesetzt werden.
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \StopEventually{\PrintIndex\PrintChanges\PrintToDos}
%
% \subsection{Definition der sprachabhängigen Bezeichner}
%
% \begin{macro}{\tud@locale@define}
%
% \iffalse
-%<*class>
+%<*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
+%<*book|report|article>
% \fi
%
% \begin{locale}{\graduationtext}
% \changes{v2.02}{2014/05/16}{neu, umbenannt von \cs{degreetext}}^^A
-% \begin{locale}{\supervisorname}
-% \begin{locale}{\supervisorothername}
% \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
@@ -111,6 +141,7 @@
% \begin{locale}{\matriculationyearname}
% \begin{locale}{\coverpagename}
% \begin{locale}{\titlepagename}
+% \begin{locale}{\titlename}
% \begin{locale}{\abstractname}
% \begin{locale}{\confirmationname}
% \begin{locale}{\confirmationtext}
@@ -120,47 +151,15 @@
% \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
-% \begin{locale}{\listingname}
-% \begin{locale}{\listlistingname}
-% \begin{locale}{\dissertationname}
-% \begin{locale}{\diplomathesisname}
-% \begin{locale}{\masterthesisname}
-% \begin{locale}{\bachelorthesisname}
-% \begin{locale}{\studentresearchname}
-% \begin{locale}{\projectpapername}
-% \begin{locale}{\seminarpapername}
-% \begin{locale}{\researchname}
-% \begin{locale}{\logname}
-% \begin{locale}{\internshipname}
-% \begin{locale}{\reportname}
-% 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.
+% Diese Bezeichner existieren nur für die drei Hauptklassen.
% \begin{macrocode}
-\newcommand*\tud@locale@define[1]{%
- \providecommand*#1{%
- \ClassError{\TUDClassName}{%
- `\string#1' not defined for language `\languagename'%
- }{%
- Currently the class `\TUDClassName' 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.
- }%
- }%
-}
\tud@locale@define{\graduationtext}
-\tud@locale@define{\supervisorname}
-\tud@locale@define{\supervisorothername}
\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}
@@ -171,6 +170,7 @@
\tud@locale@define{\matriculationnumbername}
\tud@locale@define{\coverpagename}
\tud@locale@define{\titlepagename}
+\tud@locale@define{\titlename}
%<*book>
\tud@locale@define{\abstractname}
%</book>
@@ -178,15 +178,68 @@
\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}
@@ -196,51 +249,50 @@
% \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 \blockingtext
% \end{locale}^^A \listlistingname
% \end{locale}^^A \listingname
-% \end{locale}^^A \blockingname
-% \end{locale}^^A \confirmationtext
-% \end{locale}^^A \confirmationname
-% \end{locale}^^A \abstractname
-% \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 \advisorothername
-% \end{locale}^^A \advisorname
-% \end{locale}^^A \refereeothername
-% \end{locale}^^A \refereename
-% \end{locale}^^A \supervisorothername
-% \end{locale}^^A \supervisorname
-% \end{locale}^^A \graduationtext
+% \end{locale}^^A \disciplinename
+% \end{locale}^^A \coursename
%
% \iffalse
-%</class>
-%<*supervisor>
+%</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, \cs{authorname} umbenannt}^^A
-% \begin{locale}{\titlename}
-% \begin{locale}{\coursename}
-% \begin{locale}{\disciplinename}
-% \changes{v2.02}{2014/05/16}{neu, \cs{branchname} umbenannt}^^A
+% \changes{v2.04}{2015/05/06}{neu, Umbenennung von \cs{authorname}}^^A
% \begin{locale}{\issuedatetext}
% \begin{locale}{\duedatetext}
% \begin{locale}{\chairmanname}
@@ -252,7 +304,6 @@
% \begin{locale}{\assessmentname}
% \begin{locale}{\gradetext}
% \begin{locale}{\noticename}
-% \begin{locale}{\contactpersonname}
% \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.
@@ -260,9 +311,6 @@
\tud@locale@define{\taskname}
\tud@locale@define{\tasktext}
\tud@locale@define{\namesname}
-\tud@locale@define{\titlename}
-\tud@locale@define{\coursename}
-\tud@locale@define{\disciplinename}
\tud@locale@define{\issuedatetext}
\tud@locale@define{\duedatetext}
\tud@locale@define{\chairmanname}
@@ -274,9 +322,7 @@
\tud@locale@define{\assessmentname}
\tud@locale@define{\gradetext}
\tud@locale@define{\noticename}
-\tud@locale@define{\contactpersonname}
% \end{macrocode}
-% \end{locale}^^A \contactpersonname
% \end{locale}^^A \noticename
% \end{locale}^^A \gradetext
% \end{locale}^^A \assessmentname
@@ -288,46 +334,49 @@
% \end{locale}^^A \chairmanname
% \end{locale}^^A \duedatetext
% \end{locale}^^A \issuedatetext
-% \end{locale}^^A \disciplinename
-% \end{locale}^^A \coursename
-% \end{locale}^^A \titlename
% \end{locale}^^A \namesname
% \end{locale}^^A \tasktext
% \end{locale}^^A \taskname
%
% \iffalse
-%</supervisor>
-%<*poster>
+%</package&supervisor|class&manual>
% \fi
%
-% \begin{locale}{\authorname}
-% \changes{v2.04}{2015/05/12}{neu}^^A
-% \begin{locale}{\contactname}
-% \changes{v2.04}{2015/05/12}{neu}^^A
-% \begin{locale}{\contactpersonname}
-% Die für \pkg{tudscrsupervisor} definierten Bezeichner werden durch
-% \cs{tud@locale@define} mit einer Fehlermeldung initialisiert.
-% \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
+% \end{macro}^^A \tud@locale@define
%
% \iffalse
-%</poster>
+%<*class&!manual>
% \fi
%
-% \end{macro}^^A \tud@locale@define
+% \subsubsection{Hilfsmakros für selektive Bezeichner}
%
-% \subsection{Deutschsprachige Bezeichner}
+% Einige Bezeichner verhalten sich je nach der Angabe für einzelne Felder
+% selektiv, die zur Auswahl notwendigen Makros werden hier definiert.
%
-% \iffalse
-%<*class>
-% \fi
+% \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
%
+% \subsubsection{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
@@ -343,43 +392,61 @@
}
% \end{macrocode}
% \end{macro}^^A \tud@locale@german
+%
% 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}%
-\tud@locale@german{\supervisorname}{Betreuer}%
-\tud@locale@german{\supervisorothername}{}%
+% \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}{%
- \begingroup%
- \protecting{%
- \global\@tempswafalse%
- \def\and{\global\@tempswatrue}%
- \sbox\z@{\@referee}%
- }%
- \endgroup%
- \if@tempswa%
- Erstgutachter%
- \else%
- Gutachter%
- \fi%
-}
+ \tud@ifin@and{\@referee}{%
+ \ifx\refereeothername\@empty%
+ Gutachter%
+ \else%
+ Erstgutachter%
+ \fi%
+ }{Gutachter}%
+}%
\tud@locale@german{\refereeothername}{Zweitgutachter}%
-\tud@locale@german{\advisorname}{Fachreferent}%
+\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}{%
- \begingroup%
- \protecting{%
- \global\@tempswafalse%
- \def\and{\global\@tempswatrue}%
- \sbox\z@{\@professor}%
- }%
- \endgroup%
- \if@tempswa%
- Betreuende Hochschullehrer%
- \else%
- Betreuender Hochschullehrer%
- \fi%
-}
+ \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}%
@@ -389,54 +456,60 @@
\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
+ Hiermit versichere ich, dass ich die vorliegende
\ifx\@@thesis\@empty Arbeit \else\@@thesis{} \fi
\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.
+ 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.
+ 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:%
+ 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.
+ \noindent Weitere Personen waren an der geistigen Herstellung
+ der vorliegenden Arbeit nicht beteiligt.
\fi%
- Mir ist bekannt, dass die Nichteinhaltung dieser Erkl\"arung zum
+ 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 \ifx\@@thesis\@empty Arbeit \else\@@thesis{} \fi
\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~--
+ , 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.%
-}
+ 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{\studentresearchname}{Studienarbeit}%
+\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}%
@@ -444,8 +517,21 @@
% \end{macrocode}
%
% \iffalse
-%</class>
-%<*supervisor>
+%</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.
@@ -453,9 +539,6 @@
\tud@locale@german{\taskname}{Aufgabenstellung}%
\tud@locale@german{\tasktext}{f\"ur die Anfertigung einer}%
\tud@locale@german{\namesname}{Name}%
-\tud@locale@german{\titlename}{Titel}%
-\tud@locale@german{\coursename}{Studiengang}%
-\tud@locale@german{\disciplinename}{Studienrichtung}%
\tud@locale@german{\issuedatetext}{Ausgeh\"andigt am}%
\tud@locale@german{\duedatetext}{Einzureichen am}%
\tud@locale@german{\chairmanname}{Pr\"ufungsausschussvorsitzender}%
@@ -467,32 +550,16 @@
\tud@locale@german{\assessmentname}{Bewertung}%
\tud@locale@german{\gradetext}{%
Die Arbeit wird mit der Note \textbf{\@grade} bewertet.%
-}
+}%
\tud@locale@german{\noticename}{Aushang}%
-\tud@locale@german{\contactpersonname}{Ansprechpartner}%
% \end{macrocode}
%
% \iffalse
-%</supervisor>
-%<*poster>
+%</package&supervisor|class&manual>
+%<*class&!manual>
% \fi
%
-% Hier erfolgen für das Paket \pkg{tudscrposter} weitere Definitionen.
-% \begin{macrocode}
-\tud@locale@german{\authorname}{Autor}%
-\tud@locale@german{\contactname}{Kontakt}%
-\tud@locale@german{\contactpersonname}{Ansprechpartner}%
-% \end{macrocode}
-%
-% \iffalse
-%</poster>
-% \fi
-%
-% \subsection{Englischsprachige Bezeichner}
-%
-% \iffalse
-%<*class>
-% \fi
+% \subsubsection{Englischsprachige Bezeichner}
%
% \begin{macro}{\tud@locale@english}
% \changes{v2.02}{2014/07/07}{Pseudonym für \cs{providecaptionname} mit
@@ -512,40 +579,47 @@
% 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{\supervisorname}{Supervisor}%
-\tud@locale@english{\supervisorothername}{}%
\tud@locale@english{\refereename}{%
- \begingroup%
- \protecting{%
- \global\@tempswafalse%
- \def\and{\global\@tempswatrue}%
- \sbox\z@{\@referee}%
- }%
- \endgroup%
- \if@tempswa%
- First referee%
- \else%
- Referee%
- \fi%
-}
+ \tud@ifin@and{\@referee}{%
+ \ifx\refereeothername\@empty%
+ Referees%
+ \else%
+ First referee%
+ \fi%
+ }{Referee}%
+}%
\tud@locale@english{\refereeothername}{Second referee}%
-\tud@locale@english{\advisorname}{Advisor}%
+\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}{%
- \begingroup%
- \protecting{%
- \global\@tempswafalse%
- \def\and{\global\@tempswatrue}%
- \sbox\z@{\@professor}%
- }%
- \endgroup%
- \if@tempswa%
- Supervising professors%
- \else%
- Supervising professor%
- \fi%
-}
+ \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}%
@@ -555,53 +629,59 @@
\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
+ 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.
+ 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%
- They were no additional persons involved in the spiritual
- preparation of the present thesis.
+ 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:%
+ 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 spiritual
- preparation of the present thesis.
+ \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
+ 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
+ , 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}%
@@ -609,8 +689,21 @@
% \end{macrocode}
%
% \iffalse
-%</class>
-%<*supervisor>
+%</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.
@@ -618,9 +711,6 @@
\tud@locale@english{\taskname}{Task}%
\tud@locale@english{\tasktext}{for the preparation of a}%
\tud@locale@english{\namesname}{Name}%
-\tud@locale@english{\titlename}{Title}%
-\tud@locale@english{\coursename}{Course}%
-\tud@locale@english{\disciplinename}{Discipline}%
\tud@locale@english{\issuedatetext}{Issued on}%
\tud@locale@english{\duedatetext}{Due date for submission}%
\tud@locale@english{\chairmanname}{Chairman of the Audit Committee}%
@@ -632,26 +722,13 @@
\tud@locale@english{\assessmentname}{Assessment}%
\tud@locale@english{\gradetext}{%
The thesis is evaluated with a grade of \textbf{\@grade}.%
-}
+}%
\tud@locale@english{\noticename}{Notice}%
-\tud@locale@english{\contactpersonname}{Contact}%
-% \end{macrocode}
-%
-% \iffalse
-%</supervisor>
-%<*poster>
-% \fi
-%
-% Hier erfolgen für das Paket \pkg{tudscrposter} weitere Definitionen.
-% \begin{macrocode}
-\tud@locale@english{\authorname}{Author}%
-\tud@locale@english{\contactname}{Contact}%
-\tud@locale@english{\contactpersonname}{Contact}%
% \end{macrocode}
%
% \iffalse
-%</poster>
-%<*class>
+%</package&supervisor|class&manual>
+%<*class&!manual>
% \fi
%
% \subsection{Unterstützung des Paketes \pkg{listings}}
@@ -678,7 +755,7 @@
% \end{macrocode}
%
% \iffalse
-%</class>
+%</class&!manual>
% \fi
%
% \Finale
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx
index 3371b857d33..485f2246f26 100644
--- a/Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{2999}
+% \CheckSum{4147}
% \iffalse meta-comment
%
% ============================================================================
@@ -18,13 +18,13 @@
%
% ----------------------------------------------------------------------------
%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
-% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
-% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
-% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
-% oder spaeter 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.
+% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
+% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
+% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
+% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
+% oder spaeter 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.
%
% ============================================================================
%
@@ -51,23 +51,24 @@
%<*driver>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\ProvidesFile{tudscr-manual.dtx}[%
- 2015/07/02 v2.04 TUD-KOMA-Script\space%
+ 2016/07/26 v2.05 TUD-KOMA-Script\space%
%</driver>
-%<package&identify>\NeedsTeXFormat{LaTeX2e}
-%<package&identify>\ProvidesPackage{tudscrman}[%
+%<package&identify>\ProvidesPackage{tudscrtutorial}[%
%<*driver|package&identify>
-%!TUDVersion
+%!TUD@Version
%<package> package (internal tutorials)%
]
%</driver|package&identify>
%<*driver>
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
-\documentclass[english,ngerman]{tudscrdoc}
+\documentclass[english,ngerman,xindy]{tudscrdoc}
\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{tudscrfonts} % only load this package, if the fonts are installed
\KOMAoptions{parskip=half-}
+\usepackage{microtype}
+\usepackage{bookmark}
\CodelineIndex
\RecordChanges
\GetFileInfo{tudscr-manual.dtx}
@@ -80,576 +81,715 @@
%
% \selectlanguage{ngerman}
%
-% \changes{v2.02}{2014/11/18}{\cls{tudscrman} Index für Tutorials möglich}^^A
-% \changes{v2.02}{2014/12/17}{\cls{tudscrman} xindy-Stildatei wird bei der
-% Kompilierung erzeugt}^^A
+% \changes{v2.02}{2014/12/17}{Erstellung der \app{texindy}-Stildatei während
+% der Kompilierung}^^A
+% \changes{v2.02}{2014/11/18}{\pkg{tudscrtutorial}: Index für Tutorials}^^A
+% \changes{v2.05}{2015/08/04}{Geteilte Deklarationen für Klasse und Paket}^^A
%
-% \section{Klasse und Paket für die Anwenderdokumentation von \TUDScript}
+% \section{Klasse und Paket für Handbuch und Leitfäden zu \TUDScript}
%
-% Es werden die Klasse \cls{tudscrman} für das \TUDScript-Handuch sowie das
-% Paket \pkg{tudscrman} für das Setzen von einigen Anwenderleitfäden bzw.
+% Es werden die Klasse \cls{tudscrmanual} für das \TUDScript-Handuch sowie das
+% Paket \pkg{tudscrtutorial} für das Setzen von einigen Anwenderleitfäden bzw.
% Tutorials erzeugt. Da es zwischen der Klasse und dem Paket es eine große
% Menge an Überschneidungen gibt, basieren diese auf der gleichen Quelldatei.
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \StopEventually{\PrintIndex\PrintChanges\PrintToDos}
%
% \iffalse
-%<*!doc>
-%<*body>
+%<*body|doc>
% \fi
%
-% \subsection{Benötigte Pakete für die Anwenderdokumentation}
+% \subsection{Notwendige Pakete und Befehle für Klasse und Paket}
%
-% Basis für das Handbuch ist die Klasse \cls{tudscrreprt}. An diese werden alle
-% Klassenoptionen weitergereicht. Sie wird für das Setzen des Anwenderhandbuchs
-% genutzt. Zusätzlich wird das Paket \pkg{tudscrman} 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.
+% Basis für die Handbuchklasse \cls{tudscrmanual} ist die \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
+% und nützliche Befehle zu definieren.
%
% Das Paket \pkg{xparse} erlaubt eine sehr freie Deklaration von Makros mit
% nahezu beliebig arrangierbaren (optionalen) Argumenten.
% \begin{macrocode}
+%<*!doc>
+\PassOptionsToPackage{log-declarations=false}{xparse}
\RequirePackage{xparse}[2013/12/31]
+%</!doc>
% \end{macrocode}
-% Für den Fließtext werden Pfeile u.\,ä. durch \pkg{textcomp} bereitgestellt.
+% Bugfixes für unterschiedliche Pakete.
% \begin{macrocode}
-\RequirePackage{textcomp}[2005/09/27]
+\RequirePackage{scrhack}[2014/02/27]
% \end{macrocode}
-% Vergrößerung des Durchschusses.
+% Die Sprachunterstützung für Klasse und Paket.
% \begin{macrocode}
-\RequirePackage{setspace}[2011/12/19]
-\setstretch{1.1}\recalctypearea
+%<*!doc>
+\RequirePackage{babel}[2014/03/24]
+%</!doc>
% \end{macrocode}
-% Sprachunterstützung.
+% Das Paket \pkg{marginnote} stellt nicht fließenden Randnotizen bereit, welche
+% für die Kennzeichnung von Änderungen, Hinweise oder ToDo-Notizen verwendet
+% werden. Die Randnotizen werden auf dem linken~-- weil größeren~-- Seitenrand
+% gesetzt.
% \begin{macrocode}
-\RequirePackage{babel}[2014/03/24]
+%<*!doc>
+\PassOptionsToPackage{quiet}{marginnote}
+\RequirePackage{marginnote}[2012/03/29]
+\reversemarginpar
+%</!doc>
% \end{macrocode}
-% Sprachabhängiges Setzen von Anführungszeichen.
+% Das Paket für intelligente Leerzeichen am Ende von Makros mit \cs{xspace}.
% \begin{macrocode}
-\AfterPackage*{inputenc}{\RequirePackage{csquotes}[2011/10/22]}
-\AtBeginDocument{%
- \@ifpackageloaded{csquotes}{}{%
-%<*class>
- \ClassWarning%
-%</class>
-%<*package>
- \PackageWarning%
-%</package>
- {tudscrman}{Package `csquotes' not loaded}%
- \providecommand\enquote[1]{\glqg#1\grqq{}}%
+\RequirePackage{xspace}[2009/10/20]
+\xspaceaddexceptions{"=}
+% \end{macrocode}
+% Für das Paket \pkg{geometry} erfolgen durch \TUDScript vielerlei Anpassungen.
+% Um bei einer signifikanten Änderung des Paketes passend reagieren zu können,
+% wird auf das aktuelle Paketdatum geprüft und für neue Versionen eine Warnung
+% erzeugt.
+% \begin{macrocode}
+%<*!doc>
+\@ifpackagelater{geometry}{2010/09/13}{%
+ \ClassWarning{\TUD@Class@Name}{%
+ Package `geometry' was updated so some patches\MessageBreak%
+ are maybe outdated
}%
-}
+}{}%
+%</!doc>
% \end{macrocode}
-% Das Paket \pkg{microtype} wird für den optischen Randausgleich verwendet.
+% \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.
% \begin{macrocode}
-\AfterPackage*{hyperref}{\RequirePackage[babel]{microtype}[2013/05/23]}
+\newcommand*\vTUDScript{v\TUDScriptVersionNumber}
+\newcommand*\vKOMAScript{v\TUD@Version@KOMA}
% \end{macrocode}
-% \begin{length}{\baselineskipglue}
-% Diese Länge wird in der Dokumentation für alle möglichen stauch- und
-% dehnbaren Einfügen genutzt.
+% \end{macro}^^A \vKOMAScript
+% \end{macro}^^A \vTUDScript
+% \begin{macro}{\tud@english}
+% Mit diesem Befehl wird der Inhalt des Arumentes mit englischen Trennmustern
+% gesetzt, falls die Sprache geladen wurde.
% \begin{macrocode}
-\newlength\baselineskipglue
+\newcommand*\tud@english[1]{#1}
\AtBeginDocument{%
- \setlength\baselineskipglue{%
- .4\baselineskip plus .4\baselineskip minus .2\baselineskip%
+%<*doc>
+ \providecommand*\iflanguageloaded[3]{#3}%
+%</doc>
+ \iflanguageloaded{english}{%
+ \renewcommand*\tud@english[1]{\foreignlanguage{english}{#1}}%
+ }{}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@english
+%
+% \iffalse
+%</body|doc>
+%<*!doc>
+%<*body>
+% \fi
+%
+% \begin{macro}{\pdfstrcmp}
+% \begin{macro}{\pdfshellescape}
+% Sollte \app{lualatex} eingesetzt werden, sind diese \app{pdflatex}-Primitiven
+% dennoch notwendig, wofür \pkg{pdftexcmds} geladen wird.
+% \begin{macrocode}
+\RequirePackage{ifluatex}[2016/05/16]
+\ifluatex
+ \RequirePackage{pdftexcmds}[2016/05/21]
+ \let\pdfstrcmp\pdf@strcmp
+ \let\pdfshellescape\pdf@shellescape
+\fi
+% \end{macrocode}
+% \end{macro}^^A \pdfshellescape
+% \end{macro}^^A \pdfstrcmp
+% \begin{macro}{\tud@list@sort}
+% \changes{v2.02}{2014/07/25}{neu}^^A
+% \begin{macro}{\tud@list@@sort}
+% \changes{v2.02}{2014/07/25}{neu}^^A
+% \begin{macro}{\tud@templist}
+% \changes{v2.02}{2014/07/25}{neu}^^A
+% \begin{macro}{\if@tud@list@sorted}
+% \changes{v2.02}{2014/07/25}{neu}^^A
+% Der Befehl \cs{tud@list@sort} erwartet eine \pkg{etoolbox}-Liste und sortiert
+% diese mit \cs{sort@list} in alphabetischer Reihenfolge in eine kommagetrennte
+% Auflistung. Diese wird anschließend wieder in eine \pkg{etoolbox}-Liste
+% umgewandelt.
+% \begin{macrocode}
+\newcommand*\tud@templist{}
+\let\tud@templist\relax
+\newcommand*\tud@list@sort[1]{%
+ \ifdefvoid{#1}{%
+ \ClassWarning{tudscrmanual}{%
+ The given list \string#1\space\MessageBreak%
+ is empty, nothing to sort here%
+ }%
+ }{%
+ \let\tud@reserved#1%
+ \let\tud@templist\relax%
+ \forlistloop\tud@list@@sort{\tud@reserved}%
+ \let\tud@reserved\relax%
+ \@for\@tempa:=\tud@templist\do{\listeadd\tud@reserved{\@tempa}}%
+ \let#1\tud@reserved%
}%
}
% \end{macrocode}
-% \end{length}^^A \baselineskipglue
-% Verbesserte Zitate.
+% Hier erfolgt die eigentliche Sortierung der Liste.
% \begin{macrocode}
-\PassOptionsToPackage{vskip=.5\baselineskipglue}{quoting}
-\RequirePackage{quoting}[2014/01/28]
+\newif\if@tud@list@sorted
+\newcommand*\tud@list@@sort[1]{%
% \end{macrocode}
-% Automatisierte Datumsformatierung.
+% Der erste Eintrag wird direkt der Liste hinzugefügt.
% \begin{macrocode}
-\RequirePackage{isodate}[2010/01/03]
+ \ifx\tud@templist\relax%
+ \def\tud@templist{#1}%
% \end{macrocode}
-% Verschiedenste Symbole aus dem \LaTeX-Universum.
+% Weitere Einräge werden mit \cs{pdfstrcmp} an der richtigen Stelle eingefügt.
+% Dabei wird die kommagetrennte Liste \cs{tud@templist} durchlaufen und
+% \cs{@tempb} als Hilfsmakro verwendet, in welches die aktuelle Liste innerhalb
+% der \cs{@for}-Schleife stückweise expandiert wird. Wenn das aktuelle Element
+% an der dafür passenden Stelle eingesetzt wurde, wird \cs{if@tud@list@sorted}
+% gesetzt.
% \begin{macrocode}
-\RequirePackage{hologo}[2012/04/26]
+ \else%
+ \@tud@list@sortedfalse%
+ \let\@tempb\@empty%
+ \@for\@tempa:=\tud@templist\do{%
% \end{macrocode}
-% Das Paket \pkg{marginnote} stellt nicht fließenden Randnotizen bereit.
+% Ist der Eintrag bereits erfolgt, wird der verbliebene Teil der Liste
+% angehangen.
% \begin{macrocode}
-\RequirePackage{marginnote}[2012/03/29]
+ \if@tud@list@sorted%
+ \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,\@tempa}%
+ \else%
% \end{macrocode}
-% Sowohl im Handbuch als auch in den Tutroials werden Quelltextauszüge für das
-% bessere Verständnis des Anwenders angegeben. Um diese darzustellen wird das
-% Paket \pkg{listings} verwendet.
+% Liegt der Eintrag in alphabetischer Reihenfolge vor dem aktuellen der
+% durchlaufenenen Liste, so wird dieser davor eingefügt. Dabei muss der Fall,
+% dass das Element der erste Eintrag in der temporären Liste \cs{@tempb} ist,
+% eine Sonderbehandlung erfolgen. Anschließend wird \cs{@tud@list@sortedtrue}
+% gesetzt.
% \begin{macrocode}
-\RequirePackage{listings}[2014/03/04]
-\lstdefinestyle{tudscr}{%
- basicstyle=\ttfamily\setstretch{1},%
- keywordstyle=,%
- columns=fullflexible,keepspaces,%
- aboveskip=.5\baselineskipglue,%
- belowskip=.5\baselineskipglue,%
- language=[LaTeX]TeX,%
- texcl,%
-}
+ \expandafter\ifnum\pdfstrcmp{#1}{\@tempa}<\z@\relax%
+ \ifx\@tempb\@empty%
+ \expandafter\edef\expandafter\@tempb\expandafter{%
+ #1,\@tempa%
+ }%
+ \else%
+ \expandafter\edef\expandafter\@tempb\expandafter{%
+ \@tempb,#1,\@tempa%
+ }%
+ \fi%
+ \@tud@list@sortedtrue%
+ \else%
% \end{macrocode}
-% Mit dem Paket \pkg{silence} lassen sich ungewollte bzw. lästige Warnungen
-% deaktivieren.
+% Ist Eintrag in alphabetischer Reihenfolge nach dem aktuellen der geprüften
+% Liste, so wird dieser (noch) nicht eingefügt. Der Sonderfall des ersten
+% Elementes wird abgedeckt.
% \begin{macrocode}
-\RequirePackage{silence}[2012/07/02]
+ \ifx\@tempb\@empty%
+ \expandafter\edef\expandafter\@tempb\expandafter{\@tempa}%
+ \else%
+ \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,\@tempa}%
+ \fi%
+ \fi%
+ \fi%
+ }%
% \end{macrocode}
-% Das Pakete wird genutzt, um externer Dateien nur zu kompilieren, wenn dies
-% aufgrund einer Änderung auch notwendig ist.
+% Wurde der Eintrag nach dem Durchlaufen der Liste nicht eingefügt, so erfolgt
+% dies hier am Ende der Liste.
% \begin{macrocode}
-\RequirePackage{filemod}[2011/09/19]
+ \if@tud@list@sorted\else%
+ \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,#1}%
+ \fi%
% \end{macrocode}
-% Sollte \pkg{auto-pst-pdf} aktiv sein, so wird das Laden von \pkg{todonotes}
-% unterdrückt, da dieses wiederum das Paket \pkg{tikz} lädt, was zu Problem bei
-% der automatisierten Erstellung von \env{pstricks}"=Grafiken führt.
+% Die temporäre Liste \cs{@tempb} wird auf \cs{tud@templist} überschrieben.
% \begin{macrocode}
-\RequirePackage{ifpdf}[2011/01/30]
-\ifpdf
- \PassOptionsToPackage{colorinlistoftodos,obeyFinal,color=HKS92!10}{todonotes}
- \RequirePackage{todonotes}[2012/07/25]
-\else
- \TUDoptions{ToDo=false}
-\fi
+ \let\tud@templist\@tempb%
+ \fi%
+}
% \end{macrocode}
-% Um die \cs{write18} sowohl für Windows als auch für unixoide Betriebssysteme
-% nutzen zu können, wird das Paket \pkg{ifplatform} geladen. Damit dieses nicht
-% allzu lästig ist, wird mithilfe von \pkg{silence} die normalerweise erzeugte
-% Warnung der nicht aktivierten Option \opt{shell escape} deaktiviert.
+% \end{macro}^^A \if@tud@list@sorted
+% \end{macro}^^A \tud@templist
+% \end{macro}^^A \tud@list@@sort
+% \end{macro}^^A \tud@list@sort
+%
+% \iffalse
+%<*package>
+% \fi
+%
+% \subsubsection{Zusätzliche Pakete für das Paket \pkg{tudscrtutorial}}
+%
+% Mit dem Paket \pkg{scrwfile} lassen sich Probleme mit zu wenig verfügbaren
+% Streams für das Schreiben externer Datein beheben. Hintergrund ist die
+% Verwendung des Paketes \pkg{glossaries} in einem der Tutorials, welches eine
+% Vielzahl solcher Streams benötigt. Das Paket \pkg{morewrites} hat keinen
+% Einfluss auf \pkg{glossaries}.
% \begin{macrocode}
-\WarningFilter*{ifplatform}{^^J \space\space\space shell escape is disabled}
-\RequirePackage{ifplatform}[2010/10/22]
+\RequirePackage{scrwfile}[2013/08/05]
+% \end{macrocode}
+% Die Umgebungen \env{Preamble}, \env{Trunk} und \env{Hint} sowie deren
+% 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.
+% \begin{macrocode}
+\RequirePackage{silence}[2012/07/02]
+\RequirePackage{filecontents}[2011/10/08]
+\WarningFilter[Tutorial]{latex}{Overwriting file}%
+\WarningFilter[Tutorial]{latex}{Writing file}%
+% \end{macrocode}
+%
+% \iffalse
+%</package>
+%<*class>
+% \fi
+%
+% \subsubsection{Debug-Traces für die Klasse \cls{tudscrmanual}}
+%
+% Ab und an ist es beim Erstellen des Handbuchs recht sinnvoll, verschiedene
+% Dinge direkt im Logfile zu überprüfen. Hierfür werden folgend einige Befehle
+% zur Ablaufkontrolle definiert.
+%
+% \begin{macro}{\tracinglabels}
+% \changes{v2.05}{2015/10/29}{neu}^^A
+% \begin{macro}{\tud@trace@lbl@created@add}
+% \changes{v2.05}{2015/10/29}{neu}^^A
+% \begin{macro}{\tud@trace@lbl@missing@add}
+% \changes{v2.05}{2015/10/29}{neu}^^A
+% \begin{macro}{\tud@trace@lbl@created@list}
+% \changes{v2.05}{2015/10/29}{neu}^^A
+% \begin{macro}{\tud@trace@lbl@missing@list}
+% \changes{v2.05}{2015/10/29}{neu}^^A
+% Mit \cs{tracinglabels} wird die Nachverfolgung aller erstellten Labels in der
+% Dokumentation aktiviert werden. Die Label werden zum einen direkt im Logfile
+% ausgegeben und am Ende des selbigen in einer sortierten Liste ausgegeben. Die
+% Sternversion des Befehls erzeugt keine sortierte Liste. Über das optionale
+% Argument kann mit verschiedenen Schlüsseln zudem eingestellt werden, ob alle
+% Label (\val{all}) oder nur die erstellten (\val{created}) beziehungsweise die
+% fehlenden (\val{missing}) nachverfolgt werden sollen.
+% \begin{macrocode}
+\newcommand*\tud@trace@lbl@created@add[1]{}
+\newcommand*\tud@trace@lbl@missing@add[1]{}
+\NewDocumentCommand\tracinglabels{sO{missing}}{%
+ \newcommand*\tud@trace@lbl@created@list{}%
+ \newcommand*\tud@trace@lbl@missing@list{}%
+ \@tempswafalse%
+ \ifstr{#2}{created}{\@tempswatrue}{}%
+ \ifstr{#2}{all}{\@tempswatrue}{}%
+ \if@tempswa%
+ \renewcommand*\tud@trace@lbl@created@add[1]{%
+ \typeout{%
+ +++++ label created: ##1 on page \thepage%
+ }%
+ \xifinlist{##1}{\tud@trace@lbl@created@list}{}{%
+ \listxadd\tud@trace@lbl@created@list{##1}%
+ }%
+ }%
+ \IfBooleanF{#1}{%
+ \AfterEndDocument{%
+ \typeout{+++++ labels created (sorted) +++++}%
+ \tud@list@sort\tud@trace@lbl@created@list%
+ \forlistloop\typeout{\tud@trace@lbl@created@list}%
+ }%
+ }%
+ \fi%
+ \@tempswafalse%
+ \ifstr{#2}{missing}{\@tempswatrue}{}%
+ \ifstr{#2}{all}{\@tempswatrue}{}%
+ \if@tempswa%
+ \renewcommand*\tud@trace@lbl@missing@add[1]{%
+ \typeout{%
+ +++++ label missing: ##1 on page \thepage%
+ }%
+ \xifinlist{##1}{\tud@trace@lbl@missing@list}{}{%
+ \listxadd\tud@trace@lbl@missing@list{##1}%
+ }%
+ }%
+ \IfBooleanF{#1}{%
+ \AfterEndDocument{%
+ \typeout{+++++ labels missing (sorted) +++++}%
+ \tud@list@sort\tud@trace@lbl@missing@list%
+ \forlistloop\typeout{\tud@trace@lbl@missing@list}%
+ }%
+ }%
+ \fi%
+}
+\@onlypreamble\tracinglabels
+% \end{macrocode}
+% \end{macro}^^A \tud@trace@lbl@missing@list
+% \end{macro}^^A \tud@trace@lbl@created@list
+% \end{macro}^^A \tud@trace@lbl@missing@add
+% \end{macro}^^A \tud@trace@lbl@created@add
+% \end{macro}^^A \tracinglabels
+% \begin{macro}{\tracingmarkup}
+% \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
+% \cs{Process@Markup} inklusive all ihrer Argumente aktiviert. Dies ist für die
+% Kontrolle des erzeugten Markups sinnvoll.
+% \begin{macrocode}
+\newcommand*\tud@trace@markup[2]{}
+\newcommand*\tracingmarkup{%
+ \renewcommand*\tud@trace@markup[2]{%
+ \typeout{+++++ markup ##1 on page \thepage^^J##2}%
+ }%
+}
+\@onlypreamble\tracingmarkup
+% \end{macrocode}
+% \end{macro}^^A \tud@trace@markup
+% \end{macro}^^A \tracingmarkup
+% \begin{macro}{\tracingbundle}
+% \changes{v2.05}{2015/10/29}{neu}^^A
+% \begin{macro}{\tud@trace@bdl@add}
+% \changes{v2.05}{2015/10/29}{neu}^^A
+% \begin{macro}{\tud@trace@bdl@list}
+% \changes{v2.05}{2015/10/29}{neu}^^A
+% Wird \cs{tracingbundle} in der Präambel verwendet, werden alle direkt oder
+% indirekt durch \cs{Process@Markup} im Handbuch erzeugten Querverweise auf
+% Klassen oder Pakete aus dem \TUDScript-Bundle nachverfolgt und am Ende des
+% Logfiles ausgegeben. Damit kann im Zweifel übeprüft werden, ob eventuell eine
+% falsche Referenz genutzt wurde, wodurch u.\,U. Querverweise oder Einträge in
+% Index und Änderungsliste fehlerhaft werden oder erst gar nicht erscheinen.
+% \begin{macrocode}
+\newcommand*\tud@trace@bdl@add[1]{}
+\newcommand*\tud@trace@bdl@list{}
+\newcommand*\tracingbundle{%
+ \renewcommand*\tud@trace@bdl@add[1]{%
+ \begingroup%
+ \def\Class####1{class:####1}%
+ \def\Package####1{package:####1}%
+ \xifinlist{##1}{\tud@trace@bdl@list}{}{%
+ \listxadd\tud@trace@bdl@list{##1}%
+ }%
+ \endgroup%
+ }%
+ \AfterEndDocument{%
+ \typeout{+++++ bundle list +++++}%
+ \forlistloop\typeout{\tud@trace@bdl@list}%
+ }%
+}
+\@onlypreamble\tracingbundle
% \end{macrocode}
+% \end{macro}^^A \tud@trace@bdl@list
+% \end{macro}^^A \tud@trace@bfundle
+% \end{macro}^^A \tracingbundle
+%
+% \iffalse
+%</class>
+% \fi
+%
+% \subsubsection{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.
% \begin{macrocode}
\PassOptionsToPackage{hyperindex=false,colorlinks,linkcolor=blue}{hyperref}
\PassOptionsToPackage{open,openlevel=0}{bookmark}
-\AtBeginDocument{%
- \RequirePackage{hyperref}[2012/11/06]
- \RequirePackage{bookmark}[2011/12/02]
% \end{macrocode}
-% Es folgen einige Befehle, die an das Paket \pkg{hyperref} gekoppelt sind.
+% Es folgen einige Befehle, die an das Paket \pkg{hyperref} gekoppelt sind.
+% Sobald das Paket geladen wurde, werden die Makros mit der jeweiligen
+% Funktionalität definiert.
+% \begin{macrocode}
+\AfterPackage*{hyperref}{%
+% \end{macrocode}
+% Die Bezeichner für die Abschnittsebenen werden umbenannt.
+% \begin{macrocode}
+ \renewcaptionname{ngerman}{\sectionautorefname}{Unterkapitel}%
+ \renewcaptionname{ngerman}{\subsectionautorefname}{Abschnitt}%
+ \renewcaptionname{ngerman}{\subsubsectionautorefname}{Unterabschnitt}%
+% \end{macrocode}
% \begin{macro}{\Email}
-% Hyperlink für die Angabe einer E-Mail-Adresse.
+% Hiermit wird ein Hyperlink für eine E"~Mail-Adresse erzeugt.
% \begin{macrocode}
- \newcommand*\Email[1]{\href{mailto:#1}{\nolinkurl{#1}}}
+ \newcommand*\Email[1]{\href{mailto:#1}{\nolinkurl{#1}}}%
% \end{macrocode}
% \end{macro}^^A \Email
-% Die Bezeichner für die Abschnittsebenen werden umbenannt.
+% \begin{macro}{\tudhyperdef}
+% \changes{v2.02}{2014/10/27}{neu}^^A
+% \begin{macro}{\tudhyperref}
+% \changes{v2.02}{2014/10/27}{neu}^^A
+% \begin{macro}{\tud@manualname}
+% \changes{v2.05}{2015/1q/19}{neu}^^A
+% Diese Befehle dienen sowohl zum Definieren von Textankern im Handbuch als
+% auch zum Referenzieren auf diese. Bei der Erstellung des Ankers mit
+% \cs{tudhyperdef} wird zusätzlich auch noch ein Label (\cs{label}) erzeugt.
+% Der Anker wird mit \cs{Hy@raisedlink}~-- wie es auch bei pkg{hyperref}-Labels
+% geschieht~-- über die Grundlinie gehoben. Die Sternversion sollte nach
+% Überschriften verwendet werden und verschiebt die vertikale Position des
+% Ankers noch weiter nach oben.
+% \begin{macrocode}
+ \newcommand*\tud@manualname{tudscr}%
+%<*class>
+ \NewDocumentCommand\tudhyperdef{sm}{%
+ \IfBooleanTF{#1}{%
+ \raisebox{4\baselineskip}[0pt][0pt]{\hyperdef{\tud@manualname}{#2}{}}%
+ \par\nobreak\vskip\dimexpr-\parskip-\baselineskip\relax%
+ \@afterindentfalse\@afterheading%
+ }{%
+ \Hy@raisedlink{\hyperdef{\tud@manualname}{#2}{}}\ignorespaces%
+ }%
+ \label{#2}%
+ \tud@trace@lbl@created@add{#2}%
+ }%
+ \newcommand*\tudhyperref[2]{\hyperref{}{\tud@manualname}{#1}{#2}}%
+%</class>
+% \end{macrocode}
+% Aus einem Tutorial erfolgen alle Querverweise mit \cs{tudhyperref} auf das
+% Anwenderhandbuch \enquote{tudscr} im übergeordneten Ordner.
% \begin{macrocode}
- \renewcaptionname{ngerman}{\sectionautorefname}{Unterkapitel}
- \renewcaptionname{ngerman}{\subsectionautorefname}{Abschnitt}
- \renewcaptionname{ngerman}{\subsubsectionautorefname}{Unterabschnitt}
+%<*package>
+ \newcommand*\tudhyperref[2]{%
+ \hyperref{../\tud@manualname.pdf}{\tud@manualname}{#1}{#2}%
+ }%
+%</package>
% \end{macrocode}
+% \end{macro}^^A \tud@manualname
+% \end{macro}^^A \tudhyperref
+% \end{macro}^^A \tudhyperdef
% \begin{macro}{\autorefname}
-% \begin{macro}{\@autorefname}
-% \begin{macro}{\@@autorefname}
+% \begin{macro}{\auto@refname}
+% \begin{macro}{\auto@@refname}
% Der Befehl \cs{autorefname} dient dazu, den Verweistyp beziehungsweise den
% Bezeichner des aktuellen oder optional zu einem speziellen Label ohne die
% dazugehörige Nummerierung zu erhalten. Auf der Seite LaTeX Stack Exchange%
-%\footnote{\url{http://tex.stackexchange.com/q/33776/}} wurde das Prinzip
+% \footnote{\url{http://tex.stackexchange.com/q/33776/}} wurde das Prinzip
% vorgestellt und hier übernommen.
% \begin{macrocode}
\newcommand*\autorefname[1][current]{%
\ifstr{#1}{current}{%
\expandafter\HyPsd@@autorefname\@currentHref\@nil%
}{%
- \@autorefname\HyPsd@@autorefname{#1}%
+ \auto@refname\HyPsd@@autorefname{#1}%
}%
\unskip\xspace%
- }
- \newcommand*\@autorefname[2]{%
+ }%
+ \newcommand*\auto@refname[2]{%
\expandafter\ifx\csname r@#2\endcsname\relax%
??%
\else%
- \expandafter\expandafter\expandafter\@@autorefname%
+ \expandafter\expandafter\expandafter\auto@@refname%
\csname r@#2\endcsname{}{}{}{}\@nil#1\@nil%
\fi%
- }
- \newcommand*\@@autorefname{}
- \def\@@autorefname#1#2#3#4#5\@nil#6\@nil{#6#4.\@nil}
+ }%
+ \newcommand*\auto@@refname{}%
+ \def\auto@@refname#1#2#3#4#5\@nil#6\@nil{#6#4.\@nil}%
% \end{macrocode}
-% \end{macro}^^A \@@autorefname
-% \end{macro}^^A \@autorefname
+% \end{macro}^^A \auto@@refname
+% \end{macro}^^A \auto@refname
% \end{macro}^^A \autorefname
-% \begin{macro}{\manualhyperdef}
-% \changes{v2.02}{2014/10/27}{neu}^^A
-% \begin{macro}{\manualhyperref}
-% \changes{v2.02}{2014/10/27}{neu}^^A
-% Diese beiden Befehle dienen zum Defnieren von Textankern im Handbuch und zum
-% Referenzieren auf diese. Bei der Erstelung des Ankers mit \cs{manualhyperdef}
-% wird zusätzlich auch noch ein Label (\cs{label}) erzeugt. Die Sternversion
-% des Befehls unterdrückt dies. Der Anker wird mit \cs{Hy@raisedlink}~-- wie es
-% auch bei normalen \pkg{hyperref}-Labels geschieht~-- über die Grundlinie
-% gehoben. Die Version mit Apostroph kann nach Überschriften verwendet werden
-% und verschiebt die vertikale Position des Ankers noch weiter nach oben.
-% \begin{macrocode}
-%<*class>
- \NewDocumentCommand\manualhyperdef{st'm}{%
- \IfBooleanTF{#2}{%
- \raisebox{4\baselineskip}[0pt][0pt]{\hyperdef{\jobname}{#3}{}}%
- \par\nobreak\vskip\dimexpr-\parskip-\baselineskip\relax%
- \@afterindentfalse\@afterheading%
- }{%
- \Hy@raisedlink{\hyperdef{\jobname}{#3}{}}%
- \ignorespaces%
- }%
- \IfBooleanF{#1}{\label{#3}}%
- }
- \newcommand*\manualhyperref[2]{\hyperref{}{\jobname}{#1}{#2}}
-%</class>
-% \end{macrocode}
-% Aus einem Tutorial erfolgen alle Querverweise mit \cs{manualhyperref} auf das
-% Anwenderhandbuch \enquote{tudscr}.
+% Damit sind die Ausführungen für das Paket \pkg{hyperref} beendet.
% \begin{macrocode}
-%<*package>
- \newcommand*\manualhyperref[2]{\hyperref{../tudscr}{tudscr}{#1}{#2}}
-%</package>
+}
% \end{macrocode}
-% \end{macro}^^A \manualhyperref
-% \end{macro}^^A \manualhyperdef
-% Damit sind die Ausführungen für das Paket \pkg{hyperref} \emph{fast} beendet.
-% Etwas später wird noch der Befehl \cs{pdfexpandableoutline} definiert.
+% Sollte das Paket \pkg{hyperref} nicht geladen werden, wird eine Rückfallebene
+% definiert, wodurch die Klasse dennoch verwendet werden kann.
% \begin{macrocode}
-}
+\TUD@UnwindPackage{hyperref}{%
% \end{macrocode}
-% Für die Erstellung des Indexes wird das Paket \pkg{imakeidx} zusammen mit
-% \pkg{xindy} verwendet. Zuerst ein paar kleinere Einstellungen für das Layout.
+% Zunächst die direkt innerhalb der Dokumentation verwendeten Befehle nebst
+% dazugehöriger Warnung.
+% \begin{macro}{\hypersetup}
+% \begin{macro}{\hyperdef}
+% \begin{macro}{\hyperref}
+% \begin{macro}{\tud@hyperref@a}
+% \begin{macro}{\tud@hyperref@b}
+% \begin{macro}{\href}
+% \begin{macro}{\hyperpage}
+% \begin{macro}{\autoref}
+% \begin{macro}{\texorpdfstring}
+% \begin{macro}{\phantomsection}
% \begin{macrocode}
-\PassOptionsToPackage{xindy,splitindex}{imakeidx}
-\RequirePackage{imakeidx}[2013/07/11]%
-\indexsetup{%
%<*class>
- level=\addsec,%
+ \ClassWarningNoLine{tudscrmanual}%
%</class>
%<*package>
- level=\subsection*,%
-%</package>
- noclearpage,firstpagestyle=headings,headers={\indexname}{\indexname},%
- othercode={\renewcommand*\subitem{\@idxitem\hspace*{15\p@}}}%
-}
-\newcommand*\xdyopt{-M tudscrman-temp.xdy -L german-din}
-% \end{macrocode}
-% \begin{macro}{\tud@write@i}
-% \changes{v2.02}{2014/10/22}{neu}^^A
-% \begin{macro}{\tud@write@ii}
-% \changes{v2.02}{2014/11/02}{neu}^^A
-% \begin{macro}{\tud@read}
-% \changes{v2.02}{2014/08/19}{neu}^^A
-% Für die Erstellung der Indizes wird zum Sortieren das Programm \pkg{xindy}
-% genutzt. Für dieses wird eine eigene Stildatei verwendet, welche zur Laufzeit
-% erzeugt wofür zuerst ein Ausgabestream reserviert wird.
-% \begin{macrocode}
-\newcommand*\tud@write@i{}
-\newwrite\tud@write@i
-% \end{macrocode}
-% Für die Tutorials werden später zusätzlich noch ein weiterer Ausgabe- sowie
-% ein Eingabestream benötigt, die hier gleich mit initilaisiert werden.
-% \begin{macrocode}
-%<*package>
-\newcommand*\tud@write@ii{}
-\newwrite\tud@write@ii
-\newcommand*\tud@read{}
-\newread\tud@read
+ \PackageWarningNoLine{tudscrtutorial}%
%</package>
+ {%
+ It is strongly recommended to load package `hyperref'.\MessageBreak%
+ Nevertheless, essential commands are rudimentarily\MessageBreak%
+ defined. At least the package `url' is loaded.%
+ }%
+ \RequirePackage{url}[2013/09/16]%
+ \providecommand*\hypersetup[1]{}%
+ \providecommand*\hyperdef[3]{\label{#1.#2}#3}%
% \end{macrocode}
-% \end{macro}^^A \tud@read
-% \end{macro}^^A \tud@write@ii
-% \end{macro}^^A \tud@write@i
-% Nachfolgend wird die zu erstellenden \pkg{xindy}-Stildatei kurz beschrieben.
-% \begin{macrocode}
-\openout\tud@write@i=tudscrman-temp.xdy
-% \end{macrocode}
-% Als erstes wird Standard-\LaTeX-Modul geladen.
-% \begin{macrocode}
-\write\tud@write@i{(require "texindy.xdy")}
-% \end{macrocode}
-% Leider lässt sich für Seitenzahlbereiche via \val{:attr} (noch) kein Markup
-% für angehängte \enquote{f.} sowie \enquote{ff.} einstellen. Diese würden
-% deshalb bei kursiven oder fetten Seitenzahlen trotzdem in normaler Schrift
-% erscheinen, weshalb auf die Auszeichnung folgender Seiten verzichtet wird.
-% \begin{macrocode}
-%\write\tud@write@i{(require "ff-ranges.xdy")}
-% \end{macrocode}
-%
-% Seitenbereiche werden sofort zusammengefasst, wobei als Trennzeichen ein
-% Halbgeviertstrich verwendet wird.
-% \begin{macrocode}
-\write\tud@write@i{%
-(define-location-class^^J%
-\space\space "arabic-page-numbers" ("arabic-numbers") :min-range-length 1^^J%
-)%
-}
-\write\tud@write@i{(markup-range :sep "--")}
-% \end{macrocode}
-% Alle Argumente in eckigen Klammern werden ignoriert. Dies wird bei einigen
-% Indexbefehlen genutzt, um die nicht beachteten RegExp-Regeln auszugleichen,
-% siehe den nächsten Absatz.
-% \begin{macrocode}
-\write\tud@write@i{%
-(merge-rule "\@backslashchar[(.*)\@backslashchar]" "" :eregexp)%
-}
-% \end{macrocode}
-% Innerhalb ausgewählter Auszeichnungs- und Textbefehle sollten die Befehle
-% selbst, nicht jedoch die Argumente verworfen werden. Leider werden die
-% manuell erstellten RegExp-Regeln durch \texttt{texindy} zu spät genutzt
-% (\url{http://sourceforge.net/p/xindy/bugs/22/}).
-% \begin{macrocode}
-%\write\tud@write@i{(merge-rule "\\hyperidx\{(.*)\}\{(.*)\}" "/2" :eregexp)}
-%\write\tud@write@i{(merge-rule "\\hologo\{(.*)\}" "/1" :eregexp)}
-%\write\tud@write@i{(merge-rule "\\texttt\{(.*)\}" "/1" :eregexp)}
-%\write\tud@write@i{(merge-rule "\\textsbn\{(.*)\}" "/1" :eregexp)}
-%\write\tud@write@i{(merge-rule "\\textsbs\{(.*)\}" "/1" :eregexp)}
-% \end{macrocode}
-% Es werden die Attribute \emph{declare} mit der Abkürzung \emph{!} sowie
-% \emph{important} mit der Abkürzung \emph{?} und \emph{default} definiert,
-% welche hierarchisch gleichgestellt sind.
-% \begin{macrocode}
-\write\tud@write@i{%
-(define-attributes (("declare" "!" "important" "?" "deprecated" "default")))%
-}
-% \end{macrocode}
-% Eine Alternative wäre, diese in der Hierarchie zu unterscheiden, allerdings
-% war eine Bildung von zufriedenstellenden Seitenbereichen dabei nicht möglich
-% und wurde deshalb verworfen.
-% \begin{macrocode}
-%\write\tud@write@i{(markup-attribute-group-list :sep ", ")}
-%\write\tud@write@i{%
-%(define-attributes (("declare" "!") ("important" "?")("default")))%
-%}
-% \end{macrocode}
-% Einträge, die als wichtig oder als Deklaration festgelegt wurden, könnten
-% auch für normale Indexeinträge zur Bereichsbildung verwendet werden.
-% Allerdings führt dies auch zur Erzeugung redundanter Einträge, falls es sich
-% bei den Sondereinträgen bereits um einen Seitenbereich handelt.
-% \begin{macrocode}
-%\write\tud@write@i{(merge-to "declare" "default")}
-%\write\tud@write@i{(merge-to "!" "default")}
-%\write\tud@write@i{(merge-to "important" "default")}
-%\write\tud@write@i{(merge-to "?" "default")}
-% \end{macrocode}
-% Hier erfolgt die Definition der Auszeichnugen der Attribute. Deklarationen
-% werden fett gedruckt, wichtige Einträge erscheinen kursiv. Außerdem wird ein
-% entsprechnder Link auf die Seite eingefügt.
-% \begin{macrocode}
-\write\tud@write@i{%
-(markup-locref^^J%
-\space\space :attr "declare"^^J%
-\space\space :open "\string\textbf{\string\hyperpage{"^^J%
-\space\space :close "}}"^^J%
-)%
-}
-\write\tud@write@i{%
-(markup-locref^^J%
-\space\space :attr "!"^^J%
-\space\space :open "\string\textbf{\string\hyperpage{"^^J%
-\space\space :close "}}"^^J%
-)%
-}
-\write\tud@write@i{%
-(markup-locref^^J%
-\space\space :attr "important"^^J%
-\space\space :open "\string\textsl{\string\hyperpage{"^^J%
-\space\space :close "}}"^^J%
-)%
-}
-\write\tud@write@i{%
-(markup-locref^^J%
-\space\space :attr "?"^^J%
-\space\space :open "\string\textsl{\string\hyperpage{"^^J%
-\space\space :close "}}"^^J%
-)%
-}
-\write\tud@write@i{%
-(markup-locref^^J%
-\space\space :attr "default"^^J%
-\space\space :open "\string\hyperpage{"^^J%
-\space\space :close "}"^^J%
-)%
-}
-% \end{macrocode}
-% Für die Änderungsliste wird ein separates Attribut erstellt. Mit diesem wird
-% es möglich, die Seitenangabe für Optionen und Befehle zu unterdrücken, welche
-% aus \TUDScript entfernt wurden oder veraltet sind, wenn mit \cs{Replace} eine
-% Alternative eingeführt wurde. Dafür wird der Befehl \cs{deprecatedhyperpage}
-% verwendet, welcher im Bedarfsball auf \cs{@gobble} gesetzt wird.
-% \begin{macrocode}
-\write\tud@write@i{%
-(markup-locref^^J%
-\space\space :attr "deprecated"^^J%
-\space\space :open "\string\deprecatedhyperpage{"^^J%
-\space\space :close "}"^^J%
-)%
-}
-% \end{macrocode}
-% Punkte zwischen Eintrag und Seitenzahl.
-% \begin{macrocode}
-\write\tud@write@i{%
- (markup-locclass-list :open "\string\,\string\dotfill\string\,")%
-}
-% \end{macrocode}
-% Dieser Querverweistyp wird speziell im allgemeinen Index verwendet, um auf
-% einen Spezialindex zu verweisen.
-% \begin{macrocode}
-\write\tud@write@i{(define-crossref-class "seeidx")}
-\write\tud@write@i{%
-(markup-crossref-list^^J%
-\space\space :class "seeidx" :open "\string\seeidx{" :sep "; " :close "}{}"^^J%
-)%
-}
-% \end{macrocode}
-% Damit ist die \pkg{xindy}-Stildatei fertig.
-% \begin{macrocode}
-\closeout\tud@write@i
-% \end{macrocode}
-% Nun können die einzelnen Indizes erstellt werden.
+% Der Befehl \cs{hyperref} existiert in zwei Varianten. Entweder mit einem
+% optionalen und einem obligatorischen Argument oder mit vier Argumenten.
% \begin{macrocode}
+ \providerobustcmd*\hyperref{%
+ \kernel@ifnextchar[{\tud@hyperref@a}{\tud@hyperref@b}%
+ }
+ \newcommand*\tud@hyperref@a[2][]{#2}
+ \newcommand*\tud@hyperref@b[4]{#4}
+ \providecommand*\href[3][]{#3}%
+ \providecommand*\hyperpage[1]{#1}%
+% \end{macrocode}
+% Der Befehl \cs{autoref} wird auch in der Sternversion genutzt.
+% \begin{macrocode}
+ \providecommand*\autoref{??\xspace\kernel@ifstar{\ref}{\ref}}%
+% \end{macrocode}
+% Auch \cs{texorpdfstring} und \cs{phantomsection} werden vorgehalten.
+% \begin{macrocode}
+ \providecommand*\phantomsection{}%
+ \providecommand*\texorpdfstring[2]{#1}%
+% \end{macrocode}
+% \end{macro}^^A \phantomsection
+% \end{macro}^^A \texorpdfstring
+% \end{macro}^^A \autoref
+% \end{macro}^^A \hyperpage
+% \end{macro}^^A \href
+% \end{macro}^^A \tud@hyperref@b
+% \end{macro}^^A \tud@hyperref@a
+% \end{macro}^^A \hyperref
+% \end{macro}^^A \hyperdef
+% \end{macro}^^A \hypersetup
+% \begin{macro}{\partautorefname}
+% \begin{macro}{\chapterautorefname}
+% \begin{macro}{\sectionautorefname}
+% \begin{macro}{\subsectionautorefname}
+% \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}%
+% \end{macrocode}
+% \end{macro}^^A \subsubsectionautorefname
+% \end{macro}^^A \subsectionautorefname
+% \end{macro}^^A \sectionautorefname
+% \end{macro}^^A \chapterautorefname
+% \end{macro}^^A \partautorefname
+% Anschließend folgen die für Klasse und Paket eigens definierten Befehle.
+% \begin{macrocode}
+ \providecommand*\Email[1]{\mbox{#1}}%
%<*class>
-\makeindex[title={Allgemeiner Index},options=\xdyopt]%
-%</class>
-\makeindex[title={Klassen- und Paketoptionen},name=options,options=\xdyopt]%
-\makeindex[%
- title={Umgebungen, Befehle und Seitenstile},name=macros,options=\xdyopt%
-]%
-%<*class>
-\makeindex[title={Umgebungs- und Befehlsparameter},name=keys,options=\xdyopt]%
-\makeindex[title={Sprachabh\"angige Bezeichner},name=terms,options=\xdyopt]%
-\makeindex[title={Schriftelemente},name=fonts,options=\xdyopt]%
-\makeindex[title={Farben},name=colors,options=\xdyopt]%
-%</class>
-\makeindex[title={Klassen, Pakete und Dateien},name=files,options=\xdyopt]%
-%<*class>
-\makeindex[title={\"Anderungsliste},name=changelog,columns=1,options=\xdyopt]%
+ \ProvideDocumentCommand\tudhyperdef{sm}{\label{#2}}%
%</class>
-% \end{macrocode}
-%
-% \iffalse
-%<*class>
-% \fi
-%
-% \subsubsection{Pakete für die Klasse \cls{tudscrman}}
-%
-% 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.
-% \begin{macrocode}
-\RequirePackage{enumitem}[2011/09/28]
-\setlist{noitemsep}
-% \end{macrocode}
-% Das Paket \pkg{ellipsis} sorgt für korrekte Auslassungpunkte.
-% \begin{macrocode}
-\AtBeginDocument{
- \RequirePackage{ellipsis}[2004/9/28]
- \let\ellipsispunctuation\relax
+ \providecommand*\tudhyperref[2]{#2}%
+ \providecommand*\autorefname[1][]{??\xspace}%
}
% \end{macrocode}
-% Mit Hilfe von \pkg{tabularx} können Tabellen bestimmter Breite und
-% automatisch berechneten Spaltenbreiten gesetzt werden.
-% \begin{macrocode}
-\RequirePackage{tabularx}[1999/01/07]
-% \end{macrocode}
-% Mit \pkg{ragged2e} wird~-- falls benötigt~-- die Silbentrennung im
-% Flattersatz aktiviert.
-% \begin{macrocode}
-\RequirePackage{ragged2e}[2009/05/21]
-% \end{macrocode}
-% Die Fußnoten werden nicht mit jedem Kapitel zurückgesetzt.
-% \begin{macrocode}
-\RequirePackage{chngcntr}[2009/09/02]
-\counterwithout{footnote}{chapter}
-% \end{macrocode}
-% Das Paket wird für die Erstellung von Tabellen verwendet.
-% \begin{macrocode}
-\RequirePackage{booktabs}[2005/04/14]
-% \end{macrocode}
+% \begin{macro}{\fullref}
% Verbesserte Referenzierungen auf Seiten.
% \begin{macrocode}
-\RequirePackage{varioref}[2011/10/02]%
+\RequirePackage{varioref}[2011/10/02]
\renewcommand*\fullref[1]{\hyperref[#1]{\autoref*{#1} \vpageref{#1}}}
% \end{macrocode}
-% Erstellen von Grafiken.
+% \end{macro}^^A \fullref
+% \begin{macro}{\hrfn}
+% \changes{v2.02}{2014/08/16}{neu}^^A
+% \changes{v2.04}{2015/02/18}{Schriftgröße mit \cs{scalebox}}^^A
+% 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}
-\RequirePackage{tikz}[2013/12/13]
+\newcommand*\hrfn[2]{%
+ \href{#1}{\trim@spaces{#2}}%
+ \footnote{%
+ \scalebox{0.95}{%
% \end{macrocode}
-% Einbinden von ganzseitigen PDF"~Dokumenten als Beispiel im Handbuch.
+% Die Box wird verwendet, um zu lange URLs ausreichend zu verkleinern. Außerdem
+% werden Unterstriche entschärft, die im Zweifel zu Fehlern führen können.
% \begin{macrocode}
-\RequirePackage{pdfpages}[2013/08/25]
+ \def\_{_}%
+ \edef\@tempa{#1}%
+ \strut\expandafter\url\expandafter{\@tempa}%
+ }%
+ }%
+}
% \end{macrocode}
-% Typographisch saubere Einheiten.
-% \begin{macrocode}
-\RequirePackage{units}[1998/08/04]
+% \end{macro}^^A \hrfn
+% Wenn \pkg{hyperref} geladen wird, erzeugt das Paket \pkg{babel} innerhalb von
+% \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{macrocode}
+\AfterPackage*{hyperref}{%
+ \patchcmd{\pdfstringdef}{\csname HyPsd@babel@}{%
+ \let\bbl@info\@gobble\csname HyPsd@babel@%
+ }{}{\tud@patch@wrn{pdfstringdef}}%
+}
% \end{macrocode}
-% Befehle für die Dokumentation des Pakets \pkg{tudscrsupervisor}.
+% Das Paket \pkg{microtype} wird für den optischen Randausgleich verwendet. Es
+% sollte erst nach \pkg{hyperref} geladen werden.
% \begin{macrocode}
-\RequirePackage{tudscrsupervisor}[\TUDVersion]
-% \end{macrocode}
-%
-% \iffalse
-%</class>
-%<*package>
-% \fi
-%
-% \subsubsection{Pakete für das Paket \pkg{tudscrman}}
-%
-% Mit dem Paket \pkg{scrwfile} lassen sich Probleme mit zu wenig verfügbaren
-% Streams für das Schreiben externer Datein beheben. Hintergrund ist die
-% Verwendung des Paketes \pkg{glossaries} in einem der Tutorials, welches eine
-% Vielzahl solcher Streams benötigt. Das Paket \pkg{morewrites} hat keinen
-% Einfluss auf \pkg{glossaries}.
-% \begin{macrocode}
-\RequirePackage{scrwfile}[2013/08/05]
+\AfterPackage*{hyperref}{\RequirePackage[babel]{microtype}[2013/05/23]}
% \end{macrocode}
-% Die Umgebungen \env{Preamble}, \env{Trunk} und \env{Hint} sowie deren
-% 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.
+% Wurde \pkg{hyperref} nicht geladen, dann soll auf \pkg{microtype} trotzdem
+% nicht verzichtet werden.
% \begin{macrocode}
-\RequirePackage{filecontents}[2011/10/08]
-\WarningFilter[Tutorial]{latex}{Overwriting file}%
+\TUD@UnwindPackage{hyperref}{\RequirePackage[babel]{microtype}[2013/05/23]}
% \end{macrocode}
%
% \iffalse
-%</package>
%</body>
%<*option>
% \fi
%
-% \subsection{Optionen der Anwenderdokumentation}
+% \subsection{Optionen für das Ausgabeformat}
%
-% Hier werden die Optionen für Klasse und Paket definiert.
-%
-% \begin{option}{ToDo}
-% \changes{v2.02}{2014/07/10}{neu}^^A
-% \begin{macro}{\if@tud@todo}
-% \changes{v2.02}{2014/07/10}{neu}^^A
-% \begin{macro}{\tud@todo@type}
-% \changes{v2.03}{2015/01/25}{neu}^^A
-% Diese Option ist verantwortlich für den Schalter \cs{if@tud@todo}. Über
-% diesen wird gesteuert, ob ToDo-Notizen ausgegeben werden sollen.
+% \begin{option}{final}
+% \begin{option}{print}
+% \begin{macro}{\tudfinalflag}
+% \begin{macro}{\tudprintflag}
+% Diese beiden Optionen dienen zur finalen und/oder der unbunten Ausgabe.
% \begin{macrocode}
-\newif\if@tud@todo
-\@tud@todotrue
-\newcommand*\tud@todo@type{}
-\TUD@key{ToDo}[true]{%
- \TUD@set@ifkey{ToDo}{@tud@todo}{#1}%
+\TUD@key{final}[true]{%
+ \TUD@set@ifkey{final}{@tempswa}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
- \let\tud@todo@type\relax%
- \else%
- \def\tud@todo@type{#1}%
- \@tud@todotrue%
- \FamilyKeyStateProcessed%
+ \if@tempswa%
+ \let\tudfinalflag\relax%
+ \fi%
+ \fi%
+}
+\TUD@key{print}[true]{%
+ \TUD@set@ifkey{print}{@tempswa}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \if@tempswa%
+ \let\tudprintflag\relax%
+ \fi%
\fi%
}
% \end{macrocode}
-% \end{macro}^^A \tud@todo@type
-% \end{macro}^^A \if@tud@todo
-% \end{option}^^A ToDo
+% Wurde eine oder beide der Optionen \opt{final} oder \opt{print} gesetzt bzw.
+% vor einem externen \app{pdflatex}-Aufruf die Flags \cs{tudfinalflag} und/oder
+% \cs{tudprintflag} definiert, werden die entsprechenden Einstellungen zur
+% finalen Ausgabe und/oder unbunten Druck vorgenommen und anschließend die
+% entsprechenden Optionen unschädlich gemacht.
+% \begin{macrocode}
+\AtEndPreamble{%
+ \ifdef{\tudfinalflag}{%
+ \TUDoptions{ToDo=false}%
+ \TUD@key{ToDo}{}%
+ }{}%
+ \ifdef{\tudprintflag}{%
+ \ifnum\tud@cd@num>\z@\relax%
+ \TUDoptions{cd=true}%
+ \fi%
+ \TUD@key{cd}{}%
+ \ifundef{\hypersetup}{}{\hypersetup{hidelinks}}%
+ }{}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tudprintflag
+% \end{macro}^^A \tudfinalflag
+% \end{option}^^A print
+% \end{option}^^A final
%
% \iffalse
%<*class>
% \fi
%
+% \subsection{Standardoptionen der Anwenderdokumentation}
+%
% Es werden einige Optionen für das Handbuch standardmäßig aktiviert. Dazu
% werden diese an die entsprechende Elternklasse übergeben.
% \begin{macrocode}
@@ -661,1550 +801,3671 @@
captions=tableheading,%
numbers=noenddot,%
cd=color,%
-}{\TUDClassName@Parent}
+}{\TUD@Class@Parent}
\PassOptionsToPackage{automark}{scrlayer-scrpage}
% \end{macrocode}
-% \begin{macro}{\tudfinalflag}
-% \begin{macro}{\tudprintflag}
-% Außerdem wird geprüft, ob durch einen externen pdf\LaTeX-Aufruf die Flags
-% \cs{tudfinalflag} und/oder \cs{tudprintflag} definiert wurde. In diesem Fall
-% werden Optionen zur finalen Ausgabe und/oder unbunten Druck aktiviert.
-% \begin{macrocode}
-\DeclareOption{final}{\let\tudfinalflag\relax}
-\DeclareOption{print}{\let\tudprintflag\relax}
-\AtBeginDocument{%
- \ifdef{\tudfinalflag}{\TUDoptions{ToDo=false}}{}%
- \ifdef{\tudprintflag}{%
- \TUDoptions{color=no}%
- \PassOptionsToPackage{hidelinks}{hyperref}%
- }{}%
-}
-% \end{macrocode}
-% \end{macro}^^A \tudprintflag
-% \end{macro}^^A \tudfinalflag
%
% \iffalse
%</class>
-%<*package>
+%</option>
+%<*body>
+%<*class>
% \fi
%
-% Wird das Paket \pkg{tudscrman} geladen, werden zu Beginn des Dokumentes ein
-% paar Standardeinstellungen gemacht.
+% \subsection{Deklarationen für die Klasse}
+%
+% Die Umgebungen \env{Declaration} und \env{Declaration*} werden beide für die
+% Auszeichnung von Optionen, Umgebungen und Befehlen verwendet, die \TUDScript
+% dem Anwender zur Verfügung stellt.
%
+% \begin{macro}{\if@tud@declare}
+% \begin{macro}{\if@openindex}
+% \begin{macro}{\tud@declare@num}
+% \changes{v2.05}{2015/11/01}{neu}^^A
+% Dies sin ein paar Hilfsmakros zur Steuerung des Markup sowie der Ausgabe von
+% Deklarationen, Index und Änderungsliste, welche bei den nächsten Befehlen und
+% Umgebungen genutzt werden. Mit \cs{if@tud@declare} wird festgelegt, ob die
+% Befehle für das Markup in der Ausgabe als Deklaration oder anderweiteig
+% erfolgt. Der Schalter \cs{if@openindex} wird zu Beginn einer Deklaration auf
+% \val{true} gesetzt und vor dem Beenden auf \val{false}. Damit wird bestimmt,
+% ob ein öffnender oder ein schließender Indexeintrag erzeugt werden soll.
% \begin{macrocode}
-\KOMAoptions{headings=small}
-\TUDoptions{cd=true,cdfoot=true}
+\newif\if@tud@declare
+\newif\if@openindex
% \end{macrocode}
-% Falls innerhalb eines Tutorials das Paket \pkg{pstricks} verwendet wird, muss
-% dafür Sorge getragen werden, dass die automatische Kompilierung reibungslos
-% mit \pkg{auto-pst-pdf} funktioniert.
+% 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.
% \begin{macrocode}
-\AfterPackage*{pstricks}{%
- \ifnum\pdfshellescape=\@ne\relax\else%
- \PassOptionsToPackage{off}{auto-pst-pdf}%
- \fi%
- \RequirePackage{auto-pst-pdf}[2009/04/26]%
-}
+\newcommand*\tud@declare@num{0}
% \end{macrocode}
-%
-% \iffalse
-%</package>
-%</option>
-%<*body>
-% \fi
-%
-% \subsection{Gemeinsame Befehle und Umgebungen für Klasse und Paket}
-%
-% Es folgen die Definitionen für Befehle und Umgebungen für Klasse und Paket,
-% welche sich überschneidenden und für beide benötigt werden. Allerdings sind
-% diese jedoch für Klasse und Paket in ihrer Implementierung teilweise sehr
-% unterschiedlich.
-%
-% \subsubsection{Auszeichnung von Variablen, Parametern etc.}
-%
-% \begin{macro}{\PName}
-% \begin{macro}{\PBoolean}
-% \begin{macro}{\PBName}
-% \changes{v2.02}{2014/11/12}{neu}^^A
-% \begin{macro}{\PSet}
-% \begin{macro}{\Parameter}
-% \begin{macro}{\OParameter}
-% \begin{macro}{\LParameter}
-% \begin{macro}{\OLParameter}
-% \begin{macro}{\PValue}
-% \begin{macro}{\PParameter}
-% \begin{macro}{\POParameter}
-% \begin{macro}{\textOR}
-% \changes{v2.02}{2015/01/25}{neu}^^A
-% Diese Befehle dienen zum Auszeichnen von obligatorischen und optionalen
-% Parametern und Befehlen oder bestimmten Wertzuweisungen.
+% \end{macro}^^A \tud@declare@num
+% \end{macro}^^A \if@openindex
+% \end{macro}^^A \if@tud@declare
+% \begin{environment}{Declaration}
+% \begin{environment}{Obsolete}
+% \changes{v2.05}{2015/11/01}{neu}^^A
+% \begin{macro}{\tud@declaration@list}
+% \begin{macro}{\if@tud@obsolete}
+% \changes{v2.05}{2015/11/01}{neu}^^A
+% Es werden einige Hilfsmakros für die Ausgabe einer Deklaration sowie der
+% dazugehörigen Änderungsliste initialisiert.
% \begin{macrocode}
-\newrobustcmd*\textOR{\,\textbardbl\,}
-\newrobustcmd*\PName[1]{\mbox{\texttt{\textsl{<#1>}}}}
-\newrobustcmd*\PBoolean{\PName{Ein-Aus-Wert}}
-\newrobustcmd*\PBName[1]{\PBoolean\textOR\PName{#1}}
-\newrobustcmd*\PSet{\PName{Einstellung}}
-\newrobustcmd*\Parameter[1]{\mbox{\texttt{\{}\PName{#1}\texttt{\}}}}
-\newrobustcmd*\OParameter[1]{\mbox{\texttt{[}\PName{#1}\texttt{]}}}
-\newrobustcmd*\LParameter{\mbox{\texttt{[}\PName{Parameterliste}\texttt{]}}}
-\newrobustcmd*\OLParameter[1]{%
- \mbox{\texttt{[}\PName{#1}\textOR\PName{Parameterliste}\texttt{]}}%
-}
-\newrobustcmd*\PValue[1]{\mbox{\texttt{#1}}}
-\newrobustcmd*\PParameter[1]{\mbox{\texttt{\{#1\}}}}
-\newrobustcmd*\POParameter[1]{\mbox{\texttt{[#1]}}}
+\newcommand*\tud@declaration@list{}
+\let\tud@declaration@list\relax
% \end{macrocode}
-% \end{macro}^^A \textOR
-% \end{macro}^^A \POParameter
-% \end{macro}^^A \PParameter
-% \end{macro}^^A \PValue
-% \end{macro}^^A \OLParameter
-% \end{macro}^^A \LParameter
-% \end{macro}^^A \OParameter
-% \end{macro}^^A \Parameter
-% \end{macro}^^A \PSet
-% \end{macro}^^A \PBName
-% \end{macro}^^A \PBoolean
-% \end{macro}^^A \PName
-%
-% \subsubsection{Kompilieren von externen Dateien und Querverweise auf diese}
+% Die \env{Declaration}-Umgebung dient zur Deklaration von Optionen, Umgebungen,
+% Befehlen, Parametern, Bezeichnern, Längen, Schriftelementen und Farben. Diese
+% werden mit den entsprechenden Auszeichnungsbefehlen als obligatorisches
+% Argument übergeben. Zuvor kann noch vorher im ersten optionalen Argument eine
+% Beschreibung für die Änderungsliste in der Form \oarg{Verison!Beschreibung}
+% angegeben werden. Danach kann im dritten Argument~-- das zweite optionale~--
+% die Voreinstellung für eine Option oder dergleichen angegeben werden. Das
+% nächste optionale Argument erlaubt die Angabe einer bedingten Voreinstellung,
+% also einer anderen Voreinstellung als der zuerst angegeben unter bestimmten
+% Voraussetzungen. Diese wird in der Form \oarg{Bedingung:Voreinstellung}
+% angegeben. Das letzte Argument ist ebenfalls optional, wird aber in der Form
+% \marg{Zusatz} angegeben und enthält ggf. zusätzliche Informationen.
%
-% \begin{macro}{\Tutorial}
-% \changes{v2.02}{2014/08/22}{neu}^^A
-% \changes{v2.02}{2014/10/22}{Reimplementierung}^^A
-% \begin{macro}{\hypertut}
-% \changes{v2.02}{2014/09/02}{neu}^^A
-% Die gegebenenfalls notwendige Kompilierung und die Referenzierung eines
-% Tutorials aus dem Handbuch erfolgt mit \cs{Tutorial}. Außerdem erfolgt mit
-% \cs{hypertut} ein verlinkter Eintrag in den Index.
+% Die Umgebung \env{Obsolete} hat eine ganz ähnliche Funktion, wird allerdings
+% für die Deklaration veralteter Befehle, Umgebungen, Optionen etc. verwendet.
+% Da sich beide Umgebungen stark ähneln, werden zum Start bzw. zum Abschluss
+% die Makros \cs{tud@declare@start} bzw. \cs{tud@declare@end} aufgerufen. Zu
+% Beginn wird nichts weiter ausgegeben sondern lediglich alle übergebenen
+% Argumente in jeweiligen Listen gesammelt. Die eigentliche Ausgabe der
+% Deklaration erfolgt mit dem Befehl \cs{printdeclarationlist} bezieungsweise
+% \cs{printobsoletelist}.
% \begin{macrocode}
-%<*class>
-\newrobustcmd*\hypertut[2]{%
- \hyperref{tutorials/#1.pdf}{\jobname}{tutorials:#1}{\textsbn{#1.pdf}#2}%
+\NewDocumentEnvironment{Declaration}{omoog}{%
+ \listadd\tud@declaration@list{#2}%
+ \tud@declare@start[#1]{#2}{#3}{#4}{#5}%
+}{%
+ \tud@declare@end{#2}{\printdeclarationlist}%
}
-\NewDocumentCommand\Tutorial{smd||}{%
- \ifnum\pdfshellescape=\@ne\relax%
% \end{macrocode}
-% Um mit den verschachtelten Aufrufen von pdf\LaTeX{} umgehen zu können, wird
-% das ganze Prozedere in ein Skript ausgelagert. Somit können die Aufrufe von
-% pdf\LaTeX{} für die Tutorials im entsprechenden Ordner erfolgen.
+% Für die Umgebung \env{Obsolete} sieht die Eingabe etwas anders aus. Das erste
+% obligatorische Argument sollte eine Versionsnummer enthalten, ab wann die
+% Deklaration veraltet ist. Das erste optionale Argument wird genutzt, wenn
+% für eine weiterhin gültige Deklaration lediglich ein bestimmter Wert
+% entfällt. Wird das erste Argument leer gelassen, erfolgt lediglich die
+% Ausgabe der Deklaration ohne einen Eintrag in die Änderungsliste. Dies ist
+% für Umgebungen und Befehle gedacht, bei denen lediglich ein oder mehrere
+% Parameter geändert wurden bzw. entfallen.
+% \begin{macrocode}
+\newif\if@tud@obsolete
+\NewDocumentEnvironment{Obsolete}{momoog}{%
+ \@tud@obsoletetrue%
+ \ifxblank{#1}{%
+% \end{macrocode}
+% Ohne Versionsnummer erfolgt die Ausgabe ohne Label. Für den Eintrag wird auch
+% keine Änderungsnotiz erzeugt.
+% \begin{macrocode}
+ \listadd\tud@declaration@list{%
+ \def\tud@declare@num{1}%
+ #3%
+ \def\tud@declare@num{0}%
+ }%
+ \tud@declare@start{#3}{#4}{#5}{#6}%
+ }{%
+ \listadd\tud@declaration@list{#3}%
+% \end{macrocode}
+% Wurde ein optionales Argument angegeben, bezieht sich der Änderungseintrag
+% auf ebendieses Argument, die eigentliche, obsolete Deklaration wird als
+% Untereintrag genutzt.
% \begin{macrocode}
- \filemodCmp{tutorials/#2.pdf}{tutorials/#2.tex}{}{%
- \immediate\openout\tud@write@i=tutorials.sh%
- \immediate\write\tud@write@i{%
- cd tutorials^^J%
- pdflatex -shell-escape #2^^J%
- pdflatex #2^^J%
- biber #2^^J%
- pdflatex -shell-escape #2^^J%
- makeglossaries #2^^J%
- pdflatex #2%
- }%
- \immediate\closeout\tud@write@i%
+ \IfValueTF{#2}{%
+ \Changed@At@CreateList[#2]{#1!#3}%
+ }{%
+ \Changed@At@CreateList[#3]{#1}%
+ }%
+ \IfValueTF{#6}{%
+ \tud@declare@start{#3}{#4}{#5}{#6}%
% \end{macrocode}
-% Hier erfolgt die Unterscheidung der Befehle für die unterschiedlichen OS.
+% Ohne eine zusätzliche Angabe imletzten optionalen Argument wird standardmäßig
+% der Entfall der Deklaration angegeben. Alternativ dazu kann im ersten
+% Argument der Versionsangabe mit einem Dopppelpunkt von dieser getrennt eine
+% neue bzw. aktuell gültige Deklaration als Querverweis angegeben werden.
% \begin{macrocode}
- \ifwindows%
- \immediate\write18{rename tutorials.sh tutorials.bat}%
- \immediate\write18{tutorials.bat}%
- \immediate\write18{del tutorials.bat}%
- \else%
- \immediate\write18{bash tutorials.sh}%
- \immediate\write18{rm tutorials.sh}%
+ }{%
+ \toks@{\tud@declare@start{#3}{#4}{#5}}%
+ \def\@tempa{\emph{entf\"allt}}%
+ \in@{:}{#1}%
+ \ifin@%
+ \def\@tempb##1:##2\@nil{%
+ \IfArgIsEmpty{##2}{}{%
+ \def\@tempa{\seeref{##2'page'}}%
+ }%
+ }%
+ \@tempb#1\@nil%
\fi%
+ \eaddto@hook\toks@{\expandafter{\@tempa}}%
+ \the\toks@%
}%
- \fi%
+ }%
+ \@tud@obsoletefalse%
+}{%
+ \@tud@obsoletetrue%
+ \tud@declare@end{#3}{\printobsoletelist}%
+ \@tud@obsoletefalse%
+}
% \end{macrocode}
-% Hyperlink und Indexeintrag.
+% \end{macro}^^A \if@tud@obsolete
+% \end{macro}^^A \tud@declaration@list
+% \end{environment}^^A Obsolete
+% \end{environment}^^A Declaration
+% \begin{macro}{\tud@preset@list}
+% \begin{macro}{\if@tud@preset@list}
+% \begin{macro}{\tud@additional@list}
+% \begin{macro}{\if@tud@additional@list}
+% Dies sind die temporären listen, die für alle Deklarationen verwendet werden.
+% \begin{macrocode}
+\newcommand*\tud@preset@list{}
+\let\tud@preset@list\relax
+\newif\if@tud@preset@list
+\newcommand*\tud@additional@list{}
+\let\tud@additional@list\relax
+\newif\if@tud@additional@list
+% \end{macrocode}
+% \end{macro}^^A \if@tud@additional@list
+% \end{macro}^^A \tud@additional@list
+% \end{macro}^^A \if@tud@preset@list
+% \end{macro}^^A \tud@preset@list
+% \begin{macro}{\tud@declare@start}
+% \changes{v2.05}{2015/11/01}{neu}^^A
+% \begin{macro}{\tud@declare@end}
+% \changes{v2.05}{2015/11/01}{neu}^^A
+% Dies sind die Makros für die eigentliche Abarbeitung der Deklarationsbefehle
+% zu Beginn und Ende der Umgebungen \env{Declaration} und \env{Obsolete}.
+% \begin{macrocode}
+\NewDocumentCommand\tud@declare@start{ommmm}{%
+% \end{macrocode}
+% Die optional angegebenen Änderungen werden mit \cs{Changed@At@CreateList} in
+% der Liste \cs{tud@changedat@list} gesichert und später sowohl für die
+% Randnotiz als auch die Änderungsliste verarbeitet.
+% \begin{macrocode}
+ \Changed@At@CreateList[#2]{#1}%
+% \end{macrocode}
+% Hier noch die Listen für Voreinstellungen\dots
% \begin{macrocode}
- \IfFileExists{tutorials/#2.pdf}{%
- \hypertut{#2}{}%
+ \IfValueTF{#3}{%
+ \@tud@preset@listtrue%
+ \def\@tempa{Voreinstellung: \PValue{#3}}%
+ \IfValueT{#4}{%
+ \def\@tempb[##1:##2]{##1: \PValue{##2}}%
+ \eappto\@tempa{ | \expandonce{\@tempb[#4]}}%
+ }%
+ \listeadd\tud@preset@list{\expandonce\@tempa}%
}{%
- \textsbn{#2.pdf}%
- \tud@shellescape@wrn%
+ \listadd\tud@preset@list{\relax}%
}%
- \IfBooleanF{#1}{%
- \index[files]{\hypertut{#2}{~{\idxfont(Tutorial)}}\IfValueT{#3}{|#3}}%
+% \end{macrocode}
+% \dots sowie zusätliche Informationen.
+% \begin{macrocode}
+ \IfValueTF{#5}{%
+ \@tud@additional@listtrue%
+ \listadd\tud@additional@list{(#5)}%
+ \in@{\Environment}{#2}%
+ \ifin@\listadd\tud@additional@list{\tabularnewline}\fi%
+ }{%
+ \listadd\tud@additional@list{\relax}%
+ \in@{\Environment}{#2}%
+ \ifin@%
+ \listadd\tud@additional@list{\relax}%
+ \listadd\tud@additional@list{\relax}%
+ \fi%
}%
}
-%</class>
% \end{macrocode}
-% Der Befehl für die Querverweise innerhalb von Tutorials.
+% Am Ende der Umgebungen wird das übergebenen Hauptargument erneut ausgeführt,
+% was zum Beenden der Indexeinträge für die jeweilige Deklaration führt
+% (\cs{@openindexfalse}, siehe \cs{Process@Index}). Dafür werden die Makros für
+% die Angabe obligatorischer und optionaler Parameter lokal umdefiniert.
% \begin{macrocode}
-%<*package>
-\newcommand*\Tutorial[1]{\href{#1.pdf}{\textsbn{#1.pdf}}}
-%</package>
+\newcommand*\tud@declare@end[2]{%
+ \ifx\tud@declaration@list\relax\else%
+ \ClassError{tudscrmanual}{\string#2\space is missing}{%
+ \string\tud@declaration@list\space is not empty. Did you\MessageBreak%
+ forget to print this list with\MessageBreak%
+ \string#2?%
+ }%
+ \fi%
+ \vskip-\lastskip%
+ \@tud@declaretrue\@openindexfalse#1\@tud@declarefalse%
+ \pagebreak[1]%
+}
% \end{macrocode}
-% \end{macro}^^A \hypertut
-% \end{macro}^^A \Tutorial
-%
-% \iffalse
-%<*class>
-% \fi
-%
-% \begin{macro}{\IncludeExample}
-% \changes{v2.02}{2014/07/25}{Skalierung der eingefügten Seiten}^^A
-% \changes{v2.02}{2014/10/14}{Reimplementierung}^^A
-% Mit diesem Befehl wird eine \LaTeX-Datei ggf. übersetzt und anschließend als
-% PDF"~Datei wieder eingebunden. Zuvor wird der dazugehörige Quelltext mittels
-% \cs{lstinputlisting} im Dokument ausgegeben. Dieser Befehl wird lediglich für
-% die Klasse \cls{tudscrman} benötigt.
+% \end{macro}^^A \tud@declare@end
+% \end{macro}^^A \tud@declare@start
+% \begin{environment}{Declaration*}
+% \changes{v2.02}{2014/10/09}{neu}^^A
+% \changes{v2.05}{2015/08/04}{Indexaufteilung/-markup für Klassen und Pakete}^^A
+% Die Sternversion der Umgebung \env{Declaration*} ist für die vereinfachte
+% Deklaration von Klassen, Paketen etc. gedacht, bei denen keine Ausgabe
+% sondern lediglich Hyperlink, Indexeintrag und Änderungsnotiz erzeugt werden
+% sollen. Hierbei werden die Befehle \cs{tud@declare@special@start} sowie
+% \cs{tud@declare@special@end} genutzt, wobei der Anker des erzeugten Labels
+% nicht erhöht sondern auf der aktuellen Grundlinie erzeugt wird.
% \begin{macrocode}
-\newcommand*\IncludeExample[1]{%
- \lstinputlisting[style=tudscr]{examples/#1}%
+\NewDocumentEnvironment{Declaration*}{om}{%
+ \tud@declare@special@start[#1]{#2}{2}%
+}{%
+ \tud@declare@special@end{#2}%
+}
% \end{macrocode}
-% Die Beispiele werden nur erneut kompiliert, wenn sich diese geändert haben
-% oder noch gar kein entsprechendes PDF"~Dokument existiert.
-% \begin{macrocode}
- \ifnum\pdfshellescape=\@ne\relax%
- \filemodCmp{examples/#1.pdf}{examples/#1.tex}{}{%
- \immediate\write18{%
- pdflatex -output-directory examples examples/#1.tex
- pdflatex -output-directory examples examples/#1.tex
- }%
+% \end{environment}^^A Declaration*
+% \begin{environment}{Bundle*}
+% \changes{v2.05}{2015/11/01}{neu}^^A
+% Die Umgebung \env{Bundle*} wird verwendet, wenn ein zusätzliche Paket oder
+% eine weitere Klasse in Ergänzung zu den Hauptklassen dokumentiert wird. Dabei
+% wird die Umgebung \env{Bundle} geöffnet, nachdem das obligatorischen Argument
+% mit dem Befehl \cs{tud@declare@special@start} deklariert wird. Dabei sollte
+% die Umgebung \env{Bundle*} direkt nach einer Gliederungsüberschrift genutzt
+% werden, in welcher das zu deklarierende Element (Klasse, Paket etc.) genannt
+% wird, da der Anker des erzeugten Labels weiter nach oben auf die Höhe der
+% Überschirft verschoben wird. Zum Abschluss der Deklaration wird nach dem
+% Schließen der Umgebung \env{Bundle} \cs{tud@declare@special@end} genutzt.
+% \begin{macrocode}
+\NewDocumentEnvironment{Bundle*}{om}{%
+ \tud@declare@special@start[#1]{#2}{3}%
+ \Bundle{#2}%
+}{%
+ \endBundle%
+ \tud@declare@special@end{#2}%
+}
+% \end{macrocode}
+% \end{environment}^^A Bundle*
+% \begin{macro}{\tud@declare@special@start}
+% \changes{v2.05}{2015/11/01}{neu}^^A
+% \begin{macro}{\tud@declare@special@end}
+% \changes{v2.05}{2015/11/01}{neu}^^A
+% Die beiden dienen zur vereinfachten Deklaration. Es wird keine Ausgabe
+% sondern lediglich Hyperlink, Indexeintrag und Änderungsnotiz erzeugt. Das
+% optionale Argument dient einem Änderungseintrag, das erste obligaotrische
+% gilt der eigentlichen Deklaration, das zweite zur Einstellung des Makros
+% \cs{tud@declare@num}, mit welchem das Verhalten für das Erzeugen der Labels
+% gesteuert wird.
+% \begin{macrocode}
+\NewDocumentCommand\tud@declare@special@start{omm}{%
+ \Changed@At@CreateList(#2){#1}%
+ \def\tud@declare@num{#3}%
+ \@tud@declaretrue\@openindextrue#2\@tud@declarefalse%
+ \def\tud@declare@num{0}%
+}
+\newcommand*\tud@declare@special@end[1]{%
+ \ifx\tud@changedat@list\relax\else%
+ \ClassError{tudscrmanual}{\string\printchangedatlist\space is missing}{%
+ \string\tud@changedat@list\space is not empty. Did you\MessageBreak%
+ forget to print this list with \string\printchangedatlist?%
}%
\fi%
-% \end{macrocode}
-% Ist die gesuchte Datei vorhanden, wird diese auch eingebunden. Andernfalls
-% wird eine Warnung mit dem Hinweis auf die notwendige Verwednung von
-% \val{pdflatex} mit der Option \opt{--shell-escape} erzeugt.
-% \begin{macrocode}
- \IfFileExists{examples/#1.pdf}{%
- \includepdf[%
- pages=-,noautoscale,frame,keepaspectratio,pagecommand={},%
- height=\textheight,width=\textwidth, offset=5mm 0mm%
- ]{examples/#1.pdf}%
- }{%
- \tud@shellescape@wrn%
- }%
+ \@tud@declaretrue\@openindexfalse#1\@tud@declarefalse%
}
% \end{macrocode}
-% \end{macro}^^A \IncludeExample
-%
-% \iffalse
-%</class>
-% \fi
-%
-% \subsubsection{ToDo-Liste}
+% \end{macro}^^A \tud@declare@special@end
+% \end{macro}^^A \tud@declare@special@start
+% \begin{macro}{\printdeclarationlist}
+% \begin{length}{\tud@lastskip}
+% \changes{v2.05}{2015/11/01}{neu}^^A
+% \begin{macro}{\index}
+% \changes{v2.05}{2015/11/01}{neu}^^A
+% \begin{macro}{\label}
+% \changes{v2.05}{2015/11/01}{neu}^^A
+% Mit dem Befehl \cs{printdeclarationlist} erfolgt die eingentliche Ausgabe
+% aller Deklarationen. Zweck ist es, mehrere \env{Declaration}-Umgebungen
+% ineinander verschachteln zu können und eine Ausgabe aller auf einmal zu
+% erzeugen. Die durch die ggf. nacheinander folgenden Deklarationen wurden in
+% entsprechenden Listen gesammelt und werden hier jetzt formatiert ausgegben.
%
-% \begin{macro}{\ToDo}
-% \changes{v2.02}{2014/07/10}{Verwendung von \pkg{todonotes}}^^A
-% \changes{v2.03}{2015/01/25}{Ausgabe auf bestimmten Typ beschränkbar}^^A
-% \begin{macro}{\@ToDo}
-% \changes{v2.02}{2014/07/10}{neu}^^A
-% \begin{macro}{\ListOfToDo}
-% \changes{v2.02}{2014/07/10}{neu}^^A
-% Mit dem Befehl \cs{ToDo}\oarg{options}\marg{inline text}\oarg{marginnote}
-% kann bei aktivierter Option \opt{ToDo} eine Notiz mit einer offenen Ausgabe
-% erstellt werden. Das vorangestellte Argument kann Optionen beinhalten, welche
-% durch \pkg{todonotes} unterstützt werden. Außerdem werden die vier boolschen
-% Schlüssel \val{doc}, \val{man}, \val{imp} und \val{nxt} definiert, welche
-% eine feste, farbliche Kodierung erzeugen. Das angestellte optionale Argument
-% erzeugt eine gleichartige Notiz am Rand, in welcher vorzugsweise die
-% angedachte Version eingetragen werden kann. Mit \cs{ListOfToDo} wird abhängig
-% von der Option \opt{ToDo} eine Liste der offenen Aufgaben erstellt.
-% \begin{macrocode}
-\newcommand*\@ToDo{}
-\NewDocumentCommand\ToDo{somo}{%
- \ifbool{@tud@todo}{%
- \begingroup%
+% Da die Verwendung der Befehle \cs{index} und \cs{label} nach Überschriften
+% dazu führt, dass \cs{addvspace} nicht mehr richtig verendet werden kann,
+% wird hier etwas gebastelt, damit das trotzdem funktioniert. Dabei wird
+% einfach bei der verwendung der genannten Befehle der zuvor gesetzte vertikale
+% Abstand in \cs{tud@lastskip} gesichert.
+% \begin{macrocode}
+\newskip\tud@lastskip
+\pretocmd{\index}{\tud@lastskip=\lastskip}{}{\tud@patch@wrn{index}}
+\pretocmd{\label}{\tud@lastskip=\lastskip}{}{\tud@patch@wrn{label}}
+\NewDocumentCommand\printdeclarationlist{sd()}{%
+ \ifx\tud@declaration@list\relax\else%
+ \ifhmode%
+ \vskip\medskipamount%
+ \else%
% \end{macrocode}
-% Die boolschen Schlüssel.
+% Im vertikalen modus wird dann einfach vom eigentlich gewünschten Abstand der
+% durch \cs{label} bzw. \cs{index} erzwungene vertikale Freiraum abgezogen.
+% Sollte dann noch ein positiver Wert bestehen, wird dieser einfach zusätzlich
+% gesetzt.
% \begin{macrocode}
- \define@boolkey{todonotes}{doc}[true]{%
- \ifbool{KV@todonotes@doc}{\setkeys{todonotes}{color=HKS41!10}}{}%
- }%
- \define@boolkey{todonotes}{rls}[true]{%
- \ifbool{KV@todonotes@rls}{\setkeys{todonotes}{color=HKS44!50}}{}%
- }%
- \define@boolkey{todonotes}{imp}[true]{%
- \ifbool{KV@todonotes@imp}{\setkeys{todonotes}{color=HKS07!50}}{}%
- }%
- \define@boolkey{todonotes}{nxt}[true]{%
- \ifbool{KV@todonotes@nxt}{\setkeys{todonotes}{color=HKS57!50}}{}%
- }%
+ \@tempskipa=\glueexpr\medskipamount-\tud@lastskip\relax%
+ \ifdim\@tempskipa>\z@%
+ \addpenalty{\@beginparpenalty}%
+ \addvspace{\@tempskipa}%
+ \fi%
+ \fi%
% \end{macrocode}
-% In \cs{@ToDo} wird das optionale Argument für \pkg{todonotes} gesichert.
+% Anschließend wird die Länge auf jeden Fall zurückgesetzt.
% \begin{macrocode}
- \def\@ToDo{}%
- \IfValueTF{#2}{%
- \IfBooleanTF{#1}{\edef\@ToDo{#2,nolist}}{\edef\@ToDo{#2}}%
- }{%
- \IfBooleanT{#1}{\edef\@ToDo{nolist}}%
- }%
+ \global\tud@lastskip=\z@%
+ \@afterindentfalse\@afterheading%
+ \@tud@declaretrue\@openindextrue%
% \end{macrocode}
-% Damit die Randnotiz nicht verrutscht, wird \cs{marginnote} anstelle von
-% \cs{marginpar} verwendet.
+% Die deklarierten Optionen, Umgebungen, Befehle etc. werden umrahmt. Dabe
+% 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
+% \makeatletter\the\z@\makeatother~gesetzt wird, muss für einen richtig
+% platzierten Link dieser in \cs{HyperRaiseLinkDefault} gesichert werden.
% \begin{macrocode}
- \renewcommand*\marginpar[2][]{%
- \marginnote[##1]{##2}[\dimexpr-1.6ex+1pt\relax]%
- }%
+ \def\@tempa##1{\ignorespaces##1\tabularnewline}%
+ \edef\HyperRaiseLinkDefault{\the\baselineskip}%
+ \sbox\z@{%
+ \begin{tabular}{|l|}%
+ \hline%
+ \forlistloop\@tempa{\tud@declaration@list}%
+ \hline%
+ \end{tabular}%
+ }\usebox\z@%
+ \@tud@declarefalse%
% \end{macrocode}
-% Die Ausgabe erfolgt entweder für alle ToDo-Notizen oder nur den per Option
-% festgelegten Typ.
+% Danach werden ggf. die Voreinstellungen und Zusatzinformationen in etwas
+% kleinerer Schrift gesetzt.
% \begin{macrocode}
- \@tempswafalse
- \ifdefvoid{\tud@todo@type}{\@tempswatrue}{}%
- \IfValueT{#2}{%
- \@for\@tempa:=#2\do{\ifstr{\@tempa}{\tud@todo@type}{\@tempswatrue}{}}%
- }%
+ \ifboolexpr{bool {@tud@preset@list} or bool {@tud@additional@list}}{%
+ \def\@tempa##1{\small\ignorespaces##1\tabularnewline}%
+ \qquad%
+ \if@tud@preset@list%
+ \begin{tabular}{@{}l@{}}%
+ \forlistloop\@tempa{\tud@preset@list}%
+ \end{tabular}%
+ \hspace{\tabcolsep}%
+ \fi%
+ \if@tud@additional@list%
+ \begin{tabular}{@{}l@{}}%
+ \forlistloop\@tempa{\tud@additional@list}%
+ \end{tabular}%
+ \fi%
+ }{}%
% \end{macrocode}
-% Vor der Ausgabe ist eine vertikale Verschiebung um den durch \pkg{todonotes}
-% definierten Leerraum notwendig.
+% Alle für die Deklaration verwendeten Listen werden nach ihrer Abarbeitung
+% zurückgesetzt.
% \begin{macrocode}
- \if@tempswa%
- \vskip.8ex%
- \IfValueT{#4}{%
- \settowidth\marginparwidth{#4}%
- \addtolength\marginparwidth{\dimexpr1.6ex+1pt\relax}%
- \let\par\relax\noindent%
- \edef\@tempa{\noexpand\todo[\@ToDo,noline,nolist]}%
- \@tempa{#4}%
- }%
- \edef\@tempa{\noexpand\todo[\@ToDo,inline]}%
- \@tempa{#3}%
- \fi%
- \endgroup%
- \par\noindent%
- }{}%
- \ignorespaces%
+ \global\let\tud@declaration@list\relax%
+ \global\let\tud@preset@list\relax%
+ \global\let\tud@additional@list\relax%
+ \global\@tud@preset@listfalse%
+ \global\@tud@additional@listfalse%
+% \end{macrocode}
+% Die Einträge in der Änderungsliste sowie die dazugehörige Randnotiz werden
+% innerhalb der Deklaration mit \cs{printchangedatlist} erzeugt. Das optionale
+% Argument sorgt für die Verschiebung der Randnotiz auf die richtige Höhe, um
+% den Höhenversatz zwischen Randnotiz und Deklarationsrahmen auszugleichen.
+% \begin{macrocode}
+ \print@changedatlist{#1}{%
+ \dimexpr.5\ht\strutbox+.5\dp\strutbox-.5\ht0-.5\dp0\relax%
+ }%
+% \end{macrocode}
+% Zum Schluss wird das optionale Argument (in runden Klammern) neben der
+% Deklarationsbox ausgegeben.
+% \begin{macrocode}
+ \IfValueT{#2}{#2}%
+ \par\nobreak%
+ \vskip\medskipamount%
+ \@afterindentfalse\@afterheading%
+ \fi%
}
% \end{macrocode}
-% Zum Schluss wird der Befehl \cs{ListOfToDo} definiert, der die Liste der noch
-% zu erledigenden Punkte nur ausgeführt ausgibt, wenn die Option \opt{ToDo}
-% aktiviert ist. Außerdem werden die Randnotizen auf den linken~-- weil
-% größeren~-- Rand gesetzt.
+% \end{macro}^^A \label
+% \end{macro}^^A \index
+% \end{length}^^A \tud@lastskip
+% \end{macro}^^A \printdeclarationlist
+% \begin{macro}{\printobsoletelist}
+% \changes{v2.05}{2015/11/01}{neu}^^A
+% Damit werden Deklarationen der Umgebung \env{Obsolete} ausgegeben.
+% \begin{macrocode}
+\newcommand*\printobsoletelist{%
+ \@tud@obsoletetrue%
+ \printdeclarationlist*%
+ \@tud@obsoletefalse%
+}
+% \end{macrocode}
+% \end{macro}^^A \printobsoletelist
+% \begin{macro}{\printchangedatlist}
+% \changes{v2.05}{2015/11/01}{neu}^^A
+% Damit werden Änderungsnotizen der Umgebungen \env{Declaration*} sowie
+% \env{Bundle} und \env{Bundle*} ausgegeben.
% \begin{macrocode}
-\newcommand*\ListOfToDo{\if@tud@todo\listoftodos\fi}
-\reversemarginpar
+\NewDocumentCommand\printchangedatlist{sO{\z@}}{%
+ \print@changedatlist{#1}{#2}%
+}
% \end{macrocode}
-% \end{macro}^^A \ListOfToDo
-% \end{macro}^^A \@ToDo
-% \end{macro}^^A \ToDo
+% \end{macro}^^A \printchangedatlista
+%
+% \iffalse
+%</class>
+% \fi
+%
+% \subsection{Markup von Klassen, Paketen, Optionen und weiteren Elementen}
+%
+% Es folgen die Definitionen für Befehle und Umgebungen für Klasse und Paket,
+% welche sich überschneidenden und für beide benötigt werden. Allerdings sind
+% diese für Klasse und Paket in ihrer Implementierung teilweise unterschiedlich.
+%
+% Als erstes werden für Klasse und Paket einige Hilfmakros definiert.
%
-% \subsubsection{Kleinkram}
-%
% \begin{macro}{\bsc}
-% \changes{v2.02}{2014/07/22}{\cs{newrobustcmd} aus \pkg{etoolbox} anstelle von
+% \changes{v2.02}{2014/07/22}{\cs{newrobustcmd} aus \pkg{etoolbox} anstatt
% \cs{DeclareRobustCommand}}^^A
% Eine einfacher zu verwendende Kurzform.
% \begin{macrocode}
\newrobustcmd*\bsc{\@backslashchar}
% \end{macrocode}
% \end{macro}^^A \bsc
-% \begin{macro}{\tud@shellescape@wrn}
-% \changes{v2.02}{2014/10/14}{neu}^^A
-% Dieses Makro wird verwendet, wenn eine gesuchte Datei nicht gefunden wurde,
-% weil das Dokument noch nicht mit der Option \opt{--shell-escape} kompiliert
-% wurde.
+% \begin{macro}{\suffix}
+% \changes{v2.05}{2015/10/27}{neu}^^A
+% Für alle möglichen, zusätzlichen Informationen bei Deklarationen, im Index
+% oder der normalen in Ausgabe im Fließtext wird eine etwas kleinere Schrift
+% verwendet.
+% \begin{macrocode}
+\newrobustcmd*\suffix[1]{\begingroup~\scriptsize(#1)\endgroup}
+% \end{macrocode}
+% \end{macro}^^A \suffix
+% \begin{macro}{\NewExpandableDocumentCommand}
+% \changes{v2.02}{2014/11/04}{neu}^^A
+% Für Labels, Index- und Änderungs sowie PDF-Outline-Einträge etc. müssen ganz
+% bestimmte Markup-Befehle durch eine expandierbare Version ersetzt werden. Der
+% Befehl \cs{NewExpandableDocumentCommand} wird definiert, um dies möglichst
+% einfach zu gestalten.
+% \begin{macrocode}
+\newcommand*\NewExpandableDocumentCommand[3]{%
+ \NewDocumentCommand#1{#2}{#3}%
+ \DeclareExpandableDocumentCommand#1{#2}{#3}%
+}
+% \end{macrocode}
+% \end{macro}^^A \NewExpandableDocumentCommand
+%
+% \subsubsection{Definition der Markup-Befehle}
+%
+% \changes{v2.05}{2015/11/02}{Markup-Befehle komplett überarbeitet}^^A
+%
+% Im Folgenden werden allerhand Befehle mit Hilfe des Paketes \pkg{xparse}
+% definiert, um bestimmte Begriffe, Klassen, Pakete, Optionen, Umgebungen,
+% Befehle, Parameter, Bezeichner, Längen, Schriftelemente und Farben speziell
+% auszuzeichnen. Diese Befehle lauten für Klasse und Paket aus Gründen der
+% Konsistenz zwar gleich, unterschieden sich jedoch ein klein wenig in der
+% Implementierung.
+%
+% Die Sternversion all dieser Befehlen tragen nichts in den Index ein. Für
+% (fast) alle der folgenden Befehle gilt, dass diese mit zwei optionalen
+% Argumenten am Ende genutzt werden können. Sollte ein Label existieren, wird
+% automatisch ein Hyperlink erzeugt, welcher mit der optionalen Angabe von
+% \val{'}\meta{Referenzvariante}\val{'} um einen textuellen Querverweis ergänzt
+% werden kann. Mit \val{\textbar}\meta{Indexmarkup}\val{\textbar} kann die
+% Erscheinung im Index angepasst werden. Bei einigen Befehlen kann zusätzlich
+% zuvor im Markup mit dem optionalen Argument \parg{Bundleelement} die
+% Zuweisung auf ein bestimmtes Paket oder eine Klasse aus dem \TUDScript-Bundle
+% erfolgen.
+%
+% Die eigentliche Behandlung erfolgt mit dem Befehl \cs{Process@Markup},
+% welcher die tatsächliche Auszeichnung im Fließtext bzw. als Deklaration
+% übernimmt. Das Auszeichnungsformat wird dafür zuvor mit \cs{Markup@SetFormat}
+% festgelegt. Ein Eintrag in den Index wird mit \cs{Process@Index} realisiert.
+% Für die Änderungsliste wird der Befehl \cs{Process@ChangedAt} genutzt, um die
+% entsprechende Formatierung zu gewährleisten, wobei dies nur für die Klasse
+% \cls{tudscrmanual} und nicht für das Paket \pkg{tudscrtutorial} gilt.
+%
+% \begin{macro}{\ProcessorKeyVal}
+% \changes{v2.05}{2015/11/01}{neu}^^A
+% \begin{macro}{\tud@keyval@error}
+% \changes{v2.05}{2015/11/01}{neu}^^A
+% Bei Optionen und Parametern können spezielle Werte einfach im Hauptargument
+% durch \val{=} getrennt angegeben werden. Um diese auszuwerten, wird dieser
+% Befehl definiert, welcher als Argumentprozessor verwendet wird.
+% \begin{macrocode}
+\newcommand*\ProcessorKeyVal[1]{%
+ \begingroup%
+ \in@{=}{#1}%
+% \end{macrocode}
+% Wird im Argument ein \val{=} gefunden, so wird alles Darauffolgende als Wert
+% erkannt und dem eigentlichen Hauptargument bei der Ausgabe angehangen. Das
+% Makro, welches diesen Argumentprozessor verwendet, erhält als Ausgabe also
+% entweder \marg{Schlüssel} oder \marg{Schlüssel}\val{=}\meta{Wert}\val{=}
+% falls \cs{ProcessorKeyVal} mit \marg{Schlüssel=Wert} verwendet wurde .
% \begin{macrocode}
-\newcommand*\tud@shellescape@wrn{%
+ \ifin@%
+ \def\@tempa##1=##2\@nil{\toks@{{##1}=##2=}}%
+ \else%
+ \def\@tempa##1\@nil{\toks@{{##1}}}%
+ \fi%
+ \@tempa#1\@nil%
+ \edef\tud@reserved{%
+ \noexpand\endgroup%
+ \def\noexpand\ProcessedArgument{\the\toks@}%
+ }%
+ \tud@reserved%
+}
+% \end{macrocode}
+% Es gibt auch noch eine interne Variante für ein optioneles Werte-Argument.
+% Dabei sollte vermieden werden, dass im Markup das Argument für einen Wert
+% doppelt angegeben wird. In diesem Fall wird dieser Fehler ausgegeben.
+% \begin{macrocode}
+\newcommand*\tud@keyval@error{%
%<*class>
- \ClassWarning%
+ \ClassError{tudscrmanual}%
%</class>
%<*package>
- \PackageWarning%
+ \PackageError{tudscrtutorial}%
%</package>
- {tudscrman}{%
- You have to recompile this document with\MessageBreak%
- activated shell escape option%
- }%
- \global\let\tud@shellescape@wrn\relax%
+ {Wrong usage of optional argument for value}%
+ {There are two optional arguments for a value given!}%
}
% \end{macrocode}
-% \end{macro}^^A \tud@shellescape@wrn
-% \begin{macro}{\pdfexpandableoutline}
-% \changes{v2.02}{2014/11/04}{neu}^^A
-% \begin{macro}{\@TUDScript}
-% \changes{v2.02}{2014/08/16}{neu}^^A
-% Für die PDF-Outline-Einträge müssen einige Befehle durch eine expandierbare
-% Version ersetzt werden. Der Befehl \cs{pdfexpandableoutline} wird definiert,
-% um dies möglichst einfach zu gestalten.
-% \begin{macrocode}
-\newcommand*\pdfexpandableoutline[1]{%
- \AfterPackage*{hyperref}{\pdfstringdefDisableCommands{\csletcs{#1}{@#1}}}
+% \end{macro}^^A \tud@keyval@error
+% \end{macro}^^A \ProcessorKeyVal
+% \begin{environment}{Bundle}
+% \changes{v2.05}{2015/11/01}{neu}^^A
+% \begin{macro}{\tud@bdl@curr}
+% \changes{v2.05}{2015/08/04}{neu}^^A
+% \begin{macro}{\tud@bdl@dflt}
+% \changes{v2.05}{2015/11/01}{neu}^^A
+% \begin{macro}{\tud@if@bdl}
+% \changes{v2.05}{2015/08/04}{neu}^^A
+% Die Umgebung \env{Bundle} kann nicht verschachtelt werden und prüft zuerst
+% dementsprechend die Verwendung. Anschließend wird lediglich das Makro
+% \cs{tud@bdl@curr} auf das übergebene Argument gesetzt, um innerhalb der
+% Umgebung erstellte Label und Indexeinträge zu beeinflussen.
+% \begin{macrocode}
+\newenvironment{Bundle}[1]{%
+ \tud@if@bdl{%
+%<*class>
+ \ClassError{tudscrmanual}%
+%</class>
+%<*package>
+ \PackageError{tudscrtutorial}%
+%</package>
+ {Nested environment `Bundle'}{%
+ It is not possible to nest this environment, when\MessageBreak%
+ a cross-label was given before.%
+ }%
+ }{%
+ \gdef\tud@bdl@curr{#1}%
+ }%
+ \ignorespaces%
+}{%
+ \global\let\tud@bdl@curr\tud@bdl@dflt%
+ \aftergroup\ignorespaces%
}
% \end{macrocode}
-% Den Anfang mach gleich \cs{TUDScript}.
+% Diese Makros werden für das Definieren eines Bundle-Elements und ggf. das
+% Prüfen des selbigen benötigt.
% \begin{macrocode}
-\newcommand*\@TUDScript{TUD-KOMA-Script}
-\pdfexpandableoutline{TUDScript}
+\newcommand*\tud@bdl@curr{}
+\newcommand*\tud@bdl@dflt{tudscr}
+\let\tud@bdl@curr\tud@bdl@dflt
+\newcommand*\tud@if@bdl[2]{\ifstr{\tud@bdl@curr}{\tud@bdl@dflt}{#2}{#1}}
% \end{macrocode}
-% \end{macro}^^A \@TUDScript
-% \end{macro}^^A \pdfexpandableoutline
-%
-% \subsubsection{Markup von Klassen, Paketen, Optionen und weiteren Elementen}
-%
-% Im Folgenden werden allerhand Befehle mit Hilfe des Paketes \pkg{xparse}
-% definiert, um bestimmte Begriffe, Klassen, Pakete, Optionen, Umgebungen,
-% Befehle, Parameter, Bezeichner, Längen, Schriftelemente und Farben speziell
-% auszuzeichnen. Diese Befehle lauten für Klasse und Paket nutzen aus Gründen
-% der Konsistenz zwar gleich, unterschieden sich jedoch in der Implementierung.
-%
-% Für die Klasse gilt, dass die Sternversion all dieser Befehlen nichts in den
-% Index einträgt, wenn diese denn im Fließtext Verwendung finden. Wird die
-% Sternversion jedoch in einer Änderungsnotiz genutzt, so wird die für diese
-% normalerweise angehängte Beschreibung des Elementes unterdrückt. Für (fast)
-% alle der folgenden Befehle gilt, dass diese mit zwei optionalen Befehlen am
-% Ende genutzt werden können. Mit \val{'refformat'} kann angegeben werden, ob
-% der automatisch erzeugte Hyperlink um einen textuellen Querverweis ergänzt
-% werden soll. Mit \val{|idxformat|} kann die Erscheinung im Index angepasst
-% werden. Die eigentliche Behandlung der Eingabe und die Eintragungen in den
-% Index erfolgen dabei mit dem Befehl \cs{@ProcessOutput}, für einen Eintrag
-% in die Änderungsliste wird der Befehl \cs{@ProcessChangedAt} genutzt.
-%
-% Die Befehle für das Paket \pkg{tudscrman} sind in ihrer Funktionalität um
-% einiges reduziert. Die meisten besitzen nur ein obligatorisches Argument für
-% die formatierte Ausgabe sowie evtl. eine Sternversion, die einen Querverweis
-% auf das Handbuch erzeugt.
+% \end{macro}^^A \tud@if@bdl
+% \end{macro}^^A \tud@bdl@dflt
+% \end{macro}^^A \tud@bdl@curr
+% \end{environment}^^A Bundle
% \begin{macro}{\Application}
% \changes{v2.02}{2014/10/08}{überarbeitet}^^A
% \begin{macro}{\@Application}
% Die Auszeichnung und der Indexeintrag einer Anwendungssoftware.
% \begin{macrocode}
-%<*class>
-\NewDocumentCommand\Application{smd||}{%
- \ifdin{#2}{%
- \mbox{\textsbs{#2}}%
- \CheckIndexFormat{#1}{#3}%
- \IfBooleanF{#1}{%
- \index{\textsbs{#2}~{\idxfont(Anwendungssoftware)}\IfValueT{#3}{|#3}}%
- }%
+\NewExpandableDocumentCommand\@Application{sm}{#2}
+\NewDocumentCommand\Application{smd()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|%
}
-\DeclareExpandableDocumentCommand\@Application{sm}{#2}
-\pdfexpandableoutline{Application}
-%</class>
-%<*package>
-\newcommand*\Application[1]{\ifdin{#1}{\mbox{\textsbs{#1}}}}
-%</package>
% \end{macrocode}
% \end{macro}^^A \@Application
% \end{macro}^^A \Application
% \begin{macro}{\Distribution}
% \changes{v2.02}{2014/10/08}{überarbeitet}^^A
-% Die Auszeichnung und der Indexeintrag einer \LaTeX-Distribution.
-% \begin{macrocode}
-%<*class>
-\NewDocumentCommand\Distribution{smod||}{%
- \ifdin{#2\IfValueT{#3}{~#3}}{%
- \mbox{\textsbn{#2\IfValueT{#3}{~#3}}}%
- \CheckIndexFormat{#1}{#4}%
- \IfBooleanF{#1}{%
- \index{\textsbn{#2}~{\idxfont(Distribution)}\IfValueT{#4}{|#4}}%
- }%
+% \begin{macro}{\@Distribution}
+% Die Auszeichnung und der Indexeintrag einer \LaTeX-Distribution. Das
+% optionale Argument kann für das Anhängen einer Versionsnummer o.\,ä. im
+% Fließtext genutzt werden.
+% \begin{macrocode}
+\NewExpandableDocumentCommand\@Distribution{sm}{#2}
+\NewDocumentCommand\Distribution{smod()d||}{%
+ \Markup@SetFormat{\sbnfont}%
+ \IfValueTF{#3}{%
+ \Process@Markup{\Distribution{#2}}[~#3](#4)%
+ }{%
+ \Process@Markup{\Distribution{#2}}(#4)%
}%
+ \Process@Index{#1}{\Distribution{#2}}[Distribution](#4)|#5|%
}
-%</class>
-%<*package>
-\newcommand*\Distribution[1]{\ifdin{#1}{\mbox{\textsbn{#1}}}}
-%</package>
% \end{macrocode}
+% \end{macro}^^A \@Distribution
% \end{macro}^^A \Distribution
-% \begin{macro}{\Path}
-% \changes{v2.02}{2014/07/22}{\cs{DeclareRobustCommand} ersetzt durch
-% \cs{newrobustcmd} aus \pkg{etoolbox}}^^A
-% Die Auszeichnung eines Dateipfades.
-% \begin{macrocode}
-\newrobustcmd*\Path[1]{\mbox{\texttt{#1}}}
+% \begin{macro}{\Engine}
+% \changes{v2.05}{2015/11/04}{neu}^^A
+% \begin{macro}{\@Engine}
+% \changes{v2.05}{2015/11/04}{neu}^^A
+% Die Auszeichnung und der Indexeintrag für ein bestimmtes Textsatzsystem.
+% \begin{macrocode}
+\NewExpandableDocumentCommand\@Engine{sm}{#2}
+\NewDocumentCommand\Engine{smd()d||}{%
+ \Markup@SetFormat{\sbnfont}%
+ \Process@Markup{\Engine{\hologo{#2}}}(#3)%
+ \Process@Index{#1}{\Engine{#2}}[Textsatzsystem](#3)|#4|%
+}
% \end{macrocode}
-% \end{macro}^^A \Path
+% \end{macro}^^A \@Engine
+% \end{macro}^^A \Engine
% \begin{macro}{\File}
% \changes{v2.02}{2014/10/08}{überarbeitet}^^A
+% \begin{macro}{\@File}
% Die Auszeichnung und der Indexeintrag einer Datei.
% \begin{macrocode}
-%<*class>
-\NewDocumentCommand\File{smd||}{%
- \ifdin{#2}{%
- \mbox{\textsbn{#2}}%
- \CheckIndexFormat{#1}{#3}%
- \IfBooleanF{#1}{%
- \index[files]{\textsbn{#2}~{\idxfont(Datei)}\IfValueT{#3}{|#3}}%
- }%
- }%
+\NewExpandableDocumentCommand\@File{sm}{#2}
+\NewDocumentCommand\File{smd()d||}{%
+ \Markup@SetFormat{\sbnfont}%
+ \Process@Markup{\File{#2}}(#3)%
+ \Process@Index{#1}{\File{#2}}[Datei](#3)|#4|%
}
-%</class>
-%<*package>
-\newcommand*\File[1]{\ifdin{#1}{\mbox{\textsbn{#1}}}}
-%</package>
% \end{macrocode}
+% \end{macro}^^A \@File
% \end{macro}^^A \File
% \begin{macro}{\Class}
% \changes{v2.02}{2014/10/08}{überarbeitet}^^A
% \begin{macro}{\@Class}
-% \begin{macro}{\@TempClass}
-% \changes{v2.02}{2014/10/08}{entfernt}^^A
-% \begin{macro}{\DeclareClass}
-% \changes{v2.02}{2014/10/09}{entfernt}^^A
-% Die Auszeichnung und der Indexeintrag einer Klasse. Sollte gerade DIN~Bold
-% verwendet werden~-- der Befehl wird innerhalb einer Überschrift genutzt~--
-% wird lediglich das Hauptargument ausgegeben. Das optionale Argument zwischen
-% Apostrophen kann für die Formatierung eines Querverweises im Text genutzt
-% werden, das optionale Argument zwischen senkrechten Strichen dient der
-% Formatierung des Indexeintrages. Außerdem wird für Einträge mit dem Paket
-% \pkg{hyperref} mit \cs{@Class} eine expandierbare Version definiert.
-% \begin{macrocode}
-%<*class>
-\NewDocumentCommand\Class{smd''d||}{%
- \if@changelog%
- \@ProcessChangedAt{#1}{files}{\protect\sbnfont}{#2}{Klasse}%
+% Die Auszeichnung und der Indexeintrag einer Klasse. Das optionale Argument
+% zwischen Apostrophen kann für die Formatierung eines Querverweises im Text
+% genutzt werden, das optionale Argument zwischen senkrechten Strichen dient
+% der Formatierung des Indexeintrages.
+% \begin{macrocode}
+\NewExpandableDocumentCommand\@Class{sm}{#2}
+\NewDocumentCommand\Class{smd()d''d||}{%
+%<*class>
+ \if@tud@changedat%
+ \Process@ChangedAt{\Class{#2}}[Klasse]%
\else%
- \ifdin{#2}{%
- \SetIndexFormat{#1}{#4}%
- \@ProcessOutput{\textsbn{#2}}'#3'%
- {files}[\protect\sbnfont]{#2}[~{\idxfont(Klasse)}]%
- }%
+%</class>
+ \Markup@SetFormat{\sbnfont}%
+ \Process@Markup{\Class{#2}}(#3)'#4'%
+ \Process@Index{#1}{\Class{#2}}[Klasse](#3)|#5|%
+%<*class>
\fi%
-}
%</class>
-%<*package>
-\NewDocumentCommand\Class{sm}{%
- \ifdin{#2}{%
- \IfBooleanTF{#1}{%
- \manualhyperref{files:#2}{\textsbn{#2}}%
- }{%
- \textsbn{#2}%
- }%
- \index[files]{\begingroup\protect\sbnfont#2\endgroup~{\idxfont(Klasse)}}%
- }%
}
-%</package>
-\DeclareExpandableDocumentCommand\@Class{sm}{#2}
-\pdfexpandableoutline{Class}
% \end{macrocode}
-% \end{macro}^^A \DeclareClass
-% \end{macro}^^A \@TempClass
% \end{macro}^^A \@Class
% \end{macro}^^A \Class
% \begin{macro}{\Package}
-% \changes{v2.02}{2014/07/10}{Ausgabe für ChangeLog hinzugefügt}^^A
-% \changes{v2.02}{2014/10/08}{überarbeitet}^^A
+% \changes{v2.02}{2014/07/10}{Ausgabe für Änderungsliste hinzugefügt}^^A
% \begin{macro}{\@Package}
-% \begin{macro}{\@TempPackage}
-% \begin{macro}{\DeclarePackage}
-% \changes{v2.02}{2014/10/09}{entfernt}^^A
% Für die Auszeichnungen von Paketen gelten vorherigen Aussagen äquivalent.
% Für Pakete wird ergänzend ein Hyperlink auf CTAN erzeugt, wenn für dieses
-% kein Label im Dokument besteht, wo dieses genauer erläutert wird. Mit dem
-% optionalen Argument in runden Klammern lässt sich der Paketname für den Link,
-% welcher normalerweise aus obligatorischen Argument entnommen wird, anpassen.
-% Zusätzlich wird ein Befehl für Tutorials erstellt, welcher auf das Handbuch
-% verweist.
+% kein Label im Dokument besteht. Genaueres ist der Beschreibung und Definition
+% von \cs{Process@Markup} zu entnehmen. Das optionale Argument in einfachen
+% Guillemets dient zum Anpassen des CTAN-Links, welcher normalerweise aus
+% obligatorischen Argument generiert wird.
% \begin{macrocode}
+\NewExpandableDocumentCommand\@Package{sm}{#2}
+\NewDocumentCommand\Package{smd()d<>d''d||}{%
%<*class>
-\newcommand*\@TempPackage{}
-\NewDocumentCommand\Package{smd''d()d||}{%
- \if@changelog%
- \@ProcessChangedAt{#1}{files}{\protect\sbnfont}{#2}{Paket}%
+ \if@tud@changedat%
+ \Process@ChangedAt{\Package{#2}}[Paket]%
\else%
- \ifdin{#2}{%
- \IfValueTF{#4}{\def\@TempPackage{#4}}{\def\@TempPackage{#2}}%
- \SetIndexFormat{#1}{#5}%
- \@ProcessOutput{\textsbn{#2}}'#3'(\@TempPackage)%
- {files}[\protect\sbnfont]{#2}[~{\idxfont(Paket)}]%
- }%
- \fi%
-}
%</class>
-%<*package>
-\NewDocumentCommand\Package{smd()}{%
- \ifdin{#2}{%
- \IfBooleanTF{#1}{%
- \manualhyperref{files:#2}{\textsbn{#2}}%
+ \Markup@SetFormat{\sbnfont}%
+ \IfValueTF{#4}{%
+ \Process@Markup{\Package{#2}}(#3)<#4>'#5'%
}{%
- \IfValueTF{#3}{%
- \href{http://www.ctan.org/pkg/#3}{\textsbn{#2}}%
- }{%
- \href{http://www.ctan.org/pkg/#2}{\textsbn{#2}}%
- }%
+ \Process@Markup{\Package{#2}}(#3)<#2>'#5'%
}%
- \index[files]{\begingroup\protect\sbnfont#2\endgroup~{\idxfont(Paket)}}%
- }%
+ \Process@Index{#1}{\Package{#2}}[Paket](#3)|#6|%
+%<*class>
+ \fi%
+%</class>
}
-%</package>
-\DeclareExpandableDocumentCommand\@Package{sm}{#2}
-\pdfexpandableoutline{Package}
% \end{macrocode}
-% \end{macro}^^A \DeclarePackage
-% \end{macro}^^A \@TempPackage
% \end{macro}^^A \@Package
% \end{macro}^^A \Package
% \begin{macro}{\Option}
% \changes{v2.02}{2014/10/08}{überarbeitet}^^A
+% \begin{macro}{\Option@Value}
+% \changes{v2.05}{2015/11/02}{neu}^^A
% \begin{macro}{\@Option}
% \changes{v2.02}{2014/11/02}{neu}^^A
-% \begin{macro}{\@TempOption}
-% Im Gegensatz zu den vorherigen Befehlen gibt es ein ordinäres optionales
-% Argument nach dem Hauptargument. Damit kann der Option im Handbuch ein Wert
-% zugewiesen werden. Für Tutorials wird ein Befehl definiert, der auf das
-% Handbuch verweist.
+% Im Gegensatz zu den vorherigen Befehlen, kann im Hauptargument ein spezieller
+% Wert für eine Option optional durch ein \val{=} getrennt angegeben werden.
+% Durch den Argumentprozessor \cs{ProcessorKeyVal} wird dieses vom eigentlichen
+% Schlüssel getrennt. Dabei wird der gegebene Schlüssel immer in der Form
+% \marg{Schlüssel} ausgegeben. Sollte ein optionaler Wert gegeben worden sein,
+% wird dieser in der Form \val{=}\meta{Wert}\val{=} einfach angehängt und als
+% optionales Argument von \cs{Option@Value} weiter verarbeitet. Mit dem
+% optionalen Argument in runden Klammern kann ggf. auf eine Option aus einem
+% \TUDScript-Paket verwiesen
+% werden.
+% \begin{macrocode}
+\NewExpandableDocumentCommand\@Option{sm}{#2}
+\NewDocumentCommand\Option{s>{\ProcessorKeyVal}md==d()d''d||}{%
+ \Option@Value{#1}#2=#3=(#4)'#5'|#6|%
+}
+% \end{macrocode}
+% Für die interne Verwendung kann das optionale Argument für den Wert auch
+% direkt mit \val{=}\meta{Wert}\val{=} angehangen werden. Um die gleichzeitige
+% Verwendung beider Varianten zu unterdrücken, wird in diesem Fall ein Fehler
+% erzeugt.
% \begin{macrocode}
+\NewDocumentCommand\Option@Value{mmd==d==d()d''d||}{%
+ \IfValueT{#4}{\tud@keyval@error}%
%<*class>
-\newcommand*\@TempOption{}
-\NewDocumentCommand\Option{smod''d||}{%
- \if@changelog%
- \@ProcessChangedAt{#1}{options}{\ttfamily}{#2}{Option}%
+ \if@tud@changedat%
+ \Process@ChangedAt{\Option{#2}}=#3=[Option](#5)%
\else%
- \IfValueTF{#3}{\gdef\@TempOption{\texttt{=#3}}}{\gdef\@TempOption{}}%
- \SetIndexFormat{#1}{#5}%
- \@ProcessOutput{\texttt{#2}}[\@TempOption]'#4'{options}[\ttfamily]{#2}%
+%</class>
+ \Markup@SetFormat{\ttfamily}%
+ \Process@Markup{\Option{#2}}=#3=(#5)'#6'%
+ \Process@Index{#1}{\Option{#2}}=#3=(#5)|#7|%
+%<*class>
\fi%
-}
%</class>
-%<*package>
-\NewDocumentCommand\Option{smo}{%
- \ifdin{#2}{%
- \IfBooleanTF{#1}{%
- \manualhyperref{options:#2}{\texttt{#2}}\IfValueT{#3}{\texttt{=#3}}%
- }{%
- \texttt{#2}\IfValueT{#3}{\texttt{=#3}}%
- }%
- \index[options]{\begingroup\ttfamily#2\endgroup}%
- }%
}
-%</package>
-\DeclareExpandableDocumentCommand\@Option{sm}{#2}
-\pdfexpandableoutline{Option}
% \end{macrocode}
-% \end{macro}^^A \@TempOption
% \end{macro}^^A \@Option
+% \end{macro}^^A \Option@Value
% \end{macro}^^A \Option
% \begin{macro}{\Environment}
% \changes{v2.02}{2014/10/08}{überarbeitet}^^A
% \begin{macro}{\@Environment}
% \changes{v2.02}{2014/11/02}{neu}^^A
-% \begin{macro}{\@TempEnvironment}
-% Auch hier wird für die Änderungsliste unterschieden und für Tutorials ein
-% Befehl definiert, welcher auf das Handbuch referenziert.
+% Bei diesem Makro dient das optionale Argument für die Ausgabe der möglichen
+% Umgebungsargumente bzw. -parameter \emph{bei der Deklaration}.
% \begin{macrocode}
+\NewExpandableDocumentCommand\@Environment{sm}{#2}
+\NewDocumentCommand\Environment{smod()d''d||}{%
%<*class>
-\newcommand*\@TempEnvironment{}
-\NewDocumentCommand\Environment{smod''d||}{%
- \if@changelog%
- \@ProcessChangedAt{#1}{macros}{\ttfamily}{#2}{Umgebung}%
+ \if@tud@changedat%
+ \Process@ChangedAt{\Environment{#2}}[Umgebung](#4)%
\else%
+%</class>
% \end{macrocode}
% Außerdem wird für den Fall, dass der \cs{Environment}-Befehl innerhalb der
-% Umgebung \env{Declaration} verwendet wird, eine spezielle Ausgabe erzeugt. Nur
-% hier kommt das optionale Argument nach dem Hauptargument zum Tragen. Damit
-% können etwaige obligatorische und optionale Argumente angegeben werden.
-% \begin{macrocode}
- \if@declare%
- \gdef\@TempEnvironment{%
- \texttt{\bsc{}begin\{#2\}\IfValueT{#3}{#3}}\tabularnewline%
- \texttt{\dots}\tabularnewline%
- \texttt{\bsc{}end\{#2\}}%
- }%
- \else%
- \gdef\@TempEnvironment{\texttt{#2}}%
- \fi%
- \SetIndexFormat{#1}{#5}%
- \@ProcessOutput{\@TempEnvironment}'#4'{macros}[\ttfamily]{#2}%
+% Umgebung \env{Declaration} verwendet wird, eine spezielle Ausgabe erzeugt.
+% Nur hier kommt das optionale Argument von \cs{Markup@SetFormat} nach dem
+% Hauptargument zum Tragen. Die resultierende Ausgabe hat die Gesatlt:
+%
+% \begin{tabular}{l}%
+% \cs{begin}\marg{Umgebung}\tabularnewline
+% \dots\tabularnewline
+% \cs{end}\marg{Umgebung}\tabularnewline
+% \end{tabular}%
+% \begin{macrocode}
+ \Markup@SetFormat{\ttfamily}(%
+ \ttfamily\bsc{}begin\textbraceleft#2\textbraceright\IfValueT{#3}{#3}%
+ \tabularnewline\ttfamily\dots%
+ \tabularnewline\ttfamily\bsc{}end\textbraceleft#2\textbraceright%
+ )%
+ \Process@Markup{\Environment{#2}}[#3](#4)'#5'%
+ \Process@Index{#1}{\Environment{#2}}[Umgebung](#4)|#6|%
+%<*class>
\fi%
-}
%</class>
-%<*package>
-\NewDocumentCommand\Environment{sm}{%
- \ifdin{#2}{%
- \IfBooleanTF{#1}{%
- \manualhyperref{macros:#2}{\texttt{#2}}%
- }{%
- \texttt{#2}%
- }%
- \index[macros]{\begingroup\ttfamily#2\endgroup}%
- }%
}
-%</package>
-\DeclareExpandableDocumentCommand\@Environment{sm}{#2}
-\pdfexpandableoutline{Environment}%
% \end{macrocode}
-% \end{macro}^^A \@TempEnvironment
% \end{macro}^^A \@Environment
% \end{macro}^^A \Environment
% \begin{macro}{\Macro}
% \changes{v2.02}{2014/10/08}{überarbeitet}^^A
% \begin{macro}{\@Macro}
% \changes{v2.02}{2014/11/02}{neu}^^A
-% Die Auszeichnung und der Indexeintrag eines Befehls sowie für das Paket
-% \pkg{tudscrman} der Hyperlink auf das Handbuch.
-% \begin{macrocode}
+% Die Auszeichnung und der Indexeintrag eines Befehls. Das ordinäre optionale
+% Argument ist für das Anhängen von Parametern o.\,ä. nach dem eigentlichen
+% Makro zu verwenden. Das optionale Argument in runden Klammern dient dem
+% Hyperlink zu einem Befehl aus einem anderen Paket oder einer anderen Klasse
+% aus dem \TUDScript-Bundle.
+% \begin{macrocode}
+\NewExpandableDocumentCommand\@Macro{sm}{#2}
+\NewDocumentCommand\Macro{smod()d''d||}{%
%<*class>
-\NewDocumentCommand\Macro{smd''d||}{%
- \if@changelog%
- \@ProcessChangedAt{#1}{macros}{\ttfamily\bsc}{#2}{Befehl}%
+ \if@tud@changedat%
+ \Process@ChangedAt{\Macro{#2}}[Befehl](#4)%
\else%
- \SetIndexFormat{#1}{#4}%
- \@ProcessOutput{\texttt{\bsc#2}}'#3'{macros}[\ttfamily\bsc]{#2}%
+%</class>
+ \Markup@SetFormat{\ttfamily\bsc}%
+ \Process@Markup{\Macro{#2}}[#3](#4)'#5'%
+ \Process@Index{#1}{\Macro{#2}}(#4)|#6|%
+%<*class>
\fi%
-}
%</class>
-%<*package>
-\NewDocumentCommand\Macro{sm}{%
- \ifdin{\bsc#2}{%
- \IfBooleanTF{#1}{%
- \manualhyperref{macros:#2}{\texttt{\bsc#2}}%
- }{%
- \texttt{\bsc#2}%
- }%
- \index[macros]{\begingroup\ttfamily\bsc#2\endgroup}%
- }%
}
-%</package>
-\DeclareExpandableDocumentCommand\@Macro{sm}{#2}
% \end{macrocode}
% \end{macro}^^A \@Macro
% \end{macro}^^A \Macro
% \begin{macro}{\Length}
% \changes{v2.02}{2014/10/08}{überarbeitet}^^A
-% \begin{macro}{\@TempLength}
-% \changes{v2.02}{2014/10/08}{entfernt}^^A
+% \begin{macro}{\@Length}
% Die Auszeichnung und der Indexeintrag einer \LaTeX-Länge.
% \begin{macrocode}
+\NewExpandableDocumentCommand\@Length{sm}{#2}
+\NewDocumentCommand\Length{smd()d''d||}{%
%<*class>
-\NewDocumentCommand\Length{smd''d||}{%
- \if@changelog%
- \@ProcessChangedAt{#1}{macros}{\ttfamily\bsc}{#2}{L\"ange}%
+ \if@tud@changedat%
+ \Process@ChangedAt{\Length{#2}}[L\"ange](#3)%
\else%
- \SetIndexFormat{#1}{#4}%
- \@ProcessOutput{\texttt{\bsc#2}}[\if@declare~{\idxfont(L\"ange)}\fi]'#3'%
- {macros}[\ttfamily\bsc]{#2}[~{\idxfont(L\"ange)}]%
+%</class>
+ \Markup@SetFormat{\ttfamily\bsc}[L\"ange]%
+ \Process@Markup{\Length{#2}}(#3)'#4'%
+ \Process@Index{#1}{\Length{#2}}[L\"ange](#3)|#5|%
+%<*class>
\fi%
-}
%</class>
-%<*package>
-\NewDocumentCommand\Length{sm}{%
- \ifdin{\bsc#2}{%
- \IfBooleanTF{#1}{%
- \manualhyperref{macros:#2}{\texttt{\bsc#2}}%
- }{%
- \texttt{\bsc#2}%
- }%
- \index[macros]{\begingroup\ttfamily\bsc#2\endgroup~{\idxfont(L\"ange)}}%
- }%
}
-%</package>
% \end{macrocode}
-% \end{macro}^^A \@TempLength
+% \end{macro}^^A \@Length
% \end{macro}^^A \Length
+% \begin{macro}{\Counter}
+% \changes{v2.02}{2014/10/08}{überarbeitet}^^A
+% Die Auszeichnung und der Indexeintrag einer \LaTeX-Zählers.
+% \begin{macrocode}
+\NewExpandableDocumentCommand\@Counter{sm}{#2}
+\NewDocumentCommand\Counter{smd()d''d||}{%
+%<*class>
+ \if@tud@changedat%
+ \Process@ChangedAt{\Counter{#2}}[Z\"ahler](#3)%
+ \else%
+%</class>
+ \Markup@SetFormat{\ttfamily}[Z\"ahler]%
+ \Process@Markup{\Counter{#2}}(#3)'#4'%
+ \Process@Index{#1}{\Counter{#2}}[Z\"ahler](#3)|#5|%
+%<*class>
+ \fi%
+%</class>
+}
+% \end{macrocode}
+% \end{macro}^^A \Counter
%
% \iffalse
%<*class>
% \fi
%
% \minisec{Exklusive Auszeichnungen für die Klasse}
-% Alle weiteren Befehle werden ausschließlich für die Klasse \cls{tudscrman}
+% Alle weiteren Befehle werden ausschließlich für die Klasse \cls{tudscrmanual}
% definiert.
%
% \begin{macro}{\Key}
% \changes{v2.02}{2014/10/08}{überarbeitet}^^A
-% \begin{macro}{\@TempKey}
+% \begin{macro}{\Key@Value}
+% \changes{v2.05}{2015/11/02}{neu}^^A
+% \begin{macro}{\@Key}
% Die Auszeichnung und der Indexeintrag eines Parameters für Umgebungen und
% Befehle. Das erste Argument ist die Umgebung oder der Befehl, wofür der
-% Parameter gültig ist. Das zweite Argument ist der Parameter selbst. Dafür
-% werden die Befehle \cs{Environment} und \cs{Macro} lokal umdefiniert. Das
-% ordinäre obligatorische Argument danach dient der Zuweisung eines Wertes im
-% Fließtext.
-% \begin{macrocode}
-\newcommand*\@TempKey{}
-\NewDocumentCommand\Key{smmod''d||}{%
- \if@changelog%
- \@ProcessChangedAt{#1}{macros}(#2){\ttfamily}{#3}{Parameter}%
- \else%
- \begingroup%
- \let\Environment\@firstofone%
- \let\Macro\@firstofone%
- \IfValueTF{#4}{%
- \gdef\@TempKey{\texttt{=#4}\if@declare~{\idxfont(Parameter)}\fi}%
- }{%
- \gdef\@TempKey{\if@declare~{\idxfont(Parameter)}\fi}%
- }%
- \SetIndexFormat{#1}{#6}%
- \@ProcessOutput{\texttt{#3}}[\@TempKey]'#5'{macros}(#2)[\ttfamily]{#3}%
- \endgroup%
- \fi%
-}
-% \end{macrocode}
-% \end{macro}^^A \@TempKey
-% \end{macro}^^A \Key
-% \begin{macro}{\PageStyle}
-% \changes{v2.02}{2014/07/25}{neu}^^A
-% Die Auszeichnung und der Indexeintrag eines Seitenstils.
+% Parameter gültig ist. Das zweite Argument ist der Parameter selbst. Die
+% optionale Zuweisung eines Wertes kann äquivalent zu \cs{Option} mit dem
+% Trennzeichen~\val{=} im Hauptargument erfolgen.
% \begin{macrocode}
-\NewDocumentCommand\PageStyle{smd''d||}{%
- \if@changelog%
- \@ProcessChangedAt{#1}{macros}{\ttfamily}{#2}{Seitenstil}%
- \else%
- \SetIndexFormat{#1}{#4}%
- \@ProcessOutput{\texttt{#2}\if@declare~{\idxfont(Seitenstil)}\fi}'#3'%
- {macros}[\ttfamily]{#2}[~{\idxfont(Seitenstil)}]%
- \fi%
+\NewExpandableDocumentCommand\@Key{smm}{#2!#3}
+\NewDocumentCommand\Key{sm>{\ProcessorKeyVal}md==d()d''d||}{%
+ \Key@Value{#1}{#2}#3=#4=(#5)'#6'|#7|%
}
-% \end{macrocode}
-% \end{macro}^^A \PageStyle
-% \begin{macro}{\Counter}
-% \changes{v2.02}{2014/10/08}{überarbeitet}^^A
-% \begin{macro}{\@TempCounter}
-% \changes{v2.02}{2014/10/08}{entfernt}^^A
-% Die Auszeichnung und der Indexeintrag einer \LaTeX-Zählers.
-% \begin{macrocode}
-\NewDocumentCommand\Counter{smd''d||}{%
- \if@changelog%
- \@ProcessChangedAt{#1}{macros}{\ttfamily}{#2}{Z\"ahler}%
+\NewDocumentCommand\Key@Value{mmmd==d==d()d''d||}{%
+ \IfValueT{#5}{\tud@keyval@error}%
+ \if@tud@changedat%
+ \Process@ChangedAt{\Key{#2}{#3}}=#4=[Parameter](#6)%
\else%
- \SetIndexFormat{#1}{#4}%
- \@ProcessOutput{\texttt{#2}}[\if@declare~{\idxfont(Z\"ahler)}\fi]%
- {macros}[\ttfamily]{#2}[~{\idxfont(Z\"ahler)}]%
+ \Markup@SetFormat{\ttfamily}[Parameter]%
+ \Process@Markup{\Key{#2}{#3}}=#4=(#6)'#7'%
+ \Process@Index{#1}{\Key{#2}{#3}}=#4=(#6)|#8|%
\fi%
}
% \end{macrocode}
-% \end{macro}^^A \@TempCounter
-% \end{macro}^^A \Counter
+% \end{macro}^^A \@Key
+% \end{macro}^^A \Key@Value
+% \end{macro}^^A \Key
% \begin{macro}{\Term}
% \changes{v2.02}{2014/10/08}{überarbeitet}^^A
-% \begin{macro}{\@TempTerm}
-% \changes{v2.02}{2014/10/08}{entfernt}^^A
+% \begin{macro}{\@Term}
% Die Auszeichnung und der Indexeintrag eines sprachabhängigen Bezeichners.
% \begin{macrocode}
-\NewDocumentCommand\Term{smd''d||}{%
- \if@changelog%
- \@ProcessChangedAt{#1}{terms}{\ttfamily\bsc}{#2}{Bezeichner}%
+\NewExpandableDocumentCommand\@Term{sm}{#2}
+\NewDocumentCommand\Term{smd()d''d||}{%
+ \if@tud@changedat%
+ \Process@ChangedAt{\Term{#2}}[Bezeichner](#3)%
\else%
- \SetIndexFormat{#1}{#4}%
- \@ProcessOutput{\texttt{\bsc#2}}[\if@declare~{\idxfont(Bezeichner)}\fi]'#3'%
- {terms}[\ttfamily\bsc]{#2}%
+ \Markup@SetFormat{\ttfamily\bsc}[Bezeichner]%
+ \Process@Markup{\Term{#2}}(#3)'#4'%
+ \Process@Index{#1}{\Term{#2}}(#3)|#5|%
\fi%
}
% \end{macrocode}
-% \end{macro}^^A \@TempTerm
+% \end{macro}^^A \@Term
% \end{macro}^^A \Term
-% \begin{macro}{\TermTable}
-% \begin{macro}{\@TermTable}
-% \begin{macro}{\@@TermTable}
-% \begin{macro}{\@termlist}
-% Für sprachabhängige Bezeichner wird zusätzlich der Befehl \cs{TermTable}
-% definiert, dem eine kommaseparierte Liste übergeben werden kann. Anhand
-% dieser Liste werden die enthalten Begriffe für die Sprachen Deutsch und
-% English in einer Tabelle ausgegeben. Die Sternversion dieses Befehls nutzt
-% dafür die \env{tabularx}-Umgebung. Für diese kann ein zweites Argument
-% angegeben werden, welches die gewünschte Breite der Tabelle angibt.
+% \begin{macro}{\PageStyle}
+% \changes{v2.02}{2014/07/25}{neu}^^A
+% \begin{macro}{\@PageStyle}
+% Die Auszeichnung und der Indexeintrag eines Seitenstils.
% \begin{macrocode}
-\newcommand\@termlist{}
-\let\@termlist\relax
-\NewDocumentCommand\TermTable{smg}{%
- \forcsvlist{\listadd\@termlist}{#2}%
- \ifvmode\else\par\fi%
- \vskip\baselineskipglue%
- \@afterindentfalse\@afterheading%
- \IfBooleanTF{#1}{%
- \IfValueTF{#3}{\setlength\@tempdima{#3}}{\setlength\@tempdima{\linewidth}}%
- \setlength\@tempdimc{-.7\baselineskip}%
- \begin{tabularx}{\@tempdima}{lXX}\@TermTable\end{tabularx}%
- }{%
- \setlength\@tempdimc{\z@}%
- \begin{tabular}{lll}\@TermTable\end{tabular}%
- }%
- \let\@termlist\relax%
-}
-\newcommand*\@TermTable{%
- \toprule%
- \textbf{Bezeichner} & \textbf{Deutsch} & \textbf{Englisch}\tabularnewline%
- \midrule%
- \forlistloop\@@TermTable{\@termlist}%
- \bottomrule%
-}
-\newcommand*\@@TermTable[1]{%
- \Term{#1} & %
- \ifstr{\@nameuse{#1}}{}{\PName{leer}}{\@nameuse{#1}} & %
- \selectlanguage{english}\vspace*{\@tempdimc}%
- \ifstr{\@nameuse{#1}}{}{\PName{empty}}{\@nameuse{#1}}\tabularnewline%
+\NewExpandableDocumentCommand\@PageStyle{sm}{#2}
+\NewDocumentCommand\PageStyle{smd()d''d||}{%
+ \if@tud@changedat%
+ \Process@ChangedAt{\PageStyle{#2}}[Seitenstil](#3)%
+ \else%
+ \Markup@SetFormat{\ttfamily}[Seitenstil]%
+ \Process@Markup{\PageStyle{#2}}(#3)'#4'%
+ \Process@Index{#1}{\PageStyle{#2}}[Seitenstil](#3)|#5|%
+ \fi%
}
% \end{macrocode}
-% \end{macro}^^A \@termlist
-% \end{macro}^^A \@@TermTable
-% \end{macro}^^A \@TermTable
-% \end{macro}^^A \TermTable
+% \end{macro}^^A \@PageStyle
+% \end{macro}^^A \PageStyle
% \begin{macro}{\Font}
% \changes{v2.02}{2014/10/08}{überarbeitet}^^A
-% \begin{macro}{\@TempFont}
-% \changes{v2.02}{2014/10/08}{entfernt}^^A
+% \begin{macro}{\@Font}
% Die Auszeichnung und der Indexeintrag eines Schriftelementes.
% \begin{macrocode}
-\NewDocumentCommand\Font{smd''d||}{%
- \if@changelog%
- \@ProcessChangedAt{#1}{fonts}{\ttfamily}{#2}{Schriftelement}%
+\NewExpandableDocumentCommand\@Font{sm}{#2}
+\NewDocumentCommand\Font{smd()d''d||}{%
+ \if@tud@changedat%
+ \Process@ChangedAt{\Font{#2}}[Schriftelement](#3)%
\else%
- \SetIndexFormat{#1}{#4}%
- \@ProcessOutput{\texttt{#2}\if@declare~{\idxfont(Schriftelement)}\fi}%
- {fonts}[\ttfamily]{#2}%
+ \Markup@SetFormat{\ttfamily}[Schriftelement]%
+ \Process@Markup{\Font{#2}}(#3)'#4'%
+ \Process@Index{#1}{\Font{#2}}[Schriftelement](#3)|#5|%
\fi%
}
% \end{macrocode}
-% \end{macro}^^A \@TempFont
+% \end{macro}^^A \@Font
% \end{macro}^^A \Font
% \begin{macro}{\Color}
% \changes{v2.02}{2014/10/08}{überarbeitet}^^A
-% \begin{macro}{\@TempColor}
-% \changes{v2.02}{2014/10/08}{entfernt}^^A
-% Die Auszeichnung und der Indexeintrag einer Farbe des \CDs.
-% \begin{macrocode}
-\NewDocumentCommand\Color{smod''d||}{%
- \if@changelog%
- \@ProcessChangedAt{#1}{colors}{\ttfamily}{#2}{Farbe}%
+% \begin{macro}{\@Color}
+% Die Auszeichnung und der Indexeintrag einer Farbe des \CDs. Das optionale
+% Argument kann sowohl bei der Deklaration als auch im Fließtext für das
+% Anhängen eines Suffix verwendet werden. Alle mit \cs{Color} ausgezeichneten
+% Farben referenzieren standardmäßig auf das Paket \pkg{tudscrcolor}.
+% \begin{macrocode}
+\NewExpandableDocumentCommand\@Color{sm}{#2}
+\NewDocumentCommand\Color{smoD(){\Package{tudscrcolor}}d''d||}{%
+ \if@tud@changedat%
+ \Process@ChangedAt{\Color{#2}}[Farbe](#4)%
\else%
- \SetIndexFormat{#1}{#5}%
- \@ProcessOutput{\texttt{#2}}[%
- \IfValueT{#3}{~\texttt{(#3)}}\if@declare~{\idxfont(Farbe)}\fi%
- ]'#4'{colors}[\ttfamily]{#2}%
+ \Markup@SetFormat{\ttfamily}[Farbe](%
+ \begingroup\ttfamily{#2\IfValueT{#3}{~(#3)}}\endgroup%
+ )%
+ \Process@Markup{\Color{#2}}[#3](#4)'#5'%
+ \Process@Index{#1}{\Color{#2}}[Farbe](#4)|#5|%
\fi%
}
% \end{macrocode}
-% \end{macro}^^A \@TempColor
+% \end{macro}^^A \@Color
% \end{macro}^^A \Color
-% Damit ist das Intermezzo mit Auszeichnungsbefehlen speziell für die Klasse
-% beendet.
%
% \iffalse
%</class>
% \fi
%
-% \iffalse
+% \subsubsection{Zuordnung der Markup-Befehle für Label und Index}
+%
+% \begin{macro}{\tud@attr@get}
+% \changes{v2.05}{2015/11/03}{neu}^^A
+% Der Befehl \cs{tud@attr@get} ordnet den einzelnen Markup-Befehlen ihren
+% spezifischen Präfix für ein Label oder in der Sternversion den passenden
+% Index zu. Im ersten obligatorischen Argument wird ein Makro angegeben,
+% welches die Zuordnung enthalten soll, das zweite ist der Markup-Befehl selbst.
+% \begin{macrocode}
+\NewDocumentCommand\tud@attr@get{smm}{%
+ \begingroup%
+% \end{macrocode}
+% Das temporäre Makro \cs{@tempa} definiert zunächst alle Markup-Befehle lokal
+% neu und expandiert beim Aufruf für jeden dieser Markup-Befehle~-- abhängig
+% vom Aufruf von \cs{tud@attr@get} mit oder ohne Stern~-- entweder zum Markup
+% passenden Index oder das entsprechende Labelpräfix in \cs{@tempb}.
+% \begin{macrocode}
+ \def\@tempa##1##2##3{%
+ \def##1####1{%
+ \edef\@tempb{\IfBooleanTF{#1}{##2}{##3}}%
+ }%
+ }%
+ \@tempa\Application{\jobname}{app}%
+ \@tempa\Distribution{\jobname}{dst}%
+ \@tempa\Engine{\jobname}{eng}%
+ \@tempa\File{files}{fle}%
+ \@tempa\Class{files}{cls}%
+ \@tempa\Package{files}{pkg}%
+ \@tempa\Option{options}{opt}%
+ \@tempa\Environment{macros}{env}%
+ \@tempa\Macro{macros}{cmd}%
+ \@tempa\Length{misc}{len}%
+ \@tempa\Counter{misc}{cnt}%
+% \end{macrocode}
+% Da \cs{Key} mit zwei Hauptargumenten aufgerufen wird, ist nur die Expansion
+% des ersten Argumentes in \cs{@tempb} notwendig.
+% \begin{macrocode}
%<*class>
-% \fi
+ \def\Key##1##2{%
+ \edef\@tempb{\IfBooleanTF{#1}{macros}{key}}%
+ }%
+ \@tempa\Term{terms}{term}%
+ \@tempa\PageStyle{elements}{pgs}%
+ \@tempa\Font{elements}{font}%
+ \@tempa\Color{elements}{clr}%
+%</class>
+% \end{macrocode}
+% Nachdem alle Markup-Befehle lokal redefiniert wurden, wird der nun angegebene
+% Befehl ausgeführt, was zum eigentlichen Definieren von \cs{@tempb} führt.
+% \begin{macrocode}
+ #3%
+% \end{macrocode}
+% Damit alle Änderungen der temporären Makros lokal bleiben, wird das Ergebnis
+% nach der Gruppe in das erste obligatorische Argument expandiert.
+% \begin{macrocode}
+ \edef\tud@reserved{%
+ \noexpand\endgroup%
+ \def\noexpand#2{\@tempb}%
+ }%
+ \tud@reserved%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@attr@get
%
-% \subsection{Befehle und Umgebungen für die Klasse}
-%
-% Hier taucht alles auf, was lediglich für die Klasse \cls{tudscrman} und nicht
-% für das Paket benötigt wird.
-%
-% \begin{macro}{\CheckIndexFormat}
-% \changes{v2.02}{2014/10/08}{neu}^^A
-% \begin{macro}{\SetIndexFormat}
-% \changes{v2.02}{2014/10/08}{neu}^^A
-% \begin{macro}{\@IndexFormat}
-% \changes{v2.02}{2014/10/08}{neu}^^A
-% Zuerst werden jedoch einige Hilfsmakros erstellt mit denen überprüft wird, ob
-% die Sternversion der zuvor definierten Auszeichnung"=Befehle zusammen mit
-% einer Indexformatierung \val{|idxformat|} genutzt wurde, was sich natürlich
-% widerspricht. In diesem Fall erfolgt eine Warnung.
-% \begin{macrocode}
-\newcommand*\@IndexFormat{}
-\let\@IndexFormat\relax
-\newcommand*\CheckIndexFormat[2]{%
- \IfBooleanT{#1}{%
- \IfValueT{#2}{%
- \ClassWarning{tudscrman}{%
- You've used the starred version so no entry for\MessageBreak%
- the index is created and the optional argument\MessageBreak%
- |#2| will be ignored%
+% \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
+% \begin{macro}{\PValue}
+% \begin{macro}{\PName}
+% \begin{macro}{\PValueName}
+% \changes{v2.05}{2015/11/01}{neu}^^A
+% \begin{macro}{\PSet}
+% \begin{macro}{\PBoolean}
+% \begin{macro}{\PBName}
+% \changes{v2.02}{2014/11/12}{neu}^^A
+% \begin{macro}{\Parameter}
+% \begin{macro}{\OParameter}
+% \begin{macro}{\LParameter}
+% \begin{macro}{\OLParameter}
+% \begin{macro}{\PParameter}
+% \begin{macro}{\POParameter}
+% \changes{v2.03}{2015/01/25}{neu}^^A
+% \begin{macro}{\textOR}
+% 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}}
+\newrobustcmd*\PSet{\PName{Einstellung}}
+\newrobustcmd*\PBoolean{\PName{Ein-Aus-Wert}}
+\newrobustcmd*\PBName[1]{\PBoolean\textOR\PName{#1}}
+\newrobustcmd*\Parameter[1]{%
+ \mbox{\texttt{\textbraceleft}\PName{#1}\texttt{\textbraceright}}%
+}
+\newrobustcmd*\OParameter[1]{\mbox{\texttt{[}\PName{#1}\texttt{]}}}
+\newrobustcmd*\LParameter{\mbox{\texttt{[}\PName{Parameterliste}\texttt{]}}}
+\newrobustcmd*\OLParameter[1]{%
+ \mbox{\texttt{[}\PName{#1}\textOR\PName{Parameterliste}\texttt{]}}%
+}
+\newrobustcmd*\PParameter[1]{\mbox{\texttt{\textbraceleft#1\textbraceright}}}
+\newrobustcmd*\POParameter[1]{\mbox{\texttt{[#1]}}}
+\newrobustcmd*\textOR{\PValue{\,\textbardbl\,}}
+% \end{macrocode}
+% \end{macro}^^A \textOR
+% \end{macro}^^A \POParameter
+% \end{macro}^^A \PParameter
+% \end{macro}^^A \OLParameter
+% \end{macro}^^A \LParameter
+% \end{macro}^^A \OParameter
+% \end{macro}^^A \Parameter
+% \end{macro}^^A \PBName
+% \end{macro}^^A \PBoolean
+% \end{macro}^^A \PSet
+% \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}
+% genutzt, um bedingten Quelltext auszuführen, falls im ersten obligatorischen
+% Argument entweder Parameter entweder direkt oder aber mit einem der beiden
+% Parameter-Markup-Befehle \cs{PValue} oder \cs{PValueName} angegeben wurde.
+% Alle anderen Auszeichnungsbefehle für Parameter sollen ingnoriert werden.
+% \begin{macrocode}
+\newcommand*\tud@doifPValue[3][]{%
+ \IfValueT{#2}{%
+ \begingroup%
+% \end{macrocode}
+% Zunächst wird der Inhalt fast aller ausgezeichneten Parameter unterdrückt.
+% Lediglich das Argument der beiden Makros \cs{PValue} und \cs{PValueName} wird
+% durchgereicht.Dies wird bei der Generierung von Labeln sowie der Erstellung
+% für Einträge im Index und der Änderungsliste benötigt, um die Angabe von
+% speziellen Werten bei Schlüsseln zu erhalten.
+% \begin{macrocode}
+ \let\PValue\@firstofone%
+ \let\PName\@gobble%
+ \let\PValueName\@firstofone%
+ \let\PSet\@empty%
+ \let\PBoolean\@empty%
+ \let\PBName\@gobble%
+ \let\Parameter\@gobble%
+ \let\OParameter\@gobble%
+ \let\LParameter\@empty%
+ \let\OLParameter\@gobble%
+ \let\PParameter\@gobble%
+ \let\POParameter\@gobble%
+ \let\textOR\relax%
+ \let\emph\@firstofone%
+% \end{macrocode}
+% Im optionalen Argument können weitere Angaben gemacht werden, beispielsweise
+% um weitere lokale Redefinitionen vorzunehmen.
+% \begin{macrocode}
+ #1%
+% \end{macrocode}
+% Falls tatsächlich ein passendes Argument angegeben wurde, wird der Quelltext
+% des zweiten obligatorischen Argumentes ausgeführt. Es ist zu beachten, dass
+% dieser \emph{expandiert} wird!
+% \begin{macrocode}
+ \ifxblank{#2}{%
+ \let\tud@reserved\endgroup%
+ }{%
+ \protected@edef\tud@reserved{\noexpand\endgroup#3}%
+ }%
+ \tud@reserved%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@doifPValue
+% \begin{macro}{\Markup@Gobble}
+% \changes{v2.05}{2015/11/01}{neu}^^A
+% Dieser Befehl definiert alle Markup-Befehle in der Form um, dass diese nur
+% noch das eigentliche Hauptargument unformatiert durchreichen. Dies wird für
+% die Erstellung von Label und Indexeinträgen benötigt. Die Sternversion führt
+% dies auch noch für die Auszeichnung von Parametern etc. durch.
+% \begin{macrocode}
+\NewDocumentCommand\Markup@Gobble{s}{%
+ \let\Application\@Application%
+ \let\Distribution\@Distribution%
+ \let\Engine\@Engine%
+ \let\File\@File%
+ \let\Class\@Class%
+ \let\Package\@Package%
+ \let\Option\@Option%
+ \let\Environment\@Environment%
+ \let\Macro\@Macro%
+ \let\Length\@Length%
+ \let\Counter\@Counter%
+%<*class>
+ \let\Key\@Key%
+ \let\Term\@Term%
+ \let\PageStyle\@PageStyle%
+ \let\Font\@Font%
+ \let\Color\@Color%
+%</class>
+ \IfBooleanF{#1}{%
+ \let\PValue\@firstofone%
+ \let\PName\@firstofone%
+ \let\PValueName\@firstofone%
+ \let\PSet\relax%
+ \let\PBoolean\relax%
+ \let\PBName\@firstofone%
+ \let\Parameter\@firstofone%
+ \let\OParameter\@firstofone%
+ \let\LParameter\relax%
+ \let\OLParameter\@firstofone%
+ \let\PParameter\@firstofone%
+ \let\POParameter\@firstofone%
+ \let\textOR\relax%
+ \let\hologoRobust\@firstofone%
+ \def\TUDScript{TUD-KOMA-Script}%
+ \def\_{-}%
+ \protected\def~{~}%
+ }%
+}
+% \end{macrocode}
+% Mit dem zuvor definierten Makro \cs{Markup@Gobble} wird gleich dafür Sorge
+% getragen, dass die Auszeichnungsbefehle für PDF-Outline-Einträge korrekt
+% funktionieren.
+% \begin{macrocode}
+\AfterPackage*{hyperref}{%
+ \expandafter\pdfstringdefDisableCommands\expandafter{\Markup@Gobble}%
+}
+% \end{macrocode}
+% \end{macro}^^A \Markup@Gobble
+%
+% \subsubsection{Erstellung und Validierung von Labeln}
+%
+% \begin{macro}{\tud@lbl@tmp}
+% \changes{v2.05}{2015/11/03}{neu}^^A
+% \begin{macro}{\tud@lbl@fmt}
+% \changes{v2.05}{2015/11/03}{neu}^^A
+% In \cs{tud@lbl@tmp} werden nachfolgend die durch \cs{tud@lbl@get@curr} oder
+% \cs{tud@attr@get} erzeugten (Sub-)Label gespeichert. Mit dem Hilfsmakro
+% \cs{tud@lbl@fmt} wird innerhalb der beiden Befehle \cs{tud@lbl@@create} und
+% \cs{tud@lbl@get@@curr} dafür gesorgt, dass geschützte Leerzeichen sowie
+% eingabekodierungsabhängige Zeichen korrekt für ein Label umgesetzt werden.
+% Auch durch \cs{NoCaseChange} in Überschriften geschützte Inhalte werden
+% direkt übernommen.
+% \begin{macrocode}
+\newcommand*\tud@lbl@tmp{}
+\newcommand*\tud@lbl@fmt{%
+ \def~{-}%
+ \let\IeC\@firstofone%
+ \def\"##1{##1e}%
+ \def\ss{ss}%
+ \let\NoCaseChange\@firstofone%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@lbl@fmt
+% \end{macro}^^A \tud@lbl@tmp
+% \begin{macro}{\tud@lbl@get@curr}
+% \changes{v2.05}{2015/11/03}{neu}^^A
+% \begin{macro}{\tud@lbl@get@@curr}
+% \changes{v2.05}{2015/11/03}{neu}^^A
+% Für den Befehl \cs{tud@lbl@get@curr} wird das zweite obligatorische
+% Argument (\val{\#3}) für gewöhnlich in der Form
+% \val{\{\string\Bundle{\marg{Klasse/Paket}}:\string\Markup{\marg{Element}}\}}
+% angegeben. Dieses wird beim Einlesen direkt an die beiden Argumentprozessoren
+% \cs{SplitArgument}\val{\{2\}\{:\}} gefolgt von \cs{tud@lbl@create} übergeben.
+% Danach enthält das zweite obligatorische Argument ein Label der Form
+% \meta{Bundlepräfix}\val{:}\meta{Labelpräfix}\val{:}\meta{Element}. Auch die
+% Angabe eines Makros als zweites obligatorische Argument, welches das Label in
+% der richtigen Formatierung enthält, ist möglich.
+% \begin{macrocode}
+\NewDocumentCommand\tud@lbl@get@curr{%
+ sm>{\tud@lbl@create}>{\SplitArgument{2}{:}}md==%
+}{%
+% \end{macrocode}
+% Mit \cs{tud@lbl@get@@curr} wird das im zweiten obligatorischen Argument
+% (\val{\#3}) generierte Label in das im ersten obligatorischen Argument
+% (\val{\#2}) angegebenen Makro gespeichert und ggf. diesem das letzte
+% optionale Argument für einen speziellen Wert zu einem Schlüssel angehangen.
+% \begin{macrocode}
+ \tud@lbl@get@@curr#2{#3}=#4=%
+% \end{macrocode}
+% Die Sternversion von \cs{tud@lbl@get@curr} wird für das Definieren von Labeln
+% bei Deklarationen etc. genutzt. Sollte diese verwendet worden sein, ist die
+% Generierung beendet.
+% \begin{macrocode}
+%<*class>
+ \IfBooleanF{#1}{%
+% \end{macrocode}
+% Andernfalls wird geprüft, ob das erstellte Label überhaupt existiert. Sollte
+% dies nicht der Fall sein wird ein passendes Label für den gegebenen Schlüssel
+% ohne speziellen Wert gesucht.
+% \begin{macrocode}
+ \@tempswafalse%
+ \tud@if@lbl@exists{#2}{%
+ \@tempswatrue%
+ }{%
+ \IfValueT{#4}{%
+ \tud@lbl@get@@curr\tud@reserved{#3}%
+ \tud@if@lbl@exists{\tud@reserved}{%
+ \let#2\tud@reserved%
+ \@tempswatrue%
+ }{}%
}%
}%
+% \end{macrocode}
+% Wurde auch danach noch kein passendes Label gefunden, gibt es u.\,U. eine
+% letzte Möglichkeit, ein passendes Label zu finden. Wird in der Dokumentation
+% gerade ein Paket oder eine sich von den Hauptklassen unterscheidende Klasse
+% aus dem \TUDScript-Bundle erläutert (Umgebungen \env{Bundle}, \env{Bundle*}),
+% so wird eventuell auf ein Element aus ebendiesen Hauptklassen referenziert.
+% In diesem Fall wird \cs{tud@lbl@get@dflt} aufgerufen, um den Bundlepräfix
+% für das Label entsprechend zu setzen.
+% \begin{macrocode}
+ \if@tempswa\else%
+ \tud@if@bdl{\tud@lbl@get@dflt#2{#3}=#4=}{}%
+ \fi%
}%
+%</class>
}
% \end{macrocode}
-% Der Befehl \cs{SetIndexFormat} setzt das gewünschte Format für den jeweilgen
-% Indexeintrag.
+% 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.
% \begin{macrocode}
-\newcommand*\SetIndexFormat[2]{%
- \CheckIndexFormat{#1}{#2}%
- \IfBooleanTF{#1}{%
- \def\@IndexFormat{#1}%
+\NewDocumentCommand\tud@lbl@get@@curr{mmd==}{%
+ \def#1{#2}%
+% \end{macrocode}
+% Sollte optional mit \cs{PValue} bzw. \cs{PValueName} ein spezieller Wert für
+% einen Schlüssel übergeben worden sein, wird dieser ggf. angehängt.
+% \begin{macrocode}
+ \tud@doifPValue[\tud@lbl@fmt]{#3}{\noexpand\appto\noexpand#1{=#3}}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@lbl@get@@curr
+% \end{macro}^^A \tud@lbl@get@curr
+% \begin{macro}{\tud@lbl@get@dflt}
+% \changes{v2.05}{2015/11/04}{neu}^^A
+% \begin{macro}{\tud@lbl@get@@dflt}
+% \changes{v2.05}{2015/11/04}{neu}^^A
+% Diese beiden Makros werden genutzt, um mit \cs{tud@lbl@get@curr} innerhalb
+% der Umgebungen \env{Bundle} und \env{Bundle*} für den Fall, dass ein
+% gesuchtes Label für das aktuelle Bundle-Element nicht existiert, nach diesem
+% Element in den existierenden Labels der Hauptklassen zu suchen.
+%
+% Dabei wird das bereits generierte Label durch \cs{tud@lbl@get@dflt} in
+% seine drei Hauptbestandteile zur WEiterverarbeitung zerlegt.
+% \begin{macrocode}
+\NewDocumentCommand\tud@lbl@get@dflt{m>{\SplitArgument{2}{:}}mr==}{%
+ \tud@lbl@get@@dflt{#1}#2=#3=%
+}
+% \end{macrocode}
+% Durch \cs{tud@lbl@get@@dflt} wird als erstes geprüft, ob der Bundlepräfix
+% bereits dem Standardpräfix für die Hauptklassen entspricht. Nur wenn dies
+% nicht der Fall ist, wird die Labelgenerierung abermals ausgeführt.
+% \begin{macrocode}
+\NewDocumentCommand\tud@lbl@get@@dflt{mmmmr==}{%
+ \edef\tud@reserved{\expandafter\detokenize\expandafter{\tud@bdl@dflt}}%
+ \ifstr{\tud@reserved}{#2}{}{%
+% \end{macrocode}
+% Dabei erfolgt der Aufruf logischerweise mit dem richtigen Bundlepräfix.
+% \begin{macrocode}
+ \tud@lbl@get@curr#1{\tud@bdl@dflt:#3:#4}=#5=%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@lbl@get@@dflt
+% \end{macro}^^A \tud@lbl@get@dflt
+% \begin{macro}{\tud@if@lbl@exists}
+% \changes{v2.05}{2015/11/05}{neu}^^A
+% Mit dem Befehl \cs{tud@if@lbl@exists} wird eine Fallunterscheidung bezüglich
+% der Existenz eines Labels in der Form
+% \meta{Bundlepräfix}\val{:}\meta{Labelpräfix}\val{:}\meta{Element}
+% durchgeführt. Das zu prüfende Label ist in gleicher Weise wie beim Makro
+% \cs{tud@lbl@get@curr} anzugeben. Je nachdem, ob ein existierendes Label
+% gefunden wird oder nicht, wird das zweite oder das dritte obligatorische
+% Argument ausgeführt.
+% \begin{macrocode}
+%<*class>
+\NewDocumentCommand\tud@if@lbl@exists{%
+ >{\tud@lbl@create}>{\SplitArgument{2}{:}}m%
+}{%
+ \ifcsdef{r@#1}{%
+ \expandafter\@firstoftwo%
}{%
- \IfValueTF{#2}{\def\@IndexFormat{#2}}{\def\@IndexFormat{}}%
+ \expandafter\@secondoftwo%
}%
}
+%</class>
% \end{macrocode}
-% \end{macro}^^A \@IndexFormat
-% \end{macro}^^A \SetIndexFormat
-% \end{macro}^^A \CheckIndexFormat
-% \begin{macro}{\if@declare}
-% \begin{macro}{\if@stareddeclare}
-% \changes{v2.02}{2014/10/09}{neu}^^A
-% \begin{macro}{\if@openindex}
-% \begin{macro}{\if@deprecated}
-% Dies sin ein paar Hilfsmakros zur Steuerung des Markup sowie der Ausgabe von
-% Deklarationen, Index und Änderungsliste, welche bei den nächsten Befehlen und
-% Umgebungen genutzt werden.
+% \end{macro}^^A \tud@if@lbl@exists
+% \begin{macro}{\tud@lbl@create}
+% \changes{v2.05}{2015/11/03}{neu}^^A
+% \begin{macro}{\tud@lbl@@create}
+% \changes{v2.05}{2015/11/03}{neu}^^A
+% Das Makro \cs{tud@lbl@@create} ist ein Argumentprozessor, welcher als Eingabe
+% genau drei Argumente für das Erstellen eines gültigen Labels erwartet. Er
+% wird sowohl von \cs{tud@lbl@get@curr} als auch von \cs{tud@if@lbl@exists}
+% verwendet. Vor der Nutzung von \cs{tud@lbl@create} muss das Argument zuvor
+% bereits mit \cs{SplitArgument}\val{\{2\}\{:\}} aufgerufen worden sein. Diese
+% Eigenheit macht die Definition von \cs{tud@lbl@create} notwendig, um das
+% Ergebnis der zuvor vorgenommenen Argumentaufspaltung verarbeiten zu können,
+% in dem dieses an \cs{tud@lbl@@create} durchgereicht wird. Eine Integration
+% 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
+% 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
+% \meta{Bundlepräfix}\val{:}\meta{Labelpräfix}\val{:}\meta{Element} generiert
+% und als resultierendes Argument an das aufrufenden Makro übergeben.
+% \begin{macrocode}
+\NewDocumentCommand\tud@lbl@create{m}{\tud@lbl@@create#1}
+% \end{macrocode}
+% Es gibt insgesamt vier verschiedene Varianten der Argumentenübergabe an den
+% Argumentprozessor \cs{tud@lbl@@create}.
+% \begin{description}\let\itshape\slshape
+% \item[\cs{tud@lbl@@create}\val{\ignorespaces
+% \{\string\LabelMakro\}\{-NoValue-\}\{-NoValue-\}\ignorespaces
+% }]\strut\newline
+% Das Label ist bereits in \cs{LabelMakro} enthalten und soll expandiert
+% werden. Dabei spielt es keine Rolle, ob die durch \val{:} getrennten
+% Bestandteile innerhalb des Labels schon als einfacher String oder in der
+% Markupform gegeben sind.
+% \item[\cs{tud@lbl@@create}\val{\ignorespaces
+% \{-NoValue-\}\{\string\Markup{\marg{Element}}\}\{-NoValue-\}\ignorespaces
+% }]\strut\newline
+% Das Label soll für ein Markupelement generiert werden, wobei in jedem
+% Fall der Inhalt aus \cs{tud@bdl@curr} als Bundlepräfix genutzt wird.
+% \item[\cs{tud@lbl@@create}\val{\ignorespaces
+% \{\string\Class/\string\Package\marg{\dots}\}\ignorespaces
+% \{\string\Markup{\marg{Element}}\}\ignorespaces
+% \{-NoValue-\}\ignorespaces
+% }]\strut\newline
+% Das Label soll für ein Markupelement generiert werden.
+% Dabei wurde explizit ein Paket oder eine Klasse aus dem Bundle angegeben
+% oder implizit das Makro \cs{tud@bdl@curr} als Argument verwendet,
+% welches innerhalb der Umgebungen \env{Bundle} und \env{Bundle*} auf
+% das/die aktuell beschriebene Paket/Klasse gesetzt wurde.
+% \item[\cs{tud@lbl@@create}\val{\ignorespaces
+% \marg{Bundlepräfix}\ignorespaces
+% \marg{Labelpräfix}\ignorespaces
+% \marg{Element}\ignorespaces
+% }]\strut\newline
+% Das Label ist bereits vollständig bestimmt und die Argumente werden
+% entweder als String oder als Markup übergeben. Auch Mischformen sind
+% möglich. In diesem Fall wird es einfach wieder zusammengesetzt. Diese
+% Variante tritt durch rekursiven Aufruf des Argumentprozessors auf.
+% \end{description}
+% \begin{macrocode}
+\NewDocumentCommand\tud@lbl@@create{mmm}{%
+ \begingroup%
+% \end{macrocode}
+% Zu Beginn werden die Markup-Befehle auf ihre expandierbaren Varianten gesetzt
+% und die zusätzlichen Redefinitionen für die Labelgenerierung aktiviert.
% \begin{macrocode}
-\newif\if@declare
-\newif\if@stareddeclare
-\newif\if@openindex
-\newif\if@deprecated
+ \Markup@Gobble%
+ \tud@lbl@fmt%
% \end{macrocode}
-% \end{macro}^^A \if@deprecated
-% \end{macro}^^A \if@openindex
-% \end{macro}^^A \if@stareddeclare
-% \end{macro}^^A \if@declare
+% Sind alle drei Bestandteile bereits vorhanden, wird das Label einfach wieder
+% zusammengesetzt.
+% \begin{macrocode}
+ \IfValueTF{#3}{%
+ \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.
+% \begin{macrocode}
+ \IfValueTF{#2}{%
+ \tud@attr@get\@tempb{#2}%
+ \IfValueTF{#1}{%
+ \ifxblank{#1}{%
+ \edef\@tempa{\tud@bdl@dflt:\@tempb:#2}%
+ }{%
+ \edef\@tempa{#1:\@tempb:#2}%
+ }%
+ }{%
+ \edef\@tempa{\tud@bdl@curr:\@tempb:#2}%
+ }%
+ }{%
+% \end{macrocode}
+% Wurde lediglich ein Makro angegeben, wird dieses einfach expandiert.
+% \begin{macrocode}
+ \edef\@tempa{#1}%
+ }%
+ }%
+% \end{macrocode}
+% Das Ergebnis der Labelgenrierung wurde für alle der behandelten Fälle in
+% \cs{@tempa} geschrieben. Abschließnd wird \cs{ProcessedArgument} nach der
+% Gruppe mit dessen Inhalt definiert. Dabei werden bei der Expansion die
+% catcodes aller Zeichen in Tokens der Klasse \val{other} gewandelt, um diese
+% später sicher vergleichen zu können.
+% \begin{macrocode}
+ \edef\@tempc{%
+ \noexpand\endgroup%
+ \def\noexpand\ProcessedArgument{%
+ \expandafter\detokenize\expandafter{\@tempa}%
+ }%
+ }%
+ \@tempc%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@lbl@@create
+% \end{macro}^^A \tud@lbl@create
%
% \subsubsection{Abarbeitung der Markup-Befehle}
%
-% In der Klasse \cls{tudscrman} werden die Markup-Befehle entweder im Fließtext
-% verwendet und dabei automatisch Einträge in den Index erzeugt oder aber diese
-% werden als Argument der Umgebung \env{Declaration} genutzt.
+% Die Festlegung des individuellen Markups der Einzelnen Elemente erfolgt bei
+% der Definition mit \cs{Markup@SetFormat}. Bei der Nutztung der Markup-Befehle
+% im Fließtext wird zum einen das in \cs{Markup@Format} individuell definierte
+% Markup umgesetzt und zum anderen wird dabei gleich automatisch ein Eintrag
+% für das Element im Index erzeugt.
+%
+% 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
+% Einsatz.
%
-% \begin{macro}{\@ProcessOutput}
+% \begin{macro}{\Process@Markup}
% \changes{v2.02}{2014/10/08}{Markup für Index und Fließtext getrennt}^^A
% \changes{v2.02}{2014/10/09}{Anpassung für Umgebung \env{Declaration*}}^^A
-% Der Befehl \cs{@ProcessOutput} ist das Herzstück der Auszeichnungen aller
-% Elemente. Das erste obligatorische Argument ist der übergebene Wert, welcher
-% in einer bestimmten Form ausgezeichnet werden soll. Darauf folgen die ein
-% möglicher \oarg{Anhang} sowie ggf. das \val{'}\meta{Kürzel}\val{'} für die
-% Erweiterung der Referenzierunug im Fließtext. Danach wird der Zielindex
-% \marg{Index} und~-- für Parameter~-- der \parg{Haupteintrag} übergeben. Es
-% folgt der zu erstellende Indexeintrag mit \oarg{Vorsatz}, \marg{Eintrag} und
-% \oarg{Anhang}. Die Formatierung für den Indexbefehl wurde zuvor durch
-% \cs{SetIndexFormat} in \cs{@IndexFormat} gespeichert. Der vollständige
-% Funktionsaufruf lautet:
+% \changes{v2.05}{2015/11/05}{Neuimplementierung}^^A
+% \begin{macro}{\Markup@Suppress}
+% \changes{v2.05}{2015/11/05}{neu}^^A
+% \begin{macro}{\Markup@@Suppress}
+% \changes{v2.05}{2015/11/05}{neu}^^A
+% Der Befehl \cs{Process@Markup} ist das Herzstück der Auszeichnungen aller
+% Elemente. Das obligatorische Argument ist das auszuzeichnende Element selbst,
+% welches im weiteren Verlauf der Abarbeitung expandiert wird. Darauf folgen
+% mehrere optionale Argumente. Mit \val{=}\meta{Wert}\val{=} kann ein Wert für
+% einen Schlüssel angegeben werden, was aktuell von \cs{Option} und \cs{Key}
+% genutzt wird. Darauf folgend kann in einem ordinären optionalen Argument ein
+% Suffix für die Fließtextausgabe angegeben werden, was von \cs{Distribution}
+% sowie \cs{Environment}, \cs{Macro} und \cs{Color} verwendet wird.
+%
+% Mit dem optionalen Argument in runden Klammern kann eine Klasse oder ein
+% Paket aus dem \TUDScript-Bundle angegeben werden, auf welche sich das
+% aktuelle auszuzeichnende Element bezieht und ggf. das Label und der
+% Indexeintrag dementsprechend erzeugt werden sollen. Verwendet wird es mit:
+% \val{(\string\Class\marg{Klasse}/\string\Package\marg{Paket})}
+%
+% Das optionale Argument in Guillemets wird von \cs{Package} benötigt, um ggf.
+% die automatisch generierten Links auf CTAN anzupassen. Zuletzt kann mit
+% \val{'}\meta{Referenzvariante}\val{'} der automatisch erzeugte Querverweis in
+% verschiedenen Varianten formatiert werden. Der vollständige Funktionsaufruf:
% \newline\begingroup\scriptsize
-% \cs{@ProcessOutput}*
-% \marg{Ausgabe}\oarg{Anhang}\val{'}\meta{Kürzel}\val{'}\ignorespaces%
-% \marg{Index}\parg{Haupteintrag}\oarg{Vorsatz}\marg{Eintrag}\oarg{Anhang}
+% \cs{Process@Markup}\val{\ignorespaces%
+% \marg{Element}=\meta{Wert}=\oarg{Ausgabesuffix}\ignorespaces%
+% \parg{Bundleelement}<\meta{CTAN-Paket}>\ignorespaces%
+% '\meta{Referenzvariante}'\ignorespaces%
+% }%
% \endgroup
+%
+% In eingen Fällen ist es beim Aufruf eines Markup-Befehls nicht erwünscht,
+% dass dieser auch tatsächlich ausgegeben wird. Für diesen Fall wird gleich zu
+% Beginn der Befehl \cs{Markup@Suppress} definiert, der dies ermöglicht.
+% \begin{macrocode}
+\newcommand*\Markup@Suppress{\let\Process@Markup\Markup@@Suppress}
+\NewDocumentCommand\Markup@@Suppress{md==od()d<>d''}{}
+% \end{macrocode}
+% Nun folgt die eigentliche Befehlsdefinition.
% \begin{macrocode}
-\NewDocumentCommand\@ProcessOutput{mod''d()md()omo}{%
+\NewDocumentCommand\Process@Markup{md==od()d<>d''}{%
% \end{macrocode}
-% Mit dem Schalter \cs{if@declare} wird unterschieden, ob ein beliebiger
-% Auszeichnungsbefehl innerhalb der Umgebung~\env{Declaration} verwendet wird.
-% Ist dies der Fall wird ein Label und mit \cs{@HyperIndex} ein spezieller
-% Indexeintrag für die Deklaration erstellt. Eine Ausgabe der Auszeichnung
-% erfolgt in diesem Fall nicht, dafür ist der Befehl \cs{printdeclarationlist}
-% verantwortlich. Außerdem wird mit Hilfe der \env{Declaration}-Umgebung der
-% Anfang und das Ende der Deklaration für den Indexeintrag mit \cs{@HyperIndex}
-% exakt festgelegt. Der Schalter \cs{if@openindex} wird zu Beginn der Umgebung
-% auf \cs{@openindextrue} gesetzt, am Ende dieser auf \cs{@openindexfalse}.
+% Zu Beginn wird mit dem Schalter \cs{if@tud@declare} geprüft, ob die der
+% Markup-Befehl in einer der Deklarationsumgebungen oder anderweitig genutzt
+% wird. Für den ersten Fall erfolgt die Weiterverarbeitung der Argumente mit
+% \cs{Process@@MarkupDeclare}, andernfalls kommt \cs{Process@@MarkupInline} zum
+% Einsatz. Da beide Makros die gleiche Reihenfolge der Argumente verlangen,
+% wird der jeweilige Befehlsaufruf über ein Token-Register realisiert, womit
+% das Zusammensetzen der notwendigen Übergabewerte erleichtert wird.
+%
+% Die Fallunterscheidung betrifft des Weiteren die Erzeugung des Labels. Für
+% eine Deklaration wird die Sternversion von \cs{tud@lbl@get@curr} verwendet,
+% welche ein Label aus den gegebenen Argumenten zusammensetzt. Ist keine
+% Deklaration aktiv, versucht \cs{tud@lbl@get@curr} ein gültiges, schon
+% vorhandenes Label zu verwenden. Das generierte Label wird anschließend als
+% erstes Argument für das weiterverabeitende Makro genutzt.
% \begin{macrocode}
- \if@declare%
+%<*class>
+ \if@tud@declare%
+ \tud@toks@{\Process@@MarkupDeclare}%
+ \IfValueTF{#4}{%
+ \tud@lbl@get@curr*\tud@lbl@tmp{#4:#1}=#2=%
+ }{%
+ \tud@lbl@get@curr*\tud@lbl@tmp{\tud@bdl@curr:#1}=#2=%
+ }%
+ \else%
+%</class>
+ \tud@toks@{\Process@@MarkupInline}%
+ \tud@lbl@get@curr\tud@lbl@tmp{#4:#1}=#2=%
+%<*class>
+ \fi%
+%</class>
+ \eaddto@hook\tud@toks@{\expandafter{\tud@lbl@tmp}}%
+% \end{macrocode}
+% Danach wird der Inhalt des im ersten Argument übergebenen Markup-Befehls in
+% einer Gruppe ein temporäres Makro expandiert und als zweites Argument für die
+% Weiterverarbeitung genutzt.
+% \begin{macrocode}
+ \begingroup%
+ \Markup@Gobble*%
+ \protected@edef\tud@reserved{%
+ \noexpand\endgroup%
+ \def\noexpand\tud@reserved{#1}%
+ }%
+ \tud@reserved%
+ \eaddto@hook\tud@toks@{\expandafter{\tud@reserved}}%
+% \end{macrocode}
+% Es folgen gegebenenfalls die optionalen Argument \val{=}\meta{Wert}\val{=}
+% sowie \oarg{Ausgabesuffix}~-- falls diese angegeben wurden.
+% \begin{macrocode}
+ \IfValueT{#2}{\addto@hook\tud@toks@{=#2=}}%
+ \IfValueT{#3}{\addto@hook\tud@toks@{[#3]}}%
+% \end{macrocode}
+% Erfolgt gerade eine Deklaration, wird mit dem Schalter \cs{if@openindex}
+% eigentlich unterschieden, ob ein öffnender oder ein schließender Indexeintrag
+% erzeugt werden soll. Dieser wird mit \cs{Process@@Index} erstellt. Um den
+% schließenden Indexeintrag zu erzeugen, ist die Ausführung des Hauptargumentes
+% der Deklarationsumgebung am Ende dieser notwendig. Dabei soll allerdings das
+% Markup nicht noch ein weiteres Mal ausgegeben werden. Deshalb wird der
+% Schalter hier genutzt, um lediglich zu Beginn einer Deklaration das Markup
+% auszuführen. Dabei Angaben für eine \val{'}\meta{Referenzvariante}\val{'}
+% nicht erlaubt.
+% \begin{macrocode}
+%<*class>
+ \if@tud@declare%
\if@openindex%
- \IfValueT{#3}{%
- \ClassWarning{tudscrman}{%
+ \IfValueT{#6}{%
+ \ClassWarning{tudscrmanual}{%
It is not possible to use any cross-reference\MessageBreak%
- shorthand like '#3' within the arguments of\MessageBreak%
+ shorthand like '#6' within the arguments of\MessageBreak%
the environment `Declaration'%
}%
}%
% \end{macrocode}
-% Das zu erzeugende Label wird definiert.
+% Für ein eventuell notwendiges Debugging, wird \cs{Process@@MarkupDeclare} mit
+% seinen Argumenten ggf. in das Log-File geschrieben.
% \begin{macrocode}
- \IfValueTF{#6}{\edef\@tempa{#5:#6:#8}}{\edef\@tempa{#5:#8}}%
+ \tud@trace@markup{declare}{\the\tud@toks@}%
+ \else%
+ \tud@toks@{\relax}%
+ \fi%
% \end{macrocode}
-% Für die Deklaration veralteter Optionen, Befehle etc. kann die Sternvariante
-% des Auszeichnungsbefehls verwendet werden, um das Erzeugen eines Labels zu
-% unterbinden.
+% Findet der Auszeichnungsbefehl außerhalb einer Umgebung für Deklarationen
+% Verwendung, werden die optionalen Argumente für einen CTAN-Link
+% \val{<}\meta{CTAN-Paketname}\val{>} sowie die Formatierung des Querverweise
+% \val{'}\meta{Referenzvariante}\val{'} hinzugefügt~-- falls vorhanden. Dies
+% geschieht jedoch nur, wenn das Markup nicht innerhalb eines Index erfolgt,
+% da hier URL-Hyperlinks und formatierte Querverweise unerwünscht sind. Mit
+% der Angabe eines leeren Argumentes \val{<>} wird gar kein Hyperlink erstellt.
% \begin{macrocode}
- \if@deprecated%
- \expandafter\IfBooleanF\expandafter{\@IndexFormat}{%
- \manualhyperdef{\@tempa}%
- }%
+ \else%
+%</class>
+ \if@tud@index\else%
+ \IfValueT{#5}{%
+ \ifxblank{#5}{}{\addto@hook\tud@toks@{<http://www.ctan.org/pkg/#5>}}%
+ }%
+ \IfValueT{#6}{\addto@hook\tud@toks@{'#6'}}%
+ \fi%
+%<*class>
% \end{macrocode}
-% Wurde die Sternversion eines Auszeichnungsbefehls innerhalb der Umgebung
-% \env{Declaration} genutzt, wird lediglich ein Label aber kein Eintrag im
-% Index erzeugt.
+% Auch hier wird ggf. ein Debug-Eintrag ins Log-File geschrieben.
% \begin{macrocode}
- \else%
- \expandafter\IfBooleanTF\expandafter{\@IndexFormat}{%
- \manualhyperdef{\@tempa}%
+ \tud@trace@markup{output}{\the\tud@toks@}%
+ \fi%
% \end{macrocode}
-% Andernfalls werden Label bzw. Hyperlinkanker und ein Eintrag in den Index
-% erzeugt, wobei die Formatierung dieses Eintrags fest vorgegeben ist.
-% \begin{macrocode}
- }{%
- \ifx\@IndexFormat\@empty\else%
- \ClassWarning{tudscrman}{%
- It is not possible to use any indexing format\MessageBreak%
- like |\@IndexFormat| within the arguments of the\MessageBreak%
- environment `Declaration'%
+% Ganz zum Schluss wird noch für beide Fälle geprüft, ob \parg{Bundleelement}
+% angegeben wurde. Ist dies der Fall, wird zum einen das \meta{Bundleelement}
+% zur Überprüfung ggf. in das Log-File geschrieben, zum anderen wird geprüft,
+% ob für das \meta{Element} überhaupt ein Link definiert wurde, der verwendet
+% werden soll. Ist dies nicht der Fall, wird eine Warnung ausgegeben. Dies ist
+% möglich, da durch die automatische Labelgenerierung normalerweise alle nicht
+% existierenden Labels mit \meta{Bundlepräfix} auf \cs{tud@bdl@dftl} verweisen
+% müssten. Für die wenigen Fälle, in denen gezielt auf einen Querverweis
+% verzichtet werden soll, kann ein leeres Argument \val{()} angegeben werden.
+% \begin{macrocode}
+ \if@tud@index\else%
+ \IfValueT{#4}{%
+ \ifxblank{#4}{}{%
+ \tud@trace@bdl@add{#4}%
+ \ifstr{#6}{none}{}{%
+ \tud@if@lbl@exists{\tud@lbl@tmp}{}{%
+ \ClassWarning{tudscrmanual}{%
+ No existing label \tud@lbl@tmp\space for #4%
}%
- \fi%
-% \end{macrocode}
-% Wird zur Deklaration die Umgebung \env{Declaration*} genutzt, so wird der
-% Hyperlink ein ganzes Stück nach oben verschoben. Hintergrund ist, dass diese
-% Umgebung nur zum Deklarieren von Klassen und Paketen gedacht ist und direkt
-% nach einer Gliederungsüberschrift folgen sollte.
-% \begin{macrocode}
- \if@stareddeclare%
- \manualhyperdef'{\@tempa}%
+ }%
+ }%
+ }%
+ }%
+ \fi%
% \end{macrocode}
-% Andernfalls wird der normale Hyperlink gesetzt. Das Label zum Prüfen wird
-% implizit durch \cs{manualhyperdef} gesetzt.
+% Nun erfolgt mit \cs{Process@@MarkupDeclare} bzw. \cs{Process@@MarkupInline}
+% die Ausführung der eigentlichen Auszeichnung.
% \begin{macrocode}
- \else%
- \manualhyperdef{\@tempa}%
- \fi%
- \@HyperIndex{#5}{#6}{#7}{#8}{#9}{(declare}%
- }%
- \fi%
+%</class>
+ \the\tud@toks@%
+}
% \end{macrocode}
-% Die \env{Declaration*}"=Umgebung erzeugt keine direkte Ausgabe sondern nur
-% die Hyperlinks und Indexeinträge. Die Nennung der Klasse bzw. des Paketes
-% oder der Pakete sollte in der Überschrift davor erfolgen.
+% \end{macro}^^A \Markup@@Suppress
+% \end{macro}^^A \Markup@Suppress
+% \end{macro}^^A \Process@Markup
+% \begin{macro}{\Process@@MarkupDeclare}
+% \changes{v2.05}{2015/11/05}{neu}^^A
+% Mit \cs{Process@@MarkupDeclare} wird die formatierte Ausgabe der Deklaration
+% realisiert. Wie diese genau gestaltet ist, wird durch \cs{tud@declare@num}
+% bestimmt. Folgende Werte sind möglich:
+% \begin{description}
+% \item[\val{0}:] Ausgabe von Markup, Erzeugen eines Labels
+% \item[\val{1}:] Ausgabe von Markup, kein Label
+% \item[\val{2}:] keine Ausgabe, aber Erzeugen eines Labels
+% \item[\val{3}:] keine Ausgabe, Erzeugen eines nach oben verschobenen Labels
+% \end{description}
+% Normalerweise kommt die erste Variante zum Einsatz. Die zweite Variante wird
+% genutzt, wenn mit mit der Umgebung \env{Obsolete} zwar eine Ausgabe aber kein
+% Label erstellt werden soll. Dies wird verwendet, um bei der Beschreibung
+% veralteter Werte oder Parameter diese im Kontext ihrer Option oder Umgebung
+% bzw. ihres Befehls anzugeben.
+%
+% Die dritte Version kommt bei Erklärungen mit der Umgebung \env{Declaration*}
+% zum Einsatz, welche im Fließtext verwendet wird und kein Markup, wohl aber
+% eine Label für das beschriebene Element erzeugt werden soll. Für die vierte
+% Variante, welche die Umgebung \env{Bundle*} betrifft, gilt dies im Prinzip
+% gleichermaßen. Allerdings wird diese Umgebung zu Beginn der Deklarationen
+% eines Bundleelements direkt nach einer Überschrift verwendet. Hier soll der
+% erzeugte Link direkt auf der Höhe der Überschrift platziert werden.
+%
+% Das erste Argument enthält das zu definierende Label, gefolgt vom Element,
+% welches ausgezeichnet werden soll. Die tatsächliche Ausgabe erfolgt mit dem
+% Makro \cs{Markup@Output}. An dieses werden die beiden optionalen Argumente
+% \val{=}\meta{Wert}\val{=} und \oarg{Ausgabesuffix} direkt weitergereicht.
+%
+% Vor der eigentlichen Ausführung wird mit \cs{Markup@CheckFormat} geprüft, ob
+% für das auszuzeichnende Element mit \cs{Markup@SetFormat} überhaupt eine
+% Ausgabeformatierung defineirt wurde. Nach der Ausgabe wird diese Formatierung
+% mit \cs{Markup@ClearFormat} zurückgesetzt.
% \begin{macrocode}
- \if@stareddeclare\else%
- #1\IfValueT{#2}{#2}%
- \fi%
+%<*class>
+\NewDocumentCommand\Process@@MarkupDeclare{mmd==o}{%
+ \Markup@CheckFormat%
+ \ifcase\tud@declare@num\relax%
+ \tudhyperdef{#1}%
+ \Markup@Output{#2}=#3=[#4]%
+ \or%
+ \Markup@Output{#2}=#3=[#4]%
+ \or%
+ \tudhyperdef{#1}%
+ \or%
+ \tudhyperdef*{#1}%
+ \def\@tempa##1:##2:##3\@nil{\tudhyperdef*{##3:##2:##3}}%
+ \@tempa#1\@nil%
+ \fi%
+ \Markup@ClearFormat%
+}
+%</class>
% \end{macrocode}
-% Zum Ende der \env{Declaration}"=Umgebung wird der Indexeintrag beendet.
+% \end{macro}^^A \Process@@MarkupDeclare
+% \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}
+% auf eine existierende Markup-Definition geprüft wurde.
% \begin{macrocode}
- \else%
- \if@deprecated\else%
- \expandafter\IfBooleanF\expandafter{\@IndexFormat}{%
- \@HyperIndex{#5}{#6}{#7}{#8}{#9}{declare)}%
- }%
- \fi%
- \fi%
- \else%
+\NewDocumentCommand\Process@@MarkupInline{mmd==od<>d''}{%
+ \Markup@CheckFormat%
% \end{macrocode}
-% Findet der Auszeichnungsbefehl außerhalb der \env{Declaration}-Umgebung im
-% Fließtext Verwendung, wird für den Fall, dass keine Sternversion genutzt
-% wurde, mit \cs{@HyperIndex} ein Eintrag im dazugehörigen Index erzeugt.
+% Um die aktuelle Definiton der temporären Makros nicht zu ändern, erfolgt die
+% formatierte Ausgabe in einer Gruppe. Dabei wird in \cs{@tempc} die minimale
+% Variante gesichert.
% \begin{macrocode}
- \ifx\@IndexFormat\relax%
- \ClassError{tudscrman}{\string\SetIndexFormat\space unused}{%
- It seems you have forgotten to use \string\SetIndexFormat.%
- }%
- \else%
- \expandafter\IfBooleanF\expandafter{\@IndexFormat}{%
- \@HyperIndex{#5}{#6}{#7}{#8}{#9}{\@IndexFormat}%
- }%
- \fi%
+ \begingroup%
+ \def\@tempc{\Markup@Output{#2}=#3=[#4]}%
% \end{macrocode}
-% Danach erfolgt die Ausgabe der Auszeichnung. Sollte für diesen ein Label
-% durch eine Deklaration innerhalb der \env{Declaration}-Umgebung definiert
-% worden sein, so wird auf dieses ein Hyperlink gesetzt. Ansonsten erfolgt die
-% normale textuelle Ausgabe. Für Parameter muss der Hyperlink dabei aufgrund
-% des definierten Haupteintrag etwas anders ausgeführt werden (\cs{@tempa}).
+% Danach wird eine Fallunterscheidung anhand des im ersten Argument übergebenen
+% Labels getroffen. Existiert dieses, soll das Element als Hyperlink ausgegeben
+% werden. Die Definition dafür wird in \cs{@tempa} gespeichert.
% \begin{macrocode}
- \IfValueTF{#6}{\edef\@tempa{#5:#6:#8}}{\edef\@tempa{#5:#8}}%
- \ifcsdef{r@\@tempa}{%
+%<*class>
+ \tud@if@lbl@exists{#1}{%
+ \def\@tempa{\hyperref{}{\tud@manualname}{#1}{\@tempc}}%
% \end{macrocode}
+% Anschließend wird \cs{@tempb} ggf. für den erweiterten Querverweis verwendet.
% Wurde ein Format für den Querverweis gesetzt, muss dieses validiert werden.
-% Gültige Kürzel sind 'auto', 'page' und 'full'. Damit werden die erzeugten
-% Querverweise um den Gliederungsabschnitt, die Seite oder beides ergänzt.
-% Außerdem kann mit 'none' der Hyperlink selbst unterbunden werden.
+% Gültige Kürzel sind \val{'auto'}, \val{'page'} und \val{'full'}. Damit werden
+% die erzeugten Querverweise um den Gliederungsabschnitt, die Seite oder beides
+% ergänzt. Außerdem kann mit \val{'none'} der Hyperlink komplett unterbunden
+% werden. Für \cs{Package} kann mit zusätzlich \val{'url'} noch der gCTAN-Link
+% forciert werden, auch wenn eigentlich ein Label für das Paket existiert.
% \begin{macrocode}
\let\@tempb\relax%
- \def\@tempc{\mbox{\hyperref{}{\jobname}{\@tempa}{#1}\IfValueT{#2}{#2}}}%
- \IfValueT{#3}{%
+ \IfValueT{#6}{%
\def\@tempb{%
- \ClassWarning{tudscrman}{%
+ \ClassWarning{tudscrmanual}{%
You've used the unknown cross-reference\MessageBreak%
- shorthand '#3'. Only 'auto', 'page'\MessageBreak%
- and 'full' as well as 'none' are valid%
+ shorthand '#6'. Only 'auto', 'page' and 'full'\MessageBreak%
+ as well as 'none' \IfValueT{#5}{or 'url' }are valid%
}%
}%
- \ifstr{#3}{auto}{\def\@tempb{ in \autoref{\@tempa}}}{}%
- \ifstr{#3}{page}{\def\@tempb{ \vpageref{\@tempa}}}{}%
- \ifstr{#3}{ppage}{\def\@tempb{ \reftextfaraway{\@tempa}}}{}%
- \ifstr{#3}{full}{\def\@tempb{ in \fullref{\@tempa}}}{}%
- \ifstr{#3}{none}{%
- \let\@tempb\relax%
- \def\@tempc{\mbox{#1\IfValueT{#2}{#2}}}%
- }{}%
+ \ifstr{#6}{auto}{\def\@tempb{ in \autoref{#1}}}{%
+ \ifstr{#6}{page}{\def\@tempb{ \vpageref{#1}}}{%
+ \ifstr{#6}{ppage}{\def\@tempb{ \reftextfaraway{#1}}}{%
+ \ifstr{#6}{full}{\def\@tempb{ in \fullref{#1}}}{%
+ \ifstr{#6}{none}{\let\@tempa\@tempc\let\@tempb\relax}{}}}}}%
+ \IfValueT{#5}{%
+ \ifstr{#6}{url}{\def\@tempa{\href{#5}{\@tempc}}\let\@tempb\relax}{}%
+ }%
}%
- \@tempc\@tempb%
}{%
+%</class>
% \end{macrocode}
-% Wurde ein Format für den Querverweis gesetzt und es existiert kein passendes
-% Label, wird eine Warnung ausgegeben.
+% Existiert kein Label, so wird einfach die minimale Markup-Variante verwendet.
+% Für Pakete wird ein CTAN-Link erzeugt.
% \begin{macrocode}
- \IfValueT{#3}{%
- \ClassWarning{tudscrman}{%
- No cross-reference created, label \@tempa\space is missing%
- }%
- }%
+ \let\@tempa\@tempc%
+ \IfValueT{#5}{\def\@tempa{\href{#5}{\@tempc}}}%
% \end{macrocode}
-% Sollte ein Paket mit \cs{Package} angegeben worden sein, so wurde das erste
-% optionale Argument in runden Klammern verwendet. Dieses wird genutzt, um
-% einen Hyperlink auf CTAN zu generieren. Die Ausgabe selbst besteht in jedem
-% Fall aus dem ersten obligatorischen und ggf. dem ersten optionalen Argument.
+% Ein Querverweis kann logischerweise nicht erstellt werden. Wurde dennoch im
+% letzten optionalen Argument eine \val{'}\meta{Referenzvariante}\val{'} für
+% den Querverweis angegeben, wird eine Warnung erzeugt.
% \begin{macrocode}
- \IfValueTF{#4}{%
- \ifstr{#4}{}{\mbox{#1\IfValueT{#2}{#2}}}{%
- \href{http://www.ctan.org/pkg/#4}{\mbox{#1\IfValueT{#2}{#2}}}%
+ \let\@tempb\relax%
+ \IfValueT{#6}{%
+ \ifstr{#6}{none}{\let\@tempa\@tempc}{%
+%<package> \ifstr{#6}{manual}{\def\@tempa{\tudhyperref{#1}{\@tempc}}}{%
+ \def\@tempb{%
+ \ClassWarning{tudscrmanual}{%
+%<*class>
+ Label #1\MessageBreak%
+ is missing, no cross-reference created.%
+%</class>
+%<*package>
+ You've used the unknown cross-reference\MessageBreak%
+ shorthand '#6'. Only 'none' and 'manual'\MessageBreak%
+ are valid%
+%</package>
+ }%
+ }%
+%<package> }%
}%
- }{%
- \mbox{#1\IfValueT{#2}{#2}}%
}%
+% \end{macrocode}
+% Um im Zweifel nach allen fehlenden Labels im Log-File prüfen zu können, gibt
+% es den passenden Debug-Befehl.
+% \begin{macrocode}
+%<*class>
+ \tud@trace@lbl@missing@add{#1}%
}%
+%</class>
+% \end{macrocode}
+% 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}%
+% \end{macrocode}
+% Zum Schluss wird die Formatierung mit \cs{Markup@ClearFormat} zurückgesetzt.
+% \begin{macrocode}
+ \endgroup%
+ \Markup@ClearFormat%
+}
+% \end{macrocode}
+% \end{macro}^^A \Process@@MarkupInline
+% \begin{macro}{\Markup@Output}
+% \changes{v2.05}{2015/11/05}{neu}^^A
+% \begin{macro}{\Markup@@Output}
+% \changes{v2.05}{2015/11/05}{neu}^^A
+% Der Befehl \cs{Markup@Output} wird für die formatierte Markup-Ausgabe von den
+% beiden Makros \cs{Process@@MarkupDeclare} sowie \cs{Process@@MarkupInline}
+% aufgerufen. Das erste Argument enthält dabei das auszuzeichnende Element.
+% Dabei ist die Besonderheit des Makros \cs{Key}\marg{Makro}\marg{Parameter} zu
+% beachten, dessen beiden Argumente hier in der Form \marg{Makro!Parameter}
+% übergeben werden. Deshalb wird das erste Argument mit dem Argumentprozessor
+% \cs{SplitArgument}\val{\{1\}\{!\}} getrennt und dann weiter verarbeitet.
+% \begin{macrocode}
+\NewDocumentCommand\Markup@Output{>{\SplitArgument{1}{!}}md==o}{%
+ \Markup@@Output#1=#2=[#3]%
+}
+% \end{macrocode}
+% Anschließend wird entweder \cs{Markup@Declare} oder \cs{Markup@Inline}
+% aufgerufen~-- abermals abhängig vom Schalter \cs{if@tud@declare}. Auch hier
+% wird für den Befehlsaufruf mit dem dazugehörigen Argument zur Vereinfachung
+% ein Token-Register verwendet.
+% \begin{macrocode}
+\NewDocumentCommand\Markup@@Output{mmd==o}{%
+%<*class>
+ \if@tud@declare%
+ \tud@toks@{\Markup@Declare}%
+ \else%
+%</class>
+ \tud@toks@{\Markup@Inline}%
+%<*class>
\fi%
+%</class>
% \end{macrocode}
-% Zum Schluss wird \cs{@IndexFormat} zurückgesetzt.
+% Ist das aktuelle Element \cs{Key} wird nur das zweite Argument ausgegeben.
+% Das erste wird lediglich für Label und Indexeintrag benötigt.
% \begin{macrocode}
- \let\@IndexFormat\relax%
+ \IfValueTF{#2}{%
+ \def\@tempa{#2}%
+ }{%
+ \def\@tempa{#1}%
+ }%
+% \end{macrocode}
+% Die beiden optionalen Argumente werden ggf. in der gleichen Formatierung
+% ausgegeben.
+% \begin{macrocode}
+ \IfValueT{#3}{\appto\@tempa{=#3}}%
+ \IfValueT{#4}{\appto\@tempa{#4}}%
+ \eaddto@hook\tud@toks@{\expandafter{\@tempa}}%
+ \the\tud@toks@%
}
% \end{macrocode}
-% \end{macro}^^A \@ProcessOutput
-% \begin{macro}{\hyperidx}
-% \changes{v2.02}{2014/08/16}{neu}^^A
-% Aufgrund der Nichtbeachtung von RegExp"=Ausdrücken durch den Indexprozessor
-% \texttt{texindy} (\url{http://sourceforge.net/p/xindy/bugs/22/}) muss hierfür
-% etwas getrickst werden. Der Befehl \cs{hyperidx} hat ein optionales Argument,
-% in welchem das für \cs{manualhyperref} obligatorische Label enthalten ist.
-% Das führt dazu, dass \texttt{texindy} dieses beim internen Filtern in eckigen
-% Klammern beibehält und es anschließend über eine in \texttt{tudscrman.xdy}
-% eigens definierte \texttt{merge-rule} verworfen werden kann.
-% \begin{macrocode}
-\newrobustcmd*\hyperidx[2][]{\manualhyperref{#1}{#2}}
-% \end{macrocode}
-% \end{macro}^^A hyperidx
-% \begin{macro}{\@HyperIndex}
-% \changes{v2.02}{2014/10/08}{überarbeitet}^^A
-% Dieser Befehl sorgt für die eigentlichen Indexeinträge. Dabei werden für
-% Einträge, welche innerhalb der \env{Declaration}-Umgebung deklariert wurden,
-% ein Hyperlink im Index erstellt. Das erste Argument \marg{Index} enthält den
-% gewünschten Zielindex. Danach folgt~-- für Parameter~-- der Haupteintrag.
-% Daran schließt der Indexeintrag selbst mit \marg{Vorsatz}, \marg{Eintrag},
-% \marg{Anhang} und zum Abschluss \oarg{Formatierung} an. Der vollständige
-% Funktionsaufruf lautet:
+% \end{macro}^^A \Markup@@Output
+% \end{macro}^^A \Markup@Output
+% \begin{macro}{\Markup@Inline}
+% \changes{v2.05}{2015/11/05}{neu}^^A
+% \begin{macro}{\Markup@Declare}
+% \changes{v2.05}{2015/11/05}{neu}^^A
+% \begin{macro}{\Markup@@Declare}
+% \changes{v2.05}{2015/11/05}{neu}^^A
+% Die Ausgabe selbst ist alles andere als spektakulär. Die zur Formatierung
+% verwendeten Makros \cs{Markup@Format} und \cs{Markup@Suffix} werden durch
+% \cs{Markup@SetFormat} für jedes Markup-Element individuell definiert.
+% \begin{macrocode}
+\newcommand*\Markup@Inline[1]{\mbox{\Markup@Format{#1}}}
+%<*class>
+\newcommand*\Markup@Declare{}
+\newcommand*\Markup@@Declare[1]{%
+ \begingroup\Markup@Format{#1}\endgroup\Markup@Suffix%
+}
+%</class>
+% \end{macrocode}
+% \end{macro}^^A \Markup@@Declare
+% \end{macro}^^A \Markup@Declare
+% \end{macro}^^A \Markup@Inline
+% \begin{macro}{\Markup@SetFormat}
+% \changes{v2.05}{2015/11/05}{neu}^^A
+% \begin{macro}{\Markup@CheckFormat}
+% \changes{v2.05}{2015/11/05}{neu}^^A
+% \begin{macro}{\Markup@ClearFormat}
+% \changes{v2.05}{2015/11/05}{neu}^^A
+% \begin{macro}{\Markup@Format}
+% \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 geanuere
+% Beschreibung oder Spezifizierung erscheinen soll, beispielsweise etwas wie
+% \enquote{Umgebung} oder \enquote{Parameter}. Mit dem optionalen Argument in
+% runden Klammern wird es möglich, die Definition von \cs{Markup@Declare}, die
+% ohne eine Angabe der von \cs{Markup@@Declare} entspricht, zu ändern. Dies
+% 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>
+}
+% \end{macrocode}
+% Das durch die \TUDScript-Hauptklassen in Ergänzung zum Paket \pkg{fontspec}
+% erstellte Makro \cs{tud@x@textcase@uclcnotmath} erlaubt die Definition von
+% Makros, welche von \cs{MakeTextUppercase} nicht beachtet werden sollen.
+% Dieser Befehl kommt bei den \TUDScript-Klassen in Überschriften 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.
+% \begin{macrocode}
+\robustify\NoCaseChange
+\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}
+% Nach der formatierten Ausgabe wird \cs{Markup@ClearFormat} aufgerufen, um die
+% aktuell definierte Formatierung zurückzusetzen und bei einem neuen Aufruf
+% eines der Markup-Befehle mit \cs{Markup@CheckFormat} auf die Verwendung von
+% \cs{Markup@SetFormat} prüfen zu können.
+% \begin{macrocode}
+\newcommand*\Markup@ClearFormat{%
+ \let\Markup@Format\relax%
+ \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%
+}
+% \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
+%
+% \subsection{Index}
+%
+% Hier erscheint alles, was für Erstellen und Ausgabe der einzelnen Indexe
+% notwendig ist.
+%
+% \subsubsection{Indexerstellung}
+%
+% Für die Erstellung aller Indexe wird das Paket \pkg{imakeidx} zusammen mit
+% \app{texindy} verwendet. Diese können sowohl mit dem Paket als auch mit der
+% Klasse erzeugt werden.
+% \begin{macrocode}
+\PassOptionsToPackage{xindy,splitindex}{imakeidx}
+\RequirePackage{imakeidx}[2013/07/11]
+% \end{macrocode}
+% Zuerst ein paar kleinere Einstellungen für das Layout\dots
+% \begin{macrocode}
+\indexsetup{%
+%<*class>
+ level=\addsec,%
+%</class>
+%<*package>
+ level=\subsection*,%
+%</package>
+ noclearpage,firstpagestyle=headings,headers={\indexname}{\indexname},%
+ othercode={\renewcommand*\subitem{\@idxitem\hspace*{15\p@}}}%
+}
+% \end{macrocode}
+% \begin{environment}{theindex}
+% \dots gefolgt von einem Patch für die Umgebung \env{theindex}, um unschöne
+% Seitenumbrüche direkt nach Überschriften zu vermeiden. Diese treten auf, das
+% das Paket \pkg{imakeidx} meiner Meinung nach die Überschriften zusammen mit
+% der \env{multicols}-Umgebung falsch setzt. Der Patch sorgt dafür, dass die
+% Überschriften (\cs{imki@indexlevel}\val{\{}{\cs{indexname}\val{\{\}}}) nicht
+% vor der Umgebung sondern~-- wie für \pkg{multicol} auch dokumentiert~-- im
+% optionalen Argument von \env{multicols} aufgerufen werden.
+% \begin{macrocode}
+\ifimki@original\else%
+ \CheckCommand\theindex{%
+ \imki@maybeaddtotoc
+ \imki@indexlevel{\indexname}\imki@indexheaders
+ \thispagestyle{\imki@firstpagestyle}%
+ \ifnum\imki@columns>\@ne
+ \columnsep \imki@columnsep
+ \ifx\imki@idxprologue\relax
+ \begin{multicols}{\imki@columns}
+ \else
+ \begin{multicols}{\imki@columns}[\imki@idxprologue]
+ \fi
+ \else
+ \imki@idxprologue
+ \fi
+ \global\let\imki@idxprologue\relax
+ \parindent\z@
+ \parskip\z@ \@plus .3\p@\relax
+ \columnseprule \ifKV@imki@columnseprule.4\p@\else\z@\fi
+ \raggedright
+ \let\item\@idxitem
+ \imki@othercode%
+ }%
+ \patchcmd{\theindex}{%
+ \imki@indexlevel{\indexname}\imki@indexheaders%
+ }{%
+ \imki@indexheaders%
+ }{}{\tud@patch@wrn{theindex}}%
+ \patchcmd{\theindex}{%
+ \ifnum\imki@columns>\@ne
+ \columnsep \imki@columnsep
+ \ifx\imki@idxprologue\relax
+ \begin{multicols}{\imki@columns}
+ \else
+ \begin{multicols}{\imki@columns}[\imki@idxprologue]
+ \fi
+ \else
+ \imki@idxprologue
+ \fi
+ }{%
+ \ifnum\imki@columns>\@ne\relax%
+ \columnsep \imki@columnsep%
+ \ifx\imki@idxprologue\relax%
+ \begin{multicols}{\imki@columns}[\imki@indexlevel{\indexname}]%
+ \else%
+ \begin{multicols}{\imki@columns}[%
+ \imki@indexlevel{\indexname}%
+ \imki@idxprologue%
+ ]%
+ \fi%
+ \else%
+ \imki@indexlevel{\indexname}\imki@idxprologue%
+ \fi%
+ }{}{\tud@patch@wrn{theindex}}%
+\fi%
+% \end{macrocode}
+% \end{environment}^^A theindex
+% \begin{macro}{\cleversee}
+% \changes{v2.05}{2015/11/02}{neu}^^A
+% \begin{macro}{\cleverseealso}
+% \changes{v2.05}{2015/11/02}{neu}^^A
+% \begin{macro}{\tud@cleversee}
+% \changes{v2.05}{2015/11/02}{neu}^^A
+% Diese Befehle dienen zum smarten Setzen von Hinweisen im Index. Existiert
+% lediglich dieser Hinweis im Index, wird dieser mit dem Präfix \cs{seename}
+% ausgegeben. Sind jedoch für einen Indexeintrag auch Seitenzahlen vorhanden,
+% so werden diese zuerst ausgegeben, danach folgt der Querverweis mit dem
+% Präfix \cs{seealsoname}. Der Befehl \cs{cleverseealso} verwendet letzteren
+% Präfix in jedem Fall.
+% \begin{macrocode}
+\newrobustcmd*\cleversee{\tud@cleversee{\seename}}
+\newrobustcmd*\cleverseealso{%
+ \ClassWarning{tudscrmanual}{You should use `|see' instead of `|seealso'}%
+ \tud@cleversee{\alsoname}%
+}
+% \end{macrocode}
+% Diese Makro übernimmt die eigentliche Arbeit. Es ist darauf angewiesen, dass
+% die angegebene Seitenzahlen eines Indexeintrages erst \emph{nach} den
+% Hinweisen ausgegeben und mit \cs{relax} abgeschlossen werden. Dies wird mit
+% der später definierten Stildatei für \app{texindy} sichergestellt. So wird es
+% möglich, dass das Makro \cs{tud@cleversee} auf alles ihm bis \cs{relax}
+% nachfolgende parsen kann und abhängig davon die Ausgabe gestaltet.
+% \begin{macrocode}
+\newcommand*\tud@cleversee{}
+\def\tud@cleversee#1#2#3\relax{%
+ \IfArgIsEmpty{#3}{%
+ \emph{#1}\space#2%
+ }{%
+ #3, \emph{\alsoname}\space#2%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@cleversee
+% \end{macro}^^A \cleverseealso
+% \end{macro}^^A \cleversee
+% \begin{macro}{\seeref}
+% \changes{v2.05}{2015/11/02}{neu}^^A
+% \begin{macro}{\seeidx}
+% Der Befehl \cs{seeref} kann anstelle von \cs{see} bzw. in der Sternversion
+% statt \cs{alsosee} genutzt werden. Das Makro \cs{seeidx} verweist auf die
+% Seite eines Indexes.
+% \begin{macrocode}
+%<*class>
+\NewDocumentCommand\seeref{sm}{%
+ \emph{\IfBooleanTF{#1}{\alsoname}{\seename}}\space#2%
+}
+\newcommand*\seeidx[2]{\pageref{idx:#1}}
+%</class>
+% \end{macrocode}
+% \end{macro}^^A \seeidx
+% \end{macro}^^A \seeref
+% \begin{macro}{\makexdyindex}
+% \changes{v2.05}{2015/11/01}{neu}^^A
+% Um die einzelnen Indexe erstellen zu können, wird das Makro \cs{makexdyindex}
+% definiert. Die Sternversion dieses Befehle erstellt dabei neben dem normalen
+% Spezialindex einen weiteren, welcher explizit für Deklarationen genutzt wird.
+% Dieser wird anschließen als erstes an \app{texindy} weitergereicht, um die
+% richtige Formatierung der einzelnen Einträge gewährleisten zu können. Erst
+% danach wird die Datei mit den normalen Einträgen verarbeitet. Siehe hierzu
+% auch \cs{Process@@Index}.
+% \begin{macrocode}
+\NewDocumentCommand\makexdyindex{somo}{%
+ \let\@tempb\@empty%
+%<*class>
+ \IfBooleanT{#1}{%
+ \def\@tempc{\jobname-#4-declare.idx}%
+ \makeindex[name={#4-declare}]%
+ \IfFileExists{\@tempc}{%
+ \edef\@tempb{-o \jobname-#4.ind \@tempc}%
+ }{%
+ \ClassWarning{tudscrmanual}{File \@tempc\space not found}%
+ }%
+ }%
+%</class>
+ \protected@edef\@tempa{%
+ title={#3},%
+ columnsep=\noexpand\f@size\noexpand\p@,%
+ \IfValueTF{#4}{%
+ name={#4},%
+ options={-M \@currname-ind.xdy -L german-din -t \jobname-#4.xlg \@tempb},%
+ }{%
+ options={-M \@currname-ind.xdy -L german-din -t \jobname.xlg},%
+ }%
+ \IfValueT{#2}{#2}%
+ }%
+ \expandafter\makeindex\expandafter[\@tempa]%
+}
+% \end{macrocode}
+% \end{macro}^^A \makexdyindex
+% Nun können mit \cs{makexdyindex} die einzelnen Indexe erstellt werden.
+% \begin{macrocode}
+\makexdyindex{Allgemeiner Index}
+\makexdyindex*{Klassen- und Paketoptionen}[options]
+\makexdyindex*{Befehle und Umgebungen mit zugeh\"origen Parametern}[macros]
+%<*class>
+\makexdyindex*{Sprachabh\"angige Bezeichner}[terms]
+\makexdyindex*{Seitenstile, Schriftelemente und Farben}[elements]
+%</class>
+\makexdyindex{L\"angen und Z\"ahler}[misc]
+\makexdyindex*{Klassen, Pakete und Dateien}[files]
+%<*class>
+\makexdyindex[columns=1]{\"Anderungsliste}[changelog]
+%</class>
+\undef\makexdyindex
+% \end{macrocode}
+% \begin{macro}{\if@tud@index}
+% \changes{v2.05}{2015/11/05}{neu}^^A
+% Dieser Schalter wird zwei unterschiedliche Aufgaben verwendet. Zum einen wird
+% er bei der Ausgabe von Verzeichnissen auf \val{true} gesetzt, um das Setzen
+% von Indexeinträgen durch Markup-Befehle in den Verzeichnissen selbst zu
+% unterbinden. Weiterhin verhindert der aktivierte Schalter bei der Ausführung
+% von \cs{Process@Markup} das erstellen von erweiterten Querverweisen sowie das
+% Setzen von CTAN-Links bei Paketen (\cs{Package}), was weder in Verzeichnissen
+% noch im Index erwünscht ist, weshalb vom Makro \cs{@printindex} ebenfalls
+% \cs{@tud@indextrue} gesetzt wird.
+% \begin{macrocode}
+\newif\if@tud@index
+\addtoeachtocfile{\protect\@tud@indextrue}
+% \end{macrocode}
+% \end{macro}^^A \if@tud@index
+% \begin{macro}{\tud@idx@get}
+% \changes{v2.05}{2015/11/05}{neu}^^A
+% \begin{macro}{\tud@idx@key}
+% \changes{v2.05}{2015/11/05}{neu}^^A
+% \begin{macro}{\tud@idx@fmt}
+% \changes{v2.05}{2015/11/05}{neu}^^A
+% \begin{macro}{\tud@idx@val}
+% \changes{v2.05}{2015/11/05}{neu}^^A
+% \begin{macro}{\tud@idx@bdl}
+% \changes{v2.05}{2015/11/05}{neu}^^A
+% Mit dem Makro \cs{tud@idx@get} wird die Formatierung eines Indexeintrags für
+% einen Markup-Befehl realisiert. Für das Sortieren der Indexeinträge kommt
+% \app{texindy} zum Einsatz. Um die Indexeinträge wie gewünscht zu Formatieren,
+% gibt es zwei Möglichkeit.
+%
+% Bei der ersten Variante würde der Indexeintrag einfach direkt mit den
+% Markup-Befehlen erstellt und in der \app{texindy}-Stildatei wird für alle
+% Auszeichnungsbefehle die passende \val{merge-rule} erstellt, um die korrekte
+% Sortierung zu gewährleisten. Tatsächlich war in einer früheren Version genau
+% das der Ansatz. Allerdings werden die manuell erstellten RegExp-Regeln leider
+% durch \app{texindy} zu spät genutzt, weshalb der Ansatz verworfen wurde.
+% (\url{http://sourceforge.net/p/xindy/bugs/22/}).
+%
+% Damit das Sortieren verlässlich funktioniert, werden die Einträge für den
+% Index deshalb in der gewohnten Syntax von \app{makeindex} in der Form
+% \meta{Schlüsselwort}\val{@}\meta{Markup} erstellt. Diese Syntax kann auch mit
+% \app{texindy} genutzt werden.
+%
+% An \cs{tud@idx@get} werden vier obligatorische gefolgt von vier optionalen
+% Argumenten übergeben. Die ersten beiden Argumente sind die Makros, in welche
+% \meta{Schlüsselwort}~-- für gewöhnlich \cs{tud@idx@key}~-- sowie die
+% Formatierung \meta{Markup}~-- normalerweise \cs{tud@idx@fmt}~-- expandiert
+% werden. Mit dem Makro im dritten Argument wird es möglich, Untereinträge zu
+% einem \meta{Schlüsselwort} für beispielsweise Parameter von Umgebungen oder
+% Befehlen (\cs{Key}) sowie spezielle Schlüsselwerte von Optionen zu erzeugen.
+% Dabei wird vor der Erstellung des Untereintrages der direkt zuvor generierte
+% Indexhaupteintrag ins dritte Argument~-- normalerweise \cs{tud@idx@val}~--
+% gesichert. Das vierte und letzte obligatorische Argument enthält schließlich
+% den eigentlichen Markup-Befehl, für welchen der Indexeintrag erzeugt werden
+% soll.
+%
+% Daran schließen sich vier optionale Argumente an, mit denen die Formatierung
+% des Indexeintrags differenziert werden kann. Das erste optionale Argument
+% \val{=}\meta{Wert}\val{=} kann wie bereits gewohnt für das Hinzufügen eines
+% Schlüsselwertes genutzt werden. Das zweite, ordinäre optionale Argument
+% \oarg{Anmerkung} fügt dem Eintrag in den Index eine zusätzliche Anmerkung
+% hinzu. Soll der Indexeintrag für ein spezifisches Paket oder eine Klasse aus
+% dem \TUDScript-Bundle erstellt werden, wird das optionale Argument in runden
+% Klammern \val{(\string\Class\marg{Klasse}/\string\Package\marg{Paket})} für
+% einen Verweis auf das \parg{Bundleelement} verwendet, der in \cs{@idxbundle}
+% gespeichert wird. Das Argument \val{\textbar}\meta{Indexmarkup}\val{\textbar}
+% wird bei Deklarationen zur Unterdrückung von Untereinträgen verwendet.
+% Der vollständige Funktionsaufruf lautet:
% \newline\begingroup\scriptsize
-% \cs{@HyperIndex}\marg{Index}\marg{Haupteintrag}\ignorespaces%
-% \marg{Vorsatz}\marg{Eintrag}\marg{Anhang}\marg{Formatierung}
+% \cs{tud@idx@get}\cs{tud@idx@key}\cs{tud@idx@fmt}\cs{tud@idx@val}%
+% \val{\ignorespaces%
+% \marg{Elem.}=\meta{Wert}=\oarg{Anm.}\ignorespaces%
+% \parg{Bundleelem.}\textbar\meta{Indexmark.}\textbar\ignorespaces%
+% }%
% \endgroup
% \begin{macrocode}
-\NewDocumentCommand\@HyperIndex{mmmmmm}{%
- \IfValueTF{#3}{\def\@tempa{#3}}{\def\@tempa{}}%
- \IfValueTF{#5}{\def\@tempb{#5}}{\def\@tempb{}}%
- \IfValueTF{#6}{\edef\@tempc{|#6}}{\def\@tempc{}}%
+\newcommand*\tud@idx@key{}
+\newcommand*\tud@idx@fmt{}
+\newcommand*\tud@idx@val{}
+\newcommand*\tud@idx@bdl{}
+\NewDocumentCommand\tud@idx@get{smmmmr==r[]r()d||}{%
% \end{macrocode}
-% Auch hier wird unterschieden, ob es sich um einen Parameter (keys) handelt.
-% Wurde für einen Parameter eine Umgebung oder ein Befehl bereits definiert,
-% werden zwei Indexeinträge generiert. Einer beim Befehl selber als
-% Untereintrag für den jeweiligen Parameter und einer im Index für Parameter
-% selbst mit der dazugehörigen Umgebung bzw. dem dazugehörigen Befehl. Beide
-% erhalten einen entsprechenden Hyperlink zur Deklaration.
+% Die Änderungen an allerhand temporären Makros sollen lokal bleibens.
% \begin{macrocode}
- \IfValueTF{#2}{%
- \ifcsdef{r@#1:#2:#4}{%
- \edef\@tempb{#1:#2:#4}%
- \index[#1]{%
- #2!\hyperidx[\@tempb]{\begingroup\expandonce\@tempa#4\endgroup}%
- ~{\idxfont(Parameter)}\expandonce\@tempc%
+ \begingroup%
+% \end{macrocode}
+% In einer weiteren Gruppe wird der Markup-Befehl des vierten obligatorischen
+% Arguments ausgewertet. Es wird eine Fallunterschiedung durchgeführt, ob es
+% sich dabei um einen Parameter (\cs{Key}) handelt oder nicht. Ist dies der
+% Fall, wird für diesen Parameter der hier nachfolgend formatierte Indexeintrag
+% als Untereintrag verwendet. Dafür wird zuvor ein Haupteintrag aus dem ersten
+% Argument von \cs{Key} generiert und in das dritte obligatorische Argument
+% gespeichert (\cs{tud@idx@val}).
+% \begin{macrocode}
+ \begingroup%
+%<*class>
+ \let#4\@empty%
+ \in@{\Key}{#5}%
+% \end{macrocode}
+% Um den Haupteintrag zu extrahieren, wird mit \cs{Markup@Suppress} die Ausgabe
+% des Markups deaktiviert und das erste Argument von \cs{Key} ausgeführt. Dies
+% führt über \cs{Process@Index} zum rekursiven Aufruf von \cs{tud@idx@get}. Als
+% Ergebnis sind im zweiten und dritten Argument~-- sprich in \cs{tud@idx@key}
+% und \cs{tud@idx@fmt}~-- sowohl \meta{Schlüsselwort} als auch \meta{Markup}
+% für den Elterneintrag enthalten. Diese werden in das vierte Argument
+% (\cs{idxentry}) gespeichert.
+% \begin{macrocode}
+ \ifin@%
+ \Markup@Suppress%
+ \let\Key\@firstoftwo%
+ #5%
+% \end{macrocode}
+% Da der Inhalt des vierten Arguments am Ende der Gruppe expandiert wird, wird
+% mit \cs{expandonce} dafür gesorgt, dass die Expansion nur einmalig erfolgt.
+% Zu beachten ist außerdem, dass der Hauptindexeintrag bereits in der Form
+% \meta{Schlüsselwort}\val{@}\meta{Markup}\textbf{\val{!}} zusammengefügt wird.
+% Die Sternversion wird für die Änderungsnotizen verwendet. Für diese wird eine
+% kleine Anmerkung im Haupteintrag ergänzt.
+% \begin{macrocode}
+ \let\@tempa\@empty%
+ \IfBooleanT{#1}{\def\@tempa{: Parameter angepasst}}%
+ \def#4{%
+ \expandonce#2\expandonce\@tempa{}@%
+ \expandonce#3\expandonce\@tempa{}!%
+ }%
+ \fi%
+%</class>
+% \end{macrocode}
+% Nachdem ein möglicher Haupteintrag für Parameter erzeugt wurde, folgt nun
+% der formatierte Indexeintrag für das aktuelle Markup-Element. Um diesen zu
+% erstellen, wird für \meta{Schlüsselwort} zunächst nur der Inhalt des
+% Hauptargumentes benötigt. Dieser wird hier in das zweite Argument
+% expandiert, der ggf. erzeugte Haupteintrag in das vierte. Für \cs{Key} ist
+% hier nur noch das zweite Argument relevant.
+% \begin{macrocode}
+ \Markup@Gobble%
+%<class> \let\Key\@secondoftwo%
+ \edef\tud@reserved{%
+ \noexpand\endgroup%
+ \def\noexpand#2{#5}%
+%<class> \def\noexpand#4{#4}%
}%
+ \tud@reserved%
+% \end{macrocode}
+% Die Auszeichnung für den Indexeintrag besteht in erster Linie aus dem
+% Markup-Befehl selbst. Damit ein \val{@}-Zeichen beispielsweise in einem
+% Makronamen korrekt verarbeitet wird, wird dieses im Stil von \app{makeindex}
+% mit \val{"} maskiert.
+% \begin{macrocode}
+ \def#3{#5}%
+ \tud@replace#2{@}{"@}%
+ \tud@replace#3{@}{"@}%
+% \end{macrocode}
+% In \cs{@idxbundle} wird ggf. das Paket oder die Klasse gespeichert, für die
+% der aktuelle Eintrag erzeugt werden soll. Eine explizite Angabe wird in jedem
+% Fall genutzt,\dots
+% \begin{macrocode}
+ \let\tud@idx@bdl\tud@bdl@dflt%
+ \IfValueTF{#8}{%
+ \def\tud@idx@bdl{#8}%
+ }{%
+% \end{macrocode}
+% \dots eine implizite nur, wenn auch tatsächlich das passende Label existiert,
+% da sonst mit Sicherheit falsche Einträge im Index erscheinen würden.
+% \begin{macrocode}
+%<*class>
+ \tud@if@bdl{%
+ \tud@if@lbl@exists{\tud@bdl@curr:#5}{%
+ \edef\tud@idx@bdl{\expandonce\tud@bdl@curr}%
+% \end{macrocode}
+% Sollte der Eintrag selbst dem Suffix für Paket oder Klasse entsprechen, wird
+% dieser ignoriert.
+% \begin{macrocode}
+ \def\tud@reserved{#5}%
+ \ifx\tud@reserved\tud@idx@bdl%
+ \let\tud@idx@bdl\tud@bdl@dflt%
+ \fi%
+ }{}%
+ }{}%
+%</class>
+ }%
+% \end{macrocode}
+% Nachfolgend wird für den zu erzeugenden Indexeintrag die Zugehörigkeit des
+% aktuellen Elements zu einem Paket oder einer Klasse aus dem \TUDScript-Bundle
+% durch das Anhängen des jeweiligen \TUDScript-Bundle-Elements signalisiert.
+% Dabei werden für die Anpassung von Schlüssel und Formatierung des Eintrags
+% die temporären Makros \cs{@tempa}~(Schlüssel) und \cs{@tempb}~(Formatierung)
+% gespeichert. In \cs{@tempc} wird der Inhalt von \cs{@tempb} zwischenzeitlich
+% zur späteren Verwendung gesichert.
+% \begin{macrocode}
+ \let\@tempa\@empty%
+ \let\@tempb\@empty%
+ \let\@tempc\@empty%
+% \end{macrocode}
+% Der temporäre Schalter \cs{@tempswa} wird genutzt, um das Hinzufügen der
+% Ergänzungen zu steuern. Diese sollen nur für Elemente, welche nicht zu den
+% Hauptklassen gehören, erfolgen.
+% \begin{macrocode}
+ \@tempswatrue%
+ \ifx\tud@idx@bdl\tud@bdl@dflt%
+ \@tempswafalse%
+% \end{macrocode}
+% Ebenso werden die Anmerkungen für \cs{Key}-Elemente unterfdrü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
+% Querverweises notwendig und wird in \cs{@tempb} und \cs{@tempc} abgelegt.
+% \begin{macrocode}
+ \else%
+%<class> \in@{\Key}{#5}\ifin@\@tempswafalse\fi%
+ \IfBooleanT{#1}{\@tempswafalse}%
+ \edef\@tempb{(\expandonce\tud@idx@bdl)}%
+ \fi%
+ \let\@tempc\@tempb%
+% \end{macrocode}
+% Der Indexeintrag kann zur besseren Kenntnisnahme außerdem standardmäßig mit
+% einer Beschreibung versehen werden.
+% \begin{macrocode}
+ \IfValueT{#7}{%
+ \appto\@tempa{ #7}%
+ \appto\@tempb{\suffix{#7}}%
+ }%
+% \end{macrocode}
+% Wird die Anmerkung gesetzt, ist für den Schlüssel nur der Inhalt des in
+% \cs{@idxbundle} gesicherten Markup-Befehls relevant. Dieser wird in der
+% folgenden Gruppe extrahiert und \cs{@tempa} angehangen. Für die Formatierung
+% bleibt das Markup erhalten und wird \cs{tempb} hinzugefügt.
+% \begin{macrocode}
+ \if@tempswa%
\begingroup%
- \let\Environment\@firstofone%
- \def\Macro##1{\bsc##1}%
- \index[keys]{%
- \hyperidx[\@tempb]{%
- \begingroup\expandonce\@tempa#4\endgroup~{\idxfont(\texttt{#2})}%
- }%
- \expandonce\@tempc%
+ \Markup@Gobble%
+ \edef\tud@reserved{%
+ \noexpand\endgroup%
+ \noexpand\appto\noexpand\@tempa{ \tud@idx@bdl}%
}%
- \endgroup%
- }{%
- \index[#1]{%
- #2!\begingroup\expandonce\@tempa#4\endgroup%
- ~{\idxfont(Parameter)}\expandonce\@tempc%
- }%
- \index[keys]{%
- \begingroup\expandonce\@tempa#4\endgroup~{\idxfont(\texttt{#2})}%
- \expandonce\@tempc%
- }%
+ \tud@reserved%
+ \eappto\@tempb{\suffix{\expandonce\tud@idx@bdl}}%
+ \fi%
+% \end{macrocode}
+% Sollte mit \val{=}\meta{Wert}\val{=} ein spezieller Schlüsselwert angegeben
+% worden sein, wird für diesen normalerweise ein separater Untereintrag
+% erstellt. Der Schalter \cs{@tempswa} wird genutzt, um das Erzeugen dieses
+% Untereintrages im Zweifel zu unterdrücken und diesen stattdessen als normalen
+% Eintrag zu setzen. Dies ist zum einen bei Deklarationen und zum anderen in
+% der Änderungsliste notwendig. Außerdem kann dies auch mit der Anagabe von
+% \val{default} als Indexargument erzwungen werden.
+% \begin{macrocode}
+ \@tempswafalse%
+ \IfBooleanT{#1}{\@tempswatrue}%
+ \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.
+% \begin{macrocode}
+ \if@tempswa%
+ \protected@eappto#2{\expandonce\@tempa}%
+ \tud@doifPValue{#6}{\noexpand\appto\noexpand#2{=#6}}%
+ \protected@eappto#3{\IfValueT{#6}{=#6=}\expandonce\@tempb}%
+% \end{macrocode}
+% Andernfalls wird geprüft, ob ein verwertbarer Schlüsselwert angegeben wurde.
+% \begin{macrocode}
+ \else%
+ \tud@doifPValue{#6}{\noexpand\@tempswatrue}%
+% \end{macrocode}
+% Ist dies der Fall, wird aus den bisherigen Eingaben der Hauoteintrag und
+% daran anschließend der dazugehörige Untereintrag erstellt\dots
+% \begin{macrocode}
+ \if@tempswa%
+ \eappto#4{%
+ \expandonce#2\expandonce\@tempa{}@%
+ \expandonce#3\expandonce\@tempb{}!%
+ }%
+ \appto#2{=#6}%
+ \appto#3{=#6=}%
+ \protected@eappto#3{\expandonce\@tempc}%
+% \end{macrocode}
+% \dots andernfalls bleibt es bei einem normalem Eintrag in den Index.
+% \begin{macrocode}
+ \else%
+ \protected@eappto#2{\expandonce\@tempa}%
+ \protected@eappto#3{\expandonce\@tempb}%
+ \fi%
+ \fi%
+% \end{macrocode}
+% Die Erzeugung eines formatierten Indexeintrages ist beendet, das Resultat
+% wird nach der letzten Gruppe definiert.
+% \begin{macrocode}
+ \let\emph\@firstofone%
+ \protected@edef\tud@reserved{%
+ \noexpand\endgroup%
+ \def\noexpand#2{#2}%
+ \def\noexpand#3{#3}%
+ \def\noexpand#4{#4}%
}%
+ \tud@reserved%
+}
% \end{macrocode}
-% Falls es sich nicht um einen Parameter handelt, wird lediglich der Eintrag im
-% speziellen Index vorgenommen und ggf. ein Hyperlink erzeugt.
+% \end{macro}^^A \tud@idx@bdl
+% \end{macro}^^A \tud@idx@val
+% \end{macro}^^A \tud@idx@fmt
+% \end{macro}^^A \tud@idx@key
+% \end{macro}^^A \tud@idx@get
+% \begin{macro}{\Process@Index}
+% \changes{v2.05}{2015/11/15}{neu}^^A
+% \begin{macro}{\Process@@Index}
+% \changes{v2.05}{2015/11/15}{neu}^^A
+% Mit \cs{Process@Index} wird geprüft, ob mit dem im zweiten obligatorischen
+% Argument enthaltenen Markup-Befehl ein Indexeintrag erzeugt werden soll.
+% Ein Indexeintrag kann mit der Sternversion eines Markup-Befehls explizit
+% unterdrückt werden, wobei der boolesche Wert im ersten obligatorischen
+% Argument an \cs{Process@Index} zu Prüfung übergeben wird. Außerdem wird für
+% obsolete Deklarationen ebenso wie bei aktiviertem Schalter \cs{if@tud@index}
+% kein Eintrag erstellt. In allen genannten Fällen passiert beim Aufruf von
+% \cs{Process@Index} nichts, andernfalls wird \cs{Process@@Index} ausgeführt.
+%
+% Die auf die zwei obligatorischen Argumente folgenden optionalen sind in der
+% Nomenklatur identisch zu den bisherigen Erläuterungen, der vollständige
+% Funktionsaufruf lautet:
+% \newline\begingroup\scriptsize
+% \cs{Process@Index}\val{\ignorespaces%
+% \marg{Stern?}\marg{Element}=\meta{Wert}=\oarg{Anmerkung}\ignorespaces%
+% \parg{Bundleelement}\textbar\meta{Indexmarkup}\textbar\ignorespaces%
+% }%
+% \endgroup
% \begin{macrocode}
- }{%
- \ifcsdef{r@#1:#4}{%
- \index[#1]{%
- \hyperidx[#1:#4]{%
- \begingroup\expandonce\@tempa#4\endgroup\expandonce\@tempb%
+\NewDocumentCommand\Process@Index{mmd==od()d||}{%
+ \ifboolexpr{%
+%<class> bool {@tud@index} or bool {@tud@obsolete}%
+%<package> bool {@tud@index}%
+ }{}{%
+ \IfBooleanTF{#1}{%
+ \IfValueT{#6}{%
+ \ClassWarning{tudscrmanual}{%
+ You've used the starred version. No index entry\MessageBreak%
+ for #2 is created. The\MessageBreak%
+ optional argument |#6| will be ignored%
}%
- \expandonce\@tempc%
}%
}{%
- \index[#1]{%
- \begingroup\expandonce\@tempa#4\endgroup%
- \expandonce\@tempb\expandonce\@tempc%
+ \Process@@Index{#2}=#3=[#4](#5)|#6|%
+ }%
+ }%
+}
+% \end{macrocode}
+% Mit \cs{Process@@Index} erfolgt die eigentliche Erzeugung des Indexeintrages.
+% \begin{macrocode}
+\NewDocumentCommand\Process@@Index{mr==r[]r()r||}{%
+% \end{macrocode}
+% Dabei erledigt \cs{tud@idx@get} einen Großteil der Aufgabe. Mit besagtem
+% Makro werden Schlüssel und Format für den gewünschten Indexeintrag erzeugt.
+% Sollte optional ein spezieller \val{=}\meta{Wert}\val{=} für einen Schlüssel
+% gegeben sein, so wird ggf. auch der passende Haupteintrag erstellt.
+% \begin{macrocode}
+%<*class>
+ \if@tud@declare%
+ \tud@idx@get\tud@idx@key\tud@idx@fmt\tud@idx@val{#1}=#2=[#3](#4)|declare|%
+ \else%
+%</class>
+ \tud@idx@get\tud@idx@key\tud@idx@fmt\tud@idx@val{#1}=#2=[#3](#4)|#5|%
+%<*class>
+ \fi%
+%</class>
+% \end{macrocode}
+% Mit der Sternversion \cs{tud@attr@get*} wird der Zielindex für das im
+% ersten Argument übergebene \marg{Element} ermittelt.
+% \begin{macrocode}
+ \tud@attr@get*\tud@lbl@tmp{#1}%
+% \end{macrocode}
+% Markup-Befehle, welche in Deklarationen verwendet wurden, werden für eine
+% höhere Priorisierung in einem speziellen Index angelegt, wobei hier die
+% Formatierung dieses Eintrags fest vorgegeben ist.
+% \begin{macrocode}
+%<*class>
+ \if@tud@declare%
+ \if@openindex%
+ \IfValueT{#5}{%
+ \ClassWarning{tudscrmanual}{%
+ It is not possible to use any indexing format\MessageBreak%
+ like |#5| within the arguments of the\MessageBreak%
+ environments `Declaration' or `Declaration*'%
+ }%
+ }%
+% \end{macrocode}
+% Jetzt folgt~-- abhängig vom Schalter \cs{if@openindex}~-- der öffnende oder
+% schließende Indexeintrag der Deklaration. Für den schließenden ist dabei eine
+% Formatierung des Schlüssels nicht notwendig.
+% \begin{macrocode}
+ \index[\tud@lbl@tmp-declare]{%
+ \tud@idx@val\tud@idx@key{}@\tud@idx@fmt|(declare%
+ }%
+ \else%
+ \index[\tud@lbl@tmp-declare]{\tud@idx@val\tud@idx@key|declare)}%
+ \fi%
+% \end{macrocode}
+% Für Markup-Befehle außerhalb von Deklarationsumgebungen wird ein einfacher
+% Eintrag in den Index erzeugt, wobei auch im Fließtext über das Indexmarkup
+% \val{\textbar{}declare\textbar} eine Quasi-Deklaration verwendet werden kann.
+% Dies wird beispielsweise für \KOMAScript-Optionen genutzt, um diese in der
+% gewünschten Formatierung im Index erscheinen zu lassen.
+% \begin{macrocode}
+ \else%
+%</class>
+ \IfValueT{#5}{%
+%<*class>
+ \ifstr{#5}{declare}{%
+ \appto\tud@lbl@tmp{-declare}%
+ \appto\tud@idx@fmt{|declare}%
+ }{%
+ \appto\tud@idx@fmt{|#5}%
}%
+%</class>
+%<*package>
+ \appto\tud@idx@fmt{|#5}%
+%</package>
+ }%
+ \index[\tud@lbl@tmp]{\tud@idx@val\tud@idx@key{}@\tud@idx@fmt}%
+%<*class>
+ \fi%
+%</class>
+}
+% \end{macrocode}
+% \end{macro}^^A \Process@@Index
+% \end{macro}^^A \Process@Index
+%
+% \iffalse
+%<*class>
+% \fi
+%
+% \begin{macro}{\CrossIndex}
+% Der Befehl \cs{CrossIndex} dient zum Eintragen eines Schlagwortes, welches im
+% ersten obligatorischen Argument angegeben wird, in den allgemeinen Index und
+% verweist auf den im zweiten obligatorischen Argument, zum Schlagwort gehörigen
+% Spezialindex. Das ordinäre optionale Argument kann verwendet werden, um ggf.
+% den Eintrag in den allgemeinen Index, der normalerweise mit dem jeweiligen
+% Schlagwort erfolgt, zu überschrieben.
+%
+% Wird die Sternversion von \cs{CrossIndex} genutzt, so wird der Querverweis
+% als Eintrag in der obersten Ebene gesetzt, andernfalls wird ein Untereintrag
+% gesetzt. Mit der normalen Variante können so zu einem Schlagwort weitere
+% Verweise im allgemeinen Index erscheinen. Das zweite obligatorische Argument
+% kann eine kommagetrennte Liste enthalten.
+% \begin{macrocode}
+\NewDocumentCommand\CrossIndex{smom}{%
+ \def\@tempa##1##2##3{%
+ \index{%
+ \IfBooleanTF{#1}{##3@##3}{##3!"|@}%
+ \,\textrightarrow\,%
+ \tudhyperref{idx:##2}{\IfValueTF{##1}{##1}{Index der ##3}}|seeidx{##2}%
}%
}%
+ \forcsvlist{\@tempa{#3}{#4}}{#2}%
+}
+% \end{macrocode}
+% \end{macro}^^A \CrossIndex
+% \begin{macro}{\SeeRef}
+% \changes{v2.05}{2015/11/05}{neu}^^A
+% Mit \cs{SeeRef} wird unter dem im ersten Argument gegebenen Schlagwort ein
+% Indexuntereintrag erzeugt, der wiederum auf einen Indexeintrag des zweiten
+% Argumentes verweist. Dabei kann im zweiten Argument ein normaler Begriff oder
+% ein Markup-Befehl verwendet werden. Normalerweise wird für den Querverweis
+% die Referenzklasse \val{see} verwendet, die Sternversion des Befehls hingegen
+% nutzt \val{seeunverified}, um auf eine Prüfung des verwiesenen Eintrags zu
+% verzichten.
+% \begin{macrocode}
+\NewDocumentCommand\SeeRef{smm}{%
+ \sbox\z@{%
+ \let\tud@idx@fmt\relax%
+ #3%
+% \end{macrocode}
+% Wurde im zweiten Argument ein Markup-Befehl angegeben, so wurde durch das
+% Erstellen der Box das dazugehörige Indexformat in \cs{tud@idx@fmt} für den
+% Eintrag erstellt. Andernfalls wurde die Definiton von \cs{tud@idx@fmt} nicht
+% geändert und das Argument wird nach der Box direkt in den Index eingetragen.
+% \begin{macrocode}
+ \ifx\tud@idx@fmt\relax%
+ \gdef\tud@reserved{#3}%
+ \else%
+ \global\let\tud@reserved\tud@idx@fmt%
+ \fi%
+ }%
+ \IfBooleanTF{#1}{\def\tud@idx@fmt{seeunverified}}{\def\tud@idx@fmt{see}}%
+ \index{#2!#3|\tud@idx@fmt{\tud@reserved}}%
}
% \end{macrocode}
-% \end{macro}^^A \@HyperIndex
+% \end{macro}^^A \SeeRef
%
-% \subsubsection{Deklarationen}
+% \iffalse
+%</class>
+% \fi
%
-% Die Umgebungen \env{Declaration} und \env{Declaration*} werden beide für die
-% Auszeichnung von Optionen, Umgebungen und Befehlen verwendet, die \TUDScript
-% dem Anwender zur Verfügung stellt.
+% \subsubsection{Indexausgabe}
%
-% \begin{environment}{Declaration}
-% \begin{macro}{\printdeclarationlist}
-% \begin{macro}{\@declarationlist}
-% \begin{macro}{\@presetlist}
-% \begin{macro}{\if@presetlist}
-% \begin{macro}{\@additionallist}
-% \begin{macro}{\if@additionallist}
-% \begin{macro}{\@gobbleparameters}
-% \changes{v2.02}{2014/10/09}{neu}^^A
-% \changes{v2.03}{2015/02/02}{Makro \cs{relax} mit \cs{@empty} ersetzt}^^A
-% Es werden einige Hilfsmakros für die Ausgabe einer Deklaration sowie der
-% dazugehörigen Änderungsliste initialisiert.
+% Dies sind alle Befehle, die zur Ausgabe der erzeugten Indexe benötigt werden.
+% \begin{macro}{\PrintIndex}
+% \changes{v2.02}{2014/08/20}{neu}^^A
+% \begin{macro}{\tud@indexprologue}
+% \changes{v2.02}{2014/08/20}{neu}^^A
+% Mit \cs{PrintIndex} erfolgt die Ausgabe aller erstellten Indexe. Dabei wird
+% für bestimmte Spezialindexe das Makro \cs{tud@indexprologue} neu gesetzt, um
+% für diese vor der eigentlichen Ausgabe einige Anmerkungen machen zu können.
+% Mit \cs{tud@indexprologue} kann der einleitende Teil für einen Index gesetzt
+% werden.
% \begin{macrocode}
-\newcommand*\@declarationlist{}
-\let\@declarationlist\relax
-\newcommand*\@presetlist{}
-\let\@presetlist\relax
-\newif\if@presetlist
-\newcommand*\@additionallist{}
-\let\@additionallist\relax
-\newif\if@additionallist
-\newcommand*\@gobbleparameters{%
- \let\PName\@gobble%
- \let\PBoolean\@empty%
- \let\PBName\@gobble%
- \let\PSet\@empty%
- \let\PValue\@gobble%
- \let\Parameter\@gobble%
- \let\OParameter\@gobble%
- \let\LParameter\@empty%
- \let\OLParameter\@gobble%
- \let\PParameter\@gobble%
- \let\POParameter\@gobble%
+%<*class>
+\newcommand*\tud@indexprologue{}
+%</class>
+\newcommand*\PrintIndex{%
+ \begingroup%
+ \providecommand*\lettergroup[1]{%
+ \par\textbf{\textsf{##1}}\par%
+ \nopagebreak%
+ }%
+%<*class>
+ \renewcommand\tud@indexprologue{%
+ Die im Folgenden aufgelisteten Schlagworte sollen f\"ur den Umgang mit
+ \hologo{LaTeXe} im Allgemeinen sowie dem \TUDScript-Bundle im Speziellen
+ sowohl Antworten bei generellen Fragen liefern als auch L\"osungen f\"ur
+ typische Probleme bereitstellen. Falls ein gesuchter Begriff hier nicht
+ auftaucht oder trotz vorhandener Hinweise kein zufriedenstellendes
+ Ergebnis erzielt werden kann, sollte das \Forum* erster Anlaufpunkt sein,
+ um weitere Hilfe bei der Nutzung von \TUDScript zu erhalten.%
+ }%
+%</class>
+%<*package>
+ \begingroup%
+ \let\lettergroup\@gobble%
+ \let\indexspace\relax%
+%</package>
+ \print@index%
+%<*package>
+ \endgroup%
+%</package>
+%<*class>
+ \clearpage%
+ \renewcommand\tud@indexprologue{%
+ Dies ist der Index aller im Handbuch erl\"auterten sowie erw\"ahnten
+ Optionen, wobei bei den meisten auch Untereintr\"age mit Seitenangaben
+ f\"ur spezielle Wertzuweisungen existieren.%
+ }%
+%</class>
+ \print@index[options]%
+%<*class>
+ \renewcommand\tud@indexprologue{%
+ Dies ist die Auflistung aller im Handbuch erl\"auterten sowie erw\"ahnten
+ Befehle und Umgebungen. Bei einigen existieren auch Untereintr\"age f\"ur
+ Schl\"ussel-Wert-Parameter, welche im optionalen Argument der jeweiligen
+ Anweisung verwendet werden k\"onnen. In der dritten Unterebene sind
+ gegebenenfalls Seitenverweise f\"ur explizite Wertzuweisungen an diese
+ Parameter zu finden.%
+ }%
+%</class>
+ \print@index[macros]%
+%<*class>
+ \renewcommand\tud@indexprologue{%
+ Dies sind alle von \TUDScript definierten, sprachabh\"angigen Bezeichner.
+ Informationen zur Verwendung sowie den Anpassungsm\"oglichkeiten sind in
+ \autoref{sec:localization} zu finden.%
+ }%
+ \print@index[terms]%
+ \print@index[elements]%
+%</class>
+%<*package>
+ \begingroup%
+ \let\lettergroup\@gobble%
+ \let\indexspace\relax%
+%</package>
+ \print@index[misc]%
+%<*package>
+ \endgroup%
+%</package>
+ \print@index[files]%
+ \endgroup%
}
% \end{macrocode}
-% Die \env{Declaration}-Umgebung dient zur Deklaration von Optionen, Umgebungen,
-% Befehlen, Parametern, Bezeichnern, Längen, Schriftelementen und Farben. Diese
-% werden mit den entsprechenden Auszeichnungsbefehlen als obligatorisches
-% Argument übergeben. Zuvor kann noch vorher im ersten optionalen Argument eine
-% Beschreibung für die Änderungsliste in der Form \oarg{Verison!Beschreibung}
-% angegeben werden. Danach kann im dritten Argument~-- das zweite optionale~--
-% die Voreinstellung für eine Option oder dergleichen angegeben werden. Das
-% nächste optionale Argument erlaubt die Angabe einer bedingten Voreinstellung,
-% also einer anderen Voreinstellung als der zuerst angegeben unter bestimmten
-% Voraussetzungen. Diese wird in der Form \oarg{Bedingung:Voreinstellung}
-% angegeben. Das letzte Argument ist ebenfalls optional, wird aber in der Form
-% \marg{Zusatz} angegeben und enthält ggf. zusätzliche Informationen.
+% \end{macro}^^A \tud@indexprologue
+% \end{macro}^^A \PrintIndex
+% \begin{macro}{\print@index}
+% \changes{v2.02}{2014/07/25}{neu}^^A
+% \begin{macro}{\tud@idx@skip}
+% \changes{v2.02}{2014/09/02}{neu}^^A
+% Mit \cs{@printindex} erfolgt die Ausgabe der einzelnen Indexe. Dabei wird in
+% der Klasse \cls{tudscrmanual} zuvor für jeden Index ein referenzierbares
+% Label erstellt und ggf. der Prolog gesetzt.
%
-% Die Umgebung selbst gibt zu Beginn nichts weiter aus sondern sammelt
-% lediglich alle übergebenen Argumente in jeweiligen Listen. Die eigentliche
-% Ausgabe erfolgt mit dem Befehl \cs{printdeclarationlist}.
+% Aufgrund der Verwendung der \env{multicols}-Umgebung durch das Paket
+% \pkg{imakeidx} werden normalerweise ohne einen Prolog zu große vertikale
+% Abstände gesetzt. Dies wird mit \cs{tud@idx@skip} behoben.
% \begin{macrocode}
-\NewDocumentEnvironment{Declaration}{omoog}{%
- \listadd\@declarationlist{#2}%
+\newcommand*\tud@idx@skip{%
+ \ifnum\imki@columns>\@ne\relax\vspace{-\multicolsep}\fi%
+}
+\newcommand*\print@index[1][]{%
% \end{macrocode}
-% Die optional angegebenen Änderungen werden später mit \cs{ChangedAt@Process}
-% verarbeitet und für die Änderungsliste sowie die Randnotiz mit
-% \cs{@changedatdeclare} in der Liste \cs{@changedatdeclarelist} gesichert.
+% Falls ein Seitenumbruch notwendig ist, sollte dieser vor dem Index und nicht
+% unmittelbar nach dem Beginn erfolgen.
% \begin{macrocode}
- \@changedatdeclare{#1}{#2}%
+ \pagebreak[3]%
+ \@tud@indextrue%
+%<*class>
% \end{macrocode}
-% Hier noch die Listen für Voreinstellungen\dots
+% Das zu erstellende Label wird in \cs{tud@reserved} gespeichert. Dabei wird
+% die Sternversion von \cs{tudhyperdef} genutzt, um das Label auf die Höhe der
+% Überschrift zu setzen.
% \begin{macrocode}
- \IfValueTF{#3}{%
- \@presetlisttrue%
- \IfValueTF{#4}{%
- \def\@tempa[##1:##2]{##1:\,##2}%
- \listeadd\@presetlist{preset:\,#3\,|\,\expandonce{\@tempa[#4]}}%
- }{%
- \listadd\@presetlist{preset:\,#3}%
- }%
+ \ifblank{#1}{%
+ \def\tud@reserved{\tudhyperdef*{idx:main}}%
}{%
- \listadd\@presetlist{\relax}%
+ \def\tud@reserved{\tudhyperdef*{idx:#1}}%
}%
% \end{macrocode}
-% \dots sowie zusätliche Informationen.
+% Ohne Prolog wird der fehlerhafte vertikale Abstand behoben.
% \begin{macrocode}
- \IfValueTF{#5}{%
- \@additionallisttrue%
- \listadd\@additionallist{\hspace*{\tabcolsep}\small(#5)}%
- \in@{\Environment}{#2}%
- \ifin@\listadd\@additionallist{\tabularnewline}\fi%
- }{%
- \listadd\@additionallist{\relax}%
- \in@{\Environment}{#2}%
- \ifin@\listadd\@additionallist{\relax}\listadd\@additionallist{\relax}\fi%
- }%
-}{%
+ \ifx\tud@indexprologue\@empty%
+ \indexprologue[\tud@idx@skip]{\tud@reserved}%
% \end{macrocode}
-% Am Ende der Umgebung wird das übergebenen Hauptargument erneut ausgeführt,
-% was zum Beenden der Indexeinträge für die jeweilige Deklaration führt
-% (\cs{@openindexfalse}, siehe \cs{@ProcessOutput}). Dafür werden die Makros für
-% die Angabe obligatorischer und optionaler Parameter lokal umdefiniert.
+% Mit Prolog wird der fehlerhafte vertikale Abstand nach diesem korrigiert.
% \begin{macrocode}
- \ifx\@declarationlist\relax\else%
- \ClassError{tudscrman}{\string\printdeclarationlist\space is missing}{%
- \string\@declarationlist\space is not empty. Did you forget\MessageBreak%
- to print this list with \string\printdeclarationlist?%
+ \else%
+ \indexprologue{%
+ \tud@reserved%
+ \tud@indexprologue%
+ \tud@idx@skip%
}%
\fi%
- \@gobbleparameters%
- \vskip-\lastskip%
- \@declaretrue\@openindexfalse#2\@declarefalse%
- \pagebreak[0]%
+%</class>
+% \end{macrocode}
+% Fur das Paket \pkg{tudscrtutorial} erfolgt eine einfache Ausgabe der Indexe.
+% \begin{macrocode}
+%<package> \indexprologue[\tud@idx@skip]{}%
+% \end{macrocode}
+% Die Ausgabe des gewünschten Index und des leeren des Prologs.
+% \begin{macrocode}
+ \ifblank{#1}{\printindex}{\printindex[#1]}%
+ \ifnum\imki@columns>\@ne\relax\vspace{-\multicolsep}\fi%
+%<class> \let\tud@indexprologue\@empty%
}
% \end{macrocode}
-% Mit dem Befehl \cs{printdeclarationlist} erfolgt die eingentliche Ausgabe
-% aller Deklarationen. Zweck ist es, mehrere \env{Declaration}-Umgebungen
-% ineinander verschachteln zu können und eine Ausgabe aller auf einmal zu
-% erzeugen. Die durch die ggf. nacheinander folgenden Deklarationen wurden in
-% entsprechenden Listen gesammelt und werden hier jetzt formatiert ausgegben.
+% \end{macro}^^A \tud@idx@skip
+% \end{macro}^^A \print@index
+%
+% \iffalse
+%<*class>
+% \fi
+%
+% \subsection{Änderungsliste}
+%
+% Um dem Anwender einen schnellen Überblick zu Änderungen der aktuellen Version
+% bereitstellen zu können, werden Befehle zur automatisierten Erzeugung einer
+% solchen Liste definiert. Die Änderungsliste ist der Klasse \cls{tudscrmanual}
+% vorbehalten.
+%
+% Änderungsnotizen lassen sich auf zwei unterschieldichen Wegen generieren.
+% Entweder über die Nutzung des Befehls \cs{ChangedAt} oder über das optionale
+% Argument der Deklarationsumgebungen. Dabei sind diese in beiden Fällen in
+% der Form Versionsnummer gefolgt von der eigentlichen Notiz anzugeben, wobei
+% diese zwingend durch einen Doppelpunkt voneinander zu trennen sind. Die Form
+% der Verwendung lautet: \meta{Versionsnummer}\val{:}\meta{Änderungsnotiz}. Die
+% alleinige Angabe der Versionsnummer ohne Änderungsnotiz ist ebenso möglich.
+%
+% Wird die Änderungsnotiz für ein bestimmtes Element wie eine Option oder ein
+% Befehl erstellt, wie es bei den Deklarationsumgebungen implizit oder bei der
+% Verwendung von \cs{ChangedAt} mit optionalem Argument geschieht, gibt es die
+% zusätzliche Möglichkeit, einen Untereintrag zu erstellen. Dabei ist dieser
+% nach Versionsnummer und vor Änderungsnotiz in folgender Form anzugeben:
+% \meta{Versionsnummer}\val{!}\meta{Untereintrag}\val{:}\meta{Änderungsnotiz}.
+% Der Untereintrag ist für die explizite Angabe eines Schlüssel-Wert-Paares
+% gedacht.
+% \begin{macro}{\if@tud@changedat}
+% \begin{macro}{\Process@ChangedAt}
+% \changes{v2.02}{2014/07/25}{erweitert}^^A
+% \changes{v2.02}{2014/10/08}{Sternversion ergänzt}^^A
+% Der Schalter \cs{if@tud@changedat} wird im weiteren Verlauf dazu verwendet,
+% das Standard-Verhalten der einzelnen Markup-Befehle kurzeitig zu ändern und
+% anstelle der Makros \cs{Process@Markup} und \cs{Process@Index} den Befehl
+% \cs{Process@ChangedAt} auszuführen, mit welchem die Formatierung der Einträge
+% der Änderungsliste erfolgt.
+% \begin{macrocode}
+\newif\if@tud@changedat
+% \end{macrocode}
+% Die Formatierung der Änderungseinträge erfolgt dabei wie auch für den Index
+% mit \cs{tud@idx@get}, wobei die Sternversion dabei für die Identifikation als
+% Änderungseintrag fungiert. Aufgerufen wird \cs{Process@ChangedAt} während der
+% Erstellung der Änderungseinträge mit \cs{Changed@At@CreateEntry}. Der Aufruf
+% des Makros erfolgt dabei in der gewohnten Form mit einem obligatorischen
+% gefolgt von drei optionalen Argumenten:
+% \newline\begingroup\scriptsize
+% \cs{Process@ChangedAt}\val{\ignorespaces%
+% \marg{Element}=\meta{Wert}=\oarg{Ausgabesuffix}\parg{Bundleelement}%
+% }%
+% \endgroup
+% \begin{macrocode}
+\NewDocumentCommand\Process@ChangedAt{md==od()}{%
+ \tud@idx@get*\tud@idx@key\tud@idx@fmt\tud@idx@val{#1}=#2=[#3](#4)%
+}
+% \end{macrocode}
+% \end{macro}^^A \Process@ChangedAt
+% \end{macro}^^A \if@tud@changedat
+% \begin{macro}{\ChangedAt}
+% \changes{v2.02}{2014/07/25}{erweitert}^^A
+% \changes{v2.02}{2014/10/15}{Sternversion neu (keine Randnotiz)}^^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
+% Änderungsnotiz genutzt werden. Das obligatorische Argument sollt wie kurz
+% zuvor beschrieben verwendet werden.
+%
+% Eine Änderungsnotiz wird für die angegebene Versionsnummer normalerweise im
+% Abschnitt \enquote{Allgemein} aufgeführt. Soll jedoch eine Notiz explizit für
+% eine Option, eine Umgebung, einen Befehlt etc. erstellt werden, kann dieses
+% Element vor dem obligatorischen im optionalen Argument angegeben werden. Der
+% Eintrag erfolgt dann im Abschnitt \enquote{Implementierung} für das gegebene
+% Element. Im obligatorischen Argument können auch mehrere Änderungsnotizen
+% gleichzeitig erzeugt werden. hierfür sind diese mit Semikolon voneinander zu
+% trennen. Das Erzeugen der Liste erfolgt mit \cs{Changed@At@CreateList}.
+%
+% Normalerweise wird bei der Nutzung von \cs{ChangedAt} zusätzlich zum Eintrag
+% in die Änderungsliste eine Randnotiz mit den angegebenen Versionsnummern
+% erzeugt. Mit dem letzten optionalen Argument nach dem obligatorischen kann
+% ein vertikaler Versatz dieser angegeben werden. Die Sternversion des Befehls
+% unterdrückt die Ausgabe der Randnotiz.
% \begin{macrocode}
-\NewDocumentCommand\printdeclarationlist{sod()}{%
- \ifx\@declarationlist\relax\else%
- \ifvmode\else\par\fi%
- \addpenalty{\@beginparpenalty}%
- \addvspace{1.5\baselineskipglue}%
+\newlength\changedatskip
+\NewDocumentCommand\ChangedAt{somO{\changedatskip}}{%
+ \IfValueTF{#2}{%
+ \Changed@At@CreateList[#2]{#3}%
+ }{%
+ \Changed@At@CreateList{#3}%
+ }%
% \end{macrocode}
-% Die Sternversion erzeugt die Ausgabe ohne Deklarationsindexbefehle. Das
-% optionale Argument kann genutzt werden, um das standardmäßige Atrribut für
-% die Änderungsliste, welches in \cs{@changedatdeclaredefault} hinterlegt ist,
-% zu ändern. Dies ist für die normale Version auf \emph{neu} und für die
-% Sternversion auf \emph{entfällt} voreingestellt. Für überholte Einträge in
-% der Änderungsliste wird das Indexattribut \enquote{deprecated} angehängt.
+% Nach dem Erstellen der Liste wird diese abgearbeitet und ggf. die Randnotiz
+% ausgegeben.
% \begin{macrocode}
- \IfBooleanTF{#1}{%
- \global\@deprecatedtrue%
- \renewcommand*\@changedatdeclaredefault{\emph{entf\"allt}|deprecated}%
+ \print@changedatlist{#1}{#4}%
+}
+% \end{macrocode}
+% \end{length}^^A \changedatskip
+% \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.
+%
+% \begin{macro}{\tud@changedat@list}
+% \changes{v2.02}{2014/07/25}{neu}^^A
+% \begin{macro}{\forssvlist}
+% \changes{v2.05}{2015/11/17}{neu}^^A
+% Hier werden die Liste \cs{tud@changedat@list} sowie das Makro \cs{forssvlist}
+% für die Aufspaltung der semikolongetrennten Änderungsnotizen definiert.
+% \begin{macrocode}
+\newcommand*\tud@changedat@list{}
+\let\tud@changedat@list\relax
+\DeclareListParser*{\forssvlist}{;}
+% \end{macrocode}
+% \end{macro}^^A \forssvlist
+% \end{macro}^^A \tud@changedat@list
+% \begin{macro}{\Changed@At@CreateList}
+% \changes{v2.02}{2014/09/02}{neu}^^A
+% \begin{macro}{\Changed@At@@CreateList}
+% \changes{v2.02}{2014/10/09}{neu}^^A
+% \begin{macro}{\Changed@At@@@CreateList}
+% \begin{macro}{\Changed@At@@@@CreateList}
+% Mit diesen Befehlen wird eine Liste im Format von \pkg{etoolbox} erzeugt,
+% welche alle notwendigen Angaben für das Erzeugen der Änderungshistorie in
+% Form eines Indexes mit \cs{Changed@At@CreateEntry} enthält.
+%
+% Der Befehl \cs{Changed@At@CreateList} kann vor dem obligatorischen Argument
+% mit einem ordinären optionalen Argument verwendet werden, in welchem ein
+% Makro, eine Umgebung, eine Option etc. angegeben wird. Ist dies der Fall, so
+% wird der Eintrag in die Änderungsliste für dieses Element generiert, sonst
+% wird eine allgemeiner Eintrag erzeugt. Das optionale Argument in runden
+% Klammern wird lediglich verwendet, wenn für eine der beiden Spezialumgebungen
+% \env{Declaration*} bzw. \env{Bundle*} eine Änderungsnotiz erstellt wird, um
+% diese für das jeweilige \TUDScript-Bundle-Element in den entsprechenden
+% Abschnitt der Änderungsliste einzutragen. Das Hauptargument verarbeitet
+% schließlich eine semikolongetrennte Liste und reicht jeden Bestandteil
+% zusammen mit den beiden optionalen Argumenten an \cs{Changed@At@@CreateList}
+% weiter.
+% \begin{macrocode}
+\NewDocumentCommand\Changed@At@CreateList{od()m}{%
+ \IfValueT{#3}{\forssvlist{\Changed@At@@CreateList[#1](#2)}{#3}}%
+}
+% \end{macrocode}
+% Mit \cs{Changed@At@@CreateList} wird lediglich die Versionsnummer von der
+% eigentlichen Änderungsnotiz getrennt.
+% \begin{macrocode}
+\NewDocumentCommand\Changed@At@@CreateList{r[]r()>{\SplitArgument{1}{:}}m}{%
+ \Changed@At@@@CreateList[#1](#2)#3%
+}
+% \end{macrocode}
+% Zuletzt wird durch \cs{Changed@At@@@CreateList} ein möglicher Untereintrag
+% in ein separates Argument abgetrennt und \cs{Changed@At@@@@CreateList} mit
+% allen Argumenten aufgerufen.
+% \begin{macrocode}
+\NewDocumentCommand\Changed@At@@@CreateList{r[]r()>{\SplitArgument{1}{!}}mm}{%
+ \Changed@At@@@@CreateList[#1](#2)#3{#4}%
+}
+% \end{macrocode}
+% Der Befehl \cs{Changed@At@@@@CreateList} übernimmt nun die Erstellung des
+% Eintrags in die Liste \cs{tud@changedat@list}. Wie bereits erwähnt, enthalten
+% die beiden ersten Argumente ggf. Markup-Befehl und \TUDScript-Bundle-Element.
+% Danach folgt die Versionsnummer der Änderungsnotiz, der mögliche Untereintrag
+% für einen Markup-Befehl sowie die Änderungsnotiz selbst.
+%
+% Die oberste Gliederungsebene der Änderungshistorie ist die Versionsnummer.
+% Unter dieser werden für jedes \TUDScript-Bundle-Element die Änderungsnotizen
+% separat ausgegeben, wobei diese nochmal in einen allgemeinen Teil und einen
+% zur Implementierung getrennt werden.
+%
+% Der im Folgenden erzeugte Eintrag für die Liste \cs{tud@changedat@list} wird
+% in zwei unterschiedlichen Varianten generiert. In der Form
+% \newline\begingroup\scriptsize
+% \val{\meta{Versionsnummer}!Allgemein!\meta{Änderungsnotiz}}
+% \endgroup\newline
+% werden allgemeine Änderungsnotizen erstellt, für Einträge bezüglich der
+% Implementierung wird die folgende Form genutzt:
+% \newline\begingroup\scriptsize
+% \val{\meta{Versionsnummer}!Implementierung!\meta{Markup-Befehl}}\ignorespaces
+% \val{!\meta{Untereintrag}!\meta{Änderungsnotiz}}.
+% \endgroup
+% \begin{macrocode}
+\NewDocumentCommand\Changed@At@@@@CreateList{r[]r()mmm}{%
+% \end{macrocode}
+% Die Aufteilung der Änderungsliste in die einzelnen \TUDScript-Bundle-Elemente
+% erfolgt entweder anhand des explizit angegebenen optionalen Argumentes in
+% runden Klammern oder aber implizit über den gegenwärtigen Inhalt des Makros
+% \cs{tud@bdl@curr}. Dafür wird das Makro \cs{@tempa} so definiert, dass es
+% das angegebene Argument in einer Box ausführt und das gesuchte Bundle-Element
+% in \cs{@tempb} gespeichert ist.
+% \begin{macrocode}
+ \def\@tempa##1{%
+ \sbox\z@{%
+ \let\tud@idx@fmt\relax%
+ \@tud@changedattrue%
+ ##1%
+ \@tud@changedatfalse%
+ \ifx\tud@idx@fmt\relax%
+ \gdef\@tempb{##1}%
+ \else%
+ \global\let\@tempb\tud@idx@fmt%
+ \fi%
+ }%
+ }%
+ \let\@tempb\@empty%
+ \IfValueTF{#2}{%
+ \@tempa{#2}%
+ }{%
+ \tud@if@bdl{\@tempa{\tud@bdl@curr}}{}%
+ }%
+% \end{macrocode}
+% Nachdem klar ist, für welches Bundle-Element ggf. der Änderungslisteneintrag
+% erzeugt werden soll, wird nun bestimmt, ob dieser im allgemeinen Teil oder in
+% den zur Implementierung erscheinen soll. Dies wird an der Existenz des ersten
+% Argumentes entschieden. Ist es vorhanden, handelt es sich um einen Eintrag
+% für den Implementierungsteil, welcher in \cs{tud@changedat@list} in der Form
+% \newline\begingroup\scriptsize
+% \meta{Versionsnummer}\val{!Implementierung!}\meta{Markup-Befehl}\ignorespaces
+% \val{!}\meta{Untereintrag}\val{!}\meta{Änderungsnotiz} gespeichert wird,
+% \endgroup
+% wobei der Untereintrag auch leer bleiben kann.
+% \begin{macrocode}
+ \IfValueTF{#1}{%
+ \toks@{#3!Implementierung }%
+% \end{macrocode}
+% Hier erfolgt ggf. der Eintrag des \TUDScript-Bundle-Elements, danach folgt
+% der Markup-Befehl.
+% \begin{macrocode}
+ \eaddto@hook\toks@{\@tempb}%
+ \addto@hook\toks@{!#1!}%
+% \end{macrocode}
+% Wurde ein Untereintrag angegeben, wird dieser hier gefolgt von der
+% eigentlichen Änderungsnotiz eingefügt. Für obsolete Deklarationen für die
+% Änderungsnotiz in jedem Fall ignoriert, da beim späteren Aufruf des Makros
+% \cs{Changed@At@CreateEntry} eine Standardmeldung ausgegeben wird.
+% \begin{macrocode}
+ \IfValueT{#4}{\addto@hook\toks@{#4}}%
+ \addto@hook\toks@{!}%
+ \if@tud@obsolete\else%
+ \IfValueT{#5}{\addto@hook\toks@{#5}}%
+ \fi%
+ }{%
+% \end{macrocode}
+% Handelt es sich um einen allgemeinen Änderungseintrag, wird dieser in der Form
+% \newline\begingroup\scriptsize
+% \meta{Versionsnummer}\val{!Allgemein!}\meta{Änderungsnotiz}%
+% \endgroup
+% in der Liste \cs{tud@changedat@list} gespeichert. Für den allgemeinen Teil
+% wird mit der Angabe eines \TUDScript-Bundle-Elements etwas anders verfahren.
+% Wurde dieses~-- wenn auch nur indirekt über eine der beiden Spezialumgebungen
+% \env{Declaration*} bzw. \env{Bundle*}~-- angegeben, so wird der Eintrag in
+% den allgemeinen Hauptteil als Untereintrag erzeugt. Erfolgte die Verwendung
+% jedoch innerhalb einer \TUDScript-Bundle-Deklaration, so erscheint der
+% Eintrag im allgemeinen Teil für das explizite Bundle-Element.
+% \begin{macrocode}
+ \toks@{#3!Allgemein }%
+ \IfValueTF{#2}{%
+ \addto@hook\toks@{!}%
+ \eaddto@hook\toks@{\@tempb:\space}%
+ \IfValueTF{#5}{%
+ \addto@hook\toks@{#5}%
+ }{%
+ \addto@hook\toks@{\emph{neu}}%
+ }%
}{%
- \global\@deprecatedfalse%
+ \eaddto@hook\toks@{\@tempb}%
+ \addto@hook\toks@{!}%
+ \addto@hook\toks@{#5}%
+ }%
+ \IfValueT{#4}{%
+ \ClassError{tudscrmanual}{Using !#4 isn't allowed for a change notice}{%
+ At least, it has to be implemented!%
+ }%
}%
+ }%
+ \listeadd\tud@changedat@list{\the\toks@}%
+}
% \end{macrocode}
-% Das optionale Argument kann verwendet werden, um allen Deklarationen die
-% gleiche, nebenstehende Zusatzinformation mitzugeben, falls diese bis dahin
-% komplett leer waren.
-% \begin{macrocode}
- \IfValueT{#2}{%
- \if@additionallist%
- \ClassWarning{tudscrman}{%
- It is not possible to use the optional argument\MessageBreak%
- of \string\printdeclarationlist due to the given\MessageBreak%
- additional information as argument of the\MessageBreak%
- environment `Declaration'%
- }%
- \else%
+% \end{macro}^^A \Changed@At@@@@CreateList
+% \end{macro}^^A \Changed@At@@@CreateList
+% \end{macro}^^A \Changed@At@@CreateList
+% \end{macro}^^A \Changed@At@CreateList
+%
+% \subsubsection{Ezeugen der Änderungseinträge}
+%
+% Mit diesen Makros erfolgt das eigentliche Eintragen der Änderungseinträge aus
+% der Liste \cs{listqChangedAt} in den entsprechenden Index \val{changelog}.
+%
+% \begin{macro}{\Changed@At@CreateEntry}
+% \changes{v2.02}{2014/09/02}{neu}^^A
+% \begin{macro}{\Changed@At@@CreateEntry}
+% \changes{v2.02}{2014/09/02}{neu}^^A
+% Der Befehl \cs{Changed@At@CreateEntry} wird durch \cs{@printchangedatlist}
+% aufgerufen und teilt die gegebene Liste am Delimiter Ausrufezeichen \val{!}
+% in fünf Argumente auf und reicht sie an \cs{Changed@At@@CreateEntry} weiter.
+% Sind weniger als vier Ausrufezeichen vorhanden, so werden die ungenutzten
+% Argumente mit dem~-- durch das Paket \pkg{xparse} definierten~-- leeren Wert
+% \val{-NoValue-} an den Befehl \cs{Changed@At@@CreateEntry} übergeben.
+% \begin{macrocode}
+\NewDocumentCommand\Changed@At@CreateEntry{>{\SplitArgument{4}{!}}m}{%
+ \Changed@At@@CreateEntry#1%
+}
+% \end{macrocode}
+% Mit \cs{Changed@At@@CreateEntry} wird der Eintrag in die Änderungshistorie
+% erzeugt, falls denn überhaupt ein Eintrag generiert werden soll. Dies wird
+% daran erkannt, ob das dritte Argument dew Wert \val{-NoValue-} entspricht
+% oder eben nicht. Der zweite Fall tritt auf, wenn lediglich eine Randnotiz
+% gesetzt werden soll. Die in \cs{tud@changedat@list} gespeicherten Einträge
+% haben die Form
+% \newline\begingroup\scriptsize
+% \val{\meta{Versionsnummer}!Allgemein!\meta{Änderungsnotiz}}
+% \endgroup\newline
+% oder
+% \newline\begingroup\scriptsize
+% \val{\meta{Versionsnummer}!Implementierung!\meta{Markup-Befehl}}\ignorespaces
+% \val{!\meta{Untereintrag}!\meta{Änderungsnotiz}}.
+% \endgroup
+% \begin{macrocode}
+\newcommand*\Changed@At@@CreateEntry[5]{%
+ \IfValueT{#3}{%
+% \end{macrocode}
+% Bei der Deklaration von Optionen, Befehlen etc. werden diese automatisch in
+% der Liste der Änderungen im Bereich \enquote{Implementierung} vor der
+% gegebenen Erklärung selbst ausgegeben. Hierfür wird die Existenz des vierten
+% Arguments geprüft. Ist dieses vorhanden\dots
+% \begin{macrocode}
+ \IfValueTF{#4}{%
+% \end{macrocode}
+% \dots befindet sich im dritten Argument der Markup-Befehl für den Eintrag im
+% Implementierungsteil. Mit dem zwischenzeitlichen Aktivieren des Schalters
+% \cs{if@tud@changedat} wird beim nachfolgenden Aufruf des Markup-Befehls das
+% Makro \cs{Process@ChangedAt} ausgeführt und dadurch auch \cs{tud@idx@get*}
+% aufgerufen, wodurch in den Makros \cs{tud@idx@key}, \cs{tud@idx@fmt} und
+% \cs{tud@idx@val} die passend formatierten Indexeinträge enthalten sind.
+% \begin{macrocode}
+ \@tud@changedattrue%
+ #3%
+ \@tud@changedatfalse%
% \end{macrocode}
-% Wurde das optionale Argument angegeben und die Zusatzliste war leer, so wird
-% der Schalter \cs{@additionallisttrue} gesetzt.
+% Das vierte Argument erstellt in der Änderungsliste einen Untereintrag für den
+% im dritten Argument gegebenen Markup-Befehl. Dies wird für Anmerkungen zu
+% expliziten Schlüssel-Wert-Paaren bei Optionen oder Parametern genutzt.
% \begin{macrocode}
- \@additionallisttrue%
- \let\@additionallist\relax%
- \protected@edef\@tempa{#2}%
+ \ifxblank{#4}{}{%
% \end{macrocode}
-% Die Standardformatierung der Zusatzinformationen.
+% Hierfür wird die zuvor erhaltene Formatierung des Markup-Befehls des dritten
+% Argumentes an den Haupteintrag \cs{tud@idx@val} mit der zusätzlichen
+% Anmerkung \enquote{Werte angepasst} angehängt.
% \begin{macrocode}
- \protected@edef\@tempb{\hspace*{\tabcolsep}\protect\small}%
- \def\@tempc##1{%
- \listeadd\@additionallist{\expandonce\@tempb(\expandonce\@tempa)}%
+ \eappto\tud@idx@val{%
+ \expandonce\tud@idx@key: Werte angepasst@%
+ \expandonce\tud@idx@fmt: Werte angepasst!%
}%
- \forlistloop\@tempc{\@declarationlist}%
- \fi%
+% \end{macrocode}
+% Anschließend werden die Formatierungsbefehle des vierten Arguments genutzt,
+% wobei vom Befehl \cs{suffix} nur das Argument selbst benötigt wird. Um den
+% Inhalt von \cs{tud@idx@val} zu schützen, erfolgt das ganze in einer Gruppe.
+% \begin{macrocode}
+ \begingroup%
+ \@tud@changedattrue%
+ #4%
+ \@tud@changedatfalse%
+ \let\suffix\@gobble%
+ \protected@edef\tud@reserved{%
+ \noexpand\endgroup%
+ \def\noexpand\tud@idx@key{\tud@idx@key}%
+ \def\noexpand\tud@idx@fmt{\tud@idx@fmt}%
+ }%
+ \tud@reserved%
+ }%
+% \end{macrocode}
+% Nachdem die Formatierung der Haupt- und Untereinträge soweit zusammengebaut
+% wurden, wird die eigentliche Änderungsnotiz des fünften Arguments angehangen.
+% Dabei wird für den Fall, dass \emph{keine} Erklärung angegeben wurde, in der
+% Änderungsliste vermerkt, ob es sich bei dem Markup-Befehl respektive dessen
+% Untereintrag um eine \emph{neue} bzw. eine \emph{obsolete} Variante handelt.
+% \begin{macrocode}
+ \ifxblank{#5}{%
+ \if@tud@obsolete%
+ \appto\tud@idx@fmt{: \emph{entf\"allt}}%
+ \else%
+ \appto\tud@idx@fmt{: \emph{neu}}%
+ \fi%
+% \end{macrocode}
+% Existiert ein Eintrag, wird dieser für Schlüssel und Format verwendet.
+% \begin{macrocode}
+ }{%
+ \appto\tud@idx@key{: #5}%
+ \appto\tud@idx@fmt{: #5}%
+ }%
+% \end{macrocode}
+% Nachdem alles abgearbeitet wurde, wird der Indexeintrag erstellt.
+% \begin{macrocode}
+ \index[changelog]{#1!#2!\tud@idx@val\tud@idx@key @\tud@idx@fmt}%
+% \end{macrocode}
+% Existiert das vierte Argument nicht, handelt es sich um einen allgemeinen
+% Eintrag in der Änderungshistorie. Dieser wird direkt ausgeführt.
+% \begin{macrocode}
+ }{%
+ \index[changelog]{#1!#2!#3}%
}%
- \@declaretrue\@openindextrue%
- \@afterindentfalse\@afterheading%
+ }%
% \end{macrocode}
-% Die deklarierten Optionen, Umgebungen, Befehle etc. werden umrahmt. Dabe
-% 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
-% \makeatletter\the\z@\makeatother~gesetzt wird, muss für einen richtig
-% platzierten Link dieser in \cs{HyperRaiseLinkDefault} gesichert werden.
+% Außerdem wird der Liste \cs{tud@templist} die aktuelle Version einmalig
+% hinzugefügt, um alle Versionsangaben in einer Randnotiz ausgeben zu können.
% \begin{macrocode}
- \def\@tempa##1{\ignorespaces##1\tabularnewline}%
- \edef\HyperRaiseLinkDefault{\the\baselineskip}%
- \setbox0\hbox{%
- \begin{tabular}{|l|}%
- \hline%
- \forlistloop\@tempa{\@declarationlist}%
- \hline%
- \end{tabular}%
- }\usebox0%
- \@declarefalse%
-% \end{macrocode}
-% Danach werden ggf. die Voreinstellungen und Zusatzinformationen gesetzt.
-% \begin{macrocode}
- \ifboolexpr{bool {@presetlist} or bool {@additionallist}}{%
- \if@presetlist%
- \qquad%
- \texttt{%
- \begin{tabular}{l@{}}%
- \forlistloop\@tempa{\@presetlist}%
- \end{tabular}%
+ \ifinlist{#1}{\tud@templist}{}{\listadd\tud@templist{#1}}%
+}
+% \end{macrocode}
+% \end{macro}^^A \Changed@At@@CreateEntry
+% \end{macro}^^A \Changed@At@CreateEntry
+%
+% \subsubsection{Ausgabe der Änderungsliste}
+%
+% Ähnlich wie für den Index wird auch für die Änderungsliste bei der Ausgabe
+% verfahren.
+%
+% \begin{macro}{\PrintChangelog}
+% 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}
+\newcommand*\PrintChangelog{%
+ \begingroup%
+% \end{macrocode}
+% Die oberste Ebene enthält die Versionsnummer mit dem Präfix \val{v}. Diese
+% Ebene soll nicht als Indexeintrag selber sondern vielmehr als Überschrift der
+% Ebene \cs{subsection} genutzt werden. Dafür wird zum einen das durch das
+% Paket \pkg{imakeidx} definierte Makro \cs{lettergroup} \emph{unschädlich}
+% gemacht, zum anderen wird der Befehl \cs{item} so umdefiniert, dass dieser
+% alles bis zum nächsten Zeilenumbruch als Argument einliest. Alle darunter
+% liegenden \cs{item}-Befehle werden eine Ebene nach oben gehoben.
+% \begin{macrocode}
+ \let\lettergroup\@gobble%
+ \apptocmd{\theindex}{%
+ \let\subsubsubitem\subsubitem%
+ \let\subsubitem\subitem%
+ \let\subitem\item%
+ \renewcommand*\item{%
+ \begingroup%
+ \escapechar=`\\%
+ \catcode\endlinechar=\active%
+ \csname\string\item\endcsname%
+ }%
+ \begingroup%
+ \escapechar=`\\%
+ \lccode`\~=\endlinechar%
+ \lowercase{%
+ \expandafter\endgroup%
+ \expandafter\def\csname\string\item\endcsname##1~%
+ }{%
+ \endgroup%
+ \addsec[##1]{\TUDScript \NoCaseChange{##1}}%
+ \tudhyperdef*{idx:changelog:##1}%
+ \def\@tempa{\indexname: \TUDScript \NoCaseChange{##1}}%
+ \@mkboth{\@tempa}{\@tempa}%
+ }%
+ }{}{\tud@patch@wrn{theindex}}%
+% \end{macrocode}
+% Mit der so angepassten \env{theindex}-Umgebung erfolgt die Ausgabe der
+% Änderungshistorie.
+% \begin{macrocode}
+ \clearpage%
+ \def\imki@indexlevel{\addchap}%
+ \print@index[changelog]%
+ \endgroup%
+}
+% \end{macrocode}
+% \end{macro}^^A \PrintChangelog
+% \begin{macro}{\print@changedatlist}
+% \changes{v2.02}{2014/10/09}{neu}^^A
+% Die Einträge in der Liste der Änderungen \cs{tud@changedat@list} werden mit
+% dem Makro \cs{Changed@At@CreateList} abgearbeitet, sortiert und erstellt. Das
+% zweite obligatorische Argument von \cs{@printchangedatlist} steurrt den
+% vertikalen Versatz der Randnotiz. Wird im ersten Argument das boolesche Flag
+% zu \cs{BooleanTrue} gesetzt, wird die Randnotiz unterdrückt.
+% \begin{macrocode}
+\NewDocumentCommand\print@changedatlist{mm}{%
+ \ifx\tud@changedat@list\relax\else%
+ \let\tud@templist\relax%
+ \forlistloop\Changed@At@CreateEntry{\tud@changedat@list}%
+ \global\let\tud@changedat@list\relax%
+% \end{macrocode}
+% Nach der Verarbeitung der Einräge sind in \cs{tud@templist} alle angegebenen
+% Versionsnummern genau einmal enthalten. Mit \cs{tud@list@sort} werden diese
+% in die richtige Reihenfolge sortiert und anschließend als Randnotiz in einer
+% Tabelle ausgegeben, falls nicht die Sternversion verwendet wurde.
+% \begin{macrocode}
+ \IfBooleanF{#1}{%
+ \tud@list@sort\tud@templist%
+ \strut%
+ \marginnote{%
+ \def\@tempa####1{%
+ \ignorespaces%
+ \tudhyperref{idx:changelog:####1}{####1}%
+ \tabularnewline%
}%
- \fi%
- \if@additionallist%
- \begin{tabular}{@{}l@{}}%
- \forlistloop\@tempa{\@additionallist}%
+ \begin{tabular}{|l|}%
+ \hline%
+ \forlistloop\@tempa{\tud@templist}%
+ \hline%
\end{tabular}%
+ }[#2]%
+ \ignorespaces%
+ }%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \print@changedatlist
+%
+% \subsection{Erläuterungen und weiterführende Ergänzungen im Handbuch}
+%
+% Es folgen einige Umgebungen, mit welchen bestimmte Aspekte oder Pakete im
+% Handbuch erläutert werden.
+%
+% 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.
+% \begin{macrocode}
+\RequirePackage{enumitem}[2011/09/28]
+\setlist{noitemsep}
+% \end{macrocode}
+% Mit den Möglichkeiten des Paketes \pkg{enumitem} werden folgend Listen für
+% das Aufführen von möglichen Werten einer Option sowie der Beschreibung von
+% nützlichen Paketen erstellt. Für beide Lsiten soll dabei die originale
+% Definition von \cs{item} in \cs{stditem} gesichert und anschließend angepasst
+% werden. Die Sicherung und Redefinition von \cs{item} erfolgt dabei über das
+% Makro \cs{tud@before@item} über einen bereitgestellten \emph{hook} zu Beginn
+% der jeweiligen Liste.
+% \begin{macro}{\stditem}
+% \begin{macro}{\tud@before@item}
+% \begin{macrocode}
+\newcommand*\stditem{}
+\newcommand*\tud@before@item[1]{%
+ \ifdefvoid{\stditem}{%
+ \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.
+% \begin{macrocode}
+ \setlength\changedatskip{-\baselineskip}%
+ }{}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@before@item
+% \end{macro}^^A \stditem
+% \begin{environment}{values}
+% \begin{environment}{@values}
+% \begin{macro}{\tud@values}
+% Die Liste \env{@values} dient zum Benennen der möglichen Werte für einen
+% bestimmten Schlüssel. Im Handbuch kommt diese Liste vor allem bei Optionen
+% aber ggf. auch bei bestimmten Befehls- und Optionsparametern zum Einsatz.
+% Diese wird in der Umgebung \env{values} eingebettet, damit zum einen ein
+% \emph{obligatorisches} Argument verwendet werden kann und zum anderen
+% \emph{nach} diesem ein optionales für die Liste selbst verwendbar ist. Das
+% obligatorische Argument wird in \cs{tud@values} gesichert und sollte die
+% genauer zu beschreibende Option bzw. das Makro etc. enthalten.
+% \begin{macrocode}
+\newcommand*\tud@values{}
+\NewDocumentEnvironment{values}{mo}{%
+ \def\tud@values{#1}%
+ \IfValueTF{#2}{\@values[#2]}{\@values}%
+}{%
+ \end@values%
+}
+\newlist{@values}{description}{1}
+\setlist[@values]{%
+ topsep=\smallskipamount,labelwidth=\linewidth,labelsep=0pt,%
+ font=\normalfont,parsep=\parskip,listparindent=\parindent,%
+ before=\tud@before@item{values}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@values
+% \end{environment}^^A @values
+% \end{environment}^^A values
+% \begin{macro}{\tud@item@values}
+% \begin{macro}{\forslashlist}
+% Das Makro \cs{tud@item@values} ersetzt in der Umgebung \env{values} die
+% originale Definiton von \cs{item}. Die Sternversion kann dabei verwendet
+% werden, um die Einstellung für den Säumniswert hervorzuheben. Im ersten
+% optionalen Argument können die möglichen Werte einer Option oder eines
+% Parameters angegeben werden. Sind mehrere Werte gleichbedeutende Werte
+% verwendbar, so sind diese durch \val{/} zu trennen. Dabei wird der als
+% erstes angegebene Wert für den Untereintrag in den Index verwendet. Das
+% zweite optionale Argument kann genutzt werden, falls beispielsweise für
+% unterschiedliche Klassen sich der Säumniswert unterscheidet. Das letzte
+% optionale Argument in runden Klammern fügt zum Schluss einen ergänzenden
+% Eintrag hinzu.
+% \begin{macrocode}
+\DeclareListParser*{\forslashlist}{/}
+\NewDocumentCommand\tud@item@values{sood()}{%
+% \end{macrocode}
+% Alle Auszeichnungen kommen nur zum Tragen, wenn ein optionales Argument für
+% die Werte angegeben wurde.
+% \begin{macrocode}
+ \IfValueTF{#2}{%
+% \end{macrocode}
+% Die durch Schrägstrich getrennte Liste im optionalen Argument wird mit
+% \cs{forslashlist} durchlaufen. Der erste Eintrag wird für den Indexeintrag
+% benötigt und in \cs{@tempc} gesichert, alle weiteren Einträge werden in
+% \cs{@tempb} gespeichert und lediglich im Fließtext aufgelistet.
+% \begin{macrocode}
+ \let\@tempc\@empty%
+ \def\tud@reserved##1{%
+ \if@tempswa%
+ \appto\@tempb{/##1}%
+ \else%
+ \@tempswatrue%
+ \let\@tempb\@empty%
+ \def\@tempc{##1}%
\fi%
- }{}%
+ }%
+ \@tempswafalse%
+ \forslashlist\tud@reserved{#2}%
+% \end{macrocode}
+% Jetzt beginnt die Formatierung der Ausgabe. Zuerst wird die zu beschreibende
+% Option in \cs{@tempa} expandiert. Danach wird der erste Wert angehangen,
+% wobei dieser für die Sternversion als Säumniswert mit \cs{emph} hervorgehoben
+% wird. Zuletzt wird dafür Sorge getragen, dass auf den anschließend erzeugten
+% Eintrag selbst kein Hyperlink erzeugt wird und dieser im passenden Index als
+% fettmarkierter Eintrag erscheint.
+% \begin{macrocode}
+ \edef\@tempa{\expandonce\tud@values}%
+ \protected@eappto\@tempa{%
+ =\IfBooleanTF{#1}{\noexpand\emph}{\@firstofone}{\@tempc}=%
+ }%
+ \appto\@tempa{'none'|!|}%
% \end{macrocode}
-% Alle für die Deklaration verwendeten Listen werden nach ihrer Abarbeitung
-% zurückgesetzt.
+% Danach werden alle weiteren möglichen Werte angegeben, wobei auch diese im
+% Zweifelsfall mit \cs{emph} hervorzuheben sind.
% \begin{macrocode}
- \global\let\@declarationlist\relax%
- \global\let\@presetlist\relax%
- \global\@presetlistfalse%
- \global\let\@additionallist\relax%
- \global\@additionallistfalse%
+ \edef\@tempb{%
+ \IfBooleanTF{#1}{\noexpand\emph}{\@firstofone}{%
+ \noexpand\PValue{\@tempb}%
+ }%
+ }%
% \end{macrocode}
-% Die Einträge in der Änderungsliste sowie die dazugehörige Randnotiz werden
-% innerhalb der Deklaration mit \cs{printchangedatlist} erzeugt. Das optionale
-% Argument sorgt für die Verschiebung der Randnotiz auf die richtige Höhe, um
-% den Höhenversatz zwischen Randnotiz und Deklarationsrahmen auszugleichen.
+% Zuletzt erfolgt die Auszeichnung, ob es sich bei den gelisteten Werten um
+% Säumniswerte handelt, gefolgt vom optionael Suffix.
% \begin{macrocode}
- \printchangedatlist*[%
- \dimexpr.5\ht\strutbox+.5\dp\strutbox-.5\ht0-.5\dp0\relax%
- ]%
+ \IfBooleanTF{#1}{%
+ \appto\@tempb{\suffix{S\"aumniswert}}%
+ }{%
+ \IfValueT{#3}{\appto\@tempb{\suffix{S\"aumniswert f\"ur #3}}}%
+ }%
+ \IfValueT{#4}{\appto\@tempb{\suffix{#4}}}%
% \end{macrocode}
-% Zum Schluss wird das optionale Argument (in runden Klammern) neben der
-% Deklarationsbox ausgegeben.
+% Die in \cs{tud@values} gespeicherte, zu beschreibende Option bzw. Makro etc.
+% und der erste im optionalen Argument angegebene Wert werden verwendet, um ein
+% Label zu erstellen.
% \begin{macrocode}
- \IfValueT{#3}{#3}%
- \par\nobreak%
- \vskip 1.5\baselineskipglue%
- \@afterindentfalse\@afterheading%
- \fi%
+ \tud@lbl@get@curr*\tud@lbl@tmp{\tud@bdl@curr:\tud@values}=\@tempc=%
+% \end{macrocode}
+% Abschließend erfolgt wird die Ausgabe des generierten Eintrags mit dem
+% originalen Makro \cs{stditem}.
+% \begin{macrocode}
+ \stditem[\tudhyperdef{\tud@lbl@tmp}\@tempa\@tempb]%
+ }{%
+ \stditem%
+ }%
}
% \end{macrocode}
-% \end{macro}^^A \@gobbleparameters
-% \end{macro}^^A \if@additionallist
-% \end{macro}^^A \@additionallist
-% \end{macro}^^A \if@presetlist
-% \end{macro}^^A \@presetlist
-% \end{macro}^^A \@declarationlist
-% \end{macro}^^A \printdeclarationlist
-% \end{environment}^^A Declaration
-% \begin{environment}{Declaration*}
-% \changes{v2.02}{2014/10/09}{neu}^^A
-% Die Sternversion der Umgebung \env{Declaration*} ist für die vereinfachte
-% Deklaration von Klassen, Paketen etc. gedacht, bei denen keine Ausgabe
-% sondern lediglich Hyperlink, Indexeintrag und Änderungsnotiz erzeugt werden
-% sollen. Dabei sollte diese direkt nach einer Gliederungsüberschrift genutzt
-% werden, in welcher das zu deklarierende ELement (Klasse, Paket etc.) genannt
+% \end{macro}^^A \forslashlist
+% \end{macro}^^A \tud@item@values
+% \begin{macro}{\itemtrue}
+% \begin{macro}{\itemfalse}
+% \begin{macro}{\tud@item@bool}
+% Die folgenden beiden Befehle sind äquivalent zu \cs{tud@item@values} genutzt
+% werden. Diese enthalten allerdings im optionalen Argument zumindest die
+% 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)}
+% \end{macrocode}
+% Der Befehl \cs{item@bool} setzt je nach angegebenen Argumenten über ein
+% token-Register den auszuführenden \cs{item}-Befehl zusammen.
+% \begin{macrocode}
+\NewDocumentCommand\item@bool{mmr[]r[]r()}{%
+ \toks@{\item}%
+ \IfBooleanT{#1}{\addto@hook\toks@{*}}%
+% \end{macrocode}
+% Die optionalen Werte werden im Zweifel den booleschen Standardwerten
+% angehängt und als einziges optionales Argument an \cs{item} übergeben.
+% \begin{macrocode}
+ \protected@edef\@tempa{#2\IfValueT{#3}{/#3}}%
+ \eaddto@hook\toks@{\expandafter[\@tempa]}%
+ \IfValueT{#4}{\addto@hook\toks@{[#4]}}%
+ \IfValueT{#5}{\addto@hook\toks@{(#5)}}%
+ \the\toks@%
+}
+% \end{macrocode}
+% \end{macro}^^A \itemfalse
+% \end{macro}^^A \itemtrue
+% \end{macro}^^A \tud@item@bool
+% \begin{environment}{packages}
+% \begin{macro}{\tud@item@packages}
+% \changes{v2.02}{2014/10/09}{optionales Argument für CTAN-Link}^^A
+% \changes{v2.04}{2015/03/12}{optionales Argument für weitere Pakete}^^A
+% Ähnlich wie für die Auflistung von Werten eines Schlüssels wird auch mit der
+% Charakterisierung von Paketen verfahren. Diese werden in der Auflistung
+% speziell gekennzeichnet.
+% \begin{macrocode}
+\newlist{packages}{description}{2}
+\setlist[packages]{%
+ topsep=\smallskipamount,labelwidth=\linewidth,labelsep=0pt,%
+ font=\normalfont,parsep=\parskip,listparindent=\parindent,%
+ before=\tud@before@item{packages}%
+}
+% \end{macrocode}
+% Hiermit können ein oder mehrere Pakete erläutert werden. Des Weiteren werden
+% Textanker definiert, auf die im Zweifelsfall in der Dokumentation verlinkt
% wird.
% \begin{macrocode}
-\NewDocumentEnvironment{Declaration*}{om}{%
- \@changedatdeclare{#1}{#2}%
- \@stareddeclaretrue%
- \global\@deprecatedfalse%
- \@declaretrue\@openindextrue#2\@declarefalse%
- \@stareddeclarefalse%
-}{%
- \ifx\@changedatdeclarelist\relax\else%
- \ClassError{tudscrman}{\string\printchangedatlist\space is missing}{%
- \string\@changedatdeclarelist\space is not empty. Did you\MessageBreak%
- forget to print this list with \string\printchangedatlist?%
+\NewDocumentCommand\tud@item@packages{od<>d()}{%
+% \end{macrocode}
+% Die kommagetrennte Liste im optionalen Argument wird verwendet, um jedes
+% einzelnen Paket aufzulisten und einen dazugehörigen Textanker zu erzeugen.
+% Das optionale Argument in Guillemets kann genutzt werden, um \emph{alle}
+% gelisteten Pakete auf den gleichen CTAN-Link zielen zu lassen. Dies ist
+% beispielsweise für mehrere Pakete aus dem gleichen Bundle sinnvoll.
+% \begin{macrocode}
+ \def\@tempa##1{%
+ \@tempc%
+ \tud@lbl@get@curr*\tud@lbl@tmp{\tud@bdl@curr:\Package{##1}}%
+ \tudhyperdef{\tud@lbl@tmp}%
+ \begingroup%
+ \Package{##1}<#2>'url'|!|%
+ \endgroup%
+ \def\@tempc{, }%
+ }%
+ \stditem[{%
+ \IfValueT{#1}{%
+ \let\@tempc\relax%
+ \forcsvlist\@tempa{#1}%
+% \end{macrocode}
+% Wird im dritten optionalen Argument in runden Klammern ein Paket angegeben,
+% so wird ebenfalls ein Textanker erzeugt, allerdings auf einen Hyperlink zu
+% CTAN verzichtet.
+% \begin{macrocode}
+ \IfValueT{#3}{%
+ \tud@lbl@get@curr*\tud@lbl@tmp{\tud@bdl@curr:\Package{#3}}%
+ \quad(\tudhyperdef{\tud@lbl@tmp}\Package{#3}'none'|!|)%
+ }%
}%
- \fi%
- \global\@deprecatedfalse%
- \@gobbleparameters%
- \@declaretrue\@openindexfalse#2\@declarefalse%
+ }]%
}
% \end{macrocode}
-% \end{environment}^^A Declaration*
+% \end{macro}^^A \tud@item@packages
+% \end{environment}^^A packages
% \begin{environment}{tabularm}
-% \begin{macro}{\allcolumnpar}
-% \begin{macro}{\@allcolumnpar}
+% \begin{macro}{\tabularm@allcolumnpar}
% \begin{macro}{\tabularm@box}
% \begin{macro}{\tabularm@num}
% \begin{length}{\tabularm@wd}
-% Die Umgebung \env{tabularm} ist eine Erweiterung der \env{tabularm}-Umgebung.
+% \begin{length}{\tempdim}
+% \changes{v2.02}{2014/08/16}{neu}^^A
+% Die Umgebung \env{tabularm} ist eine Erweiterung der \env{tabular}-Umgebung.
% In dieser wird die Breite der zu setzenden Tabelle mit Hilfe der Box
% \cs{tabularm@box} in \cs{tabularm@wd} gespeichert. Anschließend kann mit dem
-% Befehl \cs{allcolumnpar} eine Zeile über alle Spalten der Tabelle
-% ausgegeben werden. Dabei ist das zu übergebende Argument die Anzahl der zu
-% erzeugenden, linksbündigen Spalten.
+% Befehl \cs{allcolumnpar} eine Zeile über alle Spalten der Tabelle ausgegeben
+% werden. Dabei ist das zu übergebende Argument die Anzahl der zu erzeugenden,
+% linksbündigen Spalten.
% \begin{macrocode}
+\newlength\tempdim
\newsavebox\tabularm@box
\newlength\tabularm@wd
\newcommand*\tabularm@num{1}
@@ -2215,132 +4476,67 @@
\end{lrbox}%
\setlength\tabularm@wd{\wd\tabularm@box}%
\def\tabularm@num{#1}%
- \let\allcolumnpar\@allcolumnpar%
+ \let\allcolumnpar\tabularm@allcolumnpar%
\begin{tabular}{*{#1}l}\BODY\end{tabular}%
}
-\newcommand*\@allcolumnpar[1]{%
+\newcommand*\tabularm@allcolumnpar[1]{%
\multicolumn{\tabularm@num}{@{}p{\tabularm@wd}@{}}{#1}%
}
% \end{macrocode}
+% \end{length}^^A \tempdim
% \end{length}^^A \tabularm@wd
% \end{macro}^^A \tabularm@box
% \end{macro}^^A \tabularm@num
-% \end{macro}^^A \@allcolumnpar
-% \end{macro}^^A \allcolumnpar
+% \end{macro}^^A \tabularm@allcolumnpar
% \end{environment}^^A tabularm
-% \begin{environment}{values}
-% \begin{macro}{\before@values}
-% \begin{macro}{\itemvalues}
-% \begin{macro}{\itemtrue}
-% \begin{macro}{\itemfalse}
-% \begin{macro}{\tud@item@val}
-% \begin{macro}{\tud@item@add}
-% \begin{macro}{\tud@item@format}
-% \begin{macro}{\tud@item}
-% \begin{macro}{\tud@@item}
-% \begin{macro}{\tud@@@item}
-% Die Liste \env{values} dient zum Benennen der möglichen Werte für einen
-% bestimmten Schlüssel. Im Handbuch kommt diese Liste vorallem bei Optionen
-% aber auch bei bestimmten Befehls- und Optionsparametern zum Einsatz.
-% \begin{macrocode}
-\newlist{values}{description}{1}
-\setlist[values]{%
- topsep=.5\baselineskipglue,labelwidth=\columnwidth,labelsep=0pt,%
- font=\normalfont\ttfamily,before*=\before@values%
-}
-% \end{macrocode}
-% Zu Beginn der Umgebung wird die Definition des \cs{item}-Befehls gesichert
-% und anschließend geändert.
-% \begin{macrocode}
-\newcommand*\itemvalues{}
-\newcommand*\before@values{%
- \ifdefvoid{\itemvalues}{%
- \let\itemvalues\item%
- \let\item\tud@item%
- \setlength\changedatskip{-\baselineskip}%
- }{}%
-}
-% \end{macrocode}
-% Die folgenden beiden Befehle enthalten die Standardwerte für boolsche
-% Schalter.
+% Mit Hilfe von \pkg{tabularx} können Tabellen bestimmter Breite und
+% automatisch berechneten Spaltenbreiten gesetzt werden.
% \begin{macrocode}
-\newcommand*\itemfalse{\def\tud@item@val{false/off/no}\item}
-\newcommand*\itemtrue{\def\tud@item@val{true/on/yes}\item}
+\RequirePackage{tabularx}[1999/01/07]
% \end{macrocode}
-% Mit der neuen Definition kann der Säumniswert mit \cs{item*} explizit in der
-% Liste hervorgehoben werden.
+% \begin{macro}{\TermTable}
+% \begin{macro}{\Term@Table}
+% \begin{macro}{\Term@@Table}
+% Für sprachabhängige Bezeichner wird zusätzlich der Befehl \cs{TermTable}
+% definiert, dem eine kommaseparierte Liste übergeben werden kann. Anhand
+% dieser Liste werden die enthalten Begriffe für die Sprachen Deutsch und
+% English in einer Tabelle ausgegeben. Die Sternversion dieses Befehls nutzt
+% 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}
-\newcommand*\tud@item@val{}
-\newcommand*\tud@item@add{}
-\newcommand*\tud@item@format{}
-\newcommand*\tud@item{%
- \@ifstar{%
- \def\tud@item@add{(S\"aumniswert)}%
- \let\tud@item@format\emph%
- \tud@@item%
+\NewDocumentCommand\TermTable{smg}{%
+ \let\tud@templist\relax%
+ \forcsvlist{\listadd\tud@templist}{#2}%
+ \ifhmode\par\fi%
+ \vskip\medskipamount%
+ \@afterindentfalse\@afterheading%
+ \IfBooleanTF{#1}{%
+ \IfValueTF{#3}{\setlength\@tempdima{#3}}{\setlength\@tempdima{\linewidth}}%
+ \setlength\@tempdimc{-.7\baselineskip}%
+ \begin{tabularx}{\@tempdima}{lXX}\Term@Table\end{tabularx}%
}{%
- \let\tud@item@add\relax%
- \let\tud@item@format\relax%
- \tud@@item%
+ \setlength\@tempdimc{\z@}%
+ \begin{tabular}{lll}\Term@Table\end{tabular}%
}%
+ \par\addvspace{\medskipamount}%
}
-% \end{macrocode}
-% In der zweiten Instanz wird das optionale Argument von \cs{item} ausgewertet.
-% Dabei wird das Hilfsmakro \cs{tud@item@val} beachtet, welches evtl. mit den
-% Befehlen \cs{itemtrue} oder \cs{itemfalse} gesetzt wurde und vor dem
-% optionalen Argument aufgeführt wird.
-% \begin{macrocode}
-\newcommand*\tud@@item[1][]{%
- \ifblank{#1}%
- {\edef\@tempa{\tud@item@val}}%
- {\ifstr{\tud@item@val}{}%
- {\edef\@tempa{#1}}%
- {\edef\@tempa{\tud@item@val/#1}}%
- }%
- \def\tud@item@val{}%
-% \end{macrocode}
-% Wurde weder \cs{tud@item@val} gesetzt noch ein Wert im optionalen Argument
-% von \cs{item} angegeben, so wird der gesicherte Befehl ausgeführt. Ansonsten
-% folgt die dritte Instanz.
-% \begin{macrocode}
- \ifstr{\@tempa}{}{\itemvalues}{\tud@@@item}%
+\newcommand*\Term@Table{%
+ \toprule%
+ \textbf{Bezeichner} & \textbf{Deutsch} & \textbf{Englisch}\tabularnewline%
+ \midrule%
+ \forlistloop\Term@@Table{\tud@templist}%
+ \bottomrule%
}
-% \end{macrocode}
-% Der gesicherte Befehl wird mit den aufbereiteten Formatierungen genutzt.
-% \begin{macrocode}
-\newcommand*\tud@@@item[1][]{%
- \ifblank{#1}{}{%
- \ifx\tud@item@add\relax%
- \def\tud@item@add{#1}%
- \else%
- \appto\tud@item@add{~#1}%
- \fi%
- }%
- \itemvalues[%
- \tud@item@format{\@tempa:}%
- \ifx\tud@item@add\relax\else%
- {\normalfont\space\footnotesize\tud@item@add}%
- \fi%
- ]%
+\newcommand*\Term@@Table[1]{%
+ \Term{#1} & %
+ \ifstr{\csuse{#1}}{}{\PName{leer}}{\csuse{#1}} & %
+ \selectlanguage{english}\vspace*{\@tempdimc}%
+ \ifstr{\csuse{#1}}{}{\PName{empty}}{\csuse{#1}}\tabularnewline%
}
% \end{macrocode}
-% \end{macro}^^A \tud@@@item
-% \end{macro}^^A \tud@@item
-% \end{macro}^^A \tud@item
-% \end{macro}^^A \tud@item@format
-% \end{macro}^^A \tud@item@add
-% \end{macro}^^A \tud@item@val
-% \end{macro}^^A \itemfalse
-% \end{macro}^^A \itemtrue
-% \end{macro}^^A \itemvalues
-% \end{macro}^^A \before@values
-% \end{environment}^^A values
-%
-% \subsubsection{Erläuterungen und weiterführende Ergänzungen im Handbuch}
-%
-% Es folgen einige Umgebungen, mit welchen bestimmte Aspekte oder Pakete im
-% Handbuch erläutert werden.
-%
+% \end{macro}^^A \Term@@Table
+% \end{macro}^^A \Term@Table
+% \end{macro}^^A \TermTable
% \begin{environment}{Example}
% \begin{environment}{Example*}
% Diese Umgebung wird für die exemplarische Erläuterung von bestimmten Aspekten
@@ -2349,26 +4545,97 @@
% unterdrückt dabei das Zurücksetzen des eigentlich entfernten vertikalen
% Abstandes.
% \begin{macrocode}
-\newenvironment{Example}{\@nameuse{Example*}}{%
- \@nameuse{endExample*}%
+\newenvironment{Example}{\csuse{Example*}}{%
+ \csuse{endExample*}%
\addvspace{-\topsep}%
}
\newenvironment{Example*}{%
- \labeling{{\usekomafont{disposition}Beispiel:\ }}%
- \item[{\usekomafont{disposition}Beispiel:\ }]%
+ \labeling{{\usekomafont{disposition}Beispiel:\nobreakspace}}%
+ \item[{\usekomafont{disposition}Beispiel:\nobreakspace}]%
}{%
\endlabeling%
}
% \end{macrocode}
% \end{environment}^^A Example*
% \end{environment}^^A Example
+%
+% \iffalse
+%</class>
+% \fi
+%
+% \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.
+%
+% \begin{macro}{\tud@write@a}
+% \changes{v2.02}{2014/10/22}{neu}^^A
+% \begin{macro}{\tud@write@b}
+% \changes{v2.02}{2014/11/02}{neu}^^A
+% \begin{macro}{\tud@read}
+% \changes{v2.02}{2014/08/19}{neu}^^A
+% Für die Erstellung der Indexe wird zum Sortieren das Programm \app{texindy}
+% genutzt. Für dieses wird eine eigene Stildatei verwendet, welche zur Laufzeit
+% erzeugt wofür zuerst ein Ausgabestream reserviert wird.
+% \begin{macrocode}
+\newcommand*\tud@write@a{}
+\newwrite\tud@write@a
+% \end{macrocode}
+% Für die Tutorials werden später zusätzlich noch ein weiterer Ausgabe- sowie
+% ein Eingabestream benötigt, die hier gleich mit initialisiert werden.
+% \begin{macrocode}
+%<*package>
+\newcommand*\tud@write@b{}
+\newwrite\tud@write@b
+\newcommand*\tud@read{}
+\newread\tud@read
+%</package>
+% \end{macrocode}
+% \end{macro}^^A \tud@read
+% \end{macro}^^A \tud@write@b
+% \end{macro}^^A \tud@write@a
+%
+% \subsection{Einbinden von Quelltextauszügen}
+%
+% Sowohl im Handbuch als auch in den Tutorials werden Quelltextauszüge für das
+% bessere Verständnis des Anwenders angegeben. Um diese darzustellen wird das
+% Paket \pkg{listings} verwendet.
+% \begin{macrocode}
+\RequirePackage{listings}[2014/03/04]
+\lstdefinestyle{tudscr}{%
+ basicstyle=\ttfamily\ifdef{\setstretch}{\setstretch{1}}{},%
+ keywordstyle=,%
+ columns=fullflexible,keepspaces,%
+ aboveskip=\smallskipamount,%
+ belowskip=\smallskipamount,%
+ language=[LaTeX]TeX,%
+ texcl,%
+}
+% \end{macrocode}
+%
+% \iffalse
+%<*class>
+% \fi
+%
% \begin{environment}{Code}
% \begin{macro}{\tud@currentHref}
% Folgend werden Befehle und Umgebungen für die Darstellung von Quelltexten im
-% Handbuch definiert. Mit dieser Umgebung können kurze Quelltextbeispiele im
-% Handbuch ausgegeben werden. Sicherlich sinnvoll ist, die \env{Code}-Umgebung
-% innerhalb von \env{Example} oder \env{quoting} zu verwenden, um den
-% Quelltext etwas abzuheben.
+% Handbuch definiert. Mit dieser Umgebung können kurze Quelltextbeispiele
+% ausgegeben werden. Sicherlich sinnvoll ist, die \env{Code}-Umgebung innerhalb
+% von \env{Example} oder \env{quoting} zu verwenden, um den Quelltext etwas
+% abzuheben.
% \begin{macrocode}
\lstnewenvironment{Code}[1][]{\lstset{style=tudscr,#1}}{}
% \end{macrocode}
@@ -2382,538 +4649,370 @@
% \end{macrocode}
% \end{macro}^^A \tud@currentHref
% \end{environment}^^A Code
-% \begin{environment}{packages}
-% \begin{macro}{\itempackages}
-% \begin{macro}{\tud@item@pkg}
-% \changes{v2.02}{2014/10/08}{\cs{DeclarePackage} entfernt}^^A
-% \changes{v2.02}{2014/10/09}{optionales Argument für CTAN-Link}^^A
-% \changes{v2.04}{2015/03/12}{optionales Argument für weitere Pakete}^^A
-% \begin{macro}{\before@packages}
-% Ähnlich wie für die Auflistung von Werten eines Schlüssels wird auch mit der
-% Charakterisierung von Paketen verfahren. Diese werden in der Auflistung
-% speziell gekennzeichnet.
-% \begin{macrocode}
-\newlist{packages}{description}{2}
-\setlist[packages]{%
- topsep=\medskipamount,labelwidth=\linewidth,labelsep=0pt,font=\normalfont,%
- parsep=\parskip,listparindent=\parindent,before=\before@packages%
-}
-\newcommand*\itempackages{}
-\newcommand*\before@packages{%
- \ifdefvoid{\itempackages}{%
- \let\itempackages\item%
- \let\item\tud@item@pkg%
- \setlength\changedatskip{-\baselineskip}%
- }{}%
-}
-\NewDocumentCommand\tud@item@pkg{od()od''}{%
- \itempackages[{%
- \IfValueT{#1}{%
- \manualhyperdef{files:#1}%
- \IfValueTF{#2}{%
- \def\@tempa{http://www.ctan.org/pkg/#2}%
- }{%
- \def\@tempa{http://www.ctan.org/pkg/#1}%
- }%
- \href{\@tempa}{\Package{#1}'none'|!|}%
- \IfValueT{#3}{%
- \quad(%
- \let\@tempb\relax%
- \@for\@tempa:=#3\do{%
- \@tempb%
- \manualhyperdef{files:\@tempa}%
- \expandafter\Package\expandafter{\@tempa}'none'|!|%
- \def\@tempb{, }%
- }%
- )%
- }%
- \IfValueT{#4}{%
- \quad(%
- \let\@tempb\relax%
- \@for\@tempa:=#4\do{%
- \@tempb%
- \manualhyperdef{files:\@tempa}%
- \href{http://www.ctan.org/pkg/\@tempa}{%
- \expandafter\Package\expandafter{\@tempa}'none'|!|%
- }%
- \def\@tempb{, }%
- }%
- )%
- }%
- }%
- }]%
-}
-% \end{macrocode}
-% \end{macro}^^A \before@packages
-% \end{macro}^^A \tud@item@pkg
-% \end{macro}^^A \itempackages
-% \end{environment}^^A packages
%
-% \subsubsection{Änderungsliste}
+% \iffalse
+%</class>
+% \fi
%
-% Um dem Anwender einen schnellen Überblick zu Änderungen der aktuellen Verison
-% bereitstellen zu können, werden Befehle zur automatisierten Erzeugung einer
-% solchen Liste definiert.
-% \ToDo{%
-% Der Quelltext ist ein Grauen, das muss ich irgendwann einmal komplett
-% überarbeiten. Insbesondere sollten die Argumente für die Änderungsliste
-% wesentlich strukturierter eingefügt werden, bestenfalls mit zwei oder mehr
-% unterschiedlichen Trennzeichen.
-% }[?]
+% \subsection{Kompilieren von externen Dateien und Querverweise auf diese}
%
-% \begin{macro}{\@changedatdeclare}
-% \changes{v2.02}{2014/10/09}{neu}^^A
-% \begin{macro}{\@changedatdeclaredefault}
-% \changes{v2.02}{2014/10/09}{neu}^^A
-% \begin{macro}{\@changedatdeclarelist}
-% \changes{v2.02}{2014/07/25}{neu}^^A
-% \begin{macro}{\ChangedAt@Split}
-% \begin{macro}{\ChangedAt@@Split}
-% Um für Änderungsnotizen die dazugehörige Option, Befehl etc. bei einer
-% Deklaration kenntlich zu machen, wird das deklarierte Element zusammen mit
-% der Notiz in einer Liste gespeichert. Da mehrere kommaseparierte Werte
-% angegeben werden können, muss das optionale Argument der Umgebung
-% \env{Declaration} dahingehend abgearbeitet werden. Wenn keine weitere
-% Erklärung angegeben wurde, wird der entspredchende Eintrag mit dem Attribut
-% versehen, welches in \cs{@changedatdeclaredefault} gespeichert ist. Dabei
-% kann außerdem angegeben werden, ob es sich bei Änderung um eine Umbenennung
-% von Option, Befehl etc. handelt.
-% \begin{macrocode}
-\newcommand*\@changedatdeclarelist{}
-\let\@changedatdeclarelist\relax
-\newcommand*\@changedatdeclaredefault{\emph{neu}}
-\newcommand*\@changedatdeclare[2]{%
- \IfValueT{#1}{%
- \@for\@tempa:=#1\do{%
- \ifx\@tempa\@empty\else%
- \preto{\@tempa}{#2!}%
- \expandafter\ChangedAt@Split\expandafter{\@tempa}%
- \fi%
- }%
+% Das Paket \pkg{filemod} wird genutzt, um externer Dateien nur zu kompilieren,
+% wenn dies aufgrund einer Änderung auch notwendig ist.
+% \begin{macrocode}
+\RequirePackage{filemod}[2011/09/19]
+% \end{macrocode}
+% Um die \cs{write18} 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]
+% \end{macrocode}
+% \begin{macro}{\tud@shellescape@wrn}
+% \changes{v2.02}{2014/10/14}{neu}^^A
+% Dieses Makro wird verwendet, wenn eine gesuchte Datei nicht gefunden wurde,
+% weil das Dokument noch nicht mit der Option \opt{--shell-escape} kompiliert
+% wurde.
+% \begin{macrocode}
+\newcommand*\tud@shellescape@wrn[1]{%
+%<*class>
+ \ClassWarning{tudscrmanual}%
+%</class>
+%<*package>
+ \PackageWarning{tudscrtutorial}%
+%</package>
+ {%
+ File `#1' is missing!\MessageBreak%
+ You have to recompile this document with\MessageBreak%
+ activated shell escape option%
}%
}
% \end{macrocode}
-% Die Änderungsnotiz für die Implementierung wird erst an den Ausrufezeichen
-% in einzelne Argumente getrennt\dots
+% \end{macro}^^A \tud@shellescape@wrn
+% \begin{macro}{\Tutorial}
+% \changes{v2.02}{2014/08/22}{neu}^^A
+% \changes{v2.02}{2014/10/22}{Reimplementierung}^^A
+% \begin{macro}{\hypertut}
+% \changes{v2.02}{2014/09/02}{neu}^^A
+% Die gegebenenfalls notwendige Kompilierung und die Referenzierung eines
+% Tutorials aus dem Handbuch erfolgt mit \cs{Tutorial}. Außerdem erfolgt mit
+% \cs{hypertut} ein verlinkter Eintrag in den Index.
% \begin{macrocode}
-\NewDocumentCommand\ChangedAt@Split{>{\SplitArgument{2}{!}}m}{%
- \ChangedAt@@Split#1%
+%<*class>
+\newrobustcmd*\hypertut[2]{%
+ \hyperref{tutorials/#1.pdf}{#1}{tutorials:#1}{\File*{#1.pdf}#2}%
}
+\NewDocumentCommand\Tutorial{smd||}{%
+ \ifnum\pdfshellescape=\@ne\relax%
% \end{macrocode}
-% \dots und anschließend in die Liste \cs{@changedatdeclarelist}~-- in einer
-% etwas kryptischen Form~-- eingetragen. Dies geschieht jedoch nur, wenn im
-% Argument nicht die Sternversion eines Auszeichnungsbefehls genutzt wurde.
-% Diese sollen keinen Eintrag in der Änderungsliste, wohl aber eine Randnotiz
-% erzeugen.
+% Um mit den verschachtelten Aufrufen von \app{pdflatex} umgehen zu können,
+% wird das ganze Prozedere in ein Skript ausgelagert. Somit können die Aufrufe
+% von \app{pdflatex} für die Tutorials aus dem entsprechenden Ordner und mit
+% den notwendigen Optionen erfolgen.
% \begin{macrocode}
-\newcommand*\ChangedAt@@Split[3]{%
- \in@{*}{#1}%
- \ifin@%
- \listadd\@changedatdeclarelist{Allgemein!#2}%
- \else%
- \listadd\@changedatdeclarelist{%
- Implementierung!#2!\IfValueTF{#3}{#3}{\@changedatdeclaredefault}!#1%
- }%
- \fi%
-}
+ \filemodCmp{tutorials/#2.pdf}{tutorials/#2.tex}{}{%
+ \let\@tempa\@empty%
+ \ifdef{\tudfinalflag}{\appto\@tempa{\def\noexpand\tudfinalflag{}}}{}%
+ \ifdef{\tudprintflag}{\appto\@tempa{\def\noexpand\tudprintflag{}}}{}%
+ \appto\@tempa{\noexpand\input{#2.tex}}%
+ \def\@tempb##1{%
+ \immediate\openout\tud@write@a=tutorials.sh\relax%
+ \immediate\write\tud@write@a{cd tutorials^^J##1}%
+ \immediate\closeout\tud@write@a%
% \end{macrocode}
-% \end{macro}^^A \ChangedAt@@Split
-% \end{macro}^^A \ChangedAt@Split
-% \end{macro}^^A \@changedatdeclarelist
-% \end{macro}^^A \@changedatdeclaredefault
-% \end{macro}^^A \@changedatdeclare
-% \begin{macro}{\printchangedatlist}
-% \changes{v2.02}{2014/10/09}{neu}^^A
-% Die Einträge in der Änderungsliste sowie die dazugehörige Randnotiz werden
-% mit dem Makro \cs{ChangedAt@Process} abgearbeitet, sortiert und erstellt. Bei
-% \cs{printchangedatlist} wird mit dem optionalen Argument der Versatz für die
-% Randnotiz gesetzt. Dieser wird wie auch die Liste an \cs{ChangedAt@Process}
-% übergeben, womit diese und die Randnotiz letztendlich erzeugt werden.
+% Hier erfolgt die Unterscheidung der Befehle für die unterschiedlichen OS.
% \begin{macrocode}
-\NewDocumentCommand\printchangedatlist{sO{\z@}}{%
- \ifx\@changedatdeclarelist\relax\else%
- \if@deprecated%
- \ChangedAt@Process[#1]{#2}{\@changedatdeclarelist}%
- \else%
- \ChangedAt@Process{#2}{\@changedatdeclarelist}%
- \fi%
- \global\let\@changedatdeclarelist\relax%
- \IfBooleanF{#1}{%
- \par\nobreak\vskip\dimexpr-\parskip-\baselineskip\relax%
- \@afterindentfalse\@afterheading%
+ \ifwindows%
+ \immediate\write18{rename tutorials.sh tutorials.bat}%
+ \immediate\write18{tutorials.bat}%
+ \immediate\write18{del tutorials.bat}%
+ \else%
+ \immediate\write18{bash tutorials.sh}%
+ \immediate\write18{rm tutorials.sh}%
+ \fi%
+ }%
+ \@tempb{pdflatex -shell-escape "\@tempa"}%
+ \IfFileExists{tutorials/#2.bcf}{\@tempb{biber #2}}{}%
+ \@tempb{%
+ pdflatex "\@tempa"^^J%
+ pdflatex -shell-escape "\@tempa"^^J%
+ pdflatex -shell-escape "\@tempa"%
+ }%
}%
\fi%
-}
% \end{macrocode}
-% \end{macro}^^A \printchangedatlist
-% \begin{macro}{\ChangedAt}
-% \changes{v2.02}{2014/07/25}{erweitert}^^A
-% \changes{v2.02}{2014/10/15}{Sternversion neu (keine Randnotiz)}^^A
-% \begin{length}{\changedatskip}
-% \changes{v2.04}{2015/06/08}{neu}^^A
-% An den Befehl \cs{ChangedAt} kann eine kommagetrente Liste mit verschiedenen
-% Versionsnummern und dazugehörigen Änderungen übergeben werden. Er wird in der
-% Form: \cs{ChangedAt}\verb|{|\meta{Version}\verb|!|\meta{Beschreibung}\verb|}|
-% genutzt. Mit \cs{ChangedAt@Process} wird der Prozess selbst durchgeführt. Es
-% wird zu der angegebenen Versionsnummer ein Eintrag in die Änderungsliste
-% erstellt, wenn mit einem Ausrufezeichen getrennt der gewünschte Inhalt
-% gegeben wurde.
-%
-% Alle übergegebenen Versionsnummern werden als Liste mit einmaligen Einträgen
-% in einer Randnotiz gesetzt. Mit dem optionalen Argument kann ein vertikaler
-% dieser angegeben werden. Die Version mit einem Apostroph verschiebt die
-% Randnotiz um den Grundlinienabstand nach oben, die Sternversion unterdrückt
-% stattdessen die Ausgabe dieser vollständig.
+% Hyperlink und Indexeintrag.
% \begin{macrocode}
-\newlength\changedatskip
-\NewDocumentCommand\ChangedAt{sO{\changedatskip}mO{Allgemein}}{%
- \ChangedAt@Process[#1]{#2}[#4]{#3}%
-}
-% \end{macrocode}
-% \end{length}^^A \changedatskip
-% \end{macro}^^A \ChangedAt
-% \begin{macro}{\ChangedAt@Process}
-% \changes{v2.02}{2014/09/02}{neu}^^A
-% \begin{macro}{\ChangedAt@@Process}
-% \changes{v2.02}{2014/09/02}{neu}^^A
-% \begin{macro}{\ChangedAt@@@Process}
-% \changes{v2.02}{2014/09/02}{neu}^^A
-% \changes{v2.02}{2014/10/16}{Unterteilung Änderungsliste in Bereiche}^^A
-% \begin{macro}{\ChangedAt@Default}
-% \changes{v2.02}{2014/09/02}{neu}^^A
-% \begin{macro}{\ChangedAt@Process@Split}
-% \changes{v2.02}{2014/09/02}{neu}^^A
-% \begin{macro}{\@changedatlist}
-% \changes{v2.02}{2014/09/02}{neu}^^A
-% \begin{macro}{\@changedatversionlist}
-% \changes{v2.02}{2014/09/02}{neu}^^A
-% Mit diesen Befehlen wird die Änderungshistorie in Form eines Index erstellt.
-% Der Befehl \cs{ChangedAt@Process} setzt eine kommagetrennte Liste in eine
-% im Format von \pkg{etoolbox} um. Anschließend wird diese für die
-% Änderungsliste mit \cs{ChangedAt@Process@Split} aufgespalten. Die einzelnen
-% Einträge werden mit \cs{ChangedAt@@Process} weiter verarbeitet.
-% \begin{macrocode}
-\newcommand*\@changedatlist{}
-\newcommand*\ChangedAt@Default{}
-\newcommand*\@changedatversionlist{}
-\let\@changedatversionlist\relax
-\NewDocumentCommand\ChangedAt@Process{omom}{%
- \let\@changedatlist\relax%
- \let\@changedatversionlist\relax%
- \@for\@tempa:=#4\do{%
- \ifx\@tempa\@empty\else%
- \IfValueT{#3}{\preto\@tempa{#3!}}%
- \listeadd{\@changedatlist}{\expandonce\@tempa}%
- \fi%
+ \IfFileExists{tutorials/#2.pdf}{%
+ \hypertut{#2}{}%
+ }{%
+ \File*{#2.pdf}%
+ \tud@shellescape@wrn{tutorials/#2.pdf}%
}%
- \forlistloop\ChangedAt@Process@Split{\@changedatlist}%
-% \end{macrocode}
-% Nach der Verarbeitung aller Einräge sind in \cs{@changedatversionlist} alle
-% angegebenen Versionsnummern genau einmal enthalten. Mit \cs{sortlist} werden
-% diese in die richtige Reihenfolge sortiert und anschließend als Randnotiz in
-% einer Tabelle ausgegeben, falls nicht die Sternversion verwendet wurde.
-% \begin{macrocode}
\IfBooleanF{#1}{%
- \sortlist{\@changedatversionlist}%
- \strut%
- \marginnote{%
- \def\@tempa####1{%
- \ignorespaces\manualhyperref{####1}{####1}\tabularnewline%
- }%
- \begin{tabular}{|l|}%
- \hline%
- \forlistloop\@tempa{\@changedatversionlist}%
- \hline%
- \end{tabular}%
- }[#2]%
- \ignorespaces%
+ \index[files]{\hypertut{#2}{\suffix{Tutorial}}\IfValueT{#3}{|#3}}%
}%
}
+%</class>
% \end{macrocode}
-% Der Befehl \cs{ChangedAt@Process@Split} teilt ein gegebenes Argument am
-% Delimiter Ausrufezeichen (\enquote{!}) in drei Argumente auf und reicht diese
-% an \cs{ChangedAt@@Process} weiter. Sollte kein oder nur Ausrufezeichen
-% gefunden werden, so wird das zweite und/oder dritte Argument mit dem~-- vom
-% Paket \pkg{xparse} definierten~-- leeren Wert \texttt{-NoValue-} an den
-% Befehl \cs{ChangedAt@@Process} übergeben.
+% Der Befehl für die Querverweise innerhalb von Tutorials.
% \begin{macrocode}
-\NewDocumentCommand\ChangedAt@Process@Split{>{\SplitArgument{3}{!}}m}{%
- \ChangedAt@@Process#1%
-}
+%<*package>
+\newcommand*\Tutorial[1]{\href{#1.pdf}{\textsbn{#1.pdf}}}
+%</package>
% \end{macrocode}
-% Hiermit wird der Eintrag in die Änderungshistorie erzeugt. Dabei ist zu
-% unterscheiden, ob der Befehl \cs{ChangedAt} direkt genutzt wurde oder aber
-% der Eintrag innerhalb der \env{Declaration}-Umgebung erfolgte. Dies wird
-% anhand des dritten Argumentes erkannt. Für den ersten Fall erfolgt ein
-% Eintrag lediglich, wenn neben der Versionsnummer selbst auch eine Erklärung
-% angegben wurde~-- eine Randnotiz wird aber in jedem Fall gesetzt. Im zweiten
-% Fall wird der Erklärung \emph{immer} \cs{ChangedAt@Default} vorangestellt.
-% Sollte keine Erklärung direkt angegeben worden sein, so wird in der
-% Änderungsliste vermerkt, dass es sich um eine \emph{neue} Option, Befehl etc.
-% handelt. Der eigentliche Eintrag selbst erfolgt mit \cs{ChangedAt@@@Process}.
+% \end{macro}^^A \hypertut
+% \end{macro}^^A \Tutorial
+% \begin{macro}{\IncludeExample}
+% \changes{v2.02}{2014/07/25}{Skalierung der eingefügten Seiten}^^A
+% Mit diesem Befehl wird eine \LaTeX-Datei ggf. übersetzt und anschließend als
+% PDF"~Datei wieder eingebunden. Zuvor wird der dazugehörige Quelltext mittels
+% \cs{lstinputlisting} im Dokument ausgegeben. Dieser Befehl wird lediglich für
+% die Klasse \cls{tudscrmanual} benötigt.
% \begin{macrocode}
-\newcommand*\ChangedAt@@Process[4]{%
- \IfValueTF{#4}{%
+%<*class>
+\newcommand*\IncludeExample[1]{%
+ \lstinputlisting[style=tudscr]{examples/#1}%
% \end{macrocode}
-% Bei der Deklaration von Optionen, Befehlen etc. werden diese automatisch in
-% der Liste der Änderungen im Bereich \enquote{Implementierung} vor der
-% gegebenen Erklärung selbst ausgegeben. Hierfür wird das dritte Argument
-% genutzt. Damit lediglich diese und nicht noch die dazugehörigen Argumente
-% eingetragen werden, werden die relevanten Befehle deaktiviert und das
-% optionale Argument in \cs{ChangedAt@Default} expandiert.
+% Die Beispiele werden nur erneut kompiliert, wenn sich diese geändert haben
+% oder noch gar kein entsprechendes PDF"~Dokument existiert.
% \begin{macrocode}
- \begingroup%
- \@gobbleparameters%
- \xdef\ChangedAt@Default{#4}%
- \endgroup%
- \ChangedAt@@@Process{#2}{#1}{\ChangedAt@Default: #3}%
- }{%
+ \ifnum\pdfshellescape=\@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%
+ }%
+ }%
+ \fi%
% \end{macrocode}
-% Wurde \cs{ChangedAt} direkt und nicht über das optionale Argument der
-% Umgebungen \env{Declaration} genutzt, erscheint der gewünschte Eintrag im
-% Bereich \enquote{Allgemein}.
+% Ist die gesuchte Datei vorhanden, wird diese auch eingebunden. Andernfalls
+% wird eine Warnung mit dem Hinweis auf die notwendige Verwednung von
+% \val{pdflatex} mit der Option \opt{--shell-escape} erzeugt.
% \begin{macrocode}
- \IfValueT{#3}{\ChangedAt@@@Process{#2}{#1}{#3}}%
+ \IfFileExists{examples/#1.pdf}{%
+ \includepdf[%
+ pages=-,noautoscale,frame,keepaspectratio,pagecommand={},%
+ height=\textheight,width=\textwidth, offset=5mm 0mm%
+ ]{examples/#1.pdf}%
+ }{%
+ \tud@shellescape@wrn{examples/#1.pdf}%
}%
-% \end{macrocode}
-% Außerdem wird der Liste \cs{changedatversionlist} die aktuelle Version
-% einmalig hinzugefügt, um alle in einer Randnotiz ausgeben zu können.
-% \begin{macrocode}
- \xifinlist{#2}{\@changedatversionlist}{}{\listeadd\@changedatversionlist{#2}}%
}
+%</class>
% \end{macrocode}
-% Mit \cs{ChangedAt@@@Process} Erfolgen die Einträge in die Änderungsliste.
+% \end{macro}^^A \IncludeExample
+%
+% \iffalse
+%<*package>
+% \fi
+%
+% \begin{macro}{\tud@tut@temp}
+% \changes{v2.05}{2016/05/01}{neu}^^A
+% \begin{macro}{\tud@tut@readtostream}
+% \changes{v2.02}{2014/12/16}{neu}^^A
+% \begin{macro}{\tud@tut@append}
+% \changes{v2.02}{2014/08/19}{neu}^^A
+% Bei den Tutorials soll zum Schluss ein komplett kompilierbares Beispiel für
+% Copy~\&~Paste gegeben werden. Um dieses zusammenzubauen, werden alle im
+% Dokument innerhalb der Varianten der \env{Trunk}-Umgebungen gegebenen
+% Codefragmente zusammengesetzt. Um die Quelltexte einlesen und verarbeiten zu
+% können, werden zwei Eingabe- sowie ein Ausgabestream benötigt, welche bereits
+% zuvor initialisiert wurden.
+%
+% Mit \cs{tud@tut@readtostream} wird der Inhalt der Datei im ersten Argument
+% in den Ausgabestream des zweiten Argumentes geschrieben. Dies wird durch
+% \cs{tud@tut@append} genutzt.
% \begin{macrocode}
-\newcommand*\ChangedAt@@@Process[3]{%
+\newcommand*\tud@tut@temp{}
+\edef\tud@tut@temp{\@currname-temp}
+\newcommand*\tud@tut@readtostream[2]{%
\begingroup%
+ \endlinechar=-1\relax%
+ \openin\tud@read=#1%
% \end{macrocode}
-% Für geänderte Parameter wird als Haupteintrag das dazugehörige Makro bzw. die
-% entsprechende Umgebung verwendet. Der geänderte Parameter folgt danach.
-% Zuerst muss ggf. das Makro \cs{ChangedAt@Default} expandiert werden.
-% \begin{macrocode}
- \def\@tempa{#3}%
- \in@{\ChangedAt@Default}{#3}%
- \ifin@%
- \expandafter\def\expandafter\@tempa\expandafter{\ChangedAt@Default}%
- \fi%
-% \end{macrocode}
-% Danach wird geprüft, ob das Makro \cs{Key} übergeben wurde. Außerdem wird ein
-% Anker in der Änderungsliste für die Referenzierung auf die einzelnen Bereiche
-% (\enquote{Allgemein}, \enquote{Implementierung} und \enquote{Ersetzungen})
-% gesetzt.
-% \begin{macrocode}
- \expandafter\in@\expandafter\Key\expandafter{\@tempa}%
- \ifin@%
- \begingroup%
- \RenewDocumentCommand\Key{sommo}{\xdef\@TempKey{##3:}}%
- \setbox0\hbox{#3}%
- \endgroup%
- \index[changelog]{%
- #1\manualhyperdef*{#1}!\manualhyperdef*{#1:#2}#2!\@TempKey\ #3%
- }%
- \else%
- \index[changelog]{%
- #1\manualhyperdef*{#1}!\manualhyperdef*{#1:#2}#2!#3%
- }%
- \fi%
- \endgroup%
-}
-% \end{macrocode}
-% \end{macro}^^A \@changedatversionlist
-% \end{macro}^^A \@changedatlist
-% \end{macro}^^A \ChangedAt@Process@Split
-% \end{macro}^^A \ChangedAt@Default
-% \end{macro}^^A \ChangedAt@@@Process
-% \end{macro}^^A \ChangedAt@@Process
-% \end{macro}^^A \ChangedAt@Process
-% \begin{macro}{\Replace}
-% \changes{v2.02}{2014/07/25}{neu}^^A
-% \changes{v2.03}{2015/02/02}{auf mehrere Einträge erweitert}^^A
-% Der Befehl \cs{Replace} erzeugt einen Eintrag in der Änderungshistorie sowie
-% einen Eintrag im gewünschten Index mit einem Verweis auf den neuen Befehl.
+% Der Schalter \cs{if@tempswa} wird verwendet, um unnötige Leerzeilen in der
+% Ausgabedatei zu entfernen. Wurde eine nicht leere Zeile gefunden, wird diese
+% auf jeden Fall geschrieben, indem \cs{@tempswatrue} gesetzt wird. Eine leere
+% Zeile wird~-- bis auf den Sonderfall, dass es sich um die letzte Zeile in der
+% Datei handelt~-- zunächst nicht weiter beachtet. Im Zweifelsfall wird diese
+% (erste) Leerzeile geschrieben.
% \begin{macrocode}
-\NewDocumentCommand\Replace{ommm}{%
+ \@tempswafalse%
+ \loop\unless\ifeof\tud@read%
+ \readline\tud@read to\tud@reserved%
+ \ifx\tud@reserved\@empty%
+ \ifeof\tud@read\@tempswafalse\fi%
+ \else%
+ \@tempswatrue%
+ \fi%
% \end{macrocode}
-% Die alten Befehle in der Liste erhalten einen Eintrag in der Änderungsnotiz.
-% Das Komma vor dem Argument in der Schleife ist notwendig, weil ansonsten das
-% Argument sofort expandiert wird.
+% Hier erfolgt das eigentliche Schreiben im selektierten Stream.
% \begin{macrocode}
- \@for\@tempa:={,#4}\do{%
- \ifx\@tempa\@empty\else%
- \protected@edef\@tempb{%
- Implementierung!#2!\emph{entf\"allt}|see{#3}!\@tempa%
- }%
- \expandafter\listadd\expandafter\@changedatdeclarelist\expandafter{%
- \@tempb%
- }%
+ \if@tempswa%
+ \immediate\write#2{\expandonce\tud@reserved}%
+ \fi%
% \end{macrocode}
-% Und ggf. der Eintrag im Index.
+% Im Nachgang wird überprüft, ob die aktuell geschriebene Zeile leer war. Ist
+% dies der Fall, so wird \cs{@tempswafalse} gesetzt, um eine etwaig folgende
+% Leerzeile nicht in die Ausgabedatei zu schrieben.
% \begin{macrocode}
- \IfValueT{#1}{\index[#1]{\@tempa|see{#3}}}%
- \fi%
- }%
+ \ifx\tud@reserved\@empty\@tempswafalse\fi%
+ \repeat%
+ \closein\tud@read%
+ \endgroup%
}
% \end{macrocode}
-% \end{macro}^^A \Replace
-% \begin{macro}{\@ProcessChangedAt}
-% \changes{v2.02}{2014/07/25}{erweitert}^^A
-% \changes{v2.02}{2014/10/08}{Sternversion ergänzt}^^A
-% Die Änderungsliste erhält ebenfalls einen Hyperlink zur Deklaration. Für
-% Umgebungs- und Befehlsparameter wird mit dem zweiten optionalen Argument ein
-% Untereintrag für die dazugehörige Umgebung beziehungsweise den dazugehörigen
-% Befehl erzeugt.
+% Der innerhalb der Umgebungen \env{Preamble} und \env{Trunk}~-- sowie deren
+% Derivaten~-- angegeben Inhalt wird beim Beenden dieser 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 Quelltextauszüge aus dem Tutorial für die
+% Präambel sowie den Dokumentteil trennen beziehungsweise sortieren zu können.
% \begin{macrocode}
-\NewDocumentCommand\@ProcessChangedAt{mmd()mmm}{%
- \begingroup%
- \let\texttt\@firstofone%
- \let\textsbn\@firstofone%
- \let\textsbs\@firstofone%
- \let\Environment\@firstofone%
- \let\Macro\@firstofone%
- \IfValueTF{#3}{\xdef\@tempa{#2:#3:#5}}{\xdef\@tempa{#2:#5}}%
- \endgroup%
- \IfBooleanTF{#1}{%
- \def\@tempb{\begingroup#4#5\endgroup}%
+\newcommand*\tud@tut@append[1]{%
+ \ifstr{#1}{preamble}{%
+ \tud@tut@readtostream{\tud@tut@temp.tex}{\tud@write@a}%
}{%
- \def\@tempb{\begingroup#4#5\endgroup~{\idxfont(#6)}}%
+ \ifstr{#1}{trunk}{%
+ \tud@tut@readtostream{\tud@tut@temp.tex}{\tud@write@b}%
+ }{%
+ \tud@tut@readtostream{\tud@tut@temp.tex}{#1}%
+ }%
}%
- \ifcsdef{r@\@tempa}{\hyperidx[\@tempa]{\@tempb}}{\@tempb}%
}
% \end{macrocode}
-% \end{macro}^^A \@ProcessChangedAt
-% \begin{macro}{\sortlist}
-% \changes{v2.02}{2014/07/25}{neu}^^A
-% \begin{macro}{\@sortlist}
-% \changes{v2.02}{2014/07/25}{neu}^^A
-% \begin{macro}{\@sortedlist}
-% \changes{v2.02}{2014/07/25}{neu}^^A
-% \begin{macro}{\if@listsorted}
-% \changes{v2.02}{2014/07/25}{neu}^^A
-% Der Befehl \cs{sortlist} erwartet eine \pkg{etoolbox}-Liste und sortiert diese
-% mit \cs{@sortlist} in alphabetischer Reihenfolge in eine kommagetrennte
-% Auflistung. Diese wird anschließend wieder in eine \pkg{etoolbox}-Liste
-% umgewandelt.
+% \end{macro}^^A \tud@tut@append
+% \end{macro}^^A \tud@tut@readtostream
+% \end{macro}^^A \tud@tut@temp
+% \begin{macro}{\StartTutorial}
+% \changes{v2.02}{2014/08/21}{neu}^^A
+% \begin{macro}{\FinishTutorial}
+% \changes{v2.02}{2014/08/21}{neu}^^A
+% Mit \cs{StartTutorial} wird ein Hyperlink für den Querverweis aus dem
+% Handbuch definiert. Außerdem wird gleich der Titel und ein einleitender Satz
+% gesetzt.
% \begin{macrocode}
-\newif\if@listsorted
-\newcommand*\@sortedlist{}
-\newcommand*\sortlist[1]{%
- \let\@sortedlist\relax%
- \forlistloop\@sortlist{#1}%
- \let#1\relax%
- \@for\@tempa:=\@sortedlist\do{\listeadd{#1}{\@tempa}}%
+\TUDoptions{headingsvskip=-10ex}
+\newcommand\StartTutorial[1][%
+ Bevor das eigentliche Tutorial beginnt, werden sowohl eine Dokumentklasse
+ als auch die f\"ur jedes \hologo{pdfLaTeX}-Dokument meiner Meinung nach
+ sinnvollen Pakete geladen.%
+]{%
+ \Hy@raisedlink{\hyperdef{\jobname}{tutorials:\jobname}{}}%
+ \faculty{}%
+ \maketitle\noindent#1%
+ \immediate\openout\tud@write@a=\tud@tut@temp-preamble.tex\relax%
+ \immediate\openout\tud@write@b=\tud@tut@temp-trunk.tex\relax%
+ \immediate\write\tud@write@b{^^J\string\begin{document}^^J}
}
% \end{macrocode}
-% Hier erfolgt die eigentliche Sortierung der Liste.
-% \begin{macrocode}
-\newcommand*\@sortlist[1]{%
-% \end{macrocode}
-% Der erste Eintrag wird direkt der Liste hinzugefügt.
-% \begin{macrocode}
- \ifx\@sortedlist\relax%
- \def\@sortedlist{#1}%
-% \end{macrocode}
-% Weitere Einräge werden mit \cs{pdfstrcmp} an der richtigen Stelle eingefügt.
-% Dabei wird die kommagetrennte Liste \cs{@sortedlist} mit \cs{@for} durchlaufen
-% und \cs{@tempb} als Hilfsmakro verwendet, in welches die aktuelle Liste
-% innerhalb der \cs{@for}-Schelife stückweise expandiert wird. Der Schalter
-% \cs{if@listsorted} wird gesetzt, wenn das aktuelle Element an der richtigen
-% Stelle eingesetzt wurde.
-% \begin{macrocode}
- \else%
- \@listsortedfalse%
- \let\@tempb\@empty%
- \@for\@tempa:=\@sortedlist\do{%
-% \end{macrocode}
-% Ist der Eintrag bereits erfolgt, wird der verbliebene Teil der Liste
-% angehängt.
+% Der Befehl \cs{FinishTutorial} schleißt den noch offenen Ausgabestream und
+% gibt den vorgestellten Quelltext vollständig aus.
% \begin{macrocode}
- \if@listsorted%
- \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,\@tempa}%
- \else%
+\newcommand\FinishTutorial[1][]{%
+ \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%
+ \tud@tut@readtostream{\tud@tut@temp-preamble.tex}{\tud@write@a}%
+ \tud@tut@readtostream{\tud@tut@temp-trunk.tex}{\tud@write@a}%
+ \immediate\closeout\tud@write@a%
+ \clearpage%
+ \addsec{Copy\nobreakspace\&\nobreakspace{}Paste}%
+ \pagestyle{empty}%
+ Zum Ende des Dokumentes wird das vorgestellte Tutorial als \"ubersetzbarer
+ Quelltext ausgegeben, um dieses via Copy~\&~Paste verwenden und alle Punkte
+ nachvollziehen zu k\"onnen. Bitte beachten Sie, dass~-- abh\"angig vom
+ genutzten PDF-Betrachter~-- beim Kopieren die dargestellten Einz\"uge und
+ Abs\"atze m\"oglicherweise verloren gehen k\"onnen. Dies kann insbesondere
+ aufgrund fehlender Leerzeilen zu einem unvorteilhaften Ausgabeergebnis
+ f\"uhren. Alternativ finden Sie den folgenden \hologo{LaTeX}-Quelltext auch
+ im Pfad \Path{\PName{texmf}/source/latex/tudscr/doc/examples/} als Datei
+ \File{\jobname-example.tex}. \par #1%
+ %
+ \begin{quoting}[rightmargin=0pt]%
+ \lstinputlisting[style=tudscr]{\jobname-example.tex}%
+ \end{quoting}%
+ %
% \end{macrocode}
-% Liegt der Eintrag in alphabetischer Reihenfolge vor dem aktuellen der
-% durchlaufenenen Liste, so wird dieser davor eingefügt. Dabei muss der Fall,
-% dass das Element der erste Eintrag in der temporären Liste \cs{@tempb} ist,
-% eine Sonderbehandlung erfolgen. Anschließend wird \cs{@listsortedtrue}
-% gesetzt.
+% Falls es möglich ist, werden nach dem Durchlauf alle nicht mehr benötigten
+% Hilfsdateien gelöscht.
% \begin{macrocode}
- \expandafter\ifnum\pdfstrcmp{#1}{\@tempa}<\z@\relax%
- \ifx\@tempb\@empty%
- \expandafter\edef\expandafter\@tempb\expandafter{%
- #1,\@tempa%
- }%
- \else%
- \expandafter\edef\expandafter\@tempb\expandafter{%
- \@tempb,#1,\@tempa%
- }%
- \fi%
- \@listsortedtrue%
- \else%
+ \ifnum\pdfshellescape=\@ne\relax%
+ \ifwindows%
+ \def\@tempa{del}%
+ \else%
+ \def\@tempa{rm}%
+ \fi%
+ \immediate\write18{\@tempa\space\tud@tut@temp*.*}%
+ \fi%
+}
% \end{macrocode}
-% Ist Eintrag in alphabetischer Reihenfolge nach dem aktuellen der geprüften
-% Liste, so wird dieser (noch) nicht eingefügt. Der Sonderfall des ersten
-% Elementes wird abgedeckt.
+% \end{macro}^^A \FinishTutorial
+% \end{macro}^^A \StartTutorial
+% \begin{macro}{\CodePreamble}
+% \changes{v2.02}{2014/08/20}{neu}^^A
+% \begin{macro}{\Code@Preamble}
+% \changes{v2.02}{2014/10/22}{neu}^^A
+% \begin{macro}{\CodeHook}
+% \changes{v2.02}{2014/10/11}{neu}^^A
+% \begin{macro}{\Code@Hook}
+% \changes{v2.02}{2014/10/11}{neu}^^A
+% Bereitstellung von Hilfsmakros für die formatierte Ausgabe von Quelltexten.
% \begin{macrocode}
- \ifx\@tempb\@empty%
- \expandafter\edef\expandafter\@tempb\expandafter{\@tempa}%
- \else%
- \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,\@tempa}%
- \fi%
- \fi%
- \fi%
- }%
+\newcommand\Code@Preamble{}
+\let\Code@Preamble\relax
+\newcommand\CodePreamble[1]{\long\gdef\Code@Preamble{#1}}
+\newcommand*\Code@Hook{}
+\let\Code@Hook\relax
+\newcommand*\CodeHook[1]{\gdef\Code@Hook{#1}}
% \end{macrocode}
-% Wurde der Eintrag nach dem Durchlaufen der Liste nicht eingefügt, so erfolgt
-% dies hier am Ende der Liste.
+% \end{macro}^^A \Code@Hook
+% \end{macro}^^A \CodeHook
+% \end{macro}^^A \Code@Preamble
+% \end{macro}^^A \CodePreamble
+% \begin{macro}{\StandaloneFile}
+% \changes{v2.02}{2014/08/19}{neu}^^A
+% \begin{macro}{\StandaloneDate}
+% \changes{v2.05}{2015/11/18}{neu}^^A
+% Die Umgebungen \env{Trunk!} und \env{Hint!} erzeugen nach der Ausgabe des
+% Quelltextes mit dem Makro \cs{tud@tut@pdf} eine PDF-Datei, welche mit
+% \cs{IncludeStandalone} in das Tutorial eingebunden werden kann.
% \begin{macrocode}
- \if@listsorted\else%
- \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,#1}%
- \fi%
+\newcommand*\StandaloneFile{}
+\let\StandaloneFile\relax
+\newcommand*\StandaloneDate{}
% \end{macrocode}
-% Die temporäre Liste \cs{@tempb} wird auf \cs{@sortedlist} überschrieben.
+% \end{macro}^^A \StandaloneDate
+% \end{macro}^^A \StandaloneFile
+% \begin{macro}{\tud@tut@pre}
+% \changes{v2.02}{2014/08/19}{neu}^^A
+% \begin{macro}{\tud@tut@post}
+% \changes{v2.02}{2014/08/19}{neu}^^A
+% Dies sind die Hilfsmakros, welche zu Beginn und Ende der Quelltextumgebungen
+% \env{Preamble}, \env{Trunk} und \env{Hint} für das Sichern der Inhalte in
+% eine Hilfsdatei verantwortlich sind, wofür die \env{filecontents}-Umgebung
+% genutzt wird.
% \begin{macrocode}
- \let\@sortedlist\@tempb%
- \fi%
+\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 \if@listsorted
-% \end{macro}^^A \@sortedlist
-% \end{macro}^^A \@sortlist
-% \end{macro}^^A \sortlist
-%
-% \iffalse
-%</class>
-%<*package>
-% \fi
-%
-% \subsection{Befehle und Umgebungen für das Paket}
-%
-% Hier taucht alles auf, was lediglich für das Paket \pkg{tudscrman} und nicht
-% für die Klasse benötigt wird.
-%
-% 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.
-%
-% Damit die Umgebungen nicht doppelt implementiert werden müssen, werden die
-% Hilfsmakros \cs{tud@tut@pre} und \cs{tud@tut@post} definiert. Diese nutzen
-% die \env{filecontents}"=Umgebung, welche den Inhalt in die temporäre Datei
-% \val{\string\jobname-temp.tex} schreibt. Zusätzlich wird dieser Inhalt mit
-% \cs{tud@tut@append} der Datei \val{\string\jobname-preamble-temp.tex} oder
-% \val{\string\jobname-trunk-temp.tex}~-- abhängig vom gegebenen Argument~--
-% hinzugefügt. So werden die im Dokumentes gesetzten Quelltextauszüge für ein
-% Copy"~\&"~Paste"~Beispiel gesammelt und mit \cs{FinishTutorial} ausgegeben.
+% \end{macro}^^A \tud@tut@post
+% \end{macro}^^A \tud@tut@pre
+% Die nachfolgenden Umgebungen nutzen die beiden Hilfsmakros \cs{tud@tut@pre}
+% und \cs{tud@tut@post}, welche den gegebenen Inhalt in die temporäre Datei
+% \file{\string\tud@tut@temp.tex} schreiben. Mit \cs{tud@tut@append} werden
+% zusätzlich~-- abhängig vom gegebenen Argument~-- die im Dokument gesetzten
+% Quelltextauszüge der Datei \file{\string\tud@tut@temp-preamble.tex} oder
+% \file{\string\tud@tut@temp-trunk.tex} hinzugefügt. Damit werden die
+% gewünschten Inhalte für ein Copy"~\&"~Paste"~Beispiel gesammelt und mit
+% \cs{FinishTutorial} ausgegeben.
% \begin{environment}{Preamble}
% \changes{v2.02}{2014/11/02}{neu}^^A
% \begin{environment}{Preamble*}
@@ -2930,28 +5029,28 @@
% \begin{macrocode}
\newenvironment{Preamble}{\tud@tut@pre}{%
\tud@tut@post%
- \tud@tut@append{\tud@write@i}%
+ \tud@tut@append{preamble}%
\gdef\@tempa{%
\tud@tut@lst%
- \global\let\@CodePreamble\relax%
+ \global\let\Code@Preamble\relax%
}%
\aftergroup\@tempa%
}
\newenvironment{Preamble*}{\tud@tut@pre}{%
\tud@tut@post%
- \tud@tut@append{\tud@write@i}%
+ \tud@tut@append{preamble}%
\gdef\@tempa{%
\tud@tut@lst%
\tud@tut@input%
- \global\let\@CodePreamble\relax%
+ \global\let\Code@Preamble\relax%
}%
\aftergroup\@tempa%
}
\newenvironment{Preamble+}{\tud@tut@pre}{%
\tud@tut@post%
- \tud@tut@append{\tud@write@i}%
+ \tud@tut@append{preamble}%
\gdef\@tempa{%
- \global\let\@CodePreamble\relax%
+ \global\let\Code@Preamble\relax%
}%
\aftergroup\@tempa%
}
@@ -2983,41 +5082,41 @@
% \begin{macrocode}
\newenvironment{Trunk}{\tud@tut@pre}{%
\tud@tut@post%
- \tud@tut@append{\tud@write@ii}%
+ \tud@tut@append{trunk}%
\gdef\@tempa{%
\tud@tut@lst%
- \global\let\@CodePreamble\relax%
+ \global\let\Code@Preamble\relax%
}%
\aftergroup\@tempa%
}
\newenvironment{Trunk*}{\tud@tut@pre}{%
\tud@tut@post%
- \tud@tut@append{\tud@write@ii}%
+ \tud@tut@append{trunk}%
\gdef\@tempa{%
\tud@tut@lst%
\tud@tut@input%
- \global\let\@CodePreamble\relax%
+ \global\let\Code@Preamble\relax%
}%
\aftergroup\@tempa%
}
\newenvironment{Trunk+}{\tud@tut@pre}{%
\tud@tut@post%
- \tud@tut@append{\tud@write@ii}%
+ \tud@tut@append{trunk}%
\gdef\@tempa{%
- \global\let\@CodePreamble\relax%
+ \global\let\Code@Preamble\relax%
}%
\aftergroup\@tempa%
}
\newenvironment{Trunk!}[1]{%
- \gdef\@StandaloneFile{#1}%
+ \gdef\StandaloneFile{#1}%
\tud@tut@pre%
}{%
\tud@tut@post%
- \tud@tut@append{\tud@write@ii}%
+ \tud@tut@append{trunk}%
\gdef\@tempa{%
\tud@tut@lst%
\tud@tut@pdf%
- \global\let\@CodePreamble\relax%
+ \global\let\Code@Preamble\relax%
}%
\aftergroup\@tempa%
}
@@ -3032,7 +5131,7 @@
% \changes{v2.02}{2014/10/13}{neu}^^A
% \begin{environment}{Hint?}
% \changes{v2.02}{2014/12/09}{neu}^^A
-% \begin{environment}{Hint!}
+% \begin{environment}{Hint{!}}
% \changes{v2.02}{2014/11/13}{neu}^^A
% Um Quelltextausschnitte zur weiterführenden Information anzugeben, wird die
% Umgebung \env{Hint} definiert. Der Inhalt wird ausgegben und~-- falls die
@@ -3046,7 +5145,7 @@
\tud@tut@post%
\gdef\@tempa{%
\tud@tut@lst%
- \global\let\@CodePreamble\relax%
+ \global\let\Code@Preamble\relax%
}%
\aftergroup\@tempa%
}
@@ -3055,7 +5154,7 @@
\gdef\@tempa{%
\tud@tut@lst%
\tud@tut@input%
- \global\let\@CodePreamble\relax%
+ \global\let\Code@Preamble\relax%
}%
\aftergroup\@tempa%
}
@@ -3064,19 +5163,19 @@
\gdef\@tempa{%
\InputCode%
\tud@tut@lst%
- \global\let\@CodePreamble\relax%
+ \global\let\Code@Preamble\relax%
}%
\aftergroup\@tempa%
}
\newenvironment{Hint!}[1]{%
- \gdef\@StandaloneFile{#1}%
+ \gdef\StandaloneFile{#1}%
\tud@tut@pre%
}{%
\tud@tut@post%
\gdef\@tempa{%
\tud@tut@lst%
\tud@tut@pdf%
- \global\let\@CodePreamble\relax%
+ \global\let\Code@Preamble\relax%
}%
\aftergroup\@tempa%
}
@@ -3085,65 +5184,19 @@
% \end{environment}^^A Hint?
% \end{environment}^^A Hint*
% \end{environment}^^A Hint
-% \begin{macro}{\@StandaloneFile}
-% \changes{v2.02}{2014/08/19}{neu}^^A
-% Die Umgebungen \env{Trunk!} und \env{Hint!} erzeugen nach der Ausgabe des
-% Quelltextes mit dem Makro \cs{tud@tut@pdf} eine PDF-Datei, welche mit
-% \cs{IncludeStandalone} in das Tutorial eingebunden werden kann.
-% \begin{macrocode}
-\newcommand*\@StandaloneFile{}
-\let\@StandaloneFile\relax
-% \end{macrocode}
-% \end{macro}^^A \@StandaloneFile
-% \begin{macro}{\tud@tut@pre}
-% \changes{v2.02}{2014/08/19}{neu}^^A
-% \begin{macro}{\tud@tut@post}
-% \changes{v2.02}{2014/08/19}{neu}^^A
-% Dies sind die Hilfsmakros, welche zu Beginn und Ende der Quelltextumgebungen
-% \env{Preamble}, \env{Trunk} und \env{Hint} für das Sichern der Inhalte in
-% eine Hilfsdatei verantwortlich zeichnen.
-% \begin{macrocode}
-\newcommand*\tud@tut@pre{%
- \ActivateWarningFilters[Tutorial]%
- \@nameuse{filecontents*}{\jobname-temp.tex}%
-}
-\newcommand*\tud@tut@post{%
- \@nameuse{endfilecontents*}%
- \DeactivateWarningFilters[Tutorial]%
-}
-% \end{macrocode}
-% \end{macro}^^A \tud@tut@post
-% \end{macro}^^A \tud@tut@pre
% \begin{macro}{\tud@tut@lst}
% \changes{v2.02}{2014/10/07}{neu}^^A
% Damit wird der Quelltext eingezogen ausgegeben.
% \begin{macrocode}
\newcommand*\tud@tut@lst{%
\begin{quoting}[rightmargin=0pt]%
- \lstinputlisting[style=tudscr]{\jobname-temp.tex}%
+ \lstinputlisting[style=tudscr]{\tud@tut@temp.tex}%
\end{quoting}%
}
% \end{macrocode}
% \end{macro}^^A \tud@tut@lst
% \begin{macro}{\tud@tut@input}
% \changes{v2.02}{2014/10/13}{neu}^^A
-% \begin{macro}{\CodePreamble}
-% \changes{v2.02}{2014/08/20}{neu}^^A
-% \begin{macro}{\@CodePreamble}
-% \changes{v2.02}{2014/10/22}{neu}^^A
-% \begin{macro}{\CodeHook}
-% \changes{v2.02}{2014/10/11}{neu}^^A
-% \begin{macro}{\@CodeHook}
-% \changes{v2.02}{2014/10/11}{neu}^^A
-% Bereitstellung von Hilfsmakros für die formatierte Ausgabe von Quelltexten.
-% \begin{macrocode}
-\newcommand\@CodePreamble{}
-\let\@CodePreamble\relax
-\newcommand\CodePreamble[1]{\long\gdef\@CodePreamble{#1}}
-\newcommand*\@CodeHook{}
-\let\@CodeHook\relax
-\newcommand*\CodeHook[1]{\gdef\@CodeHook{#1}}%
-% \end{macrocode}
% Für die Ausgabe des Quelltextergebnisses erfolgt ein linker Einzug. Außerdem
% werden unter anderem abhängig von der Verwendung eines erklärenden Textes die
% eingefügten vertikalen Abstände angepasst.
@@ -3167,64 +5220,61 @@
\setbox\@tempboxa\box\voidb@x%
\ifdim\@tempdima>\z@\relax%
\endgraf%
- \vspace{\baselineskipglue}%
+ \vspace{\medskipamount}%
\noindent\ignorespaces%
\fi%
\endgroup%
}%
% \end{macrocode}
-% Da aufgrund der Verwendung der \env{filecontents}"=Umgebung ein optionales
+% Da aufgrund der Verwendung der \env{filecontents}-Umgebung ein optionales
% Argument für alle Abwandlungen der Quelltextumgebungen nicht möglich ist,
% wird \cs{CodePreamble} bereitgestellt, womit der Ausgabe ein erläuternder
% Text vorangestellt werden kann.
% \begin{macrocode}
- \@tempa{\@CodePreamble}{}%
+ \@tempa{\Code@Preamble}{}%
\setlength\@tempdimc{\leftskip}%
\setlength\leftskip{\leftmargin}%
% \end{macrocode}
-% Durch die zweimalige Verwendung von \val{\string\jobname-temp.tex}~-- einmal
-% dirket und einmal innerhalb einer Box~-- können darin verwendete Befehle wie
+% Durch die zweimalige Verwendung von \file{\string\tud@tut@temp.tex}~-- einmal
+% direkt und einmal innerhalb einer Box~-- können darin verwendete Befehle wie
% \cs{newcommand} zu Fehler führen. Mit dem Makro \cs{CodeHook} lassen sich
-% diese Konflikte durch eine lokale Redefinition ebensoclher Befehle auflösen
+% diese Konflikte durch eine lokale Redefinition ebensolcher Befehle auflösen
% (bspw. \cs{let}\cs{newcommand}\cs{renewcommand}).
% \begin{macrocode}
\ActivateWarningFilters[Tutorial]%
- \@tempa{\input{\jobname-temp.tex}}{\@CodeHook}%
+ \@tempa{\input{\tud@tut@temp.tex}}{\Code@Hook}%
\DeactivateWarningFilters[Tutorial]%
- \global\let\@CodeHook\relax%
+ \global\let\Code@Hook\relax%
\setlength\leftskip{\@tempdimc}%
\noindent\ignorespaces%
}
% \end{macrocode}
-% \end{macro}^^A \@CodeHook
-% \end{macro}^^A \CodeHook
-% \end{macro}^^A \@CodePreamble
-% \end{macro}^^A \CodePreamble
% \end{macro}^^A \tud@tut@input
% \begin{macro}{\InputCode}
% \changes{v2.02}{2014/10/21}{neu}^^A
-% Mit \cs{InputCode} kann der Inhalt der letzen \env{Trunk}"=Umgebung
+% Mit \cs{InputCode} kann der Inhalt der letzen \env{Trunk}-Umgebung
% direkt ausgeführt werden, ohne diesen zuvor mit \cs{tud@tut@input} zu prüfen
% und zu formatieren.
% \begin{macrocode}
-\newcommand*\InputCode{\input{\jobname-temp.tex}}
+\newcommand*\InputCode{\input{\tud@tut@temp.tex}}
% \end{macrocode}
% \end{macro}^^A \InputCode
% \begin{macro}{\tud@tut@pdf}
% \changes{v2.02}{2014/10/22}{neu}^^A
-% Die Umgebung \env{Trunk!} verwendet nach der Ausgabe des Quelltextes diesen
-% abermals, um daraus eine PDF-Datei zu erzeugen. Dafür wird mithilfe einer
-% \env{filecontents}"=Umgebung eine temporäre \LaTeX-Datei erzeugt. Diese
-% bindet die mit \env{Trunk!} erzeugte Datei ein und wird anschließende via
-% \cs{write18} 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 pdf\LaTeX{} der verwendete \cs{jobname}
-% angepasst (siehe \cs{tud@tut@pdf}).
-% \begin{macrocode}
-\ifnum\pdfshellescape=\@ne\relax%
+% Die Umgebungen \env{Trunk!} und \env{hint!} verwenden nach der Ausgabe des
+% Quelltextes diesen abermals, um daraus eine PDF-Datei zu erzeugen. Dafür wird
+% mithilfe einer \env{filecontents}-Umgebung eine temporäre \LaTeX-Datei
+% 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
+% 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*}{tutorial-temp.tex}
+\begin{filecontents*}{\tud@tut@temp-standalone.tex}
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
\documentclass[english,ngerman]{tudscrreprt}
\usepackage[utf8]{inputenc}
@@ -3235,36 +5285,56 @@
\usepackage{enumitem}
\setlist{noitemsep}
\begin{document}
-\input{\jobname.tex}
+\ifdefvoid{\StandaloneDate}{}{\date{\StandaloneDate}}%
+\input{\jobname.tex}%
\end{document}
\end{filecontents*}
\DeactivateWarningFilters[Tutorial]%
\fi
% \end{macrocode}
-% Der Quelltext aus der \env{Trunk!}"=Umgebung wird~-- wie bei allen anderen
-% Derivaten der Umgebungen \env{Trunk}~-- in \val{\string\jobname-temp.tex}
-% gesichert. Beim Aufruf von pdf\LaTeX{} wird durch die Verwendung der Option
-% \opt{-jobname=\string\jobname-temp} die eigentliche Definition des Makros
-% \cs{jobname} in der aufgerufenen Datei \val{tutorial-temp.tex} überschrieben
-% und der Inhalt von \val{\string\jobname-temp.tex} wie gewünscht eingebunden
-% und kompiliert. Damit die so erstellte PDF-Datei mit \cs{IncludeStandalone}
+% Der Quelltext aus den Umgebungen \env{Trunk!} und \env{Hint!} wird~-- wie bei
+% allen anderen \env{Trunk}-Derivaten~-- in \file{\string\tud@tut@temp.tex}
+% gesichert. Beim Aufruf von \app{pdflatex} wird durch die Nutzung der Option
+% \opt{-jobname=\string\tud@tut@temp} die Definition von \cs{jobname} in der
+% 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.
+% 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\pdfshellescape=\@ne\relax%
- \immediate\write18{%
- pdflatex -jobname=\jobname-temp tutorial-temp.tex
- pdflatex -jobname=\jobname-temp tutorial-temp.tex
- pdflatex -jobname=\jobname-temp tutorial-temp.tex
+ \filemodCmp{\jobname-standalone-\StandaloneFile.pdf}{\jobname.tex}{}{%
+ \begingroup%
+ \let\printdate\@firstofone%
+ \edef\@tempa{\expandonce\@date}%
+ \def\@tempb{\today}%
+ \ifx\@tempa\@tempb\relax%
+ \def\@tempb{}%
+ \else%
+ \edef\@tempb{\etex@unexpanded{\def\StandaloneDate}{\@date}}%
+ \fi%
+ \edef\@tempa{%
+ pdflatex -jobname=\tud@tut@temp\space%
+ "\noexpand\unexpanded{\expandonce\@tempb\noexpand\input}%
+ {\tud@tut@temp-standalone.tex}"%
+ }%
+ \immediate\write18{\@tempa^^J\@tempa^^J\@tempa}%
+ \ifwindows%
+ \def\@tempa{rename}%
+ \else%
+ \def\@tempa{mv}%
+ \fi%
+ \immediate\write18{%
+ \@tempa\space\tud@tut@temp.pdf\space%
+ \jobname-standalone-\StandaloneFile.pdf%
+ }%
+ \endgroup%
}%
- \ifwindows%
- \immediate\write18{rename \jobname-temp.pdf \@StandaloneFile-temp.pdf}%
- \else%
- \immediate\write18{mv \jobname-temp.pdf \@StandaloneFile-temp.pdf}%
- \fi%
\fi%
- \global\let\@StandaloneFile\relax%
+ \global\let\StandaloneFile\relax%
}
% \end{macrocode}
% \end{macro}^^A \tud@tut@pdf
@@ -3276,7 +5346,7 @@
% Breite skaliert werden.
% \begin{macrocode}
\NewDocumentCommand\IncludeStandalone{omO{1}}{%
- \IfFileExists{#2-temp.pdf}{%
+ \IfFileExists{\jobname-standalone-#2.pdf}{%
\@tempcnta\z@%
\@for\@tempa:=#3\do{\advance\@tempcnta\@ne}%
\ifnum\@tempcnta>\z@\relax%
@@ -3290,410 +5360,508 @@
\edef\@tempb{%
keepaspectratio,page=\@tempa,width=\the\@tempdima,%
\IfValueT{#1}{#1}%
- }
- \fbox{\expandafter\includegraphics\expandafter[\@tempb]{#2-temp.pdf}}%
+ }%
+ \fbox{%
+ \expandafter\includegraphics\expandafter[\@tempb]{%
+ \jobname-standalone-#2.pdf%
+ }%
+ }%
\ifnum\@tempcnta>\z@\relax\hfill\fi%
}%
\fi%
}{%
- \tud@shellescape@wrn%
+ \tud@shellescape@wrn{\jobname-standalone-#2.pdf}%
}%
}
% \end{macrocode}
% \end{macro}^^A \IncludeStandalone
-% \begin{macro}{\StartTutorial}
-% \changes{v2.02}{2014/08/21}{neu}^^A
-% \begin{macro}{\FinishTutorial}
-% \changes{v2.02}{2014/08/21}{neu}^^A
-% Mit \cs{StartTutorial} wird ein Hyperlink für den Querverweis aus dem
-% Handbuch definiert. Außerdem wird gleich der Titel und ein einleitender Satz
-% gesetzt.
+%
+% \iffalse
+%</package>
+% \fi
+%
+% \subsection{Automatische Erstellung von \pkg{pstricks}-Grafiken}
+%
+% Falls innerhalb eines Tutorials das Paket \pkg{pstricks} verwendet wird, muss
+% dafür Sorge getragen werden, dass die automatische Kompilierung reibungslos
+% mit \pkg{auto-pst-pdf} funktioniert.
% \begin{macrocode}
-\newcommand\StartTutorial[1][%
- Bevor das eigentliche Tutorial beginnt, werden sowohl eine Dokumentklasse
- als auch die f\"ur jedes \hologo{pdfLaTeX}-Dokument meiner Meinung nach
- sinnvollen Pakete geladen.
-]{%
- \Hy@raisedlink{\hyperdef{\jobname}{tutorials:\jobname}{}}%
- \faculty{}%
- \setlength\headingsvskip{-15mm}%
- \maketitle\noindent#1%
- \immediate\openout\tud@write@i=\jobname-preamble-temp.tex\relax
- \immediate\openout\tud@write@ii=\jobname-trunk-temp.tex\relax
- \immediate\write\tud@write@ii{^^J\string\begin{document}^^J}
-}
+%<*package>
+\AfterPackage*{pstricks}{%
+ \ifnum\pdfshellescape=\@ne\relax%
+ \filemodCmp{\jobname-pics.pdf}{\jobname.tex}{%
+ \PassOptionsToPackage{off}{auto-pst-pdf}%
+ }{}%
+ \else%
+ \PassOptionsToPackage{off}{auto-pst-pdf}%
+ \fi%
+ \RequirePackage{auto-pst-pdf}[2009/04/26]%
% \end{macrocode}
-% Der Befehl \cs{FinishTutorial} schleißt den noch offenen Ausgabestream und
-% gibt den vorgestellten Quelltext vollständig aus.
+% Nach dem Paket \pkg{auto-pst-pdf} seine Arbeit verrichtet hat, werden alle
+% etwaigen temporär erzeugten Dateien radikal gelöscht.
% \begin{macrocode}
-\newcommand\FinishTutorial[1][]{%
- \immediate\write\tud@write@ii{^^J\string\end{document}^^J}
- \immediate\closeout\tud@write@ii%
- \immediate\closeout\tud@write@i%
- \tud@tut@collect%
- \clearpage%
- \addsec{Copy~\&~Paste}%
- \pagestyle{empty}%
- Zum Ende des Dokumentes wird das vorgestellte Tutorial als \"ubersetzbarer
- Quelltext ausgegeben, um dieses via Copy~\&~Paste verwenden und alle Punkte
- nachvollziehen zu k\"onnen. Bitte beachten Sie, dass~-- abh\"angig vom
- genutzten PDF-Betrachter~-- beim Kopieren die dargestellten Einz\"uge und
- Abs\"atze m\"oglicherweise verloren gehen k\"onnen. Dies kann insbesondere
- aufgrund fehlender Leerzeilen zu einem unvorteilhaften Ausgabeergebnis
- f\"uhren. Alternativ finden Sie den folgenden \hologo{LaTeX}-Quelltext auch
- im Pfad \Path{texmf/source/latex/tudscr/doc/examples/} als Datei
- \File{\jobname-example.tex}. \par #1
- \begin{quoting}[rightmargin=0pt]%
- \lstinputlisting[style=tudscr]{\jobname-example-temp.tex}%
- \end{quoting}%
+ \ifnum\pdfshellescape=\@ne\relax%
+ \edef\@tempa{\app@exe{\app@rm "*\app@suffix*"}}%
+ \@tempa%
+ \fi%
}
+%</package>
% \end{macrocode}
-% \end{macro}^^A \FinishTutorial
-% \end{macro}^^A \StartTutorial
-% \begin{macro}{\tud@tut@readtostream}
-% \changes{v2.02}{2014/12/16}{neu}^^A
-% \begin{macro}{\tud@tut@line}
-% \changes{v2.02}{2014/08/19}{neu}^^A
-% \begin{macro}{\tud@tut@append}
-% \changes{v2.02}{2014/08/19}{neu}^^A
-% \begin{macro}{\tud@tut@collect}
-% \changes{v2.02}{2014/12/16}{neu}^^A
-% Bei den Tutorials soll zum Schluss ein komplett kompilierbares Beispiel für
-% Copy~\&~Paste gegeben werden. Um dieses zusammenzubauen, werden alle im
-% Dokument innerhalb der Varianten der \env{Trunk}"=Umgebungen gegebenen
-% Codefragmente zusammengesetzt. Um die Quelltexte einlesen und verarbeiten zu
-% können, werden zwei Eingabe- sowie ein Ausgabestream benötigt, welche bereits
-% zuvor initilaisiert wurden.
%
-% Mit \cs{tud@tut@readtostream} wird der Inhalt der Datei im ersten Argument
-% in den Ausgabestream des zweiten Argumentes geschrieben. Dies wird durch die
-% Makros \cs{tud@tut@append} und \cs{tud@tut@collect} genutzt.
-% \begin{macrocode}
-\newcommand*\tud@tut@line{}
-\newcommand*\tud@tut@readtostream[2]{%
- \begingroup%
- \endlinechar=-1\relax%
- \openin\tud@read=#1%
-% \end{macrocode}
-% Der Schalter \cs{if@tempswa} wird verwendet, um unnötige Leerzeilen in der
-% Ausgabedatei zu entfernen. Wurde eine nicht leere Zeile gefunden, wird diese
-% auf jeden Fall geschrieben, indem \cs{@tempswatrue} gesetzt wird. Eine leere
-% Zeile wird~-- bis auf den Sonderfall, dass es sich um die letzte Zeile in der
-% Datei handelt~-- zunächst nicht weiter beachtet. Im Zweifelsfall wird diese
-% (erste) Leerzeile geschrieben.
-% \begin{macrocode}
- \@tempswafalse%
- \loop\unless\ifeof\tud@read%
- \readline\tud@read to\tud@tut@line%
- \ifx\tud@tut@line\@empty%
- \ifeof\tud@read\@tempswafalse\fi%
- \else%
- \@tempswatrue%
- \fi%
-% \end{macrocode}
-% Hier erfolgt das eigentliche Schreiben im selektierten Stream.
+% \subsection{ToDo-Liste}
+%
+% Für Klasse und Paket besteht die Möglichkeit, Änderungsnotizen zu nutzen,
+% wofür das Paket \pkg{todonotes} geladen wird.
% \begin{macrocode}
- \if@tempswa%
- \immediate\write#2{\unexpanded\expandafter{\tud@tut@line}}%
- \fi%
+\PassOptionsToPackage{obeyFinal}{todonotes}
% \end{macrocode}
-% Im Nachgang wird überprüft, ob die aktuell geschriebene Zeile leer war. Ist
-% dies der Fall, so wird \cs{@tempswafalse} gesetzt, um eine etwaig folgende
-% Leerzeile nicht in die Ausgabedatei zu schrieben.
+% Für den Druck wird die farbige Ausgabe der ToDo-Notizen deaktiviert.
% \begin{macrocode}
- \ifx\tud@tut@line\@empty\@tempswafalse\fi%
- \repeat%
- \closein\tud@read%
- \endgroup%
+\ifdef{\tudprintflag}{%
+ \PassOptionsToPackage{color=white}{todonotes}%
+}{%
+ \PassOptionsToPackage{colorinlistoftodos,color=HKS92!10}{todonotes}%
}
+\RequirePackage{todonotes}[2012/07/25]
% \end{macrocode}
-% Der innerhalb der Umgebungen \env{Preamble} und \env{Trunk}~-- sowie deren
-% Derivaten~-- angegeben Inhalt wird beim Beenden dieser in die Hilfsdatei
-% \cs{jobname-temp.tex} zwischengespeichert. Mit dem Befehl \cs{tud@tut@append}
-% wird der Inhalt dieser Datei ausgelesen und den zusätzlichen Hilfsdateien
-% \cs{jobname-preamble-temp.tex} beziehungsweise \cs{jobname-trunk-temp.tex}
-% angehangen und damit gesichert, um Quelltextauszüge aus dem Tutorial für die
-% Präambel sowie den Dokumentteil trennen beziehungsweise sortieren zu können.
+%
+% \iffalse
+%</body>
+%<*option>
+% \fi
+%
+% \begin{option}{ToDo}
+% \changes{v2.02}{2014/07/10}{neu}^^A
+% \changes{v2.05}{2015/10/27}{Nutzung von Positiv- und Negativ-Liste}^^A
+% \begin{macro}{\if@tud@todo}
+% \changes{v2.02}{2014/07/10}{neu}^^A
+% \begin{macro}{\tud@todo@type@pos}
+% \changes{v2.05}{2015/10/27}{neu}^^A
+% \begin{macro}{\tud@todo@type@neg}
+% \changes{v2.05}{2015/10/27}{neu}^^A
+% Diese Option ist verantwortlich für den Schalter \cs{if@tud@todo}. Über
+% diesen wird gesteuert, ob ToDo-Notizen ausgegeben werden sollen.
% \begin{macrocode}
-\newcommand*\tud@tut@append[1]{\tud@tut@readtostream{\jobname-temp.tex}{#1}}
+\newif\if@tud@todo
+\newcommand*\tud@todo@type@pos{}
+\let\tud@todo@type@pos\relax
+\newcommand*\tud@todo@type@neg{}
+\let\tud@todo@type@neg\relax
+\TUD@key{ToDo}[true]{%
+ \TUD@set@ifkey{ToDo}{@tud@todo}{#1}%
% \end{macrocode}
-% Das Makro \cs{tud@tut@collect} fügt alle Quelltexte des Tutorials, welche
-% nach Präambel und Dokumentteil sortiert wurden, in einer Datei zusammen.
-% Diese wird zum einen am Ende des Tutorials mit \cs{FinishTutorial} ausgeben,
-% zum anderen wird diese als Beispiel in den Ordner für Beispiele beim Erzeugen
-% eines Release kopiert.
+% Wird der Option ein boolescher Wert übergeben, sind sowohl die Positiv- als
+% auch die Negativ-Liste hinfällig.
% \begin{macrocode}
-\newcommand*\tud@tut@collect{%
- \immediate\openout\tud@write@ii\jobname-example-temp.tex\relax%
- \tud@tut@readtostream{\jobname-preamble-temp.tex}{\tud@write@ii}%
- \tud@tut@readtostream{\jobname-trunk-temp.tex}{\tud@write@ii}%
- \immediate\closeout\tud@write@ii
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \let\tud@todo@type@pos\relax%
+ \let\tud@todo@type@neg\relax%
+ \else%
+% \end{macrocode}
+% Wird die Option nicht mit einem booleschen Wert verwendet, so kann über diese
+% gezielt der Typ einer (nicht) auszugebenden ToDo-Notiz angegeben werden. So
+% können bestimmte Typen von Notizen entweder ausschließlich ausgegeben oder
+% aber unterdrückt werden, wobei für letztere Variante das Suffix \val{not}
+% vor dem eigentlichen Typen verwendet werden muss.
+% \begin{macrocode}
+ \def\@tempa not##1##2##3##4\@nil{%
+ \ifstr{##1##2##3}{not}{%
+ \if\relax##4\relax\else%
+ \listeadd\tud@todo@type@neg{##4}%
+ \@tud@todotrue%
+ \FamilyKeyStateProcessed%
+ \fi%
+ }{%
+ \if\relax##1\relax\else%
+ \listeadd\tud@todo@type@pos{##1##2##3##4}%
+ \@tud@todotrue%
+ \FamilyKeyStateProcessed%
+ \fi%
+ }%
+ }%
+ \edef\@tempb{not\trim@spaces{#1}}%
+ \expandafter\@tempa\@tempb\@empty\@empty\@empty\@nil%
+ \fi%
}
% \end{macrocode}
-% \end{macro}^^A \tud@tut@collect
-% \end{macro}^^A \tud@tut@append
-% \end{macro}^^A \tud@tut@line
-% \end{macro}^^A \tud@tut@readtostream
+% \end{macro}^^A \tud@todo@type@neg
+% \end{macro}^^A \tud@todo@type@pos
+% \end{macro}^^A \if@tud@todo
+% \end{option}^^A ToDo
%
% \iffalse
-%</package>
+%</option>
+%<*body>
% \fi
%
-% \subsection{Ausgabe von Index und Änderungsliste}
-%
-% Ein Index kann sowhol mit dem Paket als auch mit der Klasse erzeugt werden,
-% die Änderungsliste ist der Klasse vorbehalten.
-% \begin{macro}{\idxfont}
-% Für zusätzliche Informationen im Index nach dem eigentlichen Eintrag wird
-% eine etwas kleinere Schrift verwendet.
+% \begin{macro}{\ToDo}
+% \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
+% \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.
+% \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{}%
+% \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}{%
+ \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.
% \begin{macrocode}
-\newcommand*\idxfont{}
-\let\idxfont\footnotesize
-\robustify{\idxfont}
+ \let\@tempa\@empty%
% \end{macrocode}
-% \end{macro}^^A \idxfont
-% \begin{macro}{\PrintIndex}
-% \begin{macro}{\PrintIndexPrologue}
-% \changes{v2.02}{2014/08/20}{neu}^^A
-% \begin{macro}{\@printindexprologue}
-% \changes{v2.02}{2014/08/20}{neu}^^A
-% \begin{macro}{\@printindexskip}
-% \changes{v2.02}{2014/09/02}{neu}^^A
-% \begin{macro}{\Index}
-% \begin{macro}{\seeidx}
-% \begin{macro}{\@printindex}
-% \changes{v2.02}{2014/07/25}{neu}^^A
-% Der Befehl \cs{PrintIndex} ist die Zusammenfassung für die Ausgabe aller
-% Indexe.
+% 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 \val{v} entfernt.
% \begin{macrocode}
-\newcommand*\PrintIndex{%
- \begingroup%
-%<*class>
- \@printindex%
-%</class>
- \@printindex[options]%
- \@printindex[macros]%
-%<*class>
- \@printindex[keys]%
- \@printindex[terms]%
- \@printindex[fonts]%
- \begingroup%
- \let\lettergroup\@gobble%
- \let\indexspace\par%
- \@printindex[colors]%
- \endgroup%
-%</class>
- \@printindex[files]%
- \endgroup%
-}
+ \def\tud@todo@marginnote{ToDo}%
+ \IfValueT{#4}{%
+ \def\tud@todo@marginnote{#4}%
+ \tud@v@get\@tempc{#4}%
+% \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.
+% \begin{macrocode}
+ \ifcsdef{tud@v@\@tempc}{%
+ \ifstr{\@tempc}{\TUDScriptVersionNumber}{}{\def\@tempa{urg}}%
+ \edef\tud@todo@marginnote{v\@tempc}%
+% \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.
+% \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}%
+ }%
+ }%
% \end{macrocode}
-% Hiermit kann der einleitende Teil für den allgemeinen Index gesetzt werden.
+% Anschließend wird das eigentliche optionale Argument vorangestellt, wobei in
+% diesem ggf. auch der Kategorisierungstyp enthalten ist.
+% \begin{macrocode}
+ \IfValueT{#2}{\preto\@tempa{#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. Soll der aktuelle Typ
+% ausgegeben werden, wird der Schalter \cs{@tempswa} gesetzt.
+% \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@%
+% \end{macrocode}
+% Vor der Ausgabe wird ein kleiner vertikaler Abstand eingefügt.
% \begin{macrocode}
-%<*class>
-\newcommand*\PrintIndexPrologue[1]{\long\gdef\@printindexprologue{#1}}
-\newcommand*\@printindexprologue{}
-%</class>
+ \if@tempswa%
+ \ifhmode\par\fi%
+ \let\par\relax%
+ \vskip\medskipamount%
+ \noindent%
% \end{macrocode}
-% Durch die Verwendung der \env{multicols}"=Umgebung werden zu große vertikale
-% Abstände gesetzt. Dies wird mit diesem Befehl rückgängig gemacht.
+% 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}
-\newcommand*\@printindexskip{%
- \ifnum\imki@columns>\@ne\relax\vspace{-\multicolsep}\fi%
-}
+ \toks@\expandafter{\@tempa inline}%
+ \IfBooleanT{#1}{\addto@hook\toks@{,nolist}}%
+ \sbox\z@{%
+ \expandafter\todo\expandafter[\the\toks@]{\trim@spaces{#3}\strut}%
+ }\usebox\z@%
% \end{macrocode}
-% Der Befehl \cs{@printindex} setzt vor jedem Unterindex ein referenzierbares
-% Label und gibt diesen danach aus.
+% Es folgt die dazugehörige Randnotiz. Damit diese nicht verrutscht, wird
+% \cs{marginnote} anstelle von \cs{marginpar} verwendet. Wurde das angestellte
+% optionale Argument verwendet, wird dieses für die Randnotiz genutzt.
+% Andernfalls erscheint im Rand die Anmerkung \emph{ToDo}.
% \begin{macrocode}
-\newcommand*\@printindex[1][]{%
- \pagebreak[3]%
-%<*class>
- \ifblank{#1}{%
- \ifx\@printindexprologue\@empty%
- \indexprologue[\@printindexskip]{\manualhyperdef'{idx:main}}%
- \else%
- \indexprologue{%
- \manualhyperdef'{idx:main}%
- \@printindexprologue%
- }%
- \fi%
- \printindex\@printindexskip%
- \let\@printindexprologue\@empty%
- }{%
- \indexprologue[\@printindexskip]{\manualhyperdef'{idx:#1}}%
- \printindex[#1]\@printindexskip%
+ \renewcommand*\marginpar[2][]{%
+ \marginnote[##1]{##2}[\dimexpr-\ht\z@+1.6ex+1.75pt\relax]%
+ }%
+ \toks@\expandafter{\@tempa noline,nolist}%
+ \settowidth\marginparwidth{\tud@todo@marginnote}%
+ \addtolength\marginparwidth{\dimexpr1.6ex+1pt\relax}%
+ \expandafter\todo\expandafter[\the\toks@]{\tud@todo@marginnote\strut}%
+ \aftergroup\par\aftergroup\noindent%
+ \fi%
+ \endgroup%
+ \global\let\@currentHref\tud@currentHref%
+ }{}%
+ \ignorespaces%
}%
-%</class>
-%<*package>
- \indexprologue[\@printindexskip]{}%
- \printindex[#1]\@printindexskip%
-%</package>
+% \end{macrocode}
+% Zum Schluss wird der Befehl \cs{ListOfToDo} definiert, der die Liste der noch
+% zu erledigenden Punkte ausgibt.
+% \begin{macrocode}
+ \newcommand*\ListOfToDo{\if@tud@todo\clearpage\listoftodos\fi}%
}
% \end{macrocode}
-% Der Befehl \cs{Index} dient zum Eintragen eines Schlagwortes im allgemeinen
-% Index und verweist auf den speziellen, zum Schlagwort gehörigen Index. Das
-% optionale Argument kann verwendet werden, um ggf. den Eintrag in den
-% allgemeinen Index anders zu benennen, als den Verweis.
+% Sollte das Paket \pkg{todonotes} nicht geladen werden, erfolgt ein Definition
+% der beiden notwendigen Befehle als Dummy.
% \begin{macrocode}
-%<*class>
-\newcommand*\seeidx[2]{\pageref{idx:#1}}
-\NewDocumentCommand\Index{mom}{%
- \index{%
- #1!\textrightarrow{}\space%
- \manualhyperref{idx:#3}{Index der \IfValueTF{#2}{#2}{#1}}|seeidx{#3}%
- }%
+\TUD@UnwindPackage{todonotes}{%
+ \NewDocumentCommand\ToDo{somo}{}%
+ \newcommand*\ListOfToDo{}%
}
-%</class>
% \end{macrocode}
-% \end{macro}^^A \@printindex
-% \end{macro}^^A \seeidx
-% \end{macro}^^A \Index
-% \end{macro}^^A \@printindexskip
-% \end{macro}^^A \@printindexprologue
-% \end{macro}^^A \PrintIndexPrologue
-% \end{macro}^^A \PrintIndex
+% \end{macro}^^A \ListOfToDo
+% \end{macro}^^A \tud@todo@marginnote
+% \end{macro}^^A \tud@todo@type@color
+% \end{macro}^^A \ToDo
+%
+% \section{Verschiedenes für die Dokumentationsklassen und -pakete}
+%
+% Sowohl für die Klasse \cls{tudscrmanual} als auch \cls{tudscrdoc} werden ein
+% paar Befehle zur komfortablen verwendung im Fließtext definiert. Außerdem
+% erfolgen mittels einiger Pakete verschiedene Formateinstellungen.
+%
+% Für den Fließtext werden Pfeile u.\,ä. durch \pkg{textcomp} bereitgestellt.
+% \begin{macrocode}
+\RequirePackage{textcomp}[2005/09/27]
+% \end{macrocode}
+% Vergrößerung des Durchschusses.
+% \begin{macrocode}
+\RequirePackage{setspace}[2011/12/19]
+\setstretch{1.1}
+% \end{macrocode}
+% Sprachabhängiges Setzen von Anführungszeichen. Das Laden des Paketes darf
+% erst nach \pkg{inputenc} erfolgen.
+% \begin{macrocode}
+\AfterPackage*{inputenc}{\RequirePackage{csquotes}[2011/10/22]}
+\TUD@UnwindPackage{inputenc}{\RequirePackage{csquotes}[2011/10/22]}
+% \end{macrocode}
+% Verbesserte Zitate.
+% \begin{macrocode}
+\PassOptionsToPackage{vskip=\smallskipamount}{quoting}
+\RequirePackage{quoting}[2014/01/28]
+% \end{macrocode}
+% Automatisierte Datumsformatierung.
+% \begin{macrocode}
+\RequirePackage{isodate}[2010/01/03]
+% \end{macrocode}
+% Verschiedenste Symbole aus dem \LaTeX-Universum.
+% \begin{macrocode}
+\RequirePackage{hologo}[2012/04/26]
+% \end{macrocode}
%
% \iffalse
%<*class>
% \fi
%
-% \begin{macro}{\PrintChangelog}
-% \begin{macro}{\if@changelog}
-% \begin{macro}{\Changelog}
-% \changes{v2.02}{2014/08/20}{neu}^^A
-% \begin{macro}{\deprecatedhyperpage}
-% \changes{v2.03}{2015/02/05}{neu}^^A
-% Ähnlich wie für den Index wird auch für die Änderungsliste verfahren. Mit dem
-% Makro \cs{deprecatedhyperpage} wird die Ausgabe der Seitenzahlen unterdrückt,
-% wenn zusätzlich ein mit \cs{see} gesetzter Querverweis existiert.
-% \begin{macrocode}
-\newcommand*\deprecatedhyperpage{}
-\newif\if@changelog
-\newcommand*\PrintChangelog{%
- \begingroup%
- \let\lettergroup\@gobble%
- \@changelogtrue%
- \let\deprecatedhyperpage\hyperpage%
- \preto\item{\let\deprecatedhyperpage\hyperpage}%
- \preto\subitem{\let\deprecatedhyperpage\hyperpage}%
- \preto\subsubitem{\let\deprecatedhyperpage\hyperpage}%
- \@printindex[changelog]%
- \endgroup%
-}
-\NewDocumentCommand\Changelog{m}{%
- \index{%
- #1!\textrightarrow{}\space%
- \manualhyperref{idx:changelog}{\"Anderungsliste}|seeidx{changelog}%
- }%
+% Mit dem Paket \pkg{ragged2e} wird~-- falls benötigt~-- die Silbentrennung im
+% Flattersatz aktiviert.
+% \begin{macrocode}
+\RequirePackage{ragged2e}[2009/05/21]
+% \end{macrocode}
+% Die Fußnoten werden nicht mit jedem Kapitel zurückgesetzt.
+% \begin{macrocode}
+\RequirePackage{chngcntr}[2009/09/02]
+\counterwithout{footnote}{chapter}
+\addtokomafont{footnote}{\tud@RaggedRight}
+% \end{macrocode}
+% Das Paket wird für die Erstellung von Tabellen verwendet.
+% \begin{macrocode}
+\RequirePackage{booktabs}[2005/04/14]
+% \end{macrocode}
+% Die Formatierung von Gleitobjekten.
+% \begin{macrocode}
+\RequirePackage{caption}[2015/09/17]
+\RequirePackage{floatrow}[2008/08/02]
+\DeclareCaptionSubType[alph]{figure}
+\DeclareCaptionSubType[alph]{table}
+\captionsetup{font=sf,labelfont=bf,labelsep=space}
+\captionsetup{singlelinecheck=off,format=hang,justification=raggedright}
+\captionsetup[subfloat]{labelformat=brace,list=off}
+\KOMAoption{captions}{tableheading,figuresignature}
+\floatsetup[table]{style=plaintop}
+% \end{macrocode}
+% Erstellen von Grafiken.
+% \begin{macrocode}
+\RequirePackage{tikz}[2013/12/13]
+% \end{macrocode}
+% Einbinden von ganzseitigen PDF"~Dokumenten als Beispiel im Handbuch.
+% \begin{macrocode}
+\RequirePackage{pdfpages}[2013/08/25]
+% \end{macrocode}
+% Typographisch saubere Einheiten.
+% \begin{macrocode}
+\RequirePackage{units}[1998/08/04]
+% \end{macrocode}
+% Das Paket \pkg{ellipsis} sorgt für korrekte Auslassungpunkte.
+% \begin{macrocode}
+\AtEndPreamble{%
+ \RequirePackage{ellipsis}[2004/9/28]%
+ \let\ellipsispunctuation\relax%
}
% \end{macrocode}
-% \end{macro}^^A \deprecatedhyperpage
-% \end{macro}^^A \Changelog
-% \end{macro}^^A \if@changelog
-% \end{macro}^^A \PrintChangelog
%
% \iffalse
%</class>
+%</body>
+%</!doc>
+%<*body>
% \fi
%
-% \begin{macro}{\see}
-% \changes{v2.03}{2015/02/06}{neu}^^A
-% \begin{macro}{\seealso}
-% \changes{v2.03}{2015/02/06}{neu}^^A
-% Diese Befehle werden zum einen so definiert, dass zwischen \cs{seename} und
-% dem Argument ein geschütztes Leerzeichen verwendet wird. Die Sternversion
-% benötigt kein zweites, leeres Argument.
-% \begin{macrocode}
-\renewrobustcmd*\see[2]{%
- \ifstr{#1}{*}{\emph{\seename}~#2}{\emph{\seename}~#1}%
-% \end{macrocode}
-% Innerhalb der Klasse dient er außerdem zum etwaigen Unterdrücken von
-% Seitenzahlen in der Änderungsliste veralteter Optionen, Befehle etc.
-% \begin{macrocode}
+% \begin{macro}{\Attention}
+% \changes{v2.02}{2014/08/16}{neu}^^A
+% \begin{macro}{\Forum}
+% \begin{macro}{\CTAN}
+% \changes{v2.05}{2015/11/22}{neu}^^A
+% \begin{macro}{\GitHubRepo}
+% \changes{v2.02}{2014/08/16}{neu}^^A
+% \begin{macro}{\notudscrartcl}
+% \begin{macro}{\scrguide}
+% \changes{v2.02}{2014/09/04}{neu}^^A
+% \changes{v2.05}{2015/07/23}{Hyperlinktext über optionales Argument}^^A
+% Für die Anwenderdokumentation werden weitere Auszeichnungsbefehle definiert.
+% \begin{macrocode}
+\newcommand*\Attention[2][\z@]{%
+ \marginnote{%
+ \setlength\fboxsep{0.25em}
+ \fbox{Achtung!}%
+ }[#1]%
+ \emph{\trim@spaces{#2}}%
+}
+\NewDocumentCommand\Forum{st'}{%
+ \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}{%
+ \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}%
+ \addto@hook\toks@{{http://www.ctan.org/\IfValueT{#2}{#2}}}%
+ \addto@hook\toks@{%
+ {\tud@english{Comprehensive TeX Archive Network (CTAN\IfValueT{#3}{~#3})}}%
+ }%
+ \the\toks@\xspace%
+}
%<*class>
- \if@changelog\let\deprecatedhyperpage\@gobble\fi%
-%</class>
+\NewDocumentCommand\GitHubRepo{s}{%
+ \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}}}}%
+ \the\toks@\xspace%
+}
+\newcommand*\notudscrartcl{%
+ F\"ur die Klassen \Class{tudscrartcl} sowie \Class{tudscrposter} ist diese
+ Option nicht verf\"ugbar.%
}
-\renewrobustcmd*\seealso[2]{%
- \ifstr{#1}{*}{\emph{\alsoname}~#2}{\emph{\alsoname}~#1}%
+%</class>
+\NewDocumentCommand\scrguide{sO{\KOMAScript-Handbuch}}{%
+ \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}%
+ \addto@hook\toks@{%
+ {http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide.pdf}%
+ }%
+ \addto@hook\toks@{{#2}}%
+ \the\toks@\xspace%
}
% \end{macrocode}
-% \end{macro}^^A \seealso
-% \end{macro}^^A \see
+% \end{macro}^^A \scrguide
+% \end{macro}^^A \notudscrartcl
+% \end{macro}^^A \GitHubRepo
+% \end{macro}^^A \CTAN
+% \end{macro}^^A \Forum
+% \end{macro}^^A \Attention
%
% \iffalse
%</body>
-%</!doc>
%<*body|doc>
% \fi
%
-% \section{Verschiedenes für die Dokumentationklassen}
-%
-% \begin{macro}{\vTUDScript}
-% \begin{macro}{\vKOMAScript}
% \begin{macro}{\CD}
% \begin{macro}{\CDs}
% \begin{macro}{\TUD}
% \begin{macro}{\TnUD}
+% \begin{macro}{\TUDCD}
+% \changes{v2.05}{2015/11/01}{neu}^^A
+% \begin{macro}{\TUDCDs}
+% \changes{v2.05}{2015/11/01}{neu}^^A
% \begin{macro}{\DDC}
% Diese Befehle stellen regelmäßig in der Quelltextdokumentatuion und im
% Handbuch genutzte Textbausteine bereit. Dazu wird der Befehl \cs{xspace} aus
% dem \pkg{xspace}-Paket genutzt.
% \begin{macrocode}
-\RequirePackage{xspace}[2009/10/20]
-\xspaceaddexceptions{"=}
-% \end{macrocode}
-% Der Befehl \cs{vTUDScript} enthält die aktuelle \TUDScript"=Versionsnummer.
-% \begin{macrocode}
-\newcommand*\vTUDScript{}
-\AtBeginDocument{%
- \def\@tempb#1 #2 #3\relax#4\relax{\def\vTUDScript{#2}}%
- \edef\@tempa{\TUDVersion}%
- \expandafter\@tempb\@tempa\relax? ? \relax\relax%
-}
-\newcommand*\vKOMAScript{v3.17\xspace}
-% \end{macrocode}
-% Ganz zum Schluss noch Bugfixes für unterschiedliche Pakete.
-% \begin{macrocode}
-\RequirePackage{scrhack}[2014/02/27]
-% \end{macrocode}
-% \dots und der Rest.
-% \begin{macrocode}
-\newcommand*\CD{Corporate Design\xspace}
-\newcommand*\CDs{Corporate Designs\xspace}
+\newcommand*\CD{\tud@english{Corporate Design}\xspace}
+\newcommand*\CDs{\tud@english{Corporate Designs}\xspace}
\newcommand*\TUD{Technische Universit\"at Dresden\xspace}
\newcommand*\TnUD{Technischen Universit\"at Dresden\xspace}
-\newcommand*\DDC{%
- \mbox{D\kern.05em R\kern.05em E\kern.05em S\kern.05em D\kern.05em E\kern.05em
- N\kern.1em-\kern.1em concept}\xspace%
-}
-\AfterPackage*{babel}{%
- \@expandtwoargs\in@{,english,}{,\bbl@loaded,}%
- \ifin@%
- \renewcommand*\CD{\foreignlanguage{english}{Corporate Design}\xspace}
- \renewcommand*\CDs{\foreignlanguage{english}{Corporate Designs}\xspace}
- \fi
+\newcommand*\TUDCD{\CD der \TnUD}
+\newcommand*\TUDCDs{\CDs der \TnUD}
+%<doc>\AtBeginDocument{%
+\newrobustcmd*\DDC{%
+ \mbox{%
+ D\kern.05em R\kern.05em E\kern.05em S\kern.05em %
+ D\kern.05em E\kern.05em N\kern.1em-\kern.1em concept%
+ }\xspace%
}
+%<doc>}
% \end{macrocode}
% \end{macro}^^A \DDC
+% \end{macro}^^A \TUDCDs
+% \end{macro}^^A \TUDCD
% \end{macro}^^A \TnUD
% \end{macro}^^A \TUD
% \end{macro}^^A \CDs
% \end{macro}^^A \CD
-% \end{macro}^^A \vKOMAScript
-% \end{macro}^^A \vTUDScript
+% \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}
+% \end{macrocode}
+% \end{macro}^^A \DIN
+% \end{macro}^^A \Univers
%
% \iffalse
%</body|doc>
%<*body>
% \fi
%
-% \begin{macro}{\Univers}
-% \begin{macro}{\DIN}
-% \begin{macro}{\Attention}
-% \changes{v2.02}{2014/08/16}{neu}^^A
-% \begin{macro}{\Forum}
-% \begin{macro}{\GitHubRepo}
-% \changes{v2.02}{2014/08/16}{neu}^^A
% \begin{macro}{\textsbn}
% \changes{v2.02}{2014/08/16}{neu}^^A
% \begin{macro}{\sbnfont}
@@ -3702,76 +5870,19 @@
% \changes{v2.02}{2014/08/16}{neu}^^A
% \begin{macro}{\sbsfont}
% \changes{v2.02}{2014/08/16}{neu}^^A
-% \begin{macro}{\notudscrartcl}
-% \begin{length}{\tempdim}
-% \changes{v2.02}{2014/08/16}{neu}^^A
-% \begin{macro}{\hrfn}
-% \changes{v2.02}{2014/08/16}{neu}^^A
-% \changes{v2.04}{2015/02/18}{Schriftgröße mit \cs{scalebox}}^^A
-% \begin{macro}{\scrguide}
-% \changes{v2.02}{2014/09/04}{neu}^^A
-% Für die Anwenderdokumentation werden mehr Auszeichnungsbefehle vorgehalten.
+% Für die Anwenderdokumentation werden weitere Auszeichnungsbefehle definiert.
% \begin{macrocode}
-\newcommand*\Univers{\textubn{Univers}\xspace}
-\newcommand*\DIN{\textdbn{DIN~BOLD}\xspace}
\newcommand*\textsbn{}
-\newcommand*\sbnfont{\sffamily\bfseries\upshape}
-\DeclareTextFontCommand\textsbn{\sffamily\bfseries\upshape}
+\newrobustcmd*\sbnfont{\sffamily\bfseries\upshape}
+\DeclareTextFontCommand\textsbn{\sbnfont}
\newcommand*\textsbs{}
-\newcommand*\sbsfont{\sffamily\bfseries\slshape}
-\DeclareTextFontCommand\textsbs{\sffamily\bfseries\slshape}
-\newcommand*\Attention[1]{\marginnote{\fbox{Achtung!}}\emph{#1}}
-\NewDocumentCommand\Forum{s}{%
- \IfBooleanTF{#1}{%
- \url{http://latex.wcms-file3.tu-dresden.de/phpBB3/}%
- }{%
- \hrfn{http://latex.wcms-file3.tu-dresden.de/phpBB3/}{TUD-\LaTeX-Forum}%
- }%
- \xspace%
-}
-%<*class>
-\NewDocumentCommand\GitHubRepo{s}{%
- \def\@tempc{%
- https://github.com/tud-cd/tudscr/releases%
- }%
- \IfBooleanTF{#1}{%
- \href{\@tempc}{GitHub-Repository~\File*{tudscr}}%
- }{%
- \hrfn{\@tempc}{GitHub-Repository~\File*{tudscr}}%
- }%
- \xspace%
-}
-\newcommand*\notudscrartcl{%
- F\"ur die Klasse \Class{tudscrartcl} ist diese Einstellung nicht verf\"ugbar.
-}
-\newlength\tempdim
-%</class>
-\newcommand*\hrfn[2]{\href{#1}{#2}\footnote{\scalebox{0.97}{\url{#1}}}}
-\NewDocumentCommand\scrguide{s}{%
- \def\@tempc{%
- http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide.pdf%
- }%
- \IfBooleanTF{#1}{%
- \href{\@tempc}{\File{scrguide.pdf}}%
- }{%
- \hrfn{\@tempc}{\File{scrguide.pdf}}%
- }%
- \xspace%
-}
+\newrobustcmd*\sbsfont{\sffamily\bfseries\slshape}
+\DeclareTextFontCommand\textsbs{\sbsfont}
% \end{macrocode}
-% \end{macro}^^A \scrguide
-% \end{macro}^^A \hrfn
-% \end{length}^^A \tempdim
-% \end{macro}^^A \notudscrartcl
% \end{macro}^^A \sbsfont
% \end{macro}^^A \textsbs
% \end{macro}^^A \sbnfont
% \end{macro}^^A \textsbn
-% \end{macro}^^A \GitHubRepo
-% \end{macro}^^A \Forum
-% \end{macro}^^A \Attention
-% \end{macro}^^A \DIN
-% \end{macro}^^A \Univers
%
% \iffalse
%</body>
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-mathswap.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-mathswap.dtx
index a00f3be03ca..81311050144 100644
--- a/Master/texmf-dist/source/latex/tudscr/tudscr-mathswap.dtx
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-mathswap.dtx
@@ -18,13 +18,13 @@
%
% ----------------------------------------------------------------------------
%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
-% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
-% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
-% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
-% oder spaeter 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.
+% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
+% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
+% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
+% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
+% oder spaeter 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.
%
% ============================================================================
%
@@ -51,24 +51,26 @@
%<*driver>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\ProvidesFile{tudscr-mathswap.dtx}[%
- 2015/06/02 v2.04 TUD-KOMA-Script\space%
+ 2016/05/31 v2.05 TUD-KOMA-Script\space%
%</driver>
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{mathswap}[%
%<*driver|package>
-%!TUDVersion
+%!TUD@Version
%<package> package
(swap mathematical separators)%
]
%</driver|package>
%<*driver>
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
-\documentclass[english,ngerman]{tudscrdoc}
+\documentclass[english,ngerman,xindy]{tudscrdoc}
\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{tudscrfonts} % only load this package, if the fonts are installed
\KOMAoptions{parskip=half-}
+\usepackage{microtype}
+\usepackage{bookmark}
\CodelineIndex
\RecordChanges
\GetFileInfo{tudscr-mathswap.dtx}
@@ -81,7 +83,7 @@
%
% \selectlanguage{ngerman}
%
-% \changes{v2.02}{2014/08/18}{\pkg{mathswap} Schalter zum Aktivieren und
+% \changes{v2.02}{2014/08/18}{\pkg{mathswap}: Schalter zum Aktivieren und
% Deaktivieren der Funktionalität}^^A
%
% \section{Aktive Trennzeichen im mathematischen Satz}
@@ -91,9 +93,9 @@
% wird der Punkt als Dezimaltrennzeichen und das Komma zur Zifferngruppierung
% verwendet, im restlichen Europa wird dies genau entgegengesetzt praktiziert.
% Dieses Paket soll dazu dienen, beliebige formatierte Zahlen in ihrer Ausgabe
-% anzupassen. Dafür werden die Zeichen Punkt (\ .\ ) und Komma (\ ,\ ) als
-% aktive Zeichen im Mathematikmodus definiert.
-%
+% anzupassen. Dafür werden die Zeichen Punkt (~.~) und Komma (~,~) als aktive
+% Zeichen im Mathematikmodus definiert.
+%
% Ähnliche Funktionalitäten werden bereits durch die Pakete \pkg{icomma} und
% \pkg{ziffer} bereitgestellt. Bei \pkg{icomma} muss jedoch beim
% Verfassen des Dokumentes durch den Autor beachtet werden, ob das verwendete
@@ -105,13 +107,13 @@
% ist allerdings etwas unflexibel, was den Umgang mit den Trennzeichen
% anbelangt. Als Alternative zu diesem Paket kann außerdem \pkg{ionumbers}
% verwendet werden.
-%
+%
% Das Paket \pkg{mathswap} sorgt dafür, dass Trennzeichen direkt vor einer
% Ziffer erkannt und nach bestimmten Vorgaben ersetzt werden. Sollte sich
% jedoch zwischen Trennzeichen und Ziffer Leerraum befinden, wird dieser als
% solcher auch gesetzt.
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \StopEventually{\PrintIndex\PrintChanges\PrintToDos}
%
% \iffalse
%<*package>
@@ -130,7 +132,7 @@
% 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.
-%
+%
% Mit dem Makro \cs{dotswap} kann definiert werden, wodurch der Punkt im
% mathematischen Satz ersetzt werden soll, wenn auf diesen direkt anschließend
% eine Ziffer folgt. Da der Punkt im deutschsprachigem Raum zur Gruppierung von
@@ -251,12 +253,12 @@
% Definition aus \cs{ms@commachar} bzw. \cs{ms@dotchar} verwendet.
% \begin{macrocode}
\newcommand*\ms@token{}
-\begingroup%
- \catcode`,=\active%
- \gdef,{\futurelet\ms@token\ms@smartcomma}%
- \catcode`.=\active%
- \gdef.{\futurelet\ms@token\ms@smartdot}%
-\endgroup%
+\begingroup
+ \catcode`,=\active
+ \gdef,{\futurelet\ms@token\ms@smartcomma}
+ \catcode`.=\active
+ \gdef.{\futurelet\ms@token\ms@smartdot}
+\endgroup
\newcommand*\ms@smartcomma{\ms@ifnum{\ms@commaswap}{\ms@commachar}}
\newcommand*\ms@smartdot{\ms@ifnum{\ms@dotswap}{\ms@dotchar}}
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-misc.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-misc.dtx
index 711cb08cda5..eac483dd61f 100644
--- a/Master/texmf-dist/source/latex/tudscr/tudscr-misc.dtx
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-misc.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{106}
+% \CheckSum{907}
% \iffalse meta-comment
%
% ============================================================================
@@ -18,13 +18,13 @@
%
% ----------------------------------------------------------------------------
%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
-% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
-% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
-% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
-% oder spaeter 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.
+% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
+% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
+% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
+% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
+% oder spaeter 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.
%
% ============================================================================
%
@@ -51,15 +51,17 @@
%<*driver>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\ProvidesFile{tudscr-misc.dtx}[%
- 2015/06/12 v2.04 TUD-KOMA-Script (miscellaneous)%
+ 2016/07/20 v2.05 TUD-KOMA-Script (miscellaneous)%
]
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
-\documentclass[english,ngerman]{tudscrdoc}
+\documentclass[english,ngerman,xindy]{tudscrdoc}
\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{tudscrfonts} % only load this package, if the fonts are installed
\KOMAoptions{parskip=half-}
+\usepackage{microtype}
+\usepackage{bookmark}
\CodelineIndex
\RecordChanges
\GetFileInfo{tudscr-misc.dtx}
@@ -72,65 +74,292 @@
%
% \selectlanguage{ngerman}
%
-% \changes{v2.02}{2014/06/23}{Unterstützung für \pkg{titlepage} entfernt}^^A
-% \changes{v2.02}{2014/07/08}{Optionen nutzen \cs{FamilyKeyState}}^^A
+% \changes{v2.02}{2014/06/23}{Paket \pkg{titlepage} nicht weiter unterstützt}^^A
+% \changes{v2.02}{2014/07/08}{\cs{FamilyKeyState} wird von Optionen genutzt}^^A
+% \changes{v2.05}{2015/07/06}{Bugfix für \pkg{multicol}}^^A
%
-% \section{Verschiedenes für die Hauptklassen}
+% \section{Verschiedenes für das \TUDScript-Bundle}
%
% Alles, wofür sich eine separate Datei nicht lohnt, landet hier.
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \StopEventually{\PrintIndex\PrintChanges\PrintToDos}
%
% \iffalse
+%<*!xindy>
+% \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.
+% \ToDo{%
+% Problem bei \cs{TUDoptions} mit \cs{AtEndOfFamilyOptions} beheben
+% }[v2.06]
+% \ToDo{Überarbeiten: \cs{AtEndOfOuterFamilyOptions}}[v3.22]
+%
+% \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{Fußnoten in Überschriften}
+% \subsection{Papierformat und Schriftgröße}
%
-% \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.
+% 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{%
+% 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@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%
+\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@bookmarks
-% \end{option}^^A symbolheadings
+% \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&body>
+%<*class&execute&!inherit>
% \fi
%
-% \begin{counter}{symbolheadings}
-% \changes{v2.02}{2014/06/27}{neu}^^A
-% Dieser Zähler wird bei aktivierter Option \opt{footnotes=symbolheadings} für
-% die Symboleauswahl von Fußnoten in Überschirften inkrementiert.
+% \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}
-%<book|report>\newcounter{symbolheadings}[chapter]%
-%<article>\newcounter{symbolheadings}%
+\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{counter}^^A symbolheadings
+% \end{macro}^^A \tud@x@scr@@paper
+% \end{macro}^^A \tud@x@scr@paper
%
% \iffalse
-%</class&body>
+%</class&execute&!inherit>
%<*class&option>
% \fi
%
@@ -154,19 +383,17 @@
% \fi
%
% \begin{macro}{\tudbookmark}
-% \begin{macro}{\tud@footnote@unhyper}
-% \begin{macro}{\tud@footnote@rehyper}
-% \changes{v2.02}{2014/11/13}{entfernt}^^A
+% \begin{macro}{\tud@x@hyperref@realfootnotes}
% Die Befehle zum Eintragen der Sprungmarken. Im Dokument kann auch der Befehl
% \cs{tudbookmark} vom Anwender genutzt werden, um manuell weitere Lesezeichen
% zu erzeugen.
%
% Für die Titelseite werden~-- wie auch durch das Paket \pkg{hyperref}~-- die
-% Fußnoten mit dem Befehl \cs{tud@footnote@unhyper} auf den Originalzustand
-% zurückgesetzt.
+% Fußnoten mit dem Befehl \cs{tud@x@hyperref@realfootnotes} auf den originalen
+% Zustand zurückgesetzt.
% \begin{macrocode}
\newcommand*\tudbookmark[1][]{\@gobbletwo}
-\newcommand*\tud@footnote@unhyper{}
+\newcommand*\tud@x@hyperref@realfootnotes{}
\AfterPackage{hyperref}{%
\renewcommand*\tudbookmark[3][]{%
\relax%
@@ -175,7 +402,7 @@
\ifblank{#1}{\pdfbookmark{#2}{#3}}{\pdfbookmark[#1]{#2}{#3}}%
\fi%
}%
- \renewcommand*\tud@footnote@unhyper{%
+ \renewcommand*\tud@x@hyperref@realfootnotes{%
\let\Hy@saved@footnotemark\@footnotemark%
\let\Hy@saved@footnotetext\@footnotetext%
\let\@footnotemark\H@@footnotemark%
@@ -184,105 +411,795 @@
\pdfstringdefDisableCommands{\let\NoCaseChange\@firstofone}%
}
% \end{macrocode}
-% \end{macro}^^A \tud@footnote@rehyper
-% \end{macro}^^A \tud@footnote@unhyper
+% \end{macro}^^A \tud@x@hyperref@realfootnotes
% \end{macro}^^A \tudbookmark
-% \begin{macro}{\maketitle}
-% \begin{macro}{\tableofcontents}
-% Für den Titel und das Inhaltsverzeichnis werden Outline-Einträge erzeugt.
+% \begin{macro}{\tud@x@bookmark@startatroot}
+% \changes{v2.05}{2015/08/05}{neu}^^A
+% Wird das Paket \pkg{bookmark} geladen, können die erzeugten Outlines gezielt
+% auf der obersten Ebene erzeugt werden.
% \begin{macrocode}
-\pretocmd{\maketitle}{%
- \if@tud@bookmarks%
- \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}%
- \fi%
-%<*book|report>
- \tudbookmark[0]{\titlepagename}{title}%
-%</book|report>
-%<*article>
- \tudbookmark[1]{\titlepagename}{title}%
-%</article>
-}{}{\tud@patch@wrn{maketitle}}
-\pretocmd{\tableofcontents}{%
- \if@tud@bookmarks%
- \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}%
+\newcommand*\tud@x@bookmark@startatroot{\relax}
+\AfterPackage{bookmark}{%
+ \renewcommand*\tud@x@bookmark@startatroot{%
+ \if@tud@bookmarks\bookmarksetup{startatroot}\fi%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@x@bookmark@startatroot
+% \begin{environment}{titlepage}
+% \changes{v2.05}{2015/08/05}{neu}^^A
+% \begin{macro}{\@maketitle}
+% \changes{v2.05}{2015/08/05}{neu}^^A
+% \begin{macro}{\tud@make@titlehead}
+% \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.
+% \begin{macrocode}
+%<*book|report|article>
+\apptocmd{\titlepage}{%
+ \tud@x@bookmark@startatroot%
+ \if@tud@cover%
+ \tudbookmark[%
+%<book|report> 0%
+%<article> 1%
+ ]{\coverpagename}{cover}%
+ \else%
+ \tudbookmark[%
+%<book|report> 0%
+%<article> 1%
+ ]{\titlepagename}{title}%
\fi%
-%<*book|report>
- \tudbookmark[0]{\contentsname}{toc}%
-%</book|report>
-%<*article>
- \tudbookmark[1]{\contentsname}{toc}%
-%</article>
-}{}{\tud@patch@wrn{tableofcontents}}
+}{}{\tud@patch@wrn{titlepage}}
+%</book|report|article>
+% \end{macrocode}
+% Dies geschieht außerdem auch für die Titelköpfe.
+% \begin{macrocode}
+\pretocmd{\tud@make@titlehead}{%
+ \tud@x@bookmark@startatroot%
+ \tudbookmark[%
+%<book|report> 0%
+%<article|poster> 1%
+ ]{\titlename}{title}%
+}{}{\tud@patch@wrn{tud@make@titlehead}}
+\pretocmd{\@maketitle}{%
+ \tud@x@bookmark@startatroot%
+ \tudbookmark[%
+%<book|report> 0%
+%<article|poster> 1%
+ ]{\titlename}{title}%
+}{}{\tud@patch@wrn{@maketitle}}
% \end{macrocode}
+% \end{macro}^^A \tud@make@titlehead
+% \end{macro}^^A \@maketitle
+% \end{environment}^^A titlepage
+% \begin{macro}{\tableofcontents}
+% \begin{macro}{\listoffigures}
+% \begin{macro}{\listoftables}
+% Für die Verzeichnisse geschieht dies auch. Für das Inhaltsverzeichnis ist
+% hierfür etwas mehr Aufwand notwendig. Für dieses wird im Normalfall keine
+% PDF-Outline erzeugt. Deshalb ist hier ein wenig Trickserei notwendig, um zwar
+% einen Outline-Eintrag für das Inhaltsverzeichnis zu erzeugen, dieses dabei
+% aber nicht in sich selbst einzutragen.
+% \begin{macrocode}
+\BeforeTOCHead[toc]{%
+ \tud@x@bookmark@startatroot%
+ \let\@tempc\relax%
+ \iftocfeature{toc}{totoc}{}{%
+ \if@tud@bookmarks%
+ \setuptoc{toc}{totoc}%
+ \tud@cmd@store{addtocontents}%
+ \def\@tempc{%
+ \unsettoc{toc}{totoc}%
+ \tud@cmd@restore{addtocontents}%
+ }%
+ \let\addtocontents\@gobbletwo%
+ \fi%
+ }%
+}
+\AfterTOCHead[toc]{\@tempc}
+\BeforeTOCHead[lof]{\tud@x@bookmark@startatroot}
+\BeforeTOCHead[lot]{\tud@x@bookmark@startatroot}
+% \end{macrocode}
+% \end{macro}^^A \listoftables
+% \end{macro}^^A \listoffigures
% \end{macro}^^A \tableofcontents
-% \end{macro}^^A \maketitle
+%
+% \subsection{Bugfixing für das Paket \pkg{tocloft}}
+%
% Das Paket \pkg{tocloft} verursacht allerlei Probleme. Wird es geladen, so
% erscheint eine entsprechende Warnung.
% \begin{macrocode}
\BeforePackage{tocloft}{%
- \ClassWarning{\TUDClassName}{%
- It is not recommended to use package `tocloft'.\MessageBreak%
- Loading the package will certainly lead to problems\MessageBreak%
- with table of contents and any list of floats. You\MessageBreak%
- should use the appropriate options of KOMA-Script%
+ \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%
}%
}
% \end{macrocode}
%
% \iffalse
%</class&body>
+%<*class&option>
+% \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=symbolheadings} komplett überarbeiten}[v2.06]
+% \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%
+ \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
+% Dieser Zähler wird bei aktivierter Option \opt{footnotes=symbolheadings} für
+% die Symboleauswahl von Fußnoten in Überschirften inkrementiert.
+% \begin{macrocode}
+\AtEndOfClass{%
+%<book|report> \newcounter{symbolheadings}[chapter]
+%<article|poster> \newcounter{symbolheadings}
+}
+% \end{macrocode}
+% \end{counter}^^A symbolheadings
+%
+% \iffalse
+%</class&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{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}}}%
+}
+\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
+%
+% \iffalse
+%</body>
%<*execute>
% \fi
%
% \subsection{Durchreichen von Optionen und Standardoptionen}
%
% Durchreichen aller Klassenoptionen an die \KOMAScript-Klasse bzw. an die
-% genutzte \TUDScript-Elternklasse.
+% genutzte \TUDScript-Elternklasse. Für Klassen wird vor dem Durchreichen noch
+% geprüft, ob ein spezielles Papierformat angegeben wurde.
% \begin{macrocode}
-%<*class&!inherit>
-\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\TUDClassName@KOMA}}
-%</class&!inherit>
+%<class&!inherit>\DeclareOption*{\tud@x@scr@paper}
%<*class&inherit>
-\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\TUDClassName@Parent}}
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\TUD@Class@Parent}}
%</class&inherit>
-%<*package&fonts>
-\DeclareOption*{\KOMAoptions{\CurrentOption}}
-%</package&fonts>
-%<*package&poster>
-\DeclareOption*{\TUDoptions{\CurrentOption}}
-%</package&poster>
+%<package&fonts>\DeclareOption*{\KOMAoptions{\CurrentOption}}
+%<package&comp>\DeclareOption*{\TUDoptions{\CurrentOption}}
% \end{macrocode}
-% Es werden die Standardoptionen ausgeführt. Die Ausführung selbst wird durch
-% den Befehl \cs{TUD@noworlater} innerhalb von \cs{TUD@key} auf das Ende der
-% \KOMAScript-Klasse verzögert.
+% Es werden die Standardoptionen ausgeführt. Für die Klasse \cls{tudscrposter}
+% werden die Farben aktiviert.
% \begin{macrocode}
%<*class&!inherit>
-\TUDExecuteOptions{cd=true,cdfont=true,tudbookmarks=true}
+\TUDExecuteOptions{%
+%<book|report|article> cd=true,relspacing=true,tudbookmarks=true%
+%<poster> cd=bicolor,relspacing=true,tudbookmarks=false,cdfont=ultrabold%
+}
%</class&!inherit>
-% \end{macrocode}
-% Für das Paket \pkg{tudscrfonts} werden die Schriften aktiviert.
-% \begin{macrocode}
-%<*package&fonts>
-\TUDExecuteOptions{cdfont=true}
-%</package&fonts>
-%<*package&poster>
-\TUDExecuteOptions{cdstyle=bicolor}
-%</package&poster>
+%<*package&tutorial>
+\KOMAoptions{headings=small}
+\TUDoptions{cdfoot=true}
+\TUDExecuteOptions{ToDo=true}
+%</package&tutorial>
\TUDProcessOptions\relax
% \end{macrocode}
% Die korrespindierende \KOMAScript-Klasse bzw. \TUDScript-Elternklasse wird
% geladen.
% \begin{macrocode}
%<*class&!inherit>
-\LoadClass{\TUDClassName@KOMA}[2015/04/23]
+\LoadClass{\TUD@Class@KOMA}[2015/04/23]
%</class&!inherit>
%<*class&inherit>
-\LoadClass{\TUDClassName@Parent}
+\LoadClass{\TUD@Class@Parent}
%</class&inherit>
% \end{macrocode}
%
% \iffalse
%</execute>
+%</!xindy>
+%<*xindy>
+% \fi
+%
+% \subsection{Stildateien für \texorpdfstring{\app{texindy}}{texindy}}
+%
+% Für die Dokumentationsklassen und -pakete wird zur Sortierung \app{texindy}
+% verwendet. Da das Programm die die Dateien nicht in einem \val{TEXPATH} nach
+% den Stildateien sucht, werden diese zur Laufzeit im Arbeitsverzeichnis
+% erstellt. Nachfolgend wird die zu erstellenden \app{texindy}-Stildatei kurz
+% beschrieben.
+% \begin{macro}{\@hashchar}
+% \changes{v2.05}{2016/04/25}{neu}^^A
+% Das Hash-Zeichen.
+% \begin{macrocode}
+%<*doc>
+\catcode`\#=12
+\newcommand*\@hashchar{#}
+\catcode`\#=6
+%</doc>
+% \end{macrocode}
+% \begin{macro}{\tud@lst@def}
+% \changes{v2.05}{2016/04/25}{neu}^^A
+% \begin{macro}{\tud@lst@values}
+% \changes{v2.05}{2016/04/25}{neu}^^A
+% \begin{macro}{\if@tud@lst@multi}
+% \changes{v2.05}{2016/04/25}{neu}^^A
+% \begin{macro}{\tud@lst@init}
+% \changes{v2.05}{2016/04/25}{neu}^^A
+% \begin{macro}{\tud@lst@add}
+% \changes{v2.05}{2016/04/25}{neu}^^A
+% \begin{macro}{\tud@lst@process}
+% \changes{v2.05}{2016/04/25}{neu}^^A
+% Für die Änderungsliste in \cls{tudscrdoc} wird bei der Beschreibung von
+% Einträgen nur dann eine dritte Ebene verwendet, wenn es einem Eintrag mehrere
+% Angaben existieren. Sollte nur eine Anmerkung vorhanden sein, wird diese
+% direkt in der zweiten Ebene nach dem Eintrag selbst ausgegeben.
+% \begin{macrocode}
+%<*doc>
+\newcommand*\tud@lst@def{%
+ \newcommand*\tud@lst@values{}%
+ \newif\if@tud@lst@multi%
+ \newcommand*\tud@lst@init{%
+ \let\tud@lst@values\relax%
+ \@tud@lst@multifalse%
+ }%
+ \newcommand*\tud@lst@add[1]{%
+ \ifx\tud@lst@values\relax\else%
+ \@tud@lst@multitrue%
+ \fi%
+ \listadd\tud@lst@values{##1}%
+ }%
+ \newcommand*\tud@lst@process{%
+ \def\tud@reserved{}%
+ \if@tud@lst@multi%
+ \def\tud@reserved{\subsubitem}%
+ \efill%
+ \fi%
+ \forlistloop\tud@reserved{\tud@lst@values}%
+ }%
+}
+%</doc>
+% \end{macrocode}
+% \end{macro}^^A \tud@lst@process
+% \end{macro}^^A \tud@lst@add
+% \end{macro}^^A \tud@lst@init
+% \end{macro}^^A \if@tud@lst@multi
+% \end{macro}^^A \tud@lst@values
+% \end{macro}^^A \tud@lst@def
+% \end{macro}^^A \@hashchar
+% \begin{macro}{\tud@xdy@create}
+% \changes{v2.05}{2016/04/24}{neu}^^A
+% \begin{macro}{\tud@write@xdy}
+% \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.
+% \begin{macrocode}
+\begingroup
+%<doc>\ifdef{\tudxdyflag}{%
+\newcommand*\tud@write@xdy{}
+\newwrite\tud@write@xdy
+\newif\if@tud@xdy@glo
+\newcommand*\tud@xdy@create[2][theindex]{%
+ \IfFileExists{\@currname-#2.xdy}{}{%
+ \ifstr{#1}{theglossary}{\@tud@xdy@glotrue}{\@tud@xdy@glofalse}%
+ \openout\tud@write@xdy=\@currname-#2.xdy\relax%
+% \end{macrocode}
+% Als erstes wird Standard-\LaTeX-Modul geladen.
+% \begin{macrocode}
+ \write\tud@write@xdy{(require "texindy.xdy")}%
+% \end{macrocode}
+%
+% \subsubsection{Defintion der verwendeten Umgebung}
+%
+% Für die Klasse \cls{tudscrdoc} sind zwei sehr ähnliche Stildateien notwendig.
+% Die beiden unterschieden sich lediglich in der verwendeten Umgebung.
+% \begingroup%
+% \makeatletter%
+% \@bsphack\scan@allowedfalse\@esphack%
+% \makeatother%
+% \begin{macrocode}
+%<*doc>
+ \write\tud@write@xdy{%
+ (markup-index^^J%
+ \space\space:open^^J%
+ "\string\begin{#1}^^J%
+ \space\space%
+ \string\providecommand*\string\lettergroupDefault[1]{\@percentchar^^J%
+ \@spaces\string\par%
+ \string\centerline{\string\textbf{\string\textsf{Symbole}}}%
+ \string\par\@percentchar^^J%
+ \@spaces\string\nopagebreak\@percentchar^^J%
+ \space\space}\@percentchar^^J%
+ \space\space%
+ \string\providecommand*\string\lettergroup[1]{\@percentchar^^J%
+ \@spaces\string\par%
+ \string\centerline{\string\textbf{\string\textsf{\@hashchar1}}}%
+ \string\par\@percentchar^^J%
+ \@spaces\string\nopagebreak\@percentchar^^J%
+ \space\space}\@percentchar^^J%
+ \space\space\string\makeatletter\@percentchar^^J%
+ \space\space\string\scan@allowedfalse\@percentchar%
+ }%
+% \end{macrocode}
+% Für die Änderungsliste erfolgt die GRuppierung anhand der Versionsnummer. Da
+% diese auf der ersten Ebene angegeben ist (\cs{item}) muss das Ganze mit einem
+% terminierten Befehl erfolgen. Hierfür wird \cs{@lettergroup} definiert.
+% Außerdem werden mit \cs{tud@lst@def} die benötigten Befehle zur selektiven
+% Anzeige der Änderungseinträge definiert.
+% \begin{macrocode}
+ \if@tud@xdy@glo%
+ \write\tud@write@xdy{%
+ \space\space\string\newcommand*\string\@lettergroup{}\@percentchar^^J%
+ \space\space%
+ \string\def\string\@lettergroup\@hashchar1\string\relax%
+ {\string\lettergroup{\@hashchar1}}\@percentchar^^J%
+ \space\space\string\tud@lst@def\@percentchar%
+ }%
+ \fi%
+% \end{macrocode}
+% Der Abschluss der Umgebungsdefinition.
+% \begin{macrocode}
+ \write\tud@write@xdy{%
+ "^^J%
+ \space\space:close "\string~n\string~n\string\end{#1}\string~n"^^J%
+ \space\space:hierdepth 3^^J%
+ )%
+ }%
+%</doc>
+% \end{macrocode}
+%
+% \subsubsection{Defintion und Markup der Seitenzahlen}
+%
+% Leider lässt sich für Seitenzahlbereiche via \val{:attr} (noch) kein Markup
+% für angehängte \enquote{f.} sowie \enquote{ff.} einstellen. Diese würden
+% deshalb bei kursiven oder fetten Seitenzahlen trotzdem in normaler Schrift
+% erscheinen, weshalb auf die Auszeichnung folgender Seiten verzichtet wird.
+% \begin{macrocode}
+%^^A \write\tud@write@xdy{(require "ff-ranges.xdy")}%
+% \end{macrocode}
+% Seitenbereiche werden sofort zusammengefasst, wobei als Trennzeichen ein
+% Halbgeviertstrich verwendet wird. Für \cls{tudscrdoc} werden die Seitenzahlen
+% beim Einbinden der einzelnen \file{dtx}-Dateien mit einem alphanumerischen
+% Präfix versehen, wofür eine eigene \val{location-class} erstellt wird.
+% \begin{macrocode}
+ \write\tud@write@xdy{%
+ (define-location-class^^J%
+ \space\space"arabic-page-numbers" ("arabic-numbers")%
+ \space:min-range-length 1^^J%
+ )^^J%
+%<*doc>
+ (define-alphabet "AlphaExtended"^^J%
+ \space(^^J%
+ \space\space"A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M"^^J%
+ \space\space"N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z"^^J%
+ \space\space"a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m"^^J%
+ \space\space"n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"^^J%
+ \space\space"?"^^J%
+ \space)^^J%
+ )^^J%
+ (define-location-class^^J%
+ \space\space"part" ("AlphaExtended" :sep "-" "arabic-numbers")%
+ \space:min-range-length 1^^J%
+ )^^J%
+%</doc>
+ (markup-range :sep "--")%
+ }%
+% \end{macrocode}
+%
+% \subsubsection{Markup des Füllbereichs zwischen Eintrag und Seitenzahlen}
+%
+% Punkte zwischen Eintrag und Seitenzahl. Das schließende \cs{relax} wird für
+% die smarte Definition des Befehls \cs{cleversee} benötigt, welcher nach den
+% beiden obligatorischen Argument die nachfolgenden Seitenzahlen sucht und
+% dabei durch \cs{relax} begrenzt wird. Für die Klasse \cls{tudscrdoc} wird in
+% der Änderungsliste der Hyperlink für die Seitenzahl respektive die Codezeile
+% direkt erzeugt.
+% \begin{macrocode}
+%<*doc>
+ \if@tud@xdy@glo%
+ \write\tud@write@xdy{%
+ (markup-locclass-list%
+ \space:open "\string\pfill\string\hypersourceref{" :close "}\string\relax"%
+ )%
+ }%
+ \else%
+%</doc>
+ \write\tud@write@xdy{%
+ (markup-locclass-list%
+%<!doc> \space:open "\string\,\string\dotfill\string\,"%
+%<doc> \space:open "\string\pfill\space"%
+ \space:close "\string\relax"%
+ )%
+ }%
+%<doc> \fi%
+% \end{macrocode}
+%
+% \subsubsection{Ignorieren von bestimmten Anteilen bei der Sortierung}
+%
+% Alle Argumente in eckigen Klammern werden ignoriert. Dies wird bei einigen
+% Indexbefehlen genutzt, um die nicht beachteten RegExp-Regeln auszugleichen,
+% siehe den nächsten Absatz. In der Klasse \cls{tudscrdoc} werden außerdem ein
+% oder mehrere vorangestellte \val{@}-Zeichen ignoriert.
+% \begin{macrocode}
+ \write\tud@write@xdy{%
+ (merge-rule "\@backslashchar[(.*)\@backslashchar]" "" :eregexp)%
+%<*doc>
+ ^^J%
+ (merge-rule%
+ \space"\string^(@+)([\string^@~n]*)"%
+ \space"\string\2\string~e\string\1"%
+ \space:eregexp :again%
+ )^^J%
+ (merge-rule%
+ \space"(.*)(@@@@)([\string^@~n]*)"%
+ \space"\string\1@@@\string\3\string~e"%
+ \space:again :eregexp%
+ )^^J%
+ (merge-rule%
+ \space"(.*)(@@@)([\string^@~n]*)"%
+ \space"\string\1@@\string\3\string~e"%
+ \space:again :eregexp%
+ )^^J%
+ (merge-rule%
+ \space"(.*)(@@)([\string^@~n]*)"%
+ \space"\string\1@\string\3\string~e"%
+ \space:eregexp :again%
+ )^^J%
+ (merge-rule%
+ \space"(.*?)(@)([\string^@~n]*)"%
+ \space"\string\1\string~b\string\3"%
+ \space:eregexp :again%
+ )
+%</doc>
+ }%
+% \end{macrocode}
+% Innerhalb ausgewählter Auszeichnungs- und Textbefehle sollten die Befehle
+% selbst, nicht jedoch die Argumente verworfen werden. Leider werden die
+% manuell erstellten RegExp-Regeln durch \app{texindy} zu spät genutzt
+% (\url{http://sourceforge.net/p/xindy/bugs/22/}).
+% \begin{macrocode}
+%<*!doc>
+%^^A \write\tud@write@xdy{%
+%^^A (merge-rule "\\hologo\{(.*)\}" "/1" :eregexp)^^J%
+%^^A (merge-rule "\\texttt\{(.*)\}" "/1" :eregexp)^^J%
+%^^A (merge-rule "\\textsbn\{(.*)\}" "/1" :eregexp)^^J%
+%^^A (merge-rule "\\textsbs\{(.*)\}" "/1" :eregexp)^^J%
+%^^A }%
+%</!doc>
+% \end{macrocode}
+%
+% \subsubsection{Markup der einzelnen Einträge}
+%
+% Für die Änderungsliste werden Untereinträge bis zur fünften Ebene unterstützt.
+% \begin{macrocode}
+%<*!doc&class>
+ \write\tud@write@xdy{%
+ (markup-indexentry :open "~n \string\subsubsubitem " :depth 3)%
+ }%
+%</!doc&class>
+% \end{macrocode}
+% Für die Änderungsliste erfolgt die Gruppierung anhand der Versionsnummer. Das
+% bedeutet, das das Markup für die eigentliche \val{letter-group} unterdrückt
+% und die erste Ebene dafür verwendet wird.
+% \begin{macrocode}
+%<*doc>
+ \if@tud@xdy@glo%
+ \write\tud@write@xdy{%
+ (markup-letter-group%
+ \space:open-head "\string~n\space\space\string\@gobble{"%
+ \space:close-head "}"%
+ )^^J%
+% \end{macrocode}
+% Leider gibt es für die Eintragsebenen keine Schlüssel \val{open-head} und
+% \val{close-head}, weshalb für die Änderungsliste etwas getrickst werden muss.
+% Zwischen Einträgen der ersten Ebene soll äquivalent zu \val{letter-group}
+% etwas Abstand eingefügt werden.
+% \begin{macrocode}
+ (markup-indexentry-list%
+ \space:sep "\string~n\string~n\space\space\string\indexspace\string~n"%
+ \space:depth 0%
+ )^^J%
+% \end{macrocode}
+% Da jeder Eintrag in der Änderungsliste aus mindestens drei Ebenen besteht,
+% wird vor der ersten Ebene der Beginn des Markupbefehls gesetzt\dots
+% \begin{macrocode}
+ (markup-indexentry\@spaces\space\space%
+ :open "\string~n\space\space\string\@lettergroup\space"\space:depth 0%
+ )^^J%
+% \end{macrocode}
+% \dots und vor Beginn der zweiten Ebene mit \cs{relax} terminiert.
+% \begin{macrocode}
+ (markup-indexentry-list :open "\string\relax" :depth 1)^^J%
+% \end{macrocode}
+% Anschließend werden die zweite sowie die dritte Ebene mit \cs{item} und
+% \cs{subitem} ausgezeichnet.
+% \begin{macrocode}
+ (markup-indexentry\@spaces\space\space%
+ :open "\string~n\space\space\string\item\space" :depth 1%
+ )^^J%
+ (markup-indexentry-list :open "\string\efill" :depth 2)^^J%
+ (markup-indexentry\@spaces\space\space%
+ :open "\string~n\@spaces\string\subitem\space" :depth 2%
+ )^^J%
+% \end{macrocode}
+% Im Implemetierungsteil soll eine einzelne Änderungsnotiz für einen Eintrag
+% direkt danach ausgegeben werden. Exisitieren für diesen jedoch mehrere
+% Anmerkungen, so sollen diese in der nächsten Ebene ausgegeben werden. Da die
+% Anzahl aller Anmerkungen zu einem einzelnen Eintrag zu Beginn noch unbekannt
+% ist, werden alle dazugehörigen Änderungsnotizen zunächst mit \cs{tud@lst@add}
+% in der~-- zuvor mit dem Makro \cs{tud@lst@init} initialisierten~-- Liste
+% \cs{tud@lst@values} gesammelt und diese am Ende des jeweiligen Eintrags durch
+% \cs{tud@lst@process} ausgewertet.
+% \begin{macrocode}
+ (markup-indexentry-list^^J%
+ \space\space:open \space"\string\tud@lst@init"^^J%
+ \space\space:close "\string~n \@spaces\space\string\tud@lst@process"^^J%
+ \space\space:depth 3^^J%
+ )^^J%
+ (markup-indexentry^^J%
+ \space\space:open \space"\string~n\@spaces\space\string\tud@lst@add{"^^J%
+ \space\space:close "}"^^J%
+ \space\space:depth 3^^J%
+ )%
+ }%
+% \end{macrocode}
+% Für den Index aller Eintragstypen ist nur auf zu leere \cs{hbox} zu achten.
+% \begin{macrocode}
+ \else%
+ \write\tud@write@xdy{%
+ (markup-indexentry-list :open "\string\efill" :depth 1)%
+ }%
+ \fi%
+%</doc>
+% \end{macrocode}
+%
+% \subsubsection{Attribute für Einträge}
+%
+% Es werden die Attribute \emph{declare} mit der Abkürzung \emph{!} sowie
+% \emph{important} mit der Abkürzung \emph{?} und \emph{default} definiert,
+% welche hierarchisch gleichgestellt sind.
+%
+% \iffalse
+%<*!doc>
+% \fi
+%
+% \begin{macrocode}
+ \write\tud@write@xdy{%
+ (define-attributes (("declare" "!" "important" "?" "default")))^^J%
+% \end{macrocode}
+% Eine Alternative wäre, diese in der Hierarchie zu unterscheiden, allerdings
+% war eine Bildung von zufriedenstellenden Seitenbereichen dabei nicht möglich
+% und wurde deshalb verworfen.
+% \begin{macrocode}
+%^^A (markup-attribute-group-list :sep ", ")^^J%
+%^^A (define-attributes (("declare" "!") ("important" "?")("default")))^^J%
+% \end{macrocode}
+% Einträge, die als wichtig oder als Deklaration festgelegt wurden, könnten
+% auch für normale Indexeinträge zur Bereichsbildung verwendet werden.
+% Allerdings führt dies auch zur Erzeugung redundanter Einträge, falls es sich
+% bei den Sondereinträgen bereits um einen Seitenbereich handelt.
+% \begin{macrocode}
+%^^A (merge-to "declare" "default")^^J%
+%^^A (merge-to "!" "default")^^J%
+%^^A (merge-to "important" "default")^^J%
+%^^A (merge-to "?" "default")^^J%
+% \end{macrocode}
+% Hier erfolgt die Definition der Auszeichnugen der Attribute. Deklarationen
+% werden fett gedruckt, wichtige Einträge erscheinen kursiv. Außerdem wird ein
+% entsprechnder Link auf die Seite eingefügt.
+% \begin{macrocode}
+ (markup-locref%
+ \space:attr "declare"\space\space%
+ \space:open "\string\textbf{\string\hyperpage{"%
+ \space:close "}}"%
+ )^^J%
+ (markup-locref%
+ \space:attr "!"\@spaces\@spaces%
+ \space:open "\string\textbf{\string\hyperpage{"%
+ \space:close "}}"%
+ )^^J%
+ (markup-locref%
+ \space:attr "important"%
+ \space:open "\string\textsl{\string\hyperpage{"%
+ \space:close "}}"%
+ )^^J%
+ (markup-locref%
+ \space:attr "?"\@spaces\@spaces%
+ \space:open "\string\textsl{\string\hyperpage{"%
+ \space:close "}}"%
+ )^^J%
+ (markup-locref%
+ \space:attr "default"\space\space%
+ \space:open "\string\hyperpage{"\@spaces\@spaces%
+ \space:close "}"%
+ )%
+ }%
+% \end{macrocode}
+%
+% \iffalse
+%</!doc>
+%<*doc>
+% \fi
+%
+% Für \cls{tudscrdoc} erfolgen die Auszeichnungen für den Index im Stile von
+% \pkg{doc} mit den Attribute \emph{main} und \emph{usage}.
+% \begin{macrocode}
+ \if@tud@xdy@glo\else%
+ \write\tud@write@xdy{%
+ (define-attributes (("main" "usage" "default")))^^J%
+ (markup-locref :attr "main"%
+ \space\space:open "\string\main{"\space\space:close "}"%
+ )^^J%
+ (markup-locref :attr "usage"%
+ \space:open "\string\usage{"\space:close "}"%
+ )%
+ }%
+ \fi%
+% \end{macrocode}
+%
+% \iffalse
+%</doc>
+%<*!doc>
+% \fi
+%
+% \subsubsection{Querverweise im Index}
+%
+% Mit \val{see}\marg{Eintrag} erzeugte Querverweise im Index prüfen, ob
+% außerdem noch Seitenzahlangaben existent sind.
+% \begin{macrocode}
+ \write\tud@write@xdy{%
+ (markup-crossref-list :class "see"^^J%
+ \space\space:open "\string\cleversee{" \@spaces:sep "; " :close "}"^^J%
+ )^^J%
+ (markup-crossref-list :class "seealso"^^J%
+ \space\space:open "\string\cleverseealso{" :sep "; " :close "}"^^J%
+ )%
+ }%
+% \end{macrocode}
+%
+% \iffalse
+%<*class>
+% \fi
+%
+% Um Querverweise ohne Prüfung des Zieleintrags erzeugen zu können, wird der
+% Typ \val{seeunverified} definiert.
+% \begin{macrocode}
+ \write\tud@write@xdy{%
+ (define-crossref-class "seeunverified" :unverified)^^J%
+ (markup-crossref-list :class "seeunverified"^^J%
+ \space\space:open "\string\cleversee{" \@spaces:sep "; " :close "}"^^J%
+ )%
+ }%
+% \end{macrocode}
+% Dieser Querverweistyp wird speziell im allgemeinen Index verwendet, um auf
+% einen Spezialindex zu verweisen. Dabei dient \val{:unverified} zum
+% Unterdrücken von Warnungen durch \app{texindy} aufgrund eines fehlenden
+% Ziels für den Querverweis.
+% \begin{macrocode}
+ \write\tud@write@xdy{%
+ (define-crossref-class "seeidx" :unverified)^^J%
+ (markup-crossref-list :class "seeidx"^^J%
+ \space\space:open "\string\seeidx{"\@spaces\@spaces:sep "; "%
+ \space:close "}{}"^^J%
+ )%
+ }%
+% \end{macrocode}
+% Damit die Makros \cs{cleversee} und \cs{cleverseealso} sowie \cs{seeidx} auf
+% nachfolgende Seitenzahlen suchen können, müssen diese vor selbigen im Index
+% aufgerufen werden.
+% \begin{macrocode}
+ \write\tud@write@xdy{%
+ (define-location-class-order^^J%
+ \space\space(^^J%
+ \@spaces"see" "seealso" "seeidx" "seeunverified"^^J%
+ \@spaces"roman-page-numbers" "arabic-page-numbers" "alpha-page-numbers"^^J%
+ \@spaces"Roman-page-numbers" "Alpha-page-numbers"^^J%
+ \space\space)^^J%
+ )%
+ }%
+% \end{macrocode}
+%
+% \iffalse
+%</class>
+% \fi
+%
+% Werden mit \val{see}\marg{Eintrag!Untereintrag} gezielte Querverweise auf
+% Untereinträge im Index erstellt, so werden diese nicht standardmäßig mit
+% einem Komma sondern mit \enquote{\,\textbar\,} getrennt.
+% \begin{macrocode}
+ \write\tud@write@xdy{%
+ (markup-crossref-layer-list :class "see"%
+ \@spaces\space:sep "\string\,\string\textbar\string\,"%
+ )^^J%
+ (markup-crossref-layer-list :class "seealso"%
+ \space:sep "\string\,\string\textbar\string\,"%
+ )%
+ }%
+% \end{macrocode}
+%
+% \iffalse
+%</!doc>
+% \fi
+%
+% Damit ist die \app{texindy}-Stildatei fertig und kann mit \cs{tud@xdy@create}
+% erstellt werden.
+% \endgroup
+% \begin{macrocode}
+ \closeout\tud@write@xdy%
+ }%
+}
+\tud@xdy@create{ind}
+%<doc>\tud@xdy@create[theglossary]{gls}
+%<doc>}{}
+\endgroup
+% \end{macrocode}
+% \end{macro}^^A \if@tud@xdy@glo
+% \end{macro}^^A \tud@write@xdy
+% \end{macro}^^A \tud@xdy@create
+%
+% \iffalse
+%</xindy>
% \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 d15a516c473..38966c8eb42 100644
--- a/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{2473}
+% \CheckSum{2114}
% \iffalse meta-comment
%
% ============================================================================
@@ -18,13 +18,13 @@
%
% ----------------------------------------------------------------------------
%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
-% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
-% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
-% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
-% oder spaeter 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.
+% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
+% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
+% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
+% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
+% oder spaeter 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.
%
% ============================================================================
%
@@ -51,15 +51,17 @@
%<*driver>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\ProvidesFile{tudscr-pagestyle.dtx}[%
- 2015/07/24 v2.04a TUD-KOMA-Script (pagestyle)%
+ 2016/07/21 v2.05 TUD-KOMA-Script (pagestyle)%
]
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
-\documentclass[english,ngerman]{tudscrdoc}
+\documentclass[english,ngerman,xindy]{tudscrdoc}
\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{tudscrfonts} % only load this package, if the fonts are installed
\KOMAoptions{parskip=half-}
+\usepackage{microtype}
+\usepackage{bookmark}
\CodelineIndex
\RecordChanges
\GetFileInfo{tudscr-pagestyle.dtx}
@@ -72,318 +74,51 @@
%
% \selectlanguage{ngerman}
%
-% \changes{v2.02}{2014/06/23}{Unterstützung für \pkg{titlepage} entfernt}^^A
-% \changes{v2.02}{2014/07/08}{Optionen nutzen \cs{FamilyKeyState}}^^A
+% \changes{v2.02}{2014/06/23}{Paket \pkg{titlepage} nicht weiter unterstützt}^^A
+% \changes{v2.02}{2014/07/08}{\cs{FamilyKeyState} wird von Optionen genutzt}^^A
+% \changes{v2.05}{2015/07/06}{Seitenstil für Poster}^^A
%
% \section{Der Seitenstil des \CDs}
%
-% Das \CD verlangt (eigentlich) einen fest vorgegebenen Satzspiegel. Für das
-% Setzen längerer wissenschaftlicher Abhandlungen ist dieser jedoch alles
-% 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.
-%
-% \StopEventually{\PrintIndex\PrintChanges}
-%
-% \subsection{Definition der konstanten Größen und Maße}
-%
-% Die Vorlagen sollen neben den vom \CD vorgegebenen Seitenrändern weitere
-% Layouts ermöglichen und u.\,a. auch die Nutzung des Paketes \pkg{typearea}
-% erlauben. Damit ein einheitliches Verfahren zur Wahl bzw. Umschaltung des
-% Satzspiegels genutzt werden kann, wird das Paket \pkg{geometry} genutzt.
-% Dabei werden entweder die gewünschten Maße der Seitenränder direkt gewählt
-% oder aber die mit \pkg{typearea} berechneten Maße an \pkg{geometry}
-% durchgereicht.
+% Es wird der Seitenstil des \CD der \TnUD mit Logo und dem charakteristischen
+% Querbalken im Kopfbereich mithilfe des Paketes \pkg{scrlayer-scrpage}
+% definiert.
+% \ToDo{Abhängigkeiten zwischen Satzspiegel und Seitenstilen beseitigen}[v2.07]
%
-% Als erstes werden die Standardmaße für die Seitenränder im \CD definiert,
-% danach speziell für die \env{tudpage}"=Umgebung.
+% \StopEventually{\PrintIndex\PrintChanges\PrintToDos}
%
% \iffalse
%<*class&body>
% \fi
%
-% \begin{length}{\tud@dim@widemargin}
-% \begin{length}{\tud@dim@slimmargin}
-% \begin{length}{\tud@dim@both}
-% Die Seitenränder für links und rechts sowie deren Summe, welche später für
-% weitere Layouts dazu verwendet wird, diese anteilig zu verteilen.
-% \begin{macrocode}
-\newlength\tud@dim@widemargin
-\newlength\tud@dim@slimmargin
-\newlength\tud@dim@both
-% \end{macrocode}
-% \end{length}^^A \tud@dim@both
-% \end{length}^^A \tud@dim@slimmargin
-% \end{length}^^A \tud@dim@widemargin
-% \begin{length}{\tud@dim@top}
-% \changes{v2.02}{2015/01/09}{entfernt}^^A
-% \begin{length}{\tud@dim@bottom}
-% \changes{v2.02}{2015/01/09}{entfernt}^^A
-% \begin{length}{\tud@dim@footskip}
-% \changes{v2.02}{2015/01/09}{entfernt}^^A
-% Die Befehle wurden mit der \TUDScript-Version~v2.03 allesamt entfernt, da
-% diese redundant waren und implizit durch andere, bereits für das \CD
-% definierte Längen dargestellt werden können.
-% \end{length}^^A \tud@dim@footskip
-% \end{length}^^A \tud@dim@bottom
-% \end{length}^^A \tud@dim@top
-% \begin{length}{\tud@dim@topmargin}
-% \begin{length}{\tud@dim@barheight}
-% \begin{length}{\tud@dim@headsep}
-% \begin{length}{\tud@dim@footsep}
-% Es folgen die speziellen Maße für die Seiten mit dem TUD-Kopf, also die Höhe
-% oberhalb des Querbalkens, die Höhe des Querbalkens selbst sowie der vertikale
-% (Mindest"~)Abstand zwischen Querbalken und Textkörper sowie der Fußzeile.
-% \begin{macrocode}
-\newlength\tud@dim@topmargin
-\newlength\tud@dim@barheight
-\newlength\tud@dim@headsep
-\newlength\tud@dim@footsep
-% \end{macrocode}
-% \end{length}^^A \tud@dim@footsep
-% \end{length}^^A \tud@dim@headsep
-% \end{length}^^A \tud@dim@barheight
-% \end{length}^^A \tud@dim@topmargin
-% \begin{length}{\tud@dim@logox}
-% \begin{length}{\tud@dim@logoy}
-% \begin{length}{\tud@dim@logowidth}
-% \begin{length}{\tud@dim@logoheight}
-% \changes{v2.03}{2015/01/13}{entfernt}^^A
-% Außerdem müssen noch die Abmessungen und die Position des TUD-Logos definiert
-% werden, nämlich der horizontale (Soll"~)Abstand zwischen linkem Seitenrand
-% und Logo, der vertikale (Soll"~)Abstand zwischen oberem Seitenrand und Logo
-% sowie die Breite und Höhe\footnote{Proportionen sind durch die Grafik
-% vorgegeben} des Logos.
-% \begin{macrocode}
-\newlength\tud@dim@logox
-\newlength\tud@dim@logoy
-\newlength\tud@dim@logowidth
-% \end{macrocode}
-% \end{length}^^A \tud@dim@logoheight
-% \end{length}^^A \tud@dim@logowidth
-% \end{length}^^A \tud@dim@logoy
-% \end{length}^^A \tud@dim@logox
-% \begin{length}{\tud@dim@line}
-% \changes{v2.02}{2014/06/23}{neu}^^A
-% \begin{length}{\tud@dim@heavyline}
-% \begin{length}{\tud@dim@thinline}
-% Die Linienstärke der Outline im Kopf ist für ein monochromes Layout schmaler
-% als im Layout mit farbigem Hintergrund.\footnote{%
-% monochrom \cs{tud@dim@thinline}, koloriert \cs{tud@dim@heavyline}}%
-% Da im Dokument beide Varianten vorkommen können, wird die Breite
-% \cs{tud@dim@line} durch den Seitenstil situativ entweder auf den Wert von
-% \cs{tud@dim@thinline} oder aber \cs{tud@dim@heavyline} gesetzt.
-% \begin{macrocode}
-\newlength\tud@dim@line
-\newlength\tud@dim@heavyline
-\newlength\tud@dim@thinline
-% \end{macrocode}
-% \end{length}^^A \tud@dim@thinline
-% \end{length}^^A \tud@dim@heavyline
-% \end{length}^^A \tud@dim@line
-% \begin{length}{\tud@dim@headdiff}
-% \begin{length}{\tud@dim@headingsvskip}
-% \changes{v2.02}{2014/06/23}{neu}^^A
-% Die Längen für den vertikalen Standardversatz der Überschriften sowie die
-% Differenz der Kopfhöhen von normalem Satzspiegel und dem mit dem TUD-Kopf.
-% \begin{macrocode}
-\newlength\tud@dim@headdiff
-\newlength\tud@dim@headingsvskip
-% \end{macrocode}
-% \end{length}^^A \tud@dim@headdiff
-% \end{length}^^A \tud@dim@headingsvskip
-% \begin{length}{\tud@dim@ddcdiff}
-% \changes{v2.02}{2014/06/23}{neu}^^A
-% Zu guter Letzt noch die Länge \cs{tud@dim@ddcdiff} für den Höhenausgleich des
-% Seitenfußes, welcher bei der Verwendung des \DDC-Logos in der Fußzeile bei
-% Version~v2.02 für den Satzspiegel notwendig war. Dieser etwas verschrobene
-% Satzspiegel wird im Kompatibilitätsmodus weiterhin angeboten.
-% \begin{macrocode}
-\tud@ifverlower{2.03}{\newlength\tud@dim@ddcdiff}{}
-% \end{macrocode}
-% \end{length}^^A \tud@dim@ddcdiff
-% \begin{macro}{\tud@geometry@set}
-% \changes{v2.03}{2015/01/23}{Längenberechnung für den Satzspiegel an
-% Referenzlänge \cs{tud@dim@widemargin} gekoppelt}^^A
-% \begin{macro}{\tud@head@font@size}
-% Hiermit werden in Abhängigkeit der gewählten Papiergröße die Maße für die
-% Größe der Kopfzeile, die Position des Logos, die Seitenränder sowie die
-% Schriftgröße in der Kopfzeile definiert. Aufgerufen wird der Befehl durch
-% \cs{tud@geometry@process}. Dabei fungiert \cs{tud@dim@widemargin} als
-% Bezugslänge. Die maßgebliche Papiergröße ist DIN~A4. Die Längen für alle
-% anderen Papiermaße unterscheiden sich um den Faktor~$\sqrt{2}$, wobei das
-% Format DIN~A5 nach den Vorgaben des \CDs übersprungen wird.
-% \begin{macrocode}
-\newcommand*\tud@head@font@size{}
-\newcommand*\tud@geometry@set{%
- \ifdim\paperheight<148.1mm\relax%
- \setlength\tud@dim@widemargin{15mm}%
- \setlength\tud@dim@heavyline{0.5pt}%
- \setlength\tud@dim@thinline{0.25pt}%
- \def\tud@head@font@size{4.5}%
- \else\ifdim\paperheight<297.1mm\relax%
- \setlength\tud@dim@widemargin{30mm}%
- \setlength\tud@dim@heavyline{1pt}%
- \setlength\tud@dim@thinline{0.5pt}%
- \def\tud@head@font@size{9}%
- \else\ifdim\paperheight<420.1mm\relax%
- \setlength\tud@dim@widemargin{42.426407mm}%
- \setlength\tud@dim@heavyline{1.414214pt}%
- \setlength\tud@dim@thinline{0.707107pt}%
- \def\tud@head@font@size{12.727922}%
- \else\ifdim\paperheight<594.1mm\relax%
- \setlength\tud@dim@widemargin{60mm}%
- \setlength\tud@dim@heavyline{2pt}%
- \setlength\tud@dim@thinline{1pt}%
- \def\tud@head@font@size{18}%
- \else\ifdim\paperheight<841.1mm\relax%
- \setlength\tud@dim@widemargin{84.852814mm}%
- \setlength\tud@dim@heavyline{2.828427pt}%
- \setlength\tud@dim@thinline{1.414214pt}%
- \def\tud@head@font@size{25.455844}%
- \else%
- \setlength\tud@dim@widemargin{120mm}%
- \setlength\tud@dim@heavyline{4pt}%
- \setlength\tud@dim@thinline{2pt}%
- \def\tud@head@font@size{36}%
- \fi\fi\fi\fi\fi%
-% \end{macrocode}
-% Zum Schluss werden die restlichen Längen aus der Referenzlänge berechnet.
-% \begin{macrocode}
- \setlength\tud@dim@slimmargin{\dimexpr2\tud@dim@widemargin/3\relax}%
- \setlength\tud@dim@both{\dimexpr5\tud@dim@widemargin/3\relax}%
- \setlength\tud@dim@topmargin{\dimexpr7\tud@dim@widemargin/6\relax}%
- \setlength\tud@dim@barheight{\dimexpr\tud@dim@widemargin/6\relax}%
- \setlength\tud@dim@headsep{\dimexpr2\tud@dim@widemargin/5\relax}%
- \setlength\tud@dim@logox{\dimexpr1.1\tud@dim@widemargin/3\relax}%
- \setlength\tud@dim@logoy{\dimexpr0.45\tud@dim@widemargin\relax}%
- \setlength\tud@dim@logowidth{\dimexpr1.9\tud@dim@widemargin\relax}%
- \setlength\tud@dim@footsep{%
- \dimexpr\tud@dim@widemargin-.6\tud@dim@topmargin\relax%
- }%
-}
-% \end{macrocode}
-% \end{macro}^^A \tud@head@font@size
-% \end{macro}^^A \tud@geometry@set
-%
-% \subsection{Unterstützung der \cls{standalone}-Klasse}
-%
-% \changes{v2.02}{2014/07/25}{Unterstützung der \cls{standalone}-Klasse}^^A
-%
-% Mit der Klasse~\cls{standalone} können insbesondere Grafiken als separate
-% Dateien erzeugt und später im Dokument eingebunden werden. Diese Klasse
-% ändert allerhand an den Einstellungen der Seitenränder. Damit sich diese bei
-% der Verwendung mit den \TUDScript-Klassen nicht in die Quere kommen, müssen
-% für einige Einstellungen unterdrückt werden.
-%
-% \begin{macro}{\tud@ifsacrop}
-% \changes{v2.02}{2014/09/08}{neu}^^A
-% Mit diesem Makro kann die Verwendung der Option \opt{crop} mit der Klasse
-% \cls{standalone} geprüft werden. Das erste Argument wird ausgeführt, wenn
-% die Klasse geladen und die Option aktiv ist. Das zweite Argument wird
-% ausgeführt, wenn entweder die Option \opt{crop} deaktiviert ist oder die
-% Klasse \cls{standalone} gar nicht geladen wurde.
-% \begin{macrocode}
-\newcommand*\tud@ifsacrop{%
- \ifcsdef{ifsa@crop}{%
- \ifbool{sa@crop}{\@firstoftwo}{\@secondoftwo}%
- }{%
- \@secondoftwo%
- }%
-}
-% \end{macrocode}
-% \end{macro}^^A \tud@ifsacrop
-%
% \subsection{Definition des Seitenstils mittels \pkg{scrlayer-scrpage}}
%
% Ein zentraler Bestandteil der Vorlagen ist der Seitenkopf des \CDs. Dieser
% wird ab der Version~v2.02 mit Hilfe des Paketes \pkg{scrlayer-scrpage}
-% erstellt. Dafür werden einzelnene Seitenstile erstellt, welche zum einen von
+% erzeugt. Dafür werden einzelnene Seitenstile erstellt, welche zum einen von
% verschiedenen Befehlen wie beispielsweise von\cs{maketitle} oder \cs{part}
% bzw. \cs{addpart} genutzt werden. Zum anderen kann der Anwender selbst diese
% entweder direkt über die Wahl des Seitenstils oder aber mit der
-% \env{tudpage}"=Umgebung nutzen.
+% \env{tudpage}-Umgebung nutzen.
%
% Ist die Klasse \cls{standalone} zusammen mit der Option \opt{crop} aktiv,
% werden die Seitenränder auf die Einstellungen dieser Klasse gesetzt und das
% Laden von \pkg{scrlayer-scrpage} verhindert.
% \begin{macrocode}
-\tud@ifsacrop{%
+\if@tud@x@standalone@crop
\PreventPackageFromLoading{scrlayer-scrpage}%
- \pagestyle{empty}%
- \hoffset=-72.27pt%
- \voffset=-72.27pt%
- \topmargin=0pt%
- \headheight=0pt%
- \headsep=0pt%
- \marginparsep=0pt%
- \marginparwidth=0pt%
- \footskip=0pt%
- \marginparpush=0pt%
- \oddsidemargin=0pt%
- \evensidemargin=0pt%
- \topskip=0pt%
- \textheight=\maxdimen%
-}{%
+\else
\AtEndPreamble{\RequirePackage{scrlayer-scrpage}[2013/12/14]}%
-}
-% \end{macrocode}
-% \begin{macro}{\ps@tudheadings}
-% \begin{macro}{\ps@plain.tudheadings}
-% \begin{macro}{\ps@empty.tudheadings}
-% \begin{macro}{\currentpagestyle}
-% \begin{macro}{\BeforeSelectAnyPageStyle}
-% \begin{macro}{\GetRealPageStyle}
-% Um die rudimentäre Verwendung der Klassen auch zu ermöglichen, wenn das Paket
-% \pkg{scrlayer-scrpage} nicht geladen wurde, werden einige notwendige Makros
-% definiert und vor dem Laden des Paketes wieder als \cs{undefined} gesetzt.
-% \begin{macrocode}
-\tud@cmd@store{pagestyle}
-\cslet{ps@tudheadings}{\ps@headings}%
-\cslet{ps@plain.tudheadings}{\ps@plain}%
-\cslet{ps@empty.tudheadings}{\ps@empty}%
-\providecommand*\currentpagestyle{plain}
-\providecommand*\BeforeSelectAnyPageStyle[1]{}
-\providecommand*\GetRealPageStyle[1]{#1}
-\BeforePackage{scrlayer-scrpage}{%
- \tud@cmd@restore{pagestyle}%
- \csundef{ps@tudheadings}%
- \csundef{ps@plain.tudheadings}%
- \csundef{ps@empty.tudheadings}%
- \undef\currentpagestyle%
- \undef\BeforeSelectAnyPageStyle%
- \undef\GetRealPageStyle%
-}
+\fi
% \end{macrocode}
-%
-% \changes{v2.03}{2015/06/18}{Auswahl der Seitenstile \pgs{tudheadings} vor
-% möglich \pkg{scrlayer-scrpage}}^^A
-%
-% Damit die neuen Seitenstile auch vor dem Laden von \pkg{scrlayer-scrpage}
-% bereits durch den Anwender ausgewählt werden können, wird \cs{pagestyle}
-% temporär zurechtgebogen. Die Definition des Makros wird gesichert und direkt
-% vor dem Laden des Paketes~-- oder ggf. spätestens am Ende der Präambel etwas
-% angepasst~-- wiederhergestellt. Die Redefinition führt zum Ausführen des
-% Seitenstils erst nachdem diese auch tatsächlich erstellt wurden.
+% Für das Erzeugen der Seitenstile wird das Paket \pkg{scrlayer-scrpage}
+% genutzt. Mit diesem können verschiedene Ebenen erstellt werden, aus welchen
+% anschließend der eigentliche Seitenstil zusammengesetzt wird. Dabei werden
+% verschiedene, sogenannte Layers respektive Ebenen für die einzelnen Elemente
+% auf einer Seite erstellt.
% \begin{macrocode}
-\let\tud@pagestyle\pagestyle
-\apptocmd{\tud@pagestyle}{%
- \edef\currentpagestyle{#1}%
-}{}{\tud@patch@wrn{pagestyle}}%
-\renewcommand*\pagestyle[1]{\AfterPackage!{scrlayer-scrpage}{\pagestyle{#1}}}
-\AtEndPreamble{%
- \@ifpackageloaded{scrlayer-scrpage}{}{%
- \let\pagestyle\tud@pagestyle%
- \undef\tud@pagestyle%
- }%
-}
+\AfterPackage{scrlayer-scrpage}{%
% \end{macrocode}
-% \end{macro}^^A \GetRealPageStyle
-% \end{macro}^^A \BeforeSelectAnyPageStyle
-% \end{macro}^^A \currentpagestyle
-% \end{macro}^^A \ps@empty.tudheadings
-% \end{macro}^^A \ps@plain.tudheadings
-% \end{macro}^^A \ps@tudheadings
% \begin{pagestyle}{tudheadings}
% \changes{v2.02}{2014/06/23}{neu}^^A
% \begin{pagestyle}{plain.tudheadings}
@@ -396,67 +131,63 @@
% \pkg{typearea} genutzt wird. Dafür wird das Logo im Kopf so wie im \CD
% vorgesehen mit dem Logo der \TnUD in den Rand und dem Schriftzug bündig zum
% Textblock gesetzt.
-%
-% Für das Erzeugen der Seitenstile wird das Paket \pkg{scrlayer-scrpage}
-% genutzt. Mit diesem können verschiedene Ebenen erstellt werden, aus welchen
-% anschließend der eigentliche Seitenstil zusammengesetzt wird. Dabei werden
-% verschiedene, sogenannte Layers respektive Ebenen für die einzelnen Elemente
-% auf einer Seite erstellt.
-% \begin{macrocode}
-\AfterPackage{scrlayer-scrpage}{%
-% \end{macrocode}
% \begin{layer}{tudheadings.head.content}
% \changes{v2.04}{2015/05/31}{neu}^^A
-% \begin{layer}{tudheadings.head.mainlogo}
-% \changes{v2.02}{2014/06/23}{neu}^^A
-% \changes{v2.04}{2015/05/31}{entfernt}^^A
-% \begin{layer}{tudheadings.head.logo}
-% \changes{v2.02}{2014/06/23}{neu}^^A
-% \changes{v2.04}{2015/05/31}{entfernt}^^A
% Dies sind das links aus dem Satzspiegel verschobene Logo der \TnUD und das
% Zweitlogo. Diese werden seit der Version~v2.04 nicht mehr in zwei getrennten
% sondern in einer gemeinsamen Ebene gesetzt.
% \begin{macrocode}
\DeclareNewLayer[%
background,headsep,%
- voffset=\tud@dim@logoy,%
+ addhoffset=\dimexpr\tud@len@logox-\tud@len@widemargin\relax,%
+ addwidth=\dimexpr-\tud@len@logox+\tud@len@widemargin\relax,%
+ voffset=\tud@len@logoy,%
+ addvoffset=\tud@len@layoutvoffset,%
contents={%
% \end{macrocode}
% Vor der Ausgabe der Logoboxen werden diese im Bedarfsfall neu gesetzt.
% \begin{macrocode}
\tud@mainlogo@set%
\tud@headlogo@option@set%
- \hspace*{\dimexpr\tud@dim@logox-\tud@dim@widemargin\relax}%
\tud@mainlogo@use\hfill\tud@headlogo@use%
},%
]{tudheadings.head.content}%
% \end{macrocode}
-% \end{layer}^^A tudheadings.head.logo
-% \end{layer}^^A tudheadings.head.mainlogo
% \end{layer}^^A tudheadings.head.content
% \begin{layer}{tudheadings.head.back}
% \changes{v2.03}{2015/02/14}{neu}^^A
% \begin{layer}{tudheadings.head.bar}
% \changes{v2.03}{2015/02/14}{neu}^^A
+% \changes{v2.05}{2015/07/14}{Bugfix verschobener Balken}^^A
% Außerdem gibt es eine Variante ohne Querbalken-Outline. Stattdessen werden
% der Querbalken und der darüberliegende Kopf farbig abgesetzt.
% \begin{macrocode}
\DeclareNewLayer[%
background,%
+ width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,%
+ addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,%
+ height=\dimexpr\tud@len@topmargin+\tud@dim@bleedmargin\relax,%
+ addvoffset=\dimexpr\tud@len@layoutvoffset-\tud@dim@bleedmargin\relax,%
contents={%
- \ifnum\tud@head@bar>\tw@\relax% cdhead=color
+ \ifnum\tud@head@bar@num>\tw@\relax% cdhead=color
\color{HKS41}%
- \rule{\layerwidth}{\tud@dim@topmargin}%
+ \rule{\layerwidth}{\layerheight}%
\fi%
},%
]{tudheadings.head.back}%
\DeclareNewLayer[%
background,%
- voffset=\tud@dim@topmargin,%
+ width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,%
+ addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,%
+ height=\tud@len@barheight,%
+ voffset=\tud@len@topmargin,%
+ addvoffset=\tud@len@layoutvoffset,%
contents={%
- \ifnum\tud@head@bar>\@ne\relax% cdhead=barcolor/color
+ \ifnum\tud@head@bar@num>\@ne\relax% cdhead=barcolor/color
\color{HKS41!60}%
- \rule{\layerwidth}{\tud@dim@barheight}%
+ \setlength{\@tempdima}{\dimexpr\ht\strutbox-\tud@len@barheight\relax}%
+ \ifdim\@tempdima<\z@\relax\setlength\@tempdima{\z@}\fi%
+ \raisebox{\@tempdima}{\rule{\layerwidth}{\layerheight}}%
\fi%
},%
]{tudheadings.head.bar}%
@@ -469,18 +200,23 @@
% \begin{macrocode}
\DeclareNewLayer[%
background,headsep,%
- voffset=\dimexpr\tud@dim@topmargin+\tud@dim@line\relax,%
- contents={\tud@head@text@box},%
+ voffset=\dimexpr\tud@len@topmargin+\tud@len@line\relax,%
+ addvoffset=\tud@len@layoutvoffset,%
+ contents={%
+ \tud@head@font@set%
+ \tud@head@text@set%
+ \tud@head@text@box%
+ },%
]{tudheadings.head.text}%
% \end{macrocode}
% \end{layer}^^A tudheadings.head.text
-% \begin{layer}{tudheadings.head.upperline}
+% \begin{layer}{tudheadings.head.upline}
% \changes{v2.02}{2014/06/23}{neu}^^A
-% \begin{layer}{tudheadings.head.lowerline}
+% \begin{layer}{tudheadings.head.lowline}
% \changes{v2.02}{2014/06/23}{neu}^^A
-% \begin{layer}{tudheadings.head.upperwideline}
+% \begin{layer}{tudheadings.head.uplinewide}
% \changes{v2.02}{2014/06/23}{neu}^^A
-% \begin{layer}{tudheadings.head.lowerwideline}
+% \begin{layer}{tudheadings.head.lowlinewide}
% \changes{v2.02}{2014/06/23}{neu}^^A
% Die Ebenen für obere und untere Linie des Querbalkens sowohl in der normalen
% Version, welche den Textbereich überspannt als auch in der Variante über die
@@ -490,47 +226,67 @@
% \begin{macrocode}
\DeclareNewLayer[%
background,headsep,%
- voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,%
+ voffset=\dimexpr\tud@len@topmargin-.5\tud@len@line\relax,%
+ addvoffset=\tud@len@layoutvoffset,%
contents={%
- \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor
- \if@tud@head@widebar\else\tud@head@rule{\textwidth}\fi%
+ \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor
+ \if@tud@head@widebar\else\tud@head@rule{\layerwidth}\fi%
\fi%
},%
- ]{tudheadings.head.upperline}%
+ ]{tudheadings.head.upline}%
\DeclareNewLayer[%
background,headsep,%
- voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight%
- -.5\tud@dim@line\relax,%
+ voffset=\dimexpr\tud@len@topmargin+\tud@len@barheight%
+ -.5\tud@len@line\relax,%
+ addvoffset=\tud@len@layoutvoffset,%
contents={%
- \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor
- \if@tud@head@widebar\else\tud@head@rule{\textwidth}\fi%
+ \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor
+ \if@tud@head@widebar\else\tud@head@rule{\layerwidth}\fi%
\fi%
},%
- ]{tudheadings.head.lowerline}%
+ ]{tudheadings.head.lowline}%
\DeclareNewLayer[%
background,%
- voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,%
+ width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,%
+ addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,%
+ voffset=\dimexpr\tud@len@topmargin-.5\tud@len@line\relax,%
+ addvoffset=\tud@len@layoutvoffset,%
contents={%
- \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor
- \if@tud@head@widebar\tud@head@rule{\paperwidth}\fi%
+ \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor
+ \if@tud@head@widebar\tud@head@rule{\layerwidth}\fi%
\fi%
},%
- ]{tudheadings.head.upperwideline}%
+ ]{tudheadings.head.uplinewide}%
\DeclareNewLayer[%
background,%
- voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight%
- -.5\tud@dim@line\relax,%
+ width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,%
+ addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,%
+ voffset=\dimexpr\tud@len@topmargin+\tud@len@barheight%
+ -.5\tud@len@line\relax,%
+ addvoffset=\tud@len@layoutvoffset,%
contents={%
- \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor
- \if@tud@head@widebar\tud@head@rule{\paperwidth}\fi%
+ \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor
+ \if@tud@head@widebar\tud@head@rule{\layerwidth}\fi%
\fi%
},%
- ]{tudheadings.head.lowerwideline}%
+ ]{tudheadings.head.lowlinewide}%
% \end{macrocode}
-% \end{layer}^^A tudheadings.head.lowerwideline
-% \end{layer}^^A tudheadings.head.upperwideline
-% \end{layer}^^A tudheadings.head.lowerline
-% \end{layer}^^A tudheadings.head.upperline
+% \end{layer}^^A tudheadings.head.lowlinewide
+% \end{layer}^^A tudheadings.head.uplinewide
+% \end{layer}^^A tudheadings.head.lowline
+% \end{layer}^^A tudheadings.head.upline
+% \begin{layer}{tudheadings.head.date}
+% \changes{v2.05}{2016/05/27}{neu}^^A
+% Optionales Datum rechts oberhalb des Textbereiches.
+% \begin{macrocode}
+ \DeclareNewLayer[%
+ foreground,headsep,%
+ addvoffset=.5\tud@len@headsep,%
+ height=\baselineskip,%
+ contents={\if@tud@head@date\hfill\tud@date@print\fi},%
+ ]{tudheadings.head.date}%
+% \end{macrocode}
+% \end{layer}^^A tudheadings.head.date
% \begin{layer}{tudheadings.foot.back}
% \changes{v2.03}{2015/02/15}{neu}^^A
% \begin{layer}{tudheadings.foot.logo}
@@ -539,24 +295,28 @@
% \changes{v2.03}{2015/02/15}{überarbeitetet}^^A
% \begin{layer}{tudheadings.foot.content}
% \changes{v2.04}{2015/04/21}{neu}^^A
+% \changes{v2.05}{2015/07/06}{Bugfix für Kompatibilitätsmodus}^^A
% Die folgenden Ebenen dienen für die Ausgabe des Fußbereiches. Dieser kann mit
% einem farbigen Hintergrund und zusätzlichen Logos (\cs{footlogo}) sowie frei
-% wählbare Inhalte ein- oder zweispaltig mit \cs{footcontent} erstellt werden.
+% wählbare Inhalte ein- oder zweispaltig mit \cs{footcontent} erstellt werden.
% Dabei werden die Ebenen in Abhängigkeit vom gewählten Kompatibilitätsmodus
% unterschiedlich definiert. Die erste Ebene bestimmt die Hintergrundgestaltung
% des Fußbereiches.
% \begin{macrocode}
\DeclareNewLayer[%
background,foot,%
- hoffset=0pt,%
- width=\paperwidth,%
+ width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,%
+ hoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,%
+ height=\dimexpr\tud@len@layoutheight-\layeryoffset%
+ +\tud@len@layoutvoffset+\tud@dim@bleedmargin\relax,%
addvoffset=-\dp\strutbox,%
- height=\dimexpr\paperheight-\layeryoffset\relax,%
contents={%
\if@tud@foot@colored%
\let\@tempc\relax%
\ifdefvoid{\tud@pagecolor}{%
- \ifcase\tud@head@bar\relax\or\or% cdhead=barcolor
+ \ifcase\tud@head@bar@num\relax\or% cdhead=litecolor
+ \def\@tempc{\color{HKS41!60}}%
+ \or% cdhead=barcolor
\def\@tempc{\color{HKS41!60}}%
\or% cdhead=color
\def\@tempc{\color{HKS41}}%
@@ -576,14 +336,14 @@
% geändert. Hier wird dem Rechnung getragen, indem der farbige Hintergrund im
% Zweifelsfall vergrößert wird.
% \begin{macrocode}
- \tud@ifverlower{2.03}{%
+ \tud@if@v@lower{2.03}{%
\ModifyLayer[%
- addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,%
+ addvoffset=-\tud@len@ddcdiff+\ht\strutbox,%
contents={%
\if@tud@foot@colored%
\let\@tempc\relax%
\ifdefvoid{\tud@pagecolor}{%
- \ifcase\tud@head@bar\relax\or\or% cdhead=barcolor
+ \ifcase\tud@head@bar@num\relax\or\or% cdhead=barcolor
\def\@tempc{\color{HKS41!60}}%
\or% cdhead=color
\def\@tempc{\color{HKS41}}%
@@ -594,14 +354,14 @@
}%
\ifx\@tempc\relax\else%
\tud@ddc@check%
- \ifcase\@tempb\relax% \tud@ddc@foot=false
+ \ifcase\@tempb\relax% \tud@ddc@foot@num=false
\vbox to \layerheight{%
\vfil\@tempc%
\rule{\layerwidth}{%
- \dimexpr\layerheight-\tud@dim@ddcdiff+\ht\strutbox\relax%
+ \dimexpr\layerheight-\tud@len@ddcdiff+\ht\strutbox\relax%
}%
}%
- \else% \tud@ddc@foot!=false
+ \else% \tud@ddc@foot@num!=false
\@tempc\rule{\layerwidth}{\layerheight}%
\fi%
\fi%
@@ -617,7 +377,8 @@
% \begin{macrocode}
\DeclareNewLayer[%
background,foot,%
- height=\dimexpr\paperheight-\layeryoffset\relax,%
+ height=\dimexpr\tud@len@layoutheight-\layeryoffset%
+ +\tud@len@layoutvoffset\relax,%
contents={%
% \end{macrocode}
% Falls die Höhe der Logos im Fuß nicht durch den Anwender festgelegt wurden,
@@ -625,29 +386,41 @@
% Layers nicht vollständig genutzt, um bei einem farbigen Fußbereich einen
% gewissen Abstand vom Inhalt zur Kante zu erhalten.
% \begin{macrocode}
- \tud@footlogoheight@set%
+ \TUD@len@deprecated[%
+ \global\@tud@footlogo@option@settrue%
+ ]{footlogoheight}%
\setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}%
% \end{macrocode}
-% Im Bedarfsfall werden die Boxen vor der Ausgabe neu gesetzt. Danach erfolgt
-% die Ausgabe, wobei die boxen übereinander gelegt werden.
+% Im Bedarfsfall werden die Boxen vor der Ausgabe durch die einzelnen
+% \cs{\dots{}@use}-Befehle neu gesetzt. Danach erfolgt die Ausgabe, wobei die
+% Boxen übereinander gelegt werden.
% \begin{macrocode}
- \tud@footlogo@option@set%
- \tud@footlogo@cmd@set{\@tempdima}{\layerwidth}%
+ \tud@footlogo@cmd@use{\@tempdima}{\layerwidth}%
+ \tud@footlogo@ddc@use{\@tempdima}{\layerwidth}%
\tud@footcontent@use{\@tempdima}{\layerwidth}%
- \hspace*{-\layerwidth}%
- \tud@footlogo@cmd@use%
- \hspace*{-\layerwidth}%
- \hfill\tud@footlogo@ddc@use{\@tempdima}%
},%
]{tudheadings.foot.content}%
% \end{macrocode}
% Bis zur Version~v2.02 wurde für die Verwendung des \DDC-Logos der Satzspiegel
% geändert. Hier wird dem Rechnung getragen.
% \begin{macrocode}
- \tud@ifverlower{2.03}{%
+ \tud@if@v@lower{2.03}{%
\ModifyLayer[%
- addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,%
- height=\dimexpr.6\tud@dim@topmargin+\dp\strutbox\relax,%
+ addvoffset=-\tud@len@ddcdiff+\ht\strutbox,%
+ contents={%
+ \TUD@len@deprecated[%
+ \global\@tud@footlogo@option@settrue%
+ ]{footlogoheight}%
+ \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}%
+ \tud@ddc@check%
+ \ifcase\@tempb\relax% \tud@ddc@foot@num=false
+ \addtolength\@tempdima{\dimexpr\ht\strutbox-\tud@len@ddcdiff\relax}%
+ \vskip\dimexpr\tud@len@ddcdiff-\ht\strutbox-\baselineskip\relax%
+ \fi%
+ \tud@footlogo@cmd@use{\@tempdima}{\layerwidth}%
+ \tud@footlogo@ddc@use{\@tempdima}{\layerwidth}%
+ \tud@footcontent@use{\@tempdima}{\layerwidth}%
+ },%
]{tudheadings.foot.content}%
}{}%
% \end{macrocode}
@@ -688,10 +461,11 @@
tudheadings.head.content,%
tudheadings.head.bar,%
tudheadings.head.text,%
- tudheadings.head.upperline,%
- tudheadings.head.lowerline,%
- tudheadings.head.upperwideline,%
- tudheadings.head.lowerwideline,%
+ tudheadings.head.upline,%
+ tudheadings.head.lowline,%
+ tudheadings.head.uplinewide,%
+ tudheadings.head.lowlinewide,%
+ tudheadings.head.date,%
tudheadings.foot.back,%
tudheadings.foot.content,%
tudheadings.last,%
@@ -701,7 +475,6 @@
scrheadings.foot.above.line,%
scrheadings.foot.below.line%
}%
- \listadd\tud@ps@list{tudheadings}%
% \end{macrocode}
% Zuletzt werden Aliasnamen für den Seitenstil definiert.
% \begin{macrocode}
@@ -719,10 +492,11 @@
tudheadings.head.content,%
tudheadings.head.bar,%
tudheadings.head.text,%
- tudheadings.head.upperline,%
- tudheadings.head.lowerline,%
- tudheadings.head.upperwideline,%
- tudheadings.head.lowerwideline,%
+ tudheadings.head.upline,%
+ tudheadings.head.lowline,%
+ tudheadings.head.uplinewide,%
+ tudheadings.head.lowlinewide,%
+ tudheadings.head.date,%
tudheadings.foot.back,%
tudheadings.foot.content,%
tudheadings.last,%
@@ -732,7 +506,6 @@
plain.scrheadings.foot.above.line,%
plain.scrheadings.foot.below.line%
}%
- \listadd\tud@ps@list{plain.tudheadings}%
\DeclareNewPageStyleAlias{plain.tudscrheadings}{plain.tudheadings}%
\DeclareNewPageStyleAlias{tudplain}{plain.tudheadings}%
\DeclareNewPageStyleAlias{tudscrplain}{plain.tudheadings}%
@@ -749,15 +522,15 @@
tudheadings.head.content,%
tudheadings.head.bar,%
tudheadings.head.text,%
- tudheadings.head.upperline,%
- tudheadings.head.lowerline,%
- tudheadings.head.upperwideline,%
- tudheadings.head.lowerwideline,%
+ tudheadings.head.upline,%
+ tudheadings.head.lowline,%
+ tudheadings.head.uplinewide,%
+ tudheadings.head.lowlinewide,%
+ tudheadings.head.date,%
tudheadings.foot.back,%
tudheadings.foot.content,%
tudheadings.last%
}%
- \listadd\tud@ps@list{empty.tudheadings}%
\DeclareNewPageStyleAlias{empty.tudscrheadings}{empty.tudheadings}%
\DeclareNewPageStyleAlias{tudempty}{empty.tudheadings}%
\DeclareNewPageStyleAlias{tudscrempty}{empty.tudheadings}%
@@ -766,20 +539,22 @@
% \end{macrocode}
% \begin{layer}{tudheadings.pagecolor}
% \changes{v2.03}{2015/01/09}{neu}^^A
-% \begin{macro}{\tud@pagecolor}
-% \begin{macro}{\tud@restorepagecolor}
-% \changes{v2.03}{2015/01/09}{entfernt}^^A
% Um farbige Titel- Teil- und Kapitelseiten \emph{unabhängig} vom aktuell
% 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@\dots} optionsabhängig für Titel-, Teile- sowie Kapitelseiten
-% gesetzt.
+% \cs{tud@layout@\meta{Typ}@num} optionsabhängig für Titel-, Teile- sowie
+% Kapitelseiten gesetzt.
% \begin{macrocode}
- \newcommand*\tud@pagecolor{}%
\DeclareNewLayer[%
- background,page,%
+ background,%
+ area=%
+ {\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax}%
+ {\dimexpr\tud@len@layoutvoffset-\tud@dim@bleedmargin\relax}%
+ {\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax}%
+ {\dimexpr\tud@len@layoutheight+\tud@dim@bleedmargin*2\relax}%
+ ,%
contents={%
\ifdefvoid{\tud@pagecolor}{}{%
\color{\tud@pagecolor}%
@@ -789,26 +564,28 @@
]{tudheadings.pagecolor}%
\AddLayersToPageStyle{@everystyle@}{tudheadings.pagecolor}%
% \end{macrocode}
-% \end{macro}^^A \tud@restorepagecolor
-% \end{macro}^^A \tud@pagecolor
% \end{layer}^^A tudheadings.pagecolor
-% Damit wurden alle Ebenen und die darauf aufbauenden Seitenstile deklariert.
-%
+% Damit wurden alle Ebenen und die darauf aufbauenden Seitenstile deklariert.
+% \end{pagestyle}^^A empty.tudheadings
+% \end{pagestyle}^^A plain.tudheadings
+% \end{pagestyle}^^A tudheadings
+% \begin{macrocode}
+}
+\listadd\tud@ps@list{tudheadings}
+\listadd\tud@ps@list{plain.tudheadings}
+\listadd\tud@ps@list{empty.tudheadings}
+% \end{macrocode}
% Mit der Nutzung von \pkg{scrlayer-scrpage} ist die parallele Verwendung des
% Paketes \pkg{fancyhdr} nicht möglich.
% \begin{macrocode}
-}
\PreventPackageFromLoading[%
- \ClassWarning{\TUDClassName}{%
+ \ClassWarning{\TUD@Class@Name}{%
The package `fancyhdr' must not be used with a\MessageBreak%
TUD-KOMA-Script class. You should make use of the\MessageBreak%
capabilities of package `scrlayer-scrpage' instead%
}%
]{fancyhdr}
% \end{macrocode}
-% \end{pagestyle}^^A empty.tudheadings
-% \end{pagestyle}^^A plain.tudheadings
-% \end{pagestyle}^^A tudheadings
% \begin{macro}{\tud@ps@onselect}
% \changes{v2.03}{2015/01/09}{neu}^^A
% \begin{macro}{\tud@ps@onbackground}
@@ -854,38 +631,42 @@
\newcommand*\tud@foot@fontcolor{}
\newcommand*\tud@ps@onbackground{%
% \end{macrocode}
-% Zunächst die Einstellungen für Seiten ohne spezielle Hintergrundfarbe.
+% Zunächst die Einstellungen für Seiten ohne spezielle Hintergrundfarbe für den
+% Kopf\dots
% \begin{macrocode}
\ifdefvoid{\tud@pagecolor}{%
- \ifcase\tud@head@bar\relax% cdhead=nocolor
- \def\tud@head@logocolor{black}%
- \def\tud@head@fontcolor{}%
- \def\tud@foot@logocolor{black}%
- \def\tud@foot@fontcolor{}%
+ \ifcase\tud@head@bar@num\relax% cdhead=nocolor
+ \renewcommand*\tud@head@logocolor{black}%
+ \renewcommand*\tud@head@fontcolor{}%
\or% cdhead=litecolor
- \def\tud@head@logocolor{HKS41}%
- \def\tud@head@fontcolor{HKS41}%
- \def\tud@foot@logocolor{HKS41}%
- \def\tud@foot@fontcolor{HKS41}%
+ \renewcommand*\tud@head@logocolor{HKS41}%
+ \renewcommand*\tud@head@fontcolor{HKS41}%
\or% cdhead=barcolor
- \def\tud@head@logocolor{HKS41}%
- \def\tud@head@fontcolor{white}%
+ \renewcommand*\tud@head@logocolor{HKS41}%
+ \renewcommand*\tud@head@fontcolor{white}%
+ \or% cdhead=color
+ \renewcommand*\tud@head@logocolor{white}%
+ \renewcommand*\tud@head@fontcolor{white}%
+ \fi%
+% \end{macrocode}
+% \dots und den Fuß.
+% \begin{macrocode}
+ \ifcase\tud@head@bar@num\relax% cdhead=nocolor
+ \renewcommand*\tud@foot@logocolor{black}%
+ \renewcommand*\tud@foot@fontcolor{}%
\if@tud@foot@colored%
- \def\tud@foot@logocolor{white}%
- \def\tud@foot@fontcolor{white}%
- \else%
- \def\tud@foot@logocolor{HKS41}%
- \def\tud@foot@fontcolor{HKS41}%
+ \ClassWarning{\TUD@Class@Name}{%
+ It isn't possible to use a colored foot together\MessageBreak%
+ with a non-colored head (`cdhead=nocolor')%
+ }%
\fi%
- \or% cdhead=color
- \def\tud@head@logocolor{white}%
- \def\tud@head@fontcolor{white}%
+ \else% cdhead=*color
\if@tud@foot@colored%
- \def\tud@foot@logocolor{white}%
- \def\tud@foot@fontcolor{white}%
+ \renewcommand*\tud@foot@logocolor{white}%
+ \renewcommand*\tud@foot@fontcolor{white}%
\else%
- \def\tud@foot@logocolor{HKS41}%
- \def\tud@foot@fontcolor{HKS41}%
+ \renewcommand*\tud@foot@logocolor{HKS41}%
+ \renewcommand*\tud@foot@fontcolor{HKS41}%
\fi%
\fi%
}{%
@@ -894,31 +675,40 @@
% für farbige Titel- und Teileseiten\dots
% \begin{macrocode}
\ifstr{\tud@pagecolor}{HKS41}{%
- \def\tud@head@logocolor{white}%
- \def\tud@head@fontcolor{white}%
- \def\tud@foot@logocolor{white}%
+ \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
+% Hausfarbe genutzt wird.
+% \begin{macrocode}
+%<*book|report|article>
\if@tud@foot@colored%
- \def\tud@foot@fontcolor{white}%
+%</book|report|article>
+ \renewcommand*\tud@foot@fontcolor{white}%
+%<*book|report|article>
\else%
- \def\tud@foot@fontcolor{HKS41!30}%
+ \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}
}{%
- \def\tud@head@logocolor{HKS41}%
- \def\tud@head@fontcolor{HKS41}%
- \ifcase\tud@head@bar\relax\or\or\or% cdhead=color
- \def\tud@head@logocolor{white}%
- \def\tud@head@fontcolor{white}%
+ \renewcommand*\tud@head@logocolor{HKS41}%
+ \renewcommand*\tud@head@fontcolor{HKS41}%
+ \ifcase\tud@head@bar@num\relax\or\or\or% cdhead=color
+ \renewcommand*\tud@head@logocolor{white}%
+ \renewcommand*\tud@head@fontcolor{white}%
\fi%
\if@tud@foot@colored%
- \def\tud@foot@logocolor{white}%
- \def\tud@foot@fontcolor{white}%
+ \renewcommand*\tud@foot@logocolor{white}%
+ \renewcommand*\tud@foot@fontcolor{white}%
\else%
- \def\tud@foot@logocolor{HKS41}%
- \def\tud@foot@fontcolor{HKS41}%
+ \renewcommand*\tud@foot@logocolor{HKS41}%
+ \renewcommand*\tud@foot@fontcolor{HKS41}%
\fi%
\bool@std@lock{@tud@head@widebar}{true}%
}%
@@ -928,8 +718,8 @@
% des Querbalkens gesetzt, die Schriftfarbe des Fußes wird global geändert,
% damit Seitenzahl und Kolumnentitel gegebenenfalls angepasst werden.
% \begin{macrocode}
- \let\tud@dim@line\tud@dim@thinline%
- \ifstr{\tud@head@fontcolor}{white}{\let\tud@dim@line\tud@dim@heavyline}{}%
+ \let\tud@len@line\tud@len@thinline%
+ \ifstr{\tud@head@fontcolor}{white}{\let\tud@len@line\tud@len@heavyline}{}%
\global\let\tud@foot@fontcolor\tud@foot@fontcolor%
}
% \end{macrocode}
@@ -939,101 +729,271 @@
% \end{macro}^^A \tud@head@logocolor
% \end{macro}^^A \tud@ps@onbackground
% \end{macro}^^A \tud@ps@onselect
-% \begin{macro}{\ps@tudpage@plain}
-% \changes{v2.02}{2014/06/23}{entfernt}^^A
-% \begin{macro}{\ps@tudpage@empty}
-% \changes{v2.02}{2014/06/23}{entfernt}^^A
-% Diese Befehle wurden mit der \TUDScript-Version~v2.02 entfernt.
-% \end{macro}^^A \ps@tudpage@empty
-% \end{macro}^^A \ps@tudpage@plain
+% \begin{macro}{\pagestyle}
+% \changes{v2.04}{2015/06/18}{Aktivierung der Seitenstile \pgs{tudheadings} vor
+% \pkg{scrlayer-scrpage} möglich}^^A
+% \begin{macro}{\tud@pagestyle}
+% \changes{v2.04}{2015/06/18}{neu}
+% Für den Fall, dass das Paket \pkg{scrlayer-scrpage} nicht geladen wird und
+% dennoch das Makro \cs{currentpagestyle} wie erwartet definiert ist, wird der
+% originale Befehl etwas angepasst.
+% \begin{macrocode}
+\newcommand*\tud@pagestyle{}
+\let\tud@pagestyle\pagestyle
+\pretocmd{\tud@pagestyle}{%
+ \tud@BeforeSelectAnyPageStyle{#1}%
+ \edef\currentpagestyle{#1}%
+}{}{\tud@patch@wrn{pagestyle}}
+% \end{macrocode}
+% Damit die neuen Seitenstile auch vor dem Laden von \pkg{scrlayer-scrpage}
+% bereits durch den Anwender ausgewählt werden können, wird \cs{pagestyle}
+% temporär zurechtgebogen. Die Definition des Makros wird gesichert und direkt
+% 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}
+\renewcommand*\pagestyle[1]{\AfterPackage!{scrlayer-scrpage}{\pagestyle{#1}}}
+\BeforePackage{scrlayer-scrpage}{%
+ \tud@cmd@restore{pagestyle}%
+ \undef\tud@pagestyle%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@pagestyle
+% \end{macro}^^A \pagestyle
+% \begin{macro}{\ps@tudheadings}
+% \begin{macro}{\ps@plain.tudheadings}
+% \begin{macro}{\ps@empty.tudheadings}
+% \begin{macro}{\currentpagestyle}
+% \begin{macro}{\BeforeSelectAnyPageStyle}
+% \begin{macro}{\GetRealPageStyle}
+% Um die rudimentäre Verwendung der Klassen auch zu ermöglichen, wenn das Paket
+% \pkg{scrlayer-scrpage} nicht geladen wurde, werden für diesen Fall einige
+% notwendige Makros definiert.
+% \begin{macrocode}
+\TUD@UnwindPackage{scrlayer-scrpage}{%
+ \ifcsundef{if@chapter}{%
+ \newif\if@chapter%
+ \ifcsundef{chapter}{\@chapterfalse}{\@chaptertrue}%
+ }{}%
+ \cslet{ps@tudheadings}{\ps@headings}%
+ \cslet{ps@plain.tudheadings}{\ps@plain}%
+ \cslet{ps@empty.tudheadings}{\ps@empty}%
+ \providecommand*\currentpagestyle{plain}%
+ \providecommand*\BeforeSelectAnyPageStyle[1]{}%
+ \providecommand*\GetRealPageStyle[1]{#1}%
+% \end{macrocode}
+% Außerdem wird die angepasste Definition von \cs{pagestyle} verwendet.
+% \begin{macrocode}
+ \let\pagestyle\tud@pagestyle%
+ \undef\tud@pagestyle%
+% \end{macrocode}
+% Das erstellen des Satzsiegels erfolgt normalerweise nach dem Paket.
+% \begin{macrocode}
+ \tud@cdgeometry@init%
+}
+% \end{macrocode}
+% \end{macro}^^A \GetRealPageStyle
+% \end{macro}^^A \BeforeSelectAnyPageStyle
+% \end{macro}^^A \currentpagestyle
+% \end{macro}^^A \ps@empty.tudheadings
+% \end{macro}^^A \ps@plain.tudheadings
+% \end{macro}^^A \ps@tudheadings
% \begin{macro}{\thispagestyle}
% \changes{v2.03}{2015/01/20}{Auswahl eines Aliasseitenstils unterdrückt}^^A
+% Wird der Befehl \cs{thispagestyle} verwendet, muss dafür Sorge getragen
+% werden, dass kein Alias-Seitenstil expandiert wird.
% \begin{macrocode}
\patchcmd{\thispagestyle}{\gdef\@specialstyle{#1}}{%
- \xdef\@specialstyle{\GetRealPageStyle{#1}}
+ \xdef\@specialstyle{\GetRealPageStyle{#1}}%
}{}{\tud@patch@wrn{thispagestyle}}
% \end{macrocode}
% \end{macro}^^A \thispagestyle
-% \begin{macro}{\tud@head@text}
-% \begin{macro}{\tud@head@text@first}
-% \begin{macro}{\tud@head@text@second}
+% \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{}
+\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}%
+ \protected\gdef\tud@head@font@@bold{%
+ \usefont{\encodingdefault}{\sfdefault}{\bfdefault}{\updefault}%
+ }%
+% \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}%
+ \protected\gdef\tud@head@font@@bold{%
+ \usefont{\encodingdefault}{\tud@univers}{b}{n}%
+ }%
+ \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
+% \begin{macro}{\tud@head@text@line}
+% \begin{macro}{\tud@head@text@list}
+% \changes{v2.05}{2015/11/26}{neu}^^A
% \begin{macro}{\tud@head@text@delimiter}
% \begin{macro}{\tud@head@text@buffer}
% Diese Befehle sind Hilfsmakros, die bei der Erzeugung der Textzeile inner- und
% unterhalb des Querbalkens des TUD-Kopfes dienen.
% \begin{macrocode}
-\newcommand*\tud@head@text{}
-\newcommand*\tud@head@text@first{}
-\newcommand*\tud@head@text@second{}
+\newcommand*\tud@head@text@line{}
+\newcommand*\tud@head@text@list{}
\newcommand*\tud@head@text@delimiter{}
\newcommand*\tud@head@text@buffer{}
% \end{macrocode}
% \end{macro}^^A \tud@head@text@buffer
% \end{macro}^^A \tud@head@text@delimiter
-% \end{macro}^^A \tud@head@text@second
-% \end{macro}^^A \tud@head@text@first
-% \end{macro}^^A \tud@head@text
-% \begin{macro}{\tud@head@rule}
-% \changes{v2.02}{2014/06/23}{gewünschte Breite als Argument}^^A
-% Der Querbalken des Kopfes läuft je nach gewähltem Parameter \cs{tud@head@bar}
-% entweder nur über den Textbereich oder aber über die gesamte Seitenbreite.
-% Der Befehl erzeugt eine horizontale Linie mit der übergebenen Breite und
-% über \cs{tud@dim@line} definierter Dicke.
-% \begin{macrocode}
-\newcommand*\tud@head@rule[1]{%
- \tud@color{\tud@head@fontcolor}%
- \rule[\ht\strutbox]{#1}{\tud@dim@line}%
-}
-% \end{macrocode}
-% \end{macro}^^A \tud@head@rule
+% \end{macro}^^A \tud@head@text@list
+% \end{macro}^^A \tud@head@text@line
% \begin{macro}{\tud@head@text@add}
% \changes{v2.04}{2015/04/08}{Verwendung von \cs{protected@edef}}^^A
-% Dieser Befehl dient zum Füllen eines Puffer-Strings. Es werden sequentiell
-% alle potentiellen Felder hinzugefügt. Sollte das zuletzt hinzugefügte Feld
-% dazu führen, dass der Text der Kopfzeile über den Seitenrand hinausragt, so
-% wird eine zweite Zeile begonnen. In diesem Fall wird der temporäre Schalter
-% \cs{@tempswa} aktiviert. Auch das Trennzeichen zwischen einzelnen Feldern
-% muss gepuffert werden, da dieses nur gesetzt wird, wenn ein weiteres Feld
-% nachfolgt.
-% \begin{macrocode}
-\newcommand*\tud@head@text@add[3][, ]{%
- \protected@edef\tud@head@text{#3}%
- \ifx\tud@head@text\@empty%
- \def\tud@head@text@delimiter{}%
- \else%
- \edef\tud@head@text@delimiter{\tud@head@text@buffer}%
+% \changes{v2.05}{2015/11/26}{Redesign}^^A
+% Dieser Befehl dient zum Füllen einer Liste für die spätere Ausgabe der
+% Kopfzeilenfelder. Es werden sequentiellalle potentiellen Felder hinzugefügt.
+% Sollte das hinzuzufügende Feld dazu führen, dass der Text der Kopfzeile über
+% den Seitenrand hinausragen würde, so wird eine weitere Zeile begonnen. Das
+% Trennzeichen zwischen einzelnen Feldern muss gepuffert werden, da dieses nur
+% gesetzt werden soll, wenn ein weiteres Feld nachfolgt.
+% \begin{macrocode}
+\newcommand*\tud@head@text@add[3][{, }]{%
+ \ifxblank{#3}{}{%
+ \edef\tud@head@text@delimiter{\expandonce\tud@head@text@buffer}%
\def\tud@head@text@buffer{#1}%
- \fi%
- \if@tempswa\else%
- \def\@tempa{%
- \tud@head@text@first%
- \tud@head@text@delimiter%
- #2%
- \tud@head@text%
+ \edef\@tempa{%
+ \expandonce\tud@head@text@line%
+ \expandonce\tud@head@text@delimiter%
+ \etex@unexpanded{#2#3}%
}%
+% \end{macrocode}
+% Sollte das hinzuzufügende Feld die aktuelle Kopfzeile \cs{tud@head@text@line}
+% über die Textbreite hinaus erweitern, wird der bisherige Inhalt in die Liste
+% \cs{tud@head@text@list} gespeichert und eine neue mit dem aktuellen Inhalt
+% begonnen. Andernfalls wird der aktuelle Inhalt dem bestehenden hinzugefügt.
+% \begin{macrocode}
\settowidth\@tempdima{\@tempa}%
\ifdim\@tempdima>\textwidth\relax%
- \@tempswatrue%
- \def\tud@head@text@delimiter{}%
+ \listeadd\tud@head@text@list{\expandonce\tud@head@text@line}%
+ \protected@edef\tud@head@text@line{#2#3}%
\else%
- \protected@edef\tud@head@text@first{\@tempa}%
+ \edef\tud@head@text@line{\expandonce\@tempa}%
\fi%
- \fi%
- \if@tempswa%
- \protected@edef\tud@head@text@second{%
- \tud@head@text@second%
- \tud@head@text@delimiter%
- #2%
- \tud@head@text%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@head@text@add
+% \begin{macro}{\tud@head@text@set}
+% \changes{v2.05}{2015/11/28}{neu}^^A
+% \begin{macro}{\tud@head@text@wrn}
+% \begin{macro}{\if@tud@head@text@set}
+% \changes{v2.05}{2015/11/28}{neu}^^A
+% Für die Felder im Kopf wird bei einer Änderung dieser die Warnung bezüglich
+% der zu großen Breite der Kopfinformationen, was bei kleinen Papierformaten
+% geschehen kann, (re-)definiert.
+% \begin{macrocode}
+\newif\if@tud@head@text@set
+\newcommand*\tud@head@text@wrn[1]{}
+\newcommand*\tud@head@text@set{%
+ \if@tud@head@text@set%
+% \end{macrocode}
+% Der Inhalt der Kopfzeile wird durch die angegeben Fakultät etc. vorgegeben.
+% Sollte der Platz in einer Zeile dafür nicht ausreichen, wird eine weitere
+% Zeile begonnen. Ob diese benötigt wird, ist abhängig vom Inhalt und von der
+% sich daraus ergebenden Breite der Textzeile. Das Erzeugen der einzelnen
+% Textzeilen im Kopf, die in \cs{tud@head@text@list} gesichert werden, erfolgt
+% 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{}%
+ \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}%
+ \tud@head@text@add{\tud@head@font@light}{\@chair}%
+% \end{macrocode}
+% Ganz zum Schluss wird der Rest aus \cs{tud@head@text@line} ebenso wie ggf.
+% die zusätzliche Zeile in die Liste expandiert.
+% \begin{macrocode}
+ \listeadd\tud@head@text@list{\expandonce\tud@head@text@line}%
+ \ifxblank{\@extraheadline}{}{%
+ \listadd\tud@head@text@list{\tud@head@font@light\@extraheadline}%
+ }%
+ \gdef\tud@head@text@wrn##1{%
+ \ClassWarning{\TUD@Class@Name}{%
+ The given entries for the headline\MessageBreak%
+ (faculty, institute etc.) are ##1\MessageBreak%
+ too wide for the textwidth%
+ }%
}%
\fi%
}
% \end{macrocode}
-% \end{macro}^^A \tud@head@text@add
+% \end{macro}^^A \if@tud@head@text@set
+% \end{macro}^^A \tud@head@text@wrn
+% \end{macro}^^A \tud@head@text@set
% \begin{macro}{\tud@head@text@box}
% \changes{v2.02}{2014/06/23}{neu}^^A
-% \changes{v2.03}{2015/01/09}{Bugfix für zweite Zeile. Diese muss in jedem Fall
-% gesetzt werden, auch wenn sie leer ist.}^^A
+% \changes{v2.03}{2015/01/09}{Zweite Zeile wird auch leer gesetzt.}^^A
% Dieser Befehl ist der Inhalt der Ebene für den Text der Kopfzeile.
% \begin{macrocode}
\newcommand*\tud@head@text@box{%
@@ -1041,72 +1001,66 @@
% Sollte keine Fakultät angegeben sein, wird eine Warnung ausgegeben.
% \begin{macrocode}
\ifx\@faculty\@empty%
- \ClassWarningNoLine{\TUDClassName}{No `\string\faculty' given}%
+ \ClassWarningNoLine{\TUD@Class@Name}{No `\string\faculty' given}%
\faculty{}%
\fi%
% \end{macrocode}
-% Abhängig vom Wert \cs{tud@cdfont}~-- gesetzt entweder von der globalen
-% Klassenoption oder vom lokalen Parameter \opt{cdfont}~-- werden entweder die
-% Schriften des \CDs oder aber die serifenlose Standardschrift für die Kopfzeile
-% verwendet.
-% \begin{macrocode}
- \tud@head@font@set%
-% \end{macrocode}
-% Der Inhalt der Kopfzeile wird durch die angegeben Fakultät etc. vorgegeben.
-% Sollte der Platz in einer Zeile dafür nicht ausreichen, wird eine zweite
-% Zeile begonnen. Ob diese benötigt wird, ist abhängig vom Inhalt und von der
-% sich daraus ergebenden Breite der Textzeile. Das Erzeugen der ersten und
-% gegebenenfalls der zweiten Textzeile im Kopf erfolgt durch das Makro
-% \cs{tud@head@text@add}\oarg{Trennzeichen}\marg{Schrift}\marg{Feld}. Der dafür
-% verwendete Schalter \cs{@tempswa} und die benötigten Hilfsmakros werden
-% vor der Verwendung initialisiert.
+% 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
+% 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.
+% Die Farbe des Textes der ersten Zeile entspricht immer der des Kopfes.
% \begin{macrocode}
- \@tempswafalse%
- \def\tud@head@text@first{}%
- \def\tud@head@text@second{}%
- \def\tud@head@text@buffer{}%
- \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}%
- \tud@head@text@add{\tud@head@font@light}{\@chair}%
-% \end{macrocode}
-% Sollte die zweite Textzeile zu lang sein, was bei kleinen Papierformaten
-% vorkommen kann, dann wird eine Warnung ausgegeben.
-% \begin{macrocode}
- \settowidth\@tempdima{\tud@head@text@second}%
- \ifdim\@tempdima>\textwidth\relax%
- \tud@head@text@wrn{\the\dimexpr\@tempdima-\textwidth\relax}%
- \hfuzz=\@tempdima%
- \fi%
+ \def\@tempb{\tud@color{\tud@head@fontcolor}}%
+ \def\@tempc{\depth+\tud@len@heavyline}%
% \end{macrocode}
-% Es erfolgt die Ausgabe der Textzeile(n) mit Fakultät etc. über
-% \cs{tud@head@text@write} sowie einer möglichen Extrazeile.
+% Das Makro \cs{@tempa} wird zur Ababreitung der Liste \cs{tud@head@text@list}
+% definiert.
% \begin{macrocode}
- \vbox{%
- \linespread{0}\selectfont\offinterlineskip%
+ \def\@tempa##1{%
+ \settowidth\@tempdima{##1}%
% \end{macrocode}
-% Die Farbe des Textes der ersten Zeile entspricht immer der des Kopfes.
+% Sollte eine der Textzeilen zu lang sein, was insbesondere bei kleineren
+% Papierformaten vorkommen kann, dann wird eine Warnung ausgegeben.
% \begin{macrocode}
- \tud@color{\tud@head@fontcolor}%
- \tud@head@text@write{\tud@head@text@first}%
+ \ifdim\@tempdima>\textwidth\relax%
+ \tud@head@text@wrn{\the\dimexpr\@tempdima-\textwidth\relax}%
+ \ifdim\dimexpr\@tempdima-\textwidth\relax>\hfuzz\relax%
+ \hfuzz=\dimexpr\@tempdima-\textwidth\relax%
+ \fi%
+ \fi%
+ \@tempb%
+ \tud@head@text@write[\@tempc]{##1}%
+ \def\@tempb{\newline}%
+ \def\@tempc{\z@}%
% \end{macrocode}
-% Die zweite und dritte Zeile sind bei zweifarbigen Kopf normalerweise blau,
-% nur für einen dunklen Seitenhintergrund weiß.
+% Die weiteren Zeilen sind bei zweifarbigen Kopf normalerweise blau, nur für
+% einen dunklen Seitenhintergrund weiß.
% \begin{macrocode}
- \ifnum\tud@head@bar>\@ne% cdhead=barcolor/color
+ \ifnum\tud@head@bar@num>\@ne\relax% cdhead=barcolor/color
\ifdefvoid{\tud@pagecolor}{\color{HKS41}}{%
\ifstr{\tud@pagecolor}{HKS41}{\color{white}}{\color{HKS41}}%
}%
\fi%
- \ifx\tud@head@text@second\@empty%
- \newline\tud@head@text@write{\tud@head@font@light\@extraheadline}%
- \else%
- \newline\tud@head@text@write{\tud@head@text@second}%
- \ifx\@extraheadline\@empty\else%
- \newline\vbox{\tud@head@font@light\@extraheadline}%
- \fi%
- \fi%
}%
+% \end{macrocode}
+% Dies ist nun die eigentliche Ausgabe, welche in einer vertikalen Box erfolgt.
+% \begin{macrocode}
+ \vbox{%
+% \end{macrocode}
+% Das Paket \pkg{ragged2e} ändert im Zweifelsfall die Länge \cs{spaceskip}. Um
+% den Kopf unbeeinflusst davon immer in der gleichen Gestalt erscheinen zu
+% lassen, wird dies hier temporär unterdrückt.
+% \begin{macrocode}
+ \let\@raggedtwoe@everyselectfont\relax%
+ \setlength\spaceskip{\z@}%
+ \selectfont%
+ \offinterlineskip%
+ \forlistloop\@tempa{\tud@head@text@list}%
+ }%
+ \global\let\tud@head@text@wrn\@gobble%
}
% \end{macrocode}
% \end{macro}^^A \tud@head@text@box
@@ -1116,27 +1070,26 @@
% \changes{v2.02}{2014/12/04}{Zentrierung des Zeilentextes}^^A
% Befehl zur Ausgabe der ersten und evtl. zweiten Textzeile im TUD-Kopf
% \begin{macrocode}
-\newcommand*\tud@head@text@write[1]{%
- \raisebox{\dimexpr(\tud@dim@barheight+2\tud@dim@line-\totalheight)/2\relax}[%
- \dimexpr\tud@dim@barheight-\depth\relax%
- ][\dimexpr\depth+\tud@dim@heavyline\relax]{#1\vphantom{gjpqy\"A\"O\"U}}%
+\newcommand*\tud@head@text@write[2][\z@]{%
+ \raisebox{\dimexpr(\tud@len@barheight+2\tud@len@line-\totalheight)/2\relax}[%
+ \dimexpr\tud@len@barheight-\depth\relax%
+ ][\dimexpr#1\relax]{#2\vphantom{gjpqy\"A\"O\"U}}%
}
% \end{macrocode}
% \end{macro}^^A \tud@head@text@write
-% \begin{macro}{\tud@head@text@wrn}
-% Warnung für den Fall, dass die Kopfinformationen breiter werden, als die
-% Textbreite, was bei besonders kleinen Papierformaten geschehen kann.
-% \begin{macrocode}
-\newcommand\tud@head@text@wrn[1]{%
- \ClassWarning{\TUDClassName}{%
- The given entries for the headline\MessageBreak%
- (faculty, institute etc.) are #1\MessageBreak%
- too wide for the textwidth%
- }%
- \global\let\tud@head@text@wrn\@gobble%
+% \begin{macro}{\tud@head@rule}
+% \changes{v2.02}{2014/06/23}{gewünschte Breite als Argument}^^A
+% Der Querbalken des Kopfes läuft je nach Parameterwahl \cs{tud@head@bar@num}
+% entweder nur über den Textbereich oder aber über die gesamte Seitenbreite.
+% Der Befehl erzeugt eine horizontale Linie mit der übergebenen Breite und
+% über \cs{tud@len@line} definierter Dicke.
+% \begin{macrocode}
+\newcommand*\tud@head@rule[1]{%
+ \tud@color{\tud@head@fontcolor}%
+ \rule[\ht\strutbox]{#1}{\tud@len@line}%
}
% \end{macrocode}
-% \end{macro}^^A \tud@head@text@wrn
+% \end{macro}^^A \tud@head@rule
% \begin{macro}{\tud@newlayerbox}
% \changes{v2.04}{2015/05/31}{neu}^^A
% \begin{macro}{\tud@savelayerbox}
@@ -1149,13 +1102,13 @@
% von \cs{includegraphics} möglichst gering zu halten.
% \begin{macrocode}
\newcommand*\tud@newlayerbox[1]{%
- \expandafter\newsavebox\csname tud@logo@#1\endcsname%
+ \expandafter\newsavebox\csname tud@layer@#1\endcsname%
}
\newcommand*\tud@savelayerbox[1]{%
- \global\expandafter\sbox\csname tud@logo@#1\endcsname%
+ \global\expandafter\sbox\csname tud@layer@#1\endcsname%
}
\newcommand*\tud@uselayerbox[1]{%
- \expandafter\usebox\csname tud@logo@#1\endcsname%
+ \expandafter\usebox\csname tud@layer@#1\endcsname%
}
% \end{macrocode}
% \end{macro}^^A \tud@uselayerbox
@@ -1177,9 +1130,9 @@
\setbox\z@\vbox{#2}%
\setlength\@tempdima{\dimexpr\ht\z@+\dp\z@-#1\relax}%
\ifdim\@tempdima>\z@\relax%
- \ClassWarning{\TUDClassName}{%
+ \ClassWarning{\TUD@Class@Name}{%
#3\MessageBreak%
- The maximum height is exceeded by \the\@tempdima%
+ The maximum height is exceeded by \the\@tempdima\MessageBreak%
}%
\fi%
\endgroup%
@@ -1195,73 +1148,95 @@
%
% \subsection{Befehle, Optionen und Umsetzung der Seitenstilvarianten}
%
-% \begin{macro}{\tud@iftudps}
+% \begin{macro}{\tud@if@tudheadings}
% \changes{v2.02}{2014/06/23}{neu}^^A
% \begin{macro}{\tud@ps@list}
% \changes{v2.02}{2014/06/23}{neu}^^A
-% Mit dem Befehl \cs{tud@iftudps} wird geprüft, ob der im ersten Argument
-% gegebene Seitenstil~-- was auch das Makro \cs{currentpagestyle} sein kann,
-% welches durch das Paket \pkg{scrlayer-scrpage} definiert wird und den
+% Mit dem Befehl \cs{tud@if@tudheadings} kann geprüft werden, ob der im ersten
+% Argument gegebene Seitenstil~-- was auch das Makro \cs{currentpagestyle} sein
+% kann, welches durch das Paket \pkg{scrlayer-scrpage} definiert wird und den
% aktuellen Seitenstil beinhaltet~-- einem aus der Liste \cs{tud@ps@list}
% entspricht. Ist dies der Fall, wird das zweite Argument ausgeführt,
% anderfalls das dritte. Die Liste \cs{tud@ps@list} wird bei der Definition der
% Seitenstile selbst gesetzt.
% \begin{macrocode}
\newcommand*\tud@ps@list{}
-\newcommand*\tud@iftudps[3]{%
+\newcommand*\tud@if@tudheadings[3]{%
\xifinlist{\GetRealPageStyle{#1}}{\tud@ps@list}{#2}{#3}%
}
% \end{macrocode}
% \end{macro}^^A \tud@ps@list
-% \end{macro}^^A \tud@iftudps
-% \begin{option}{ddc}
-% \changes{v2.02}{2014/06/23}{automatische Logowahl}^^A
-% \begin{option}{ddchead}
-% \changes{v2.02}{2014/06/23}{\DDC-Logo entweder in Kopf oder Fuß}^^A
-% \begin{option}{ddcfoot}
-% \changes{v2.02}{2014/06/23}{\DDC-Logo entweder in Kopf oder Fuß}^^A
-% Diese Optionen dienen zur Auswahl des \DDC-Logos auf Seiten mit dem Stil
-% \pgs{tudheadings}. Die Option \opt{ddchead} setzt das Logo dabei immer in den
-% Kopf, wobei ein mit \cs{headlogo} definiertes Zweitlogo gegebenenfalls
-% überschrieben wird. Die Option \opt{ddcfoot} setzt das Logo immer in den Fuß.
-% Mit der Option \opt{ddc} wird das Logo nur in den Kopf gesetzt, wenn kein
-% Zweitlogo angegeben ist. Ist dies jedoch der Fall, wird das Logo stattdessen
-% im Fuß ausgegeben.
+% \end{macro}^^A \tud@if@tudheadings
% \begin{macro}{\if@tud@ddc@internal}
% \changes{v2.02}{2014/07/08}{neu}^^A
-% \begin{macro}{\tud@clearpage@iftudps}
-% \changes{v2.04}{2015/05/31}{neu}^^A
-% \begin{macro}{\tud@pagestyle@iftudps}
-% \changes{v2.04}{2015/05/31}{neu}^^A
% Dieser Schalter wird intern von den Optionen \opt{ddc}, \opt{ddchead} und
-% \opt{ddcfoot} verwendet, um rekursive Aufrufe der optionen zu verhindern.
+% \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
% 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 beider Abarbeitung der Optionen nur noch im
+% Unterfangen definiert, jedoch bei der Abarbeitung der Optionen nur noch im
% Kompatibilitätmodus ausgeführt.
% \begin{macrocode}
-\newcommand*\tud@clearpage@iftudps{%
- \if@tud@ddc@internal\else\if@atdocument%
- \tud@iftudps{\currentpagestyle}{\clearpage}{}%
- \fi\fi%
-}
-\newcommand*\tud@pagestyle@iftudps{%
- \if@tud@ddc@internal\else\if@atdocument%
- \tud@iftudps{\currentpagestyle}{%
- \expandafter\pagestyle\expandafter{\currentpagestyle}%
- }{}%
- \fi\fi%
+%<*option>
+\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>
% \end{macrocode}
-% \end{macro}^^A \tud@clearpage@iftudps
-% \end{macro}^^A \tud@pagestyle@iftudps
-% \end{macro}^^A \if@tud@ddc@internal
+% \end{macro}^^A \tud@comp@clearpage
+% \end{macro}^^A \tud@comp@resetpagestyle
+%
+% \iffalse
+%</class>
+%<*class&option>
+% \fi
+%
+% \begin{option}{ddc}
+% \changes{v2.02}{2014/06/23}{automatische Logowahl}^^A
+% \begin{option}{ddchead}
+% \changes{v2.02}{2014/06/23}{Logo von \DDC entweder in Kopf oder Fuß}^^A
+% \begin{option}{ddcfoot}
+% \changes{v2.02}{2014/06/23}{Logo von \DDC entweder in Kopf oder Fuß}^^A
+% Diese Optionen dienen zur Auswahl des \DDC-Logos auf Seiten mit dem Stil
+% \pgs{tudheadings}. Die Option \opt{ddchead} setzt das Logo dabei immer in den
+% Kopf, wobei ein mit \cs{headlogo} definiertes Zweitlogo gegebenenfalls
+% überschrieben wird. Die Option \opt{ddcfoot} setzt das Logo immer in den Fuß.
+% Mit der Option \opt{ddc} wird das Logo nur in den Kopf gesetzt, wenn kein
+% Zweitlogo angegeben ist. Ist dies jedoch der Fall, wird das Logo stattdessen
+% im Fuß ausgegeben.
% \begin{macro}{\tud@ddc@switch}
% \changes{v2.02}{2014/06/23}{neu}^^A
% Dieses Makro definiert die gültigen Werte für die \DDC-Optionen \opt{ddc},
@@ -1279,27 +1254,27 @@
}
% \end{macrocode}
% \end{macro}^^A \tud@ddc@switch
-% \begin{macro}{\tud@ddc}
+% \begin{macro}{\tud@ddc@auto@num}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% \begin{macro}{\if@tud@ddc@auto}
% \changes{v2.02}{2014/06/23}{neu}^^A
% \begin{macro}{\if@tud@headlogo@option@set}
% \changes{v2.04}{2015/05/31}{neu}^^A
% \begin{macro}{\if@tud@footlogo@option@set}
% \changes{v2.04}{2015/06/01}{neu}^^A
-% \begin{macro}{\if@tud@ddc@auto}
-% \changes{v2.02}{2014/06/23}{neu}^^A
% Die Option \opt{ddc}.
% \begin{macrocode}
\newif\if@tud@headlogo@option@set
\newif\if@tud@footlogo@option@set
\newif\if@tud@ddc@auto
-\newcommand*\tud@ddc{0}
+\newcommand*\tud@ddc@auto@num{0}
\TUD@key{ddc}[true]{%
% \end{macrocode}
% Im Kompatibiltätsmodus wird ein Seitenumbruch erzwungen. Anschließend wird
% die Option abgearbeitet.
% \begin{macrocode}
- \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}%
- \TUD@set@numkey{ddc}{tud@ddc}{\tud@ddc@switch}{#1}%
+ \tud@comp@clearpage%
+ \TUD@set@numkey{ddc}{tud@ddc@auto@num}{\tud@ddc@switch}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
% \end{macrocode}
% Wurde die Option \opt{ddc} intern durch \opt{ddchead} oder \opt{ddcfoot}
@@ -1321,7 +1296,7 @@
% \end{macrocode}
% Sowohl die \DDC-Logos als auch ein mögliches Zweilogo (\cs{headlogo}) werden
% in den entsprechenden Layern durch Boxen ausgegeben. Die beiden Schalter
-% führen zum Erneuern der dazugehörigen Logoboxen. Siehe die Beschreibung der
+% führen zum Erneuern der dazugehörigen Logoboxen. Siehe die Beschreibung der
% Makros \cs{tud@headlogo@option@set} sowie \cs{tud@footlogo@option@set}.
% \begin{macrocode}
\global\@tud@headlogo@option@settrue%
@@ -1331,25 +1306,25 @@
% Abschließend wird im Kompatibilitätsmodus der aktuelle Seitenstil aufgerufen,
% um bei einem geänderten Fuß den notwendigen Satzspiegel zu laden.
% \begin{macrocode}
- \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}%
+ \tud@comp@resetpagestyle%
}
% \end{macrocode}
% \end{macro}^^A \if@tud@footlogo@option@set
% \end{macro}^^A \if@tud@headlogo@option@set
% \end{macro}^^A \if@tud@ddc@auto
-% \end{macro}^^A \tud@ddc
-% \begin{macro}{\tud@ddc@head}
-% \changes{v2.03}{2015/01/22}{Bugfix Seitenstilauswahl bei Deaktivierung}^^A
+% \end{macro}^^A \tud@ddc@auto@num
+% \begin{macro}{\tud@ddc@head@num}
+% \changes{v2.03}{2015/01/22}{Seitenstilauswahl bei Deaktivierung verbessert}^^A
% Die Option \opt{ddchead} dient zum zwingenden Setzen des \DDC-Logos im Kopf
% der Seiten im Stil von \pgs{tudheadings}.
% \begin{macrocode}
-\newcommand*\tud@ddc@head{0}
+\newcommand*\tud@ddc@head@num{0}
\TUD@key{ddchead}[true]{%
% \end{macrocode}
% Der Seitenumbruch im Kompatibilitätsmodus.
% \begin{macrocode}
- \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}%
- \TUD@set@numkey{ddchead}{tud@ddc@head}{\tud@ddc@switch}{#1}%
+ \tud@comp@clearpage%
+ \TUD@set@numkey{ddchead}{tud@ddc@head@num}{\tud@ddc@switch}{#1}%
% \end{macrocode}
% Beim internen Aufruf soll lediglich der Wert des Schlüssels geändert werden.
% Wurde die Option durch den Anwender genutzt, werden die korrespondierenden
@@ -1367,23 +1342,23 @@
% \end{macrocode}
% Das Setzen des Seitenstils im Kompatibilitätsmodus.
% \begin{macrocode}
- \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}%
+ \tud@comp@resetpagestyle%
}
% \end{macrocode}
-% \end{macro}^^A \tud@ddc@head
-% \begin{macro}{\tud@ddc@foot}
-% \changes{v2.03}{2015/01/22}{Bugfix Seitenstilauswahl bei Deaktivierung}^^A
+% \end{macro}^^A \tud@ddc@head@num
+% \begin{macro}{\tud@ddc@foot@num}
+% \changes{v2.03}{2015/01/22}{Seitenstilauswahl bei Deaktivierung verbessert}^^A
% Die Option \opt{ddcfoot} dient zum zwingenden Setzen des \DDC-Logos im Fuß
% der Seiten im Stil von \pgs{tudheadings}. Das Vorgehen beim Umschalten des
% Schlüssels ist äquivalent zur Option \opt{ddchead}
% \begin{macrocode}
-\newcommand*\tud@ddc@foot{0}
+\newcommand*\tud@ddc@foot@num{0}
\TUD@key{ddcfoot}[true]{%
% \end{macrocode}
% Der Seitenumbruch im Kompatibilitätsmodus.
% \begin{macrocode}
- \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}%
- \TUD@set@numkey{ddcfoot}{tud@ddc@foot}{\tud@ddc@switch}{#1}%
+ \tud@comp@clearpage%
+ \TUD@set@numkey{ddcfoot}{tud@ddc@foot@num}{\tud@ddc@switch}{#1}%
% \end{macrocode}
% Beim internen Aufruf soll lediglich der Wert des Schlüssels geändert werden.
% Wurde die Option durch den Anwender genutzt, werden die korrespondierenden
@@ -1401,15 +1376,24 @@
% \end{macrocode}
% Das Setzen des Seitenstils im Kompatibilitätsmodus.
% \begin{macrocode}
- \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}%
+ \tud@comp@resetpagestyle%
}
% \end{macrocode}
-% \end{macro}^^A \tud@ddc@foot
+% \end{macro}^^A \tud@ddc@foot@num
+% \end{option}^^A ddcfoot
+% \end{option}^^A ddchead
+% \end{option}^^A ddc
+%
+% \iffalse
+%</class&option>
+%<*class&body>
+% \fi
+%
% \begin{macro}{\tud@ddc@check}
% \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
+% 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.
% 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
@@ -1419,15 +1403,15 @@
% bzw. \cs{@tempb} geschrieben und kann anschließend ausgewertet werden.
% \begin{macrocode}
\newcommand*\tud@ddc@check{%
- \let\@tempa\tud@ddc@head%
- \let\@tempb\tud@ddc@foot%
+ \let\@tempa\tud@ddc@head@num%
+ \let\@tempb\tud@ddc@foot@num%
\if@tud@ddc@auto%
- \ifdefvoid{\@headlogo}{%
- \let\@tempa\tud@ddc%
+ \ifdefvoid{\tud@headlogo@filename}{%
+ \let\@tempa\tud@ddc@auto@num%
\let\@tempb\z@%
}{%
\let\@tempa\z@%
- \let\@tempb\tud@ddc%
+ \let\@tempb\tud@ddc@auto@num%
}%
\fi%
% \end{macrocode}
@@ -1435,44 +1419,19 @@
% Logos im Fuß die Variable \cs{@tempb} auf einen negativen Wert gesetzt, um
% auch ohne die Ausgabe eines \DDC-Logos den Fußbereich zu vergrößern.
% \begin{macrocode}
- \tud@ifverlower{2.03}{%
+ \tud@if@v@lower{2.03}{%
\ifnum\@tempb=\z@\relax%
- \ifdefvoid{\@footlogo}{}{\let\@tempb\m@ne}%
+ \ifdefvoid{\tud@footlogo@filenames}{}{\let\@tempb\m@ne}%
\fi%
}{}%
}
% \end{macrocode}
% \end{macro}^^A \tud@ddc@check
-% \end{option}^^A ddcfoot
-% \end{option}^^A ddchead
-% \end{option}^^A ddc
-% \begin{option}{extrabottommargin}
-% \begin{length}{\tud@dim@extrabottommargin}
-% Diese Option dient dazu, die Höhe des Fußes anzupassen. Dies ist jedoch nur
-% möglich, wenn der Satzspiegel des \CDs verwendet wird. Kommt \pkg{typearea}
-% zum Einsatz, ist die Option wirkungslos.
-% \begin{macrocode}
-\newlength\tud@dim@extrabottommargin
-\TUD@key{extrabottommargin}{%
- \TUD@set@lengthkey{extrabottommargin}{\tud@dim@extrabottommargin}{#1}%
- \ifx\FamilyKeyState\FamilyKeyStateProcessed%
- \if@atdocument\tud@geometry@process\fi%
- \fi%
-}
-% \end{macrocode}
-% \end{length}^^A \tud@dim@extrabottommargin
-% \end{option}^^A extrabottommargin
-%
-% \iffalse
-%</class&option>
-%<*class&body>
-% \fi
-%
-% \begin{macro}{\tud@logo@main@black}
+% \begin{macro}{\tud@layer@main@black}
% \changes{v2.04}{2015/05/31}{neu}^^A
-% \begin{macro}{\tud@logo@main@HKS41}
+% \begin{macro}{\tud@layer@main@HKS41}
% \changes{v2.04}{2015/05/31}{neu}^^A
-% \begin{macro}{\tud@logo@main@white}
+% \begin{macro}{\tud@layer@main@white}
% \changes{v2.04}{2015/05/31}{neu}^^A
% Diese drei Boxen werden für das Logo der \TnUD reserviert. Abhängig von der
% gewählten Option des Layouts und der Seitenfarbe wird eine der Logos in der
@@ -1482,19 +1441,19 @@
\tud@newlayerbox{main@HKS41}
\tud@newlayerbox{main@white}
% \end{macrocode}
-% \end{macro}^^A \tud@logo@main@white
-% \end{macro}^^A \tud@logo@main@HKS41
-% \end{macro}^^A \tud@logo@main@black
+% \end{macro}^^A \tud@layer@main@white
+% \end{macro}^^A \tud@layer@main@HKS41
+% \end{macro}^^A \tud@layer@main@black
% \begin{macro}{\tud@mainlogo@set}
% \changes{v2.04}{2015/05/31}{neu}^^A
% \begin{macro}{\if@tud@mainlogo@wrn}
% \changes{v2.04}{2015/05/31}{neu}^^A
-% \begin{length}{\tud@mainlogoheight}
+% \begin{length}{\tud@len@mainlogoheight}
% \changes{v2.04}{2015/05/31}{neu}^^A
% \begin{macro}{\tud@mainlogo@wrn}
% \changes{v2.02}{2014/06/23}{Umbenennen von \cs{tud@head@logo@wrn}}^^A
% \begin{macrocode}
-\newlength\tud@mainlogoheight
+\newlength\tud@len@mainlogoheight
\newcommand*\tud@mainlogo@wrn[1]{}
% \end{macrocode}
% Dieses Makro setzt zu einen das Logo der \TnUD als auch~-- durch den Aufruf
@@ -1506,12 +1465,12 @@
\newif\if@tud@mainlogo@set
\newcommand*\tud@mainlogo@set{%
\if@tud@mainlogo@set%
- \def\@tempa{\includegraphics[keepaspectratio,width=\tud@dim@logowidth]}%
+ \def\@tempa{\includegraphics[keepaspectratio,width=\tud@len@logowidth]}%
\tud@savelayerbox{main@black}{\@tempa{TUD-black}}%
\tud@savelayerbox{main@HKS41}{\@tempa{TUD-blue}}%
\tud@savelayerbox{main@white}{\@tempa{TUD-white}}%
- \setlength\tud@mainlogoheight{\ht\tud@logo@main@black}%
- \global\tud@mainlogoheight=\tud@mainlogoheight%
+ \settoheight\tud@len@mainlogoheight{\tud@uselayerbox{main@black}}%
+ \global\tud@len@mainlogoheight=\tud@len@mainlogoheight%
% \end{macrocode}
% Es soll sichergestellt werden, dass das bei der Verwendung von \pkg{typearea}
% über den Satzspiegel in den Seitenrand hinausragende TUD-Logo nicht außerhalb
@@ -1522,7 +1481,7 @@
% \begin{macrocode}
\gdef\tud@mainlogo@wrn##1{%
\ifdim##1<\ta@bcor\relax%
- \ClassWarning{\TUDClassName}{%
+ \ClassWarning{\TUD@Class@Name}{%
The selected page layout means that the\MessageBreak%
logo of TUD extends beyond the printing area.\MessageBreak%
The inner margin is smaller than BCOR\MessageBreak%
@@ -1538,44 +1497,39 @@
% den Boxen in der richtigen Größe neu zu setzen.
% \begin{macrocode}
\tud@headlogo@set%
- \tud@footlogo@set%
+ \@tud@footlogo@option@settrue%
+ \tud@footlogo@option@set%
\global\@tud@mainlogo@setfalse%
\fi%
}
% \end{macrocode}
% \end{macro}^^A \tud@mainlogo@wrn
-% \end{length}^^A \tud@mainlogoheight
+% \end{length}^^A \tud@len@mainlogoheight
% \end{macro}^^A \if@tud@mainlogo@set
% \end{macro}^^A \tud@mainlogo@set
% \begin{macro}{\tud@mainlogo@use}
% \changes{v2.04}{2015/05/31}{neu}^^A
-% \begin{macro}{\tud@mainlogo}
-% \changes{v2.04}{2015/05/31}{entfernt}^^A
-% \begin{macro}{\tud@@mainlogo}
-% \changes{v2.04}{2015/05/31}{entfernt}^^A
% Hiermit erfolgt die Ausgabe der gespeicherten Boxen für das Logo der \TnUD,
% wobei \cs{tud@head@logocolor} die Farbe festlegt.
% \begin{macrocode}
\newcommand*\tud@mainlogo@use{%
\tud@mainlogo@wrn{%
- \dimexpr\oddsidemargin+1in+\tud@dim@logox-\tud@dim@widemargin\relax%
+ \dimexpr\oddsidemargin+1in+\tud@len@logox-\tud@len@widemargin\relax%
}%
\tud@uselayerbox{main@\tud@head@logocolor}%
}
% \end{macrocode}
-% \end{macro}^^A \tud@@mainlogo
-% \end{macro}^^A \tud@mainlogo
% \end{macro}^^A \tud@mainlogo@use
-% \begin{macro}{\tud@logo@head@black}
+% \begin{macro}{\tud@layer@head@black}
% \changes{v2.04}{2015/05/31}{neu}^^A
-% \begin{macro}{\tud@logo@head@HKS41}
+% \begin{macro}{\tud@layer@head@HKS41}
% \changes{v2.04}{2015/05/31}{neu}^^A
-% \begin{macro}{\tud@logo@head@white}
+% \begin{macro}{\tud@layer@head@white}
% \changes{v2.04}{2015/05/31}{neu}^^A
-% \begin{macro}{\tud@logo@head@option}
+% \begin{macro}{\tud@layer@head@option}
% \changes{v2.04}{2015/05/31}{neu}^^A
% Diese Boxen werden für das \DDC-Logo und das Zweitlogo im Kopf definiert. Der
-% Box \cs{tud@logo@head@option} fäält dabei die Rolle zu, entweder ein~-- per
+% Box \cs{tud@layer@head@option} fäält dabei die Rolle zu, entweder ein~-- per
% Option gewähltes~-- \DDC-Logo oder aber das mit \cs{headlogo} angegebene
% Zweitlogo zusichern und auszugeben. Die anderen drei Boxen speichern das Logo
% von \DDC in den drei für die unterschiedlichen Layoutausprägung benötigten
@@ -1586,32 +1540,32 @@
\tud@newlayerbox{head@white}
\tud@newlayerbox{head@option}
% \end{macrocode}
-% \end{macro}^^A \tud@logo@head@option
-% \end{macro}^^A \tud@logo@head@white
-% \end{macro}^^A \tud@logo@head@HKS41
-% \end{macro}^^A \tud@logo@head@black
+% \end{macro}^^A \tud@layer@head@option
+% \end{macro}^^A \tud@layer@head@white
+% \end{macro}^^A \tud@layer@head@HKS41
+% \end{macro}^^A \tud@layer@head@black
% \begin{macro}{\headlogo}
% \changes{v2.02}{2014/06/23}{Anpassung an automatische Wahl des \DDC-Logos}^^A
-% \begin{macro}{\@headlogo}
+% \begin{macro}{\tud@headlogo@filename}
% \changes{v2.02}{2014/06/23}{neu}^^A
-% \begin{macro}{\@@headlogo}
+% \begin{macro}{\tud@headlogo@fileoptions}
% \changes{v2.02}{2014/06/23}{neu}^^A
% \begin{macro}{\tud@headlogo@wrn}
% \changes{v2.02}{2014/06/23}{neu}^^A
-% Diese Befehle dienen zum Einbinden eines Zweitlogos im Kopf bündig zum
-% rechten Seitenrand. Bei der Angabe des Logos mit
-% \cs{headlogo}\oarg{Optionsliste}\marg{Dateiname} wird der Dateiname in
-% \cs{@headlogo} und das optionale Argument in \cs{@@headlogo}
-% gespeichert, damit diese später über \cs{tud@headlogo} an den Befehl
-% \cs{includegraphics} weitergereicht werden können.
-% \begin{macrocode}
-\newcommand*\@headlogo{}
-\newcommand*\@@headlogo{}
+% Diese Befehle dienen zum Einbinden eines möglichen Zweitlogos im Kopf bündig
+% zum rechten Seitenrand. Mit \cs{headlogo}\oarg{Optionsliste}\marg{Dateiname}
+% werden der Dateiname und das optionale Argument in \cs{tud@headlogo@filename}
+% bzw. \cs{tud@headlogo@fileoptions} gespeichert, damit diese später bei der
+% tatsächlichen Verwendung des Logos mit dem Makro \cs{tud@headlogo@set} an den
+% Befehl \cs{includegraphics} weitergereicht werden können.
+% \begin{macrocode}
+\newcommand*\tud@headlogo@filename{}
+\newcommand*\tud@headlogo@fileoptions{}
\newcommand*\tud@headlogo@wrn{}
\newcommand*\headlogo[2][]{%
- \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}%
- \def\@headlogo{#2}%
- \def\@@headlogo{#1}%
+ \tud@comp@clearpage%
+ \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
@@ -1620,30 +1574,31 @@
\global\@tud@headlogo@option@settrue%
\global\@tud@footlogo@option@settrue%
\gdef\tud@headlogo@wrn{%
- \ClassWarning{\TUDClassName}{%
- The secondary logo `\string\headlogo{\@headlogo}' is\MessageBreak%
- overwritten with DDC logo. Maybe you should use\MessageBreak%
- `ddcfoot' or better `ddc' instead of `ddchead'%
+ \ClassWarning{\TUD@Class@Name}{%
+ Secondary logo `\string\headlogo{\tud@headlogo@filename}'\MessageBreak%
+ is overwritten with DDC logo. Maybe you should\MessageBreak%
+ use `ddcfoot' or better `ddc' instead of `ddchead'%
}%
\global\let\tud@headlogo@wrn\relax%
}%
- \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}%
+ \tud@comp@resetpagestyle%
}
% \end{macrocode}
% \end{macro}^^A \tud@headlogo@wrn
-% \end{macro}^^A \@@headlogo
-% \end{macro}^^A \@headlogo
+% \end{macro}^^A \tud@headlogo@fileoptions
+% \end{macro}^^A \tud@headlogo@filename
% \end{macro}^^A \headlogo
% \begin{macro}{\tud@headlogo@set}
-% \changes{v2.04}{2015/05/31}{neu}^^A% \DDC-Logos übernommen und erweitert}^^A
+% \changes{v2.04}{2015/05/31}{neu}^^A
% \begin{macro}{\tud@headlogo@option@set}
% \changes{v2.04}{2015/05/31}{neu}^^A
+% \changes{v2.05}{2015/07/27}{Bugfix für Dateien in Unterordnern}^^A
% Äquivalent zum Logo der \TnUD werden auch für das Logo von \DDC drei
% Farbvarianten erstellt.
% \begin{macrocode}
\newcommand*\tud@headlogo@set{%
\def\@tempa{%
- \includegraphics[keepaspectratio,totalheight=\tud@mainlogoheight]%
+ \includegraphics[keepaspectratio,totalheight=\tud@len@mainlogoheight]%
}%
\tud@savelayerbox{head@black}{\@tempa{DDC-24}}%
\tud@savelayerbox{head@HKS41}{\@tempa{DDC-27}}%
@@ -1661,28 +1616,33 @@
\def\@tempc##1##2{%
\tud@savelayerbox{head@option}{%
\includegraphics[%
- keepaspectratio,totalheight=\tud@mainlogoheight,##2%
- ]{\trim@spaces{##1}}%
+ keepaspectratio,totalheight=\tud@len@mainlogoheight,##2%
+ ]{##1}%
}%
}%
\tud@savelayerbox{head@option}{}%
\tud@ddc@check%
- \ifcase\@tempa\relax% \tud@ddc@head=false
- \ifdefvoid{\@headlogo}{}{%
- \protected@edef\@tempb{\noexpand\@tempc{\@headlogo}{\@@headlogo}}%
+ \ifcase\@tempa\relax% \tud@ddc@head@num=false
+ \ifdefvoid{\tud@headlogo@filename}{}{%
+ \protected@edef\tud@headlogo@filename{%
+ \expandafter\trim@spaces\expandafter{\tud@headlogo@filename}%
+ }%
+ \protected@edef\@tempb{%
+ \noexpand\@tempc{\tud@headlogo@filename}{\tud@headlogo@fileoptions}%
+ }%
\@tempb%
}%
- \or\or% \tud@ddc@head=color
+ \or\or% \tud@ddc@head@num=color
\@tempc{DDC-03}{}%
- \or% \tud@ddc@head=colorblack
+ \or% \tud@ddc@head@num=colorblack
\@tempc{DDC-09}{}%
- \or% \tud@ddc@head=gray
+ \or% \tud@ddc@head@num=gray
\@tempc{DDC-21}{}%
- \or% \tud@ddc@head=black
+ \or% \tud@ddc@head@num=black
\@tempc{DDC-24}{}%
- \or% \tud@ddc@head=blue
+ \or% \tud@ddc@head@num=blue
\@tempc{DDC-27}{}%
- \or% \tud@ddc@head=white
+ \or% \tud@ddc@head@num=white
\@tempc{DDC-30}{}%
\fi%
\global\@tud@headlogo@option@setfalse%
@@ -1697,11 +1657,11 @@
% werden diese in einer Box vertikal zentriert.
% \begin{macrocode}
\newcommand*\tud@headlogo@use{%
- \tud@vlayerbox{\tud@mainlogoheight}{%
+ \tud@vlayerbox{\tud@len@mainlogoheight}{%
\vss%
\hbox{%
\tud@ddc@check%
- \ifnum\@tempa=\@ne\relax% \tud@ddc@head=true
+ \ifnum\@tempa=\@ne\relax% \tud@ddc@head@num=true
\tud@uselayerbox{head@\tud@head@logocolor}%
\else%
\tud@uselayerbox{head@option}%
@@ -1709,22 +1669,22 @@
}%
\vss%
}{%
- The given `\string\headlogo{\@headlogo}' is too large.%
- }
- \ifdefvoid{\@headlogo}{}{%
+ The given `\string\headlogo{\tud@headlogo@filename}' is too large.%
+ }%
+ \ifdefvoid{\tud@headlogo@filename}{}{%
\tud@ddc@check%
\ifnum\@tempa>\z@\relax\tud@headlogo@wrn\fi%
}%
}
% \end{macrocode}
% \end{macro}^^A \tud@headlogo@use
-% \begin{macro}{\tud@logo@foot@black}
+% \begin{macro}{\tud@layer@foot@black}
% \changes{v2.04}{2015/06/01}{neu}^^A
-% \begin{macro}{\tud@logo@foot@HKS41}
+% \begin{macro}{\tud@layer@foot@HKS41}
% \changes{v2.04}{2015/06/01}{neu}^^A
-% \begin{macro}{\tud@logo@foot@white}
+% \begin{macro}{\tud@layer@foot@white}
% \changes{v2.04}{2015/06/01}{neu}^^A
-% \begin{macro}{\tud@logo@foot@option}
+% \begin{macro}{\tud@layer@foot@option}
% \changes{v2.04}{2015/06/01}{neu}^^A
% Im Fußbereich kann das \DDC-Logo rechtsbündig ausgegeben. Hierfür werden die
% entsprechenden Boxen für alle Farbvarianten definiert. Diese werden genutzt,
@@ -1736,54 +1696,65 @@
\tud@newlayerbox{foot@white}
\tud@newlayerbox{foot@option}
% \end{macrocode}
-% \end{macro}^^A \tud@logo@foot@option
-% \end{macro}^^A \tud@logo@foot@white
-% \end{macro}^^A \tud@logo@foot@HKS41
-% \end{macro}^^A \tud@logo@foot@black
-% \begin{length}{\footlogoheight}
-% \changes{v2.03}{2015/01/27}{neu}^^A
-% \begin{length}{\tud@footlogoheight}
+% \end{macro}^^A \tud@layer@foot@option
+% \end{macro}^^A \tud@layer@foot@white
+% \end{macro}^^A \tud@layer@foot@HKS41
+% \end{macro}^^A \tud@layer@foot@black
+%
+% \iffalse
+%</class&body>
+%<*class>
+% \fi
+%
+% \begin{option}{footlogoheight}
+% \changes{v2.05}{2016/06/16}{neu}^^A
+% \begin{macro}{\tud@dim@footlogoheight}
% \changes{v2.04}{2015/06/01}{neu}^^A
-% \begin{macro}{\tud@footlogoheight@set}
-% \changes{v2.04}{2015/04/21}{neu}^^A
-% Für den Anwender besteht mit der Länge \cs{footlogoheight} die Möglichkeit,
-% die Höhe aller Logos im Fußbereich~-- also \DDC-Logo sowie weitere, mit dem
-% Befehl \cs{footlogo} angegebene Logos~-- zentral festzulegen. Dabei wird
-% die Länge nicht direkt genutzt, sondern intern \cs{tud@footlogoheight}
-% verwendet. mit \cs{tud@footlogoheight@set} wird geprüft, ob der Anwender
-% \cs{footlogoheight} tatsächlich angepasst hat. Sollte dies der Fall sein,
-% wird \cs{tud@footlogoheight@set} auf diesen Wert gesetzt, andernfalls werden
-% die hinterlegten Standardwerte verwendet.
-% \begin{macrocode}
-\newlength\footlogoheight
-\newlength\tud@footlogoheight
-\newcommand*\tud@footlogoheight@set{%
- \ifdim\footlogoheight=\z@\relax%
- \tud@ifverlower{2.03}{%
- \setlength\tud@footlogoheight{.6\tud@dim@topmargin}%
- }{%
- \setlength\tud@footlogoheight{\tud@mainlogoheight}%
- }%
- \else%
-% \end{macrocode}
-% Der Grund für die Verwendung einer internen Länge \cs{tud@footlogoheight}
-% liegt darin begründet, dass eine Änderung der Länge \cs{footlogoheight} eine
-% Erneuerung der genutzten Boxen benötigt. Die Prüfung und ggf. das Setzen des
-% entsprechenden Schalters geschieht hier.
-% \begin{macrocode}
- \ifdim\footlogoheight=\tud@footlogoheight\relax\else%
- \setlength\tud@footlogoheight{\footlogoheight}%
- \global\@tud@footlogo@option@settrue%
+% Für den Anwender besteht mit der Option \opt{footlogoheight} die Möglichkeit,
+% die Höhe aller Logos im Fußbereich~-- also eventuell das \DDC-Logo sowie
+% vom Anwender mit dem Befehl \cs{footlogo} angegebene Logos~-- zentral
+% festzulegen. Dabei wird der gewünschte Wert in \cs{tud@dim@footlogoheight}
+% abgelegt.
+% \begin{macrocode}
+%<*option>
+\newcommand*\tud@dim@footlogoheight{}
+\let\tud@dim@footlogoheight\relax
+\TUD@key{footlogoheight}{%
+ \TUD@set@dimenkey{footlogoheight}{\tud@dim@footlogoheight}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \ifdim\dimexpr\tud@dim@footlogoheight\relax<\z@\relax%
+ \def\@tempa-##1\@nil{\def\tud@dim@footlogoheight{##1}}%
+ \@tempa#1\@nil%
\fi%
+ \global\@tud@footlogo@option@settrue%
\fi%
- \global\tud@footlogoheight=\tud@footlogoheight%
}
+%</option>
% \end{macrocode}
-% \end{macro}^^A \tud@footlogoheight@set
-% \end{length}^^A \tud@footlogoheight
-% \end{length}^^A \footlogoheight
-% \begin{macro}{\tud@footlogo@set}
-% \changes{v2.04}{2015/06/01}{neu}^^A
+% Da sich mit der Version~v2.03 die Standardhöhe des \DDC-Logos im Fußbereich
+% geändert hat, wird dieser Wert abhängig von der Einstellung für die Option
+% \opt{tudscrver} nach der Abarbeitung der Optionen am Ende der Klasse gesetzt.
+% \begin{macrocode}
+%<*body>
+\AtEndOfClass{%
+ \ifdefvoid{\tud@dim@footlogoheight}{%
+ \tud@if@v@lower{2.03}{%
+ \def\tud@dim@footlogoheight{.6\tud@len@topmargin}%
+ }{%
+ \def\tud@dim@footlogoheight{\tud@len@mainlogoheight}%
+ }%
+ }{}%
+}
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \tud@dim@footlogoheight
+% \end{option}^^A footlogoheight
+%
+% \iffalse
+%</class>
+%<*class&body>
+% \fi
+%
% \begin{macro}{\tud@footlogo@ddc@set}
% \changes{v2.04}{2015/06/01}{neu}^^A
% \begin{macro}{\tud@footlogo@option@set}
@@ -1794,39 +1765,32 @@
% das Makro \cs{tud@footlogo@ddc@set} definiert.
% \begin{macrocode}
\newcommand*\tud@footlogo@ddc@set[2]{%
- \tud@footlogoheight@set%
\tud@savelayerbox{foot@#1}{%
- \includegraphics[keepaspectratio,totalheight=\tud@footlogoheight]{#2}%
+ \includegraphics[keepaspectratio,totalheight=\tud@dim@footlogoheight]{#2}%
}%
}
% \end{macrocode}
-% anschließend erfolgt das eigentliche Setzen der Boxen.
-% \begin{macrocode}
-\newcommand*\tud@footlogo@set{%
- \tud@footlogo@ddc@set{black}{DDC-22}%
- \tud@footlogo@ddc@set{HKS41}{DDC-25}%
- \tud@footlogo@ddc@set{white}{DDC-28}%
- \tud@footlogo@option@set%
-}
-% \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.
% \begin{macrocode}
\newcommand*\tud@footlogo@option@set{%
\if@tud@footlogo@option@set%
+ \tud@footlogo@ddc@set{black}{DDC-22}%
+ \tud@footlogo@ddc@set{HKS41}{DDC-25}%
+ \tud@footlogo@ddc@set{white}{DDC-28}%
\tud@ddc@check%
- \ifcase\@tempb\relax\or\or% \tud@ddc@foot=color
+ \ifcase\@tempb\relax\or\or% \tud@ddc@foot@num=color
\tud@footlogo@ddc@set{option}{DDC-01}%
- \or% \tud@ddc@foot=colorblack
+ \or% \tud@ddc@foot@num=colorblack
\tud@footlogo@ddc@set{option}{DDC-07}%
- \or% \tud@ddc@foot=gray
+ \or% \tud@ddc@foot@num=gray
\tud@footlogo@ddc@set{option}{DDC-19}%
- \or% \tud@ddc@foot=black
+ \or% \tud@ddc@foot@num=black
\tud@footlogo@ddc@set{option}{DDC-22}%
- \or% \tud@ddc@foot=blue
+ \or% \tud@ddc@foot@num=blue
\tud@footlogo@ddc@set{option}{DDC-25}%
- \or% \tud@ddc@foot=white
+ \or% \tud@ddc@foot@num=white
\tud@footlogo@ddc@set{option}{DDC-28}%
\fi%
\global\@tud@footlogo@option@setfalse%
@@ -1835,68 +1799,59 @@
% \end{macrocode}
% \end{macro}^^A \tud@footlogo@option@set
% \end{macro}^^A \tud@footlogo@ddc@set
-% \end{macro}^^A \tud@footlogo@set
% \begin{macro}{\tud@footlogo@ddc@use}
% \changes{v2.04}{2015/06/01}{neu}^^A
% Die Ausgabe des \DDC-Logos im Fuß erfolgt mit diesem Makro. Dabei wird dieses
% in einer Box optisch~-- leicht nach oben verschoben~-- vertikal zentriert.
% \begin{macrocode}
-\newcommand*\tud@footlogo@ddc@use[1]{%
- \tud@vlayerbox{#1}{%
- \vss%
- \hbox{%
- \tud@ddc@check%
- \ifcase\@tempb\relax\or% \tud@ddc@foot=true
- \tud@uselayerbox{foot@\tud@foot@logocolor}%
- \else%
- \tud@uselayerbox{foot@option}%
- \fi%
+\newcommand*\tud@footlogo@ddc@use[2]{%
+ \tud@ddc@check%
+ \ifcase\@tempb\relax\else% \tud@ddc@foot@num=!false
+ \tud@footlogo@option@set%
+ \setbox\z@\hbox{%
+ \tud@vlayerbox{#1}{%
+ \vss%
+ \hbox to #2{%
+ \hss%
+ \ifcase\@tempb\relax\or% \tud@ddc@foot@num=true
+ \tud@uselayerbox{foot@\tud@foot@logocolor}%
+ \else%
+ \tud@uselayerbox{foot@option}%
+ \fi%
+ }%
+ \vss\vss%
+ }{%
+ 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%
+ Alternatively you can enlarge the bottom margin\MessageBreak%
+ by using option `extrabottommargin'.%
+ \fi%
+ }%
}%
- \vss\vss%
- }{%
- The `\string\footlogoheight' (\the\footlogoheight) is too\MessageBreak%
- high. You should reduce this length.%
- \ifcase\tud@geometry\relax\else% true/symmetric/twoside
- \MessageBreak%
- Alternatively you can enlarge the bottom margin\MessageBreak%
- by using option `extrabottommargin'.%
- \fi%
- }%
+% \end{macrocode}
+% Nach der Ausgabe wird ein begativer horizontaler Abstand in der Boxbreite
+% eingefügt, damit nachfolgende Boxen überlagert werden können.
+% \begin{macrocode}
+ \usebox\z@\hspace*{-\wd\z@}%
+ \fi%
}
% \end{macrocode}
% \end{macro}^^A \tud@footlogo@ddc@use
-% \begin{macro}{\tud@ddclogo}
-% \changes{v2.02}{2014/06/23}{neu}^^A
-% \changes{v2.04}{2015/06/01}{entfernt}^^A
-% \begin{macro}{\tud@@ddclogo}
-% \changes{v2.02}{2014/06/23}{\cs{tud@foot@logo} umbenannt}^^A
-% \changes{v2.03}{2015/01/13}{Größe des Logos kompatibilitätsabhängig}^^A
-% \changes{v2.04}{2015/06/01}{entfernt}^^A
-% \begin{macro}{\tud@ddc@sethead}
-% \changes{v2.02}{2014/06/23}{entfernt}^^A
-% \begin{macro}{\tud@ddc@setfoot}
-% \changes{v2.02}{2014/06/23}{entfernt}^^A
-% Diese Befehle wurden mit der \TUDScript-Version~v2.02 bzw. v2.04~-- bei der
-% Umstellung auf die Ausgabe mit Boxen~-- entfernt. Für deren Funktionalität
-% sind seitdem die Makros \cs{tud@footlogo@set} und \cs{tud@footlogo@ddc@use}
-% zuständig.
-% \end{macro}^^A \tud@ddc@setfoot
-% \end{macro}^^A \tud@ddc@sethead
-% \end{macro}^^A \tud@@ddclogo
-% \end{macro}^^A \tud@ddclogo
-% \begin{macro}{\tud@logo@foot@cmd}
+% \begin{macro}{\tud@layer@foot@cmd}
% \changes{v2.04}{2015/06/01}{neu}^^A
% Für das Setzen von benutzerdefinierten Logos im Fußbereich wird diese Box
% verwendet.
% \begin{macrocode}
\tud@newlayerbox{foot@cmd}
% \end{macrocode}
-% \end{macro}^^A \tud@logo@foot@cmd
+% \end{macro}^^A \tud@layer@foot@cmd
% \begin{macro}{\footlogo}
% \changes{v2.03}{2015/01/27}{neu}^^A
-% \begin{macro}{\@footlogo}
+% \begin{macro}{\tud@footlogo@filenames}
% \changes{v2.03}{2015/01/27}{neu}^^A
-% \begin{macro}{\@@footlogo}
+% \begin{macro}{\tud@footlogo@fileoptions}
% \changes{v2.03}{2015/01/27}{neu}^^A
% \begin{macro}{\footlogosep}
% \changes{v2.03}{2015/01/27}{neu}^^A
@@ -1904,19 +1859,19 @@
% Fuß angegeben werden, die mit \cs{footlogosep} voneinander getrennt werden.
% \begin{macrocode}
\newcommand*\footlogosep{\hfill}
-\newcommand*\@footlogo{}
-\newcommand*\@@footlogo{}
+\newcommand*\tud@footlogo@filenames{}
+\newcommand*\tud@footlogo@fileoptions{}
\newcommand*\footlogo[2][]{%
- \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}%
- \def\@footlogo{#2}%
- \def\@@footlogo{#1}%
+ \tud@comp@clearpage%
+ \renewcommand*\tud@footlogo@filenames{#2}%
+ \renewcommand*\tud@footlogo@fileoptions{#1}%
\global\@tud@footlogo@cmd@settrue%
- \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}%
+ \tud@comp@resetpagestyle%
}
% \end{macrocode}
% \end{macro}^^A \footlogosep
-% \end{macro}^^A \@@footlogo
-% \end{macro}^^A \@footlogo
+% \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
@@ -1924,26 +1879,27 @@
% \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
-% der Box \cs{tud@logo@foot@cmd} gespeichert.
+% der Box \cs{tud@layer@foot@cmd} gespeichert.
% \begin{macrocode}
\newif\if@tud@footlogo@cmd@set
\newcommand*\tud@footlogo@cmd@set[2]{%
\if@tud@footlogo@cmd@set%
- \tud@footlogoheight@set%
\tud@savelayerbox{foot@cmd}{%
\hbox to #2{%
% \end{macrocode}
% Hier erfolgt die eigentliche Abarbeitung der mit \cs{footlogo} angegeben
% Liste der benutzerdefinierten Logos. In \cs{@tempa} wird nach dem ersten
-% Durchlauf der Schleife der Inhalkt von \cs{footlogosep} gespeichert und nach
+% Durchlauf der Schleife der Inhalt von \cs{footlogosep} gespeichert und nach
% dem ersten Logo vor jedem weiteren eingefügt. Um versehentlich angegebene
% Leerzeichen zu entfernen, werden diese mit \cs{trim@spaces} entfernt.
% \begin{macrocode}
\let\@tempa\relax%
- \@for\@tempb:=\@footlogo\do{%
+ \@for\@tempb:=\tud@footlogo@filenames\do{%
\edef\@tempb{\expandafter\trim@spaces\expandafter{\@tempb}}%
\@tempa%
\ifx\@tempb\@empty\else%
@@ -1959,7 +1915,7 @@
}
% \end{macrocode}
% Der Befehl \cs{tud@footlogo@cmd@set} wird genutzt, um die einzelnen Logos für
-% den Fuß nacheinander in der Box \cs{tud@logo@foot@cmd} zu setzen.
+% den Fuß nacheinander in der Box \cs{tud@layer@foot@cmd} zu setzen.
% \begin{macrocode}
\newcommand*\tud@footlogo@cmd@@set[2]{%
\begingroup%
@@ -1987,15 +1943,17 @@
% \end{macrocode}
% In jedem Fall werden die Grundeinstellungen als erstes ausgeführt.
% \begin{macrocode}
- \preto\@@footlogo{%
- keepaspectratio,totalheight=\tud@footlogoheight,%
+ \preto\tud@footlogo@fileoptions{%
+ keepaspectratio,totalheight=\tud@dim@footlogoheight,%
}%
% \end{macrocode}
% Wurden tatsächlich inidviduelle Parameter übergeben, so werden diese als
% letztes ausgeführt, um vorige Einstellungen überschreiben zu können.
% \begin{macrocode}
- \appto\@@footlogo{\@tempb}%
- \protected@edef\@tempc{\noexpand\includegraphics[\@@footlogo]{\@tempa}}%
+ \appto\tud@footlogo@fileoptions{\@tempb}%
+ \protected@edef\@tempc{%
+ \noexpand\includegraphics[\tud@footlogo@fileoptions]{\@tempa}%
+ }%
% \end{macrocode}
% Die Logos werden~-- wie auch das \DDC-Logo im Fuß~-- individuell optisch
% vertikal zentriert.
@@ -2007,150 +1965,314 @@
}
% \end{macrocode}
% \end{macro}^^A \if@tud@footlogo@cmd@set
+% \end{macro}^^A \tud@footlogo@cmd@@set
% \end{macro}^^A \tud@footlogo@cmd@set
-% \begin{macro}{\tud@footlogo@cmd@@use}
+% \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
% den Fuß innerhalb der Ebene \val{tudheadings.foot.content} auszugeben.
% \begin{macrocode}
-\newcommand*\tud@footlogo@cmd@use{\tud@uselayerbox{foot@cmd}}%
+\newcommand*\tud@footlogo@cmd@use[2]{%
+ \tud@footlogo@option@set%
+ \tud@footlogo@cmd@set{#1}{#2}%
+ \setbox\z@\hbox{\tud@uselayerbox{foot@cmd}}%
+ \usebox\z@\hspace*{-\wd\z@}%
+}
% \end{macrocode}
% \end{macro}^^A \tud@footlogo@cmd@use
% \begin{KOMAfont}{tudheadings}
% \changes{v2.04}{2015/04/21}{neu}^^A
% \begin{macro}{\footcontent}
% \changes{v2.04}{2015/04/21}{neu}^^A
-% \begin{macro}{\@footcontent}
+% \begin{macro}{\tud@footcontent@do}
% \changes{v2.04}{2015/04/21}{neu}^^A
-% \begin{macro}{\@@footcontent}
+% \begin{macro}{\tud@footcontent@@do}
% \changes{v2.04}{2015/04/21}{neu}^^A
-% \begin{macro}{\footcontent@font}
+% \changes{v2.05}{2016/04/17}{Stern im Argument erhält aktuellen Inhalt}^^A
+% \begin{macro}{\tud@footcontent@fontface}
% \changes{v2.04}{2015/06/01}{neu}^^A
-% \begin{macro}{\footcontent@left}
+% \changes{v2.05}{2015/07/21}{Bugfix für die Schriftgröße und den Durchschuss
+% bei einer entsprechenden Anpassung der Schriftart \val{tudheadings}}^^A
+% \begin{macro}{\tud@footcontent@left}
% \changes{v2.04}{2015/06/01}{neu}^^A
-% \begin{macro}{\footcontent@right}
+% \begin{macro}{\tud@footcontent@right}
% \changes{v2.04}{2015/06/01}{neu}^^A
% Mit dem Befehl \cs{footcontent} kann der Inhalt für den Fußbereich der
% Seiten im Stil \pgs{tudheadings} festgelegt werden. Dieser wird mit passenden
% Schrifteinstellungen entweder einspaltig oder zweispaltig gesetzt. Die
% Sternversion des Befehls nimmt keinerlei Einstellungen für die Schrift vor.
% \begin{macrocode}
-\newkomafont{tudheadings}{%
- \sffamily%
- \tud@color{\tud@foot@fontcolor}%
-}
+\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
+% gesichert, weshalb diese vorher alloziert werden. Anschließend erfolgt die
% Definition des Befehls.
% \begin{macrocode}
-\newcommand*\tud@footcontent@font{}
+\newcommand*\tud@footcontent@fontface{}
\newcommand*\tud@footcontent@left{}
-\newcommand*\tud@footcontent@right{}
+\newcommand*\tud@footcontent@right{\@nil}
+% \end{macrocode}
+% Die Sternversion ändert die Schriftgröße vom Inhalt nicht. Die Normalversion
+% nutzt die Schriftgröße der Kopfzeile mit einem passenden Durchschuss.
+% \begin{macrocode}
\newcommand*\footcontent{%
- \@ifstar{%
- \@tempswafalse%
- \@footcontent%
+ \kernel@ifstar{%
+ \renewcommand*\tud@footcontent@fontface{\usekomafont{tudheadings}}%
+ \tud@footcontent@do%
}{%
- \@tempswatrue%
- \@footcontent%
+ \renewcommand*\tud@footcontent@fontface{%
+ \usekomafont{tudheadings}%
+ \setlength\@tempdima{\tud@head@fontsize\p@}%
+ \fontsize{\tud@head@fontsize}{1.25\@tempdima}%
+ \selectfont%
+ }%
+ \tud@footcontent@do%
}%
}
% \end{macrocode}
% Normalerweise wird der Inhalt vollständig über die verfügbare Seitenfußbreite
% gesetzt. Wird das optionale Argument \emph{nach} dem obligatorischen genutzt,
-% so erfolgt die Ausgabe zweispaltig.
+% so erfolgt die Ausgabe zweispaltig. Das optionale Argument kann für
+% zusätzliche Formatierungsbefehle genutzt werden.
% \begin{macrocode}
-\newcommand*\@footcontent[2][]{%
+\newcommand*\tud@footcontent@do[2][]{%
\kernel@ifnextchar[%]
- {\@@footcontent{#1}{#2}}%
- {\@@footcontent{#1}{#2}[\@nnil]}%
+ {\tud@footcontent@@do{#1}{#2}}%
+ {\tud@footcontent@@do{#1}{#2}[\@nil]}%
}
-\newcommand*\@@footcontent{}
-\def\@@footcontent#1#2[#3]{%
- \if@tempswa%
- \def\tud@footcontent@font{%
- \usekomafont{tudheadings}%
- \tud@divide\@tempa{\tud@head@font@size}{\f@size}%
- \linespread{\@tempa}%
- \selectfont%
- \tud@head@font@light%
- #1%
- }%
- \else%
- \def\tud@footcontent@font{#1}%
+\newcommand*\tud@footcontent@@do{}
+\def\tud@footcontent@@do#1#2[#3]{%
+ \appto\tud@footcontent@fontface{#1\selectfont}%
+% \end{macrocode}
+% Wurde in einem der Argumente für den linken und/oder rechten Inhalt ein Stern
+% verwendet, bleibt die bisherige Definition bestehen.
+% \begin{macrocode}
+ \if\detokenize{*#2}\relax\else%
+ \renewcommand*\tud@footcontent@left{#2}%
+ \fi%
+ \if\detokenize{*#3}\relax\else%
+ \renewcommand*\tud@footcontent@right{#3}%
\fi%
- \def\tud@footcontent@left{#2}%
- \def\tud@footcontent@right{#3}%
}
% \end{macrocode}
-% \end{macro}^^A \footcontent@right
-% \end{macro}^^A \footcontent@left
-% \end{macro}^^A \footcontent@font
-% \end{macro}^^A \@@footcontent
-% \end{macro}^^A \@footcontent
+% \end{macro}^^A \tud@footcontent@right
+% \end{macro}^^A \tud@footcontent@left
+% \end{macro}^^A \tud@footcontent@fontface
+% \end{macro}^^A \tud@footcontent@@do
+% \end{macro}^^A \tud@footcontent@do
% \end{macro}^^A \footcontent
% \end{KOMAfont}^^A tudheadings
+%
+% \iffalse
+%<*class&poster>
+% \fi
+%
+% \begin{macro}{\tud@footcontent@@left}
+% \changes{v2.05}{2015/07/06}{neu}^^A
+% \changes{v2.05}{2016/04/17}{Überschrift optional}^^A
+% \begin{macro}{\tud@footcontent@@right}
+% \changes{v2.05}{2015/07/06}{neu}^^A
+% \changes{v2.05}{2016/04/17}{Überschrift optional}^^A
+% \begin{macro}{\tud@newline@poster}
+% Mit diesen beiden Hilfsmakros werden die linke und die rechte Spalte des
+% Standard-Seitenfußes eines Posters festgelegt. In der linken Spalte werden
+% dabei Fakultät, Einrichtung, Institut und Lehrstuhl sowie der Professor
+% ausgegeben, wobei die Angaben über das optionale Argument der entsprechenden
+% Feldbefehle, die in den Klassen normalerweise nur für den Seitenkopf genutzt
+% werden, variiert werden können.
+% \begin{macrocode}
+\newcommand*\tud@newline@poster{}
+\newcommand*\tud@footcontent@@left[1]{%
+ \ifxblank{#1}{}{{\tud@head@font@@bold#1\newline}}%
+ Technische Universit\"at Dresden%
+ \tud@foot@line@write{faculty}%
+ \tud@foot@line@write{department}%
+ \tud@foot@line@write{institute}%
+ \tud@foot@line@write{chair}%
+ \tud@foot@line@write{professor}%
+}
+% \end{macrocode}
+% In der rechten Spalte werden der Autor oder die Autoren (\cs{author}) und
+% die Kontaktperson(en) (\cs{contactperson}) ausgegeben. Zu jeder Person können
+% individuelle Angaben bzgl. Büro, Telefonnummer und E"~Mail-Adresse gemacht
+% werden.
+% \begin{macrocode}
+\newcommand*\tud@footcontent@@right[2]{%
+ \def\tud@newline@poster{%
+ \ifx\@authormore\@empty\else\newline\@authormore\fi%
+ \ifx\@course\@empty%
+ \ifx\@discipline\@empty\else\newline\@discipline\fi%
+ \else%
+ \newline\@course%
+ \ifx\@discipline\@empty\else%
+ \nobreakspace(\@discipline)%
+ \fi%
+ \fi%
+ \ifx\@office\@empty\else\newline\@office\fi%
+ \ifx\@telephone\@empty\else\newline\@telephone\fi%
+ \ifx\@telefax\@empty\else\newline\@telefax\fi%
+ \ifx\@emailaddress\@empty\else\newline\@emailaddress\fi%
+ }%
+% \end{macrocode}
+% Wurde kein Autor angegeben, wird in diesem Fall die normalerweise erzeugte
+% Warnung bei der Verwendung des Feldes \cs{@author} unterdrückt.
+% \begin{macrocode}
+ \ifpatchable{\@author}{\@latex@warning@no@line}{%
+ \let\@tempa\@empty%
+ }{%
+ \let\@tempa\@author%
+ }%
+ \ifx\@tempa\@empty\else%
+ \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
+% Argument mit einem \val{*} aufgerufen wird.
+% \begin{macrocode}
+ \renewcommand*\tud@split@author@do[2]{%
+ \tud@multiple@fields@store{@author}{##1}%
+ \tud@multiple@fields@preset{@author}{*}{##1}%
+ \ignorespaces##1\tud@newline@poster%
+ \tud@multiple@fields@restore{@author}%
+ \tud@multiple@@@split{##2}{\newline}%
+ }%
+ \noindent\tud@multiple@split{@author}%
+ \tud@multiple@fields@restore{@author}%
+% \end{macrocode}
+% Wurde gültige Felder außerhalb von \cs{@author} global angegeben, so werden
+% diese \emph{nach} allen Autoren ausgegeben.
+% \begin{macrocode}
+ \tud@newline@poster%
+% \end{macrocode}
+% Werden Autor und Kontaktperson ausgegeben, ist eine Leerzeile einzufügen.
+% \begin{macrocode}
+ \ifx\@contactperson\@empty\else\newline\fi%
+ \fi%
+% \end{macrocode}
+% Die Ausgabe der Kontaktperson(en) erfolgt analog zu der Autorenausgabe.
+% \begin{macrocode}
+ \def\tud@newline@poster{%
+ \ifx\@office\@empty\else\newline\@office\fi%
+ \ifx\@telephone\@empty\else\newline\@telephone\fi%
+ \ifx\@telefax\@empty\else\newline\@telefax\fi%
+ \ifx\@emailaddress\@empty\else\newline\@emailaddress\fi%
+ }%
+ \ifx\@contactperson\@empty\else%
+ \ifxblank{#2}{}{{\tud@head@font@@bold#2\newline}}%
+ \renewcommand*\tud@split@contactperson@do[2]{%
+ \tud@multiple@fields@store{@contactperson}{##1}%
+ \tud@multiple@fields@preset{@contactperson}{*}{##1}%
+ \ignorespaces##1\tud@newline@poster%
+ \tud@multiple@fields@restore{@contactperson}%
+ \tud@multiple@@@split{##2}{\newline}%
+ }%
+ \noindent\tud@multiple@split{@contactperson}%
+ \tud@multiple@fields@restore{@contactperson}%
+ \tud@newline@poster%
+ \fi%
+% \end{macrocode}
+% Zu guter letzt noch eine mögliche Homepage.
+% \begin{macrocode}
+ \ifx\@webpage\@empty\else\newline\@webpage\fi%
+}
+\footcontent{%
+ \tud@footcontent@@left{\contactname}%
+}[%
+ \tud@footcontent@@right{\authorname}{\contactpersonname}%
+]
+% \end{macrocode}
+% \end{macro}^^A \tud@newline@poster
+% \end{macro}^^A \tud@footcontent@@right
+% \end{macro}^^A \tud@footcontent@@left
+%
+% \iffalse
+%</class&poster>
+% \fi
+%
% \begin{macro}{\tud@footcontent@use}
% \changes{v2.04}{2015/06/01}{neu}^^A
% Mit \cs{tud@footcontent@use} erfolgt die Ausgabe der mit \cs{footcontent}
% definierten Inhalte. Dabei wird darauf geachtet, ob ein \DDC-Logo im Fuß
-% verwendet wird.
+% verwendet wird. Die Ausgabe erfolgt jedoch nur, falls tatsächlich etwas
+% definiert wurde. Andernfalls wird lediglich eine leere Box der geforderten
+% Breite ausgegeben. Dies ist notwendig, da nachgelagerte Funktionen diese Box
+% fester Breite erwarten.
% \begin{macrocode}
\newcommand*\tud@footcontent@use[2]{%
- \tud@ddc@check%
- \ifcase\@tempb%
- \setlength\@tempdimc{\z@}%
+ \@tempswafalse%
+ \ifx\tud@footcontent@left\@empty\relax%
+ \def\@tempa{\@nil}%
+ \ifx\@tempa\tud@footcontent@right\relax\else%
+ \ifx\tud@footcontent@right\@empty\relax\else%
+ \@tempswatrue%
+ \fi%
+ \fi%
\else%
- \settowidth\@tempdimc{\tud@uselayerbox{foot@black}}%
- \addtolength\@tempdimc{\columnsep}%
+ \@tempswatrue%
\fi%
+ \if@tempswa%
+ \tud@ddc@check%
+ \ifcase\@tempb\relax%
+ \setlength\@tempdimc{\z@}%
+ \else%
+ \settowidth\@tempdimc{\tud@uselayerbox{foot@black}}%
+ \addtolength\@tempdimc{\columnsep}%
+ \fi%
% \end{macrocode}
-% Äquivalent zu den Logos wird auch der frei definierbare Inhalt des Fußes mit
-% einer vertikalen Box gesetzt. Mit \cs{@tempdimc} wird im Bedarfsfall der
-% Freiraum für das \DDC-Logo bereitgestellt.
+% Äquivalent zu den Logos wird auch der durch den Anwender frei definierbare
+% Inhalt des Fußes in einer vertikalen Box gesetzt. Mit \cs{@tempdimc} wird im
+% Bedarfsfall der Freiraum für das \DDC-Logo bereitgestellt.
% \begin{macrocode}
- \tud@vlayerbox{#1}{%
- \vss%
- \hbox to #2{%
- \tud@footcontent@font%
+ \tud@vlayerbox{#1}{%
+ \linespread{1}%
+ \vss%
+ \hbox to #2{%
+ \tud@footcontent@fontface%
% \end{macrocode}
% Wurde das optionale Argument nach dem obligatorischen nicht genutzt, so wird
% der Inhalt über die komplette Breite des Textbereiches ausgegeben.
% \begin{macrocode}
- \expandafter\ifx\tud@footcontent@right\@nnil\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%
- }%
+ \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}
+% Sollte der Inhalt für den Fußbereich zu groß sein, wird eine Warnung erzeugt.
+% \begin{macrocode}
+ }{%
+ The content for the footer (`\string\footcontent')\MessageBreak%
+ is too high. You should either reduce the content\MessageBreak%
+ or lower the fontsize via the optional argument.%
+ \ifnum\tud@cdgeometry@num>\@ne% true/symmetric/twoside
+ \MessageBreak%
+ Alternatively you can enlarge the bottom margin\MessageBreak%
+ by using option `extrabottommargin'.%
\fi%
- \hss%
}%
- \vss\vss%
- }{%
- The content for the footer (`\string\footcontent')\MessageBreak%
- is too high. You should either reduce the content or\MessageBreak%
- lower the fontsize via the optional argument.%
- \ifcase\tud@geometry\relax\else% true/symmetric/twoside
- \MessageBreak%
- Alternatively you can enlarge the bottom margin\MessageBreak%
- by using option `extrabottommargin'.%
- \fi%
- }%
+ \else%
+ \hbox to #2{}%
+ \fi%
}
% \end{macrocode}
% \end{macro}^^A \tud@footcontent@use
@@ -2163,34 +2285,39 @@
% \begin{option}{cdhead}
% \changes{v2.03}{2015/01/29}{neu}^^A
% \changes{v2.04}{2015/05/18}{Wert \val{barcolor} neu}^^A
-% \begin{macro}{\tud@head@font}
+% \begin{macro}{\tud@head@font@num}
% \changes{v2.03}{2015/02/04}{neu}^^A
-% \begin{macro}{\if@tud@head@font@locked}
+% \begin{macro}{\if@tud@head@font@num@locked}
% \changes{v2.03}{2015/02/04}{neu}^^A
-% \begin{macro}{\tud@head@bar}
+% \begin{macro}{\tud@head@bar@num}
% \changes{v2.03}{2015/02/04}{neu}^^A
-% \begin{macro}{\tud@head@bar@lock}
+% \begin{macro}{\tud@head@bar@num@lock}
% \changes{v2.04}{2015/04/01}{neu}^^A
% \begin{macro}{\if@tud@head@widebar}
% \changes{v2.03}{2015/02/14}{neu}^^A
% \begin{macro}{\if@tud@head@widebar@locked}
% \changes{v2.03}{2015/02/14}{neu}^^A
+% \begin{macro}{\if@tud@head@font@set}
+% \begin{macro}{\if@tud@head@date}
+% \changes{v2.05}{2016/05/27}{neu}^^A
% Mit dieser Option wird die zentrale Benutzerschnittstelle für Einstellungen
% des typischen Querbalkens für den TUD-Kopf geschaffen. Durch sie können
% sowohl die verwendete Schrift als auch die Stärke für den Balkentext
% (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}{0}
-\cs@lock{tud@head@bar}{0}
+\cs@lock{tud@head@font@num}{0}
+\cs@lock{tud@head@bar@num}{0}
\bool@lock{@tud@head@widebar}
+\newif\if@tud@head@font@set
+\newif\if@tud@head@date
\TUD@key{cdhead}[true]{%
\TUD@set@numkey{cdhead}{@tempa}{%
\TUD@numkey@bool,%
{nocd}{0},{nocdfont}{0},{nocdfonts}{0},{notudfonts}{0},%
{cd}{1},{cdfont}{1},{cdfonts}{1},{tudfonts}{1},%
{light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},%
- {heavy}{2},{heavyfont}{2},%
+ {heavy}{2},{heavyfont}{2},{bold}{2},{boldfont}{2},%
{nocolor}{3},{nocolour}{3},{monochrome}{3},{monochromatic}{3},%
{colorlite}{4},{litecolor}{4},{colourlite}{4},{litecolour}{4},%
{colorlight}{4},{lightcolor}{4},{colourlight}{4},{lightcolour}{4},%
@@ -2201,51 +2328,65 @@
{color}{6},{colour}{6},%
{full}{6},{colorfull}{6},{fullcolor}{6},{colourfull}{6},{fullcolour}{6},%
{textwidth}{7},{slim}{7},{slimhead}{7},{nowide}{7},{nowidehead}{7},%
- {paperwidth}{8},{wide}{8},{widehead}{8}%
+ {narrow}{7},{narrowhead}{7},{small}{7},{smallhead}{7},%
+ {paperwidth}{8},{wide}{8},{widehead}{8},%
+ {date}{9},{showdate}{9},{dateon}{9},{datetrue}{9},{dateyes}{9},%
+ {nodate}{10},{hidedate}{10},{dateoff}{10},{datefalse}{10},{dateno}{10}%
}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
\ifcase\@tempa\relax% false
- \cs@set@lock{tud@head@font}{0}%
+ \cs@set@lock{tud@head@font@num}{0}%
\or% true
- \cs@set@lock{tud@head@font}{1}%
+ \cs@set@lock{tud@head@font@num}{1}%
\or% heavy
- \cs@set@lock{tud@head@font}{2}%
+ \cs@set@lock{tud@head@font@num}{2}%
\or% nocolor
- \cs@set@lock{tud@head@bar}{0}%
+ \cs@set@lock{tud@head@bar@num}{0}%
\or% litecolor
- \cs@set@lock{tud@head@bar}{1}%
+ \cs@set@lock{tud@head@bar@num}{1}%
\or% barcolor
- \cs@set@lock{tud@head@bar}{2}%
+ \cs@set@lock{tud@head@bar@num}{2}%
\or% color
- \cs@set@lock{tud@head@bar}{3}%
+ \cs@set@lock{tud@head@bar@num}{3}%
\or% textwidth
\bool@set@lock{@tud@head@widebar}{false}%
\or% paperwidth
\bool@set@lock{@tud@head@widebar}{true}%
+ \or% date
+ \@tud@head@datetrue%
+ \or% nodate
+ \@tud@head@datefalse%
+ \fi%
+ \ifnum\@tempa<\thr@@\relax%
+ \global\@tud@head@font@settrue%
\fi%
\fi%
}
% \end{macrocode}
+% \end{macro}^^A \if@tud@head@date
+% \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@lock
-% \end{macro}^^A \tud@head@bar
-% \end{macro}^^A \if@tud@head@font@locked
-% \end{macro}^^A \tud@head@font
+% \end{macro}^^A \tud@head@bar@num@lock
+% \end{macro}^^A \tud@head@bar@num
+% \end{macro}^^A \if@tud@head@font@num@locked
+% \end{macro}^^A \tud@head@font@num
% \end{option}^^A cdhead
% \begin{option}{cdfoot}
-% \changes{v2.03}{2015/02/02}{Option \opt{extrabottommargin} bei Längenangabe
-% indirekt nutzbar}^^A
+% \changes{v2.03}{2015/02/02}{Bei Längenangabe wird \opt{extrabottommargin}
+% indirekt genutzt}^^A
% \changes{v2.04}{2015/06/18}{bedingtes Setzen der Option \opt{automark}}^^A
% \begin{macro}{\if@tud@foot@colored}
% \changes{v2.03}{2015/02/15}{neu}^^A
+% \begin{macro}{\if@tud@foot@colored@locked}
+% \changes{v2.05}{2015/07/14}{neu}^^A
% \begin{macro}{\tud@ps@store}
% \changes{v2.02}{2014/06/23}{neu}^^A
-% \begin{macro}{\tud@@ps@store}
+% \begin{macro}{\tud@ps@@store}
% \changes{v2.02}{2014/06/23}{neu}^^A
% \begin{macro}{\tud@ps@restore}
% \changes{v2.02}{2014/06/23}{neu}^^A
-% \begin{macro}{\tud@@ps@restore}
+% \begin{macro}{\tud@ps@@restore}
% \changes{v2.02}{2014/06/23}{neu}^^A
% Dieser Seitenstil mit dem Kolumnentitel im Fuß wurde bereits für die alte
% \cls{tudbook}-Klasse bereitgestellt und soll auch hier optional angeboten
@@ -2253,12 +2394,13 @@
% 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} 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 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.
% \begin{macrocode}
-\TUD@AfterPackage@Set{scrlayer-scrpage}
-\newif\if@tud@foot@colored
+\TUD@AfterPackage@set{scrlayer-scrpage}
+\bool@lock{@tud@foot@colored}
\TUD@key{cdfoot}[true]{%
\TUD@set@numkey{cdfoot}{@tempa}{%
\TUD@numkey@bool,%
@@ -2275,7 +2417,7 @@
% wiederhergestellt. Dies wird allerdings frühestens nach dem Laden von
% \pkg{scrlayer-scrpage} durchgeführt.
% \begin{macrocode}
- \TUD@AfterPackage{scrlayer-scrpage}{%
+ \TUD@AfterPackage@do{scrlayer-scrpage}{%
\tud@ps@restore{scrheadings}%
\tud@ps@restore{plain.scrheadings}%
\tud@font@koma@unset{pageheadfoot}%
@@ -2287,7 +2429,7 @@
% dem Laden von \pkg{scrlayer-scrpage} durchgeführt.
% \begin{macrocode}
\or% true
- \TUD@AfterPackage{scrlayer-scrpage}{%
+ \TUD@AfterPackage@do{scrlayer-scrpage}{%
\tud@ps@store{scrheadings}%
\tud@ps@store{plain.scrheadings}%
\tud@font@koma@set{pageheadfoot}{\upshape}%
@@ -2303,841 +2445,178 @@
% Hier kann die Hintergrundfarbe des Fußes aktiviert bzw. deaktiviert werden.
% \begin{macrocode}
\or% nocolor
- \@tud@foot@coloredfalse%
+ \bool@set@lock{@tud@foot@colored}{false}%
\or% color
- \@tud@foot@coloredtrue%
+ \bool@set@lock{@tud@foot@colored}{true}%
\fi%
% \end{macrocode}
% Außerdem kann mit der Option \opt{extrabottommargin} gesetzt werden.
% \begin{macrocode}
\else%
- \TUDoptions{extrabottommargin=#1}%
+ \ifdimen{#1}{\TUDoptions{extrabottommargin=#1}}{}%
\fi%
}
% \end{macrocode}
% Die nächsten beiden Befehle dienen zum Sichern der Kopf- und Fußzeilen\dots
% \begin{macrocode}
\newcommand*\tud@ps@store[1]{%
- \tud@@ps@store{#1}{odd}{left}{head}%
- \tud@@ps@store{#1}{odd}{right}{head}%
- \tud@@ps@store{#1}{odd}{middle}{head}%
- \tud@@ps@store{#1}{even}{left}{head}%
- \tud@@ps@store{#1}{even}{right}{head}%
- \tud@@ps@store{#1}{even}{middle}{head}%
- \tud@@ps@store{#1}{odd}{left}{foot}%
- \tud@@ps@store{#1}{odd}{right}{foot}%
- \tud@@ps@store{#1}{odd}{middle}{foot}%
- \tud@@ps@store{#1}{even}{left}{foot}%
- \tud@@ps@store{#1}{even}{right}{foot}%
- \tud@@ps@store{#1}{even}{middle}{foot}%
+ \tud@ps@@store{#1}{odd}{left}{head}%
+ \tud@ps@@store{#1}{odd}{right}{head}%
+ \tud@ps@@store{#1}{odd}{middle}{head}%
+ \tud@ps@@store{#1}{even}{left}{head}%
+ \tud@ps@@store{#1}{even}{right}{head}%
+ \tud@ps@@store{#1}{even}{middle}{head}%
+ \tud@ps@@store{#1}{odd}{left}{foot}%
+ \tud@ps@@store{#1}{odd}{right}{foot}%
+ \tud@ps@@store{#1}{odd}{middle}{foot}%
+ \tud@ps@@store{#1}{even}{left}{foot}%
+ \tud@ps@@store{#1}{even}{right}{foot}%
+ \tud@ps@@store{#1}{even}{middle}{foot}%
}
% \end{macrocode}
% \dots, wobei hierfür auf die internen Befehle von \pkg{scrlayer-scrpage}
% zurückgegriffen werden muss.
% \begin{macrocode}
-\newcommand*\tud@@ps@store[4]{%
+\newcommand*\tud@ps@@store[4]{%
\ifcsdef{@@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}%
- \tud@@ps@restore{#1}{odd}{right}{head}%
- \tud@@ps@restore{#1}{odd}{middle}{head}%
- \tud@@ps@restore{#1}{even}{left}{head}%
- \tud@@ps@restore{#1}{even}{right}{head}%
- \tud@@ps@restore{#1}{even}{middle}{head}%
- \tud@@ps@restore{#1}{odd}{left}{foot}%
- \tud@@ps@restore{#1}{odd}{right}{foot}%
- \tud@@ps@restore{#1}{odd}{middle}{foot}%
- \tud@@ps@restore{#1}{even}{left}{foot}%
- \tud@@ps@restore{#1}{even}{right}{foot}%
- \tud@@ps@restore{#1}{even}{middle}{foot}%
+ \tud@ps@@restore{#1}{odd}{left}{head}%
+ \tud@ps@@restore{#1}{odd}{right}{head}%
+ \tud@ps@@restore{#1}{odd}{middle}{head}%
+ \tud@ps@@restore{#1}{even}{left}{head}%
+ \tud@ps@@restore{#1}{even}{right}{head}%
+ \tud@ps@@restore{#1}{even}{middle}{head}%
+ \tud@ps@@restore{#1}{odd}{left}{foot}%
+ \tud@ps@@restore{#1}{odd}{right}{foot}%
+ \tud@ps@@restore{#1}{odd}{middle}{foot}%
+ \tud@ps@@restore{#1}{even}{left}{foot}%
+ \tud@ps@@restore{#1}{even}{right}{foot}%
+ \tud@ps@@restore{#1}{even}{middle}{foot}%
}
-\newcommand*\tud@@ps@restore[4]{%
+\newcommand*\tud@ps@@restore[4]{%
\ifcsdef{@@tud@ps@#1@#2@#3@#4}{%
\csletcs{sls@ps@#1@#2@#3@#4}{@@tud@ps@#1@#2@#3@#4}%
\csundef{@@tud@ps@#1@#2@#3@#4}%
}{}%
}
% \end{macrocode}
-% \end{macro}^^A \tud@@ps@restore
+% \end{macro}^^A \tud@ps@@restore
% \end{macro}^^A \tud@ps@restore
-% \end{macro}^^A \tud@@ps@store
+% \end{macro}^^A \tud@ps@@store
% \end{macro}^^A \tud@ps@store
+% \end{macro}^^A \if@tud@foot@colored@locked
% \end{macro}^^A \if@tud@foot@colored
% \end{option}^^A cdfoot
-% \begin{macro}{\tud@ps@headings}
-% \changes{v2.02}{2014/06/23}{entfernt}^^A
-% \begin{macro}{\tud@ps@myheadings}
-% \changes{v2.02}{2014/06/23}{entfernt}^^A
-% \begin{macro}{\tud@ps@plain}
-% \changes{v2.02}{2014/06/23}{entfernt}^^A
-% Diese Befehle wurden bei der Umstellung auf das Paket~\pkg{scrlayer-scrpage}
-% mit der \TUDScript-Version~v2.02 allesamt entfernt. Die Funktionalität wird
-% seitdem durch die \pgs{tudheadings}-Seitenstile bereitgestellt.
-% \end{macro}^^A \tud@ps@plain
-% \end{macro}^^A \tud@ps@myheadings
-% \end{macro}^^A \tud@ps@headings
-% \begin{option}{cdgeometry}
-% \begin{macro}{\tud@geometry}
-% \begin{macro}{\if@tud@geometry@locked}
-% Für das \CD sind standardmäßig feste Seitenränder vorgegeben. Diese sind
-% jedoch leider nur aus gestalterischen Motiven und ohne die Beachtung
-% typographischer Belange gewählt und festgelegt worden. Beispielweise ist ein
-% doppelseitiger Satz einer Abschlussarbeit im \CD nur mit einem grauenhaften
-% Satzspiegel möglich. Um dem Anwender einen gewissen Spielraum zu geben, wird
-% alternativ zum asymmetrischen (\opt{geomery=on}) ein symmetrischer
-% Satzspiegel bereitgestellt (\opt{geomery=normal}), welcher bei einseitigem
-% Satz zentriert ist und bei zweiseitigem Satz den inneren Rand kleiner setzt
-% als den äußeren. Des Weiteren kann die Satzspiegelberechnung auch direkt
-% durch \pkg{typearea} aus dem \KOMAScript"=Paket erfolgen
-% (\opt{geomery=no}). Mit \cs{tud@geometry@process} werden alle getroffenen
-% Satzspiegeloptionen umgesetzt und nachfolgend definiert.
-% \begin{macrocode}
-\newcommand*\tud@geometry{0}
-\TUD@key@lock{cdgeometry}[true]{%
- \TUD@set@numkey@lock{cdgeometry}{tud@geometry}{%
- \TUD@numkey@bool,%
- {typearea}{0},%
- {cd}{1},{tud}{1},{asymmetric}{1},%
- {symmetric}{2},{centred}{2},{centered}{2},%
- {normal}{2},{standard}{2},{std}{2},%
- {twoside}{3},{balanced}{3}%
- }{#1}%
- \ifx\FamilyKeyState\FamilyKeyStateProcessed%
- \if@atdocument\recalctypearea\fi%
- \fi%
-}
-% \end{macrocode}
-% \end{macro}^^A \if@tud@geometry@locked
-% \end{macro}^^A \tud@geometry
-% \end{option}^^A cdgeometry
%
% \iffalse
%</class&option>
%<*class&body>
% \fi
%
-% Das Paket \pkg{geometry} erlaubt eine genaue Vorgabe des Satzspiegels und
-% der Seitenränder, wie es vom \CD der \TnUD verlangt wird. Sollte das Laden
-% des Paketes verhindert werden, sind einige wenige Befehle vorzuhalten.
-% \begin{macrocode}
-\AtEndPreamble{%
- \@ifpackageloaded{geometry}{}{%
- \def\tud@geometry@process{\tud@geometry@set}%
- \let\tud@BeforeSelectAnyPageStyle\@gobble%
- }%
-}
-\tud@ifsacrop{%
- \PreventPackageFromLoading{geometry}%
-}{%
- \RequirePackage{geometry}[2010/09/12]%
-% \end{macrocode}
-% \begin{macro}{\tud@geometry@hmargin}
-% \begin{macro}{\tud@geometry@vmargin}
-% \begin{macro}{\tud@geometry@tudmargin}
-% \begin{macro}{\tud@geometry@ddcmargin}
-% Dies sind Hilfsmakros für die Definition der unterschiedichen Seitenlayouts
-% (horizontale und vertikale Ränder). Es handelt sich dabei um die Seitenränder
-% für den normalen Textbereich sowie die angepassten vertikalen Einstellungen
-% für die Seitenstilvarianten mit TUD-Kopf. Im Kompatibilitätsmodus für die
-% Version~v2.02 gibt es außerdem einen separaten Satzspiegel für den \DDC-Fuß.
-% Gesetzt werden diese in Abhängigkeit von der Option \opt{cdgeometry} im
-% Makro \cs{tud@geometry@process} bzw. \cs{tud@geometry@@process}.
-% \begin{macrocode}
- \newcommand*\tud@geometry@hmargin{}%
- \newcommand*\tud@geometry@vmargin{}%
- \newcommand*\tud@geometry@tudmargin{}%
- \tud@ifverlower{2.03}{\newcommand*\tud@geometry@ddcmargin{}}{}%
-% \end{macrocode}
-% \end{macro}^^A \tud@geometry@ddcmargin
-% \end{macro}^^A \tud@geometry@tudmargin
-% \end{macro}^^A \tud@geometry@vmargin
-% \end{macro}^^A \tud@geometry@hmargin
-% \begin{macro}{\tud@newgeometry}
-% \changes{v2.04}{2015/03/12}{neu}^^A
-% mit diesem Befehl wird abhängig davon, ob er in der Präambel oder im Dokument
-% durch \cs{tud@geometry@process} ausgeführt wird, entweder \cs{geometry} oder
-% \cs{newgeometry} aufgerufen.
-% \begin{macrocode}
- \newcommand*\tud@newgeometry[1]{%
- \if@atdocument%
- \edef\@tempa{#1}%
- \expandafter\newgeometry\expandafter{#1}%
- \else%
- \edef\@tempa{paperwidth=\the\paperwidth,paperheight=\the\paperheight,#1}%
- \expandafter\geometry\expandafter{\@tempa}%
- \fi%
- }%
-% \end{macrocode}
-% \end{macro}^^A \tud@newgeometry
-% \begin{macro}{\tud@geometry@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@geometry@@process}
-% Das Makro \cs{tud@geometry@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
-% für die unterschiedlichen Höhen für Kopf- und Fußzeile nötig ist~-- wird das
-% Paket \pkg{geometry} verwendet. Soll \pkg{typearea} zur Satzspiegelerstellung
-% genutzt werden, so werden die damit berechneten Werte an \pkg{geometry}
-% weitergereicht.
-% Es werden drei Layouts erstellt: normaler Satzspiegel, nur TUD-Kopf sowie
-% TUD-Kopf und "~Fuß und mit \cs{savegeometry}\marg{Stil} gesichert. Damit kann
-% innerhalb des Dokumentes mit dem Befehl \cs{loadgeometry}\marg{Stil} oberer
-% sowie ggf. untere Seitenrand geändert werden.
-% \begin{macrocode}
- \newcommand*\tud@geometry@process{%
-% \end{macrocode}
-% Die Maßvorgaben werden entsprechend der Seitengröße gesetzt.
-% \begin{macrocode}
- \tud@geometry@set%
-% \end{macrocode}
-% Für den Fall, dass \pkg{typearea} die Satzspiegelberechnung übernimmt, werden
-% die Ergebnisse aus der Berechnung direkt an \pkg{geometry} weitergereicht.
-% Dazu werden die berechneten Werte in die entsprechenden Hilfsmakros
-% für die Erstellung der \pkg{geometry}-Satzspiegel übergeben.
-% \begin{macrocode}
- \ifcase\tud@geometry\relax% false
-% \end{macrocode}
-% Zu Beginn wird die Höhendifferenz zwischen TUD-Kopf und Standardkopfzeile
-% für den \pkg{typearea}-Satzspiegel berechnet.
-% \begin{macrocode}
- \setlength\tud@ta@headdiff{%
- \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep%
- -\tud@ta@topmargin-\tud@ta@headheight-\tud@ta@headsep-1in\relax%
- }%
-% \end{macrocode}
-% Sollte der \pkg{typearea}-Satzspiegel noch unterhalb des TUD-Kopfes liegen,
-% wird der Abstand zum Kopf vergrößert.
-% \begin{macrocode}
- \ifdim\tud@ta@headdiff<\z@\relax%
- \addtolength\tud@dim@headsep{-\tud@ta@headdiff}%
- \fi%
-% \end{macrocode}
-% Anschließend erfolgen die horizontalen und vertikalen Randeinstellungen.
-% \begin{macrocode}
- \edef\tud@geometry@hmargin{%
- bindingoffset=\the\ta@bcor,%
- left=\the\dimexpr\oddsidemargin+1in-\ta@bcor\relax,%
- textwidth=\the\textwidth,%
- \tud@geometry@mpincl,%
- marginparwidth=\the\dimexpr\evensidemargin+1in-\tud@ta@headsep\relax,%
- \if@reversemargin%
- reversemarginpar=true,%
- \if@twoside%
- marginparwidth=\the\dimexpr\oddsidemargin+1in%
- -\tud@ta@headsep\relax,%
- \fi%
- \else%
- reversemarginpar=false,%
- \fi%
- marginparsep=\the\dimexpr.5\tud@ta@headsep\relax%
- }%
- \edef\tud@geometry@vmargin{%
- \if@hincl%
- includehead=true,%
- top=\the\dimexpr\tud@ta@topmargin+1in\relax,%
- \else%
- includehead=false,%
- top=\the\dimexpr\tud@ta@topmargin+\tud@ta@headheight+\tud@ta@headsep%
- +1in\relax,%
- \fi%
- headheight=\the\tud@ta@headheight,%
- headsep=\the\tud@ta@headsep,%
- textheight=\the\tud@ta@textheight,%
- \tud@geometry@fincl,%
- footskip=\the\tud@ta@footskip%
- }%
-% \end{macrocode}
-% Für den Satzspiegel mit TUD-Kopf muss unterschieden werden, ob der Abstand
-% zwischen Kopf und Textbereich vergrößert wurde. Ist dies der Fall, wird die
-% Höhe des Textbereiches über \cs{@tempdima} entsprechend verkleinert.
-% \begin{macrocode}
- \ifdim\tud@ta@headdiff<\z@\relax%
- \setlength\@tempdima{\z@}%
- \else%
- \setlength\@tempdima{\tud@ta@headdiff}%
- \fi%
- \edef\tud@geometry@tudmargin{%
- top=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight%
- +\tud@dim@headsep\relax,%
- headheight=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight%
- -\tud@dim@logoy\relax,%
- headsep=\the\tud@dim@headsep,%
- textheight=\the\dimexpr\tud@ta@textheight-\@tempdima\relax,%
- ignorehead%
- }%
-% \end{macrocode}
-% Für den Kompatibilitätsmodus der Version~v2.02 gibt es für den \DDC-Fuß einen
-% separaten Satzspiegel.
-% \begin{macrocode}
- \tud@ifverlower{2.03}{%
- \setlength\tud@dim@ddcdiff{%
- \dimexpr.6\tud@dim@topmargin-\tud@ta@footskip+\tud@dim@headsep%
- +\tud@ta@footheight-1.25\baselineskip\relax%
- }%
- \edef\tud@geometry@ddcmargin{%
- textheight=\the\dimexpr\tud@ta@textheight-\tud@ta@headdiff%
- -\tud@dim@ddcdiff\relax,%
- footskip=\the\dimexpr\tud@ta@footskip+\tud@dim@ddcdiff\relax%
- }%
- }{}%
-% \end{macrocode}
-% Sollte die Option \opt{extrabottommargin} verwendet worden sein, wird eine
-% Warnung ausgegeben, dass diese für den \pkg{typearea}-Satzspiegel wirkungslos
-% ist.
-% \begin{macrocode}
- \ifdim\tud@dim@extrabottommargin=\z@\relax\else%
- \ClassWarning{\TUDClassName}{%
- Option `extrabottommargin' is ineffective when\MessageBreak%
- package typearea is used (`cdgeometry=no')%
- }%
- \fi%
-% \end{macrocode}
-% Hier erfolgt die Definition der Hilfsmakros für das CD-konforme asymmetrische
-% bzw. an das \CD angelehnte Layout für einseitigen und zweiseitigen Satz.
-% Zuerst werden die verschiedenen unterschiedlichen horizontalen Ränder für die
-% unterschiedlichen Optionen definiert. Danach kommt der Gleichanteil.
-% \begin{macrocode}
- \else% true/symmetric/twoside
- \ifcase\tud@geometry\or% true
- \edef\tud@geometry@hmargin{%
- bindingoffset=\the\ta@bcor,%
- left=\the\tud@dim@widemargin,%
- textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,%
- \if@twoside asymmetric,\fi%
- \tud@geometry@mpincl,%
- \if@reversemargin%
- reversemarginpar=true,%
- marginparwidth=\the\dimexpr\tud@dim@widemargin%
- -\tud@ta@headsep\relax,%
- \else%
- reversemarginpar=false,%
- marginparwidth=\the\dimexpr\tud@dim@slimmargin%
- -\tud@ta@headsep\relax,%
- \fi%
- marginparsep=\the\dimexpr.5\tud@ta@headsep\relax%
- }%
-% \end{macrocode}
-% Die zweite Variante ist eigentlich nicht konform mit dem \CD. Sie ist sowohl
-% im einseitigen als auch im zweiseitgigen Satz symmetrisch.
-% \begin{macrocode}
- \or% symmetric
- \edef\tud@geometry@hmargin{%
- bindingoffset=\the\ta@bcor,%
- left=\the\dimexpr.5\tud@dim@both\relax,%
- textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,%
- \tud@geometry@mpincl,%
- \if@reversemargin%
- reversemarginpar=true,%
- \else%
- reversemarginpar=false,%
- \fi%
- marginparwidth=\the\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,%
- marginparsep=\the\dimexpr.5\tud@ta@headsep\relax%
- }%
-% \end{macrocode}
-% Eigentlich ist auch die dritte Variante nach dem \CD nicht zulässig. Sie ist
-% im einseitigen Satz symmetrisch, im zweiseitgigen Satz wird die innere Seite
-% schmaler gesetzt als die äußere, wobei hier auf das in den Seitenrand ragende
-% TUD-Logo geachtet werden muss.
-% \begin{macrocode}
- \or% twoside
- \edef\tud@geometry@hmargin{%
- bindingoffset=\the\ta@bcor,%
- \if@twoside%
- left=\the\dimexpr.4\tud@dim@both\relax,%
- twoside,%
- \else%
- left=\the\dimexpr.5\tud@dim@both\relax,%
- \fi%
- textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,%
- \tud@geometry@mpincl,%
- marginparwidth=\the\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,%
- \if@reversemargin%
- reversemarginpar=true,%
- \if@twoside%
- marginparwidth=\the\dimexpr.4\tud@dim@both%
- -\tud@ta@headsep\relax,%
- \fi%
- \else%
- reversemarginpar=false,%
- \if@twoside%
- marginparwidth=\the\dimexpr.6\tud@dim@both%
- -\tud@ta@headsep\relax,%
- \fi%
- \fi%
- marginparsep=\the\dimexpr.5\tud@ta@headsep\relax%
- }%
- \fi%
-% \end{macrocode}
-% Für alle drei Varianten der vertikale Gleichanteil. Der Satzspiegel der
-% Version~v2.02 wird aus Gründen der Kompatibilität weiterhin vorgehalten.
-% \begin{macrocode}
- \tud@ifverlower{2.03}{%
- \edef\tud@geometry@vmargin{%
- top=\the\dimexpr.5\tud@dim@both\relax,%
- headheight=\the\tud@ta@headheight,%
- headsep=\the\tud@dim@headsep,%
- bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin\relax,%
- footskip=\the\dimexpr\tud@dim@headsep+\tud@ta@footheight%
- -1.25\baselineskip\relax,%
- \tud@geometry@hincl,%
- \tud@geometry@fincl%
- }%
- }{%
- \edef\tud@geometry@vmargin{%
- top=\the\tud@dim@slimmargin,%
- headheight=\the\tud@ta@headheight,%
- headsep=\the\tud@ta@headsep,%
- bottom=\the\dimexpr\tud@dim@widemargin%
- +\tud@dim@extrabottommargin\relax,%
- footskip=\the\dimexpr\tud@dim@footsep+\tud@ta@footheight\relax,%
- \tud@geometry@hincl,%
- \tud@geometry@fincl%
- }%
- }%
- \edef\tud@geometry@tudmargin{%
- top=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight%
- +\tud@dim@headsep\relax,%
- headheight=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight%
- -\tud@dim@logoy\relax,%
- headsep=\the\tud@dim@headsep,%
- ignorehead%
- }%
-% \end{macrocode}
-% Es wird die Differenz der Höhen zwischen TUD-Kopf und Standardkopfzeile
-% für den Satzspiegel des \CDs berechnet.
-% \begin{macrocode}
- \setlength\tud@ta@headdiff{%
- \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep%
- -\tud@dim@slimmargin\relax%
- }%
-% \end{macrocode}
-% Für die Kompatibilitätsvariante wieder mal die Extrawurst.
+% \begin{macro}{\tud@ps@parameters}
+% Im Folgenden werden die einzelnen Parameter für die \env{tudpage}-Umgebung
+% definiert. Die Parameter für Kopf- und Fußzeile werden nicht nur für die
+% \env{tudpage}-Umgebung sondern auch noch für Titel und Umschlagseite
+% verwendet, weshalb deren Definitionen zur einfacheren Wiederverwendung in das
+% Makro \cs{tud@ps@parameters} ausgelagert werden.
% \begin{macrocode}
- \tud@ifverlower{2.03}{%
- \setlength\tud@ta@headdiff{%
- \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep%
- -.5\tud@dim@both\relax%
- }%
+\newcommand*\tud@ps@parameters[1]{%
% \end{macrocode}
-% Wird die Fußzeile zum Satzspiegel gerechnet, ist für Seiten mit \DDC-Fuß
-% etwas Handarbeit notwendig, damit dieser nicht allzu weit nach oben ragt.
+% \begin{parameter}{cdfont}
+% Die Option \opt{cdfont} bestimmt, ob die Schriften des \CDs oder aber die
+% standardmäßigen Serifenlosen für die Auszeichnugen in der Kopfzeile und
+% Serifen im Inhalt verwendet werden.
% \begin{macrocode}
- \setlength\tud@dim@ddcdiff{.6\tud@dim@topmargin}%
- \edef\tud@geometry@ddcmargin{%
- \if@fincl%
- bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin%
- +\tud@dim@ddcdiff+\tud@dim@headsep+\tud@ta@footheight%
- -1.25\baselineskip\relax,%
- \else%
- bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin%
- +\tud@dim@ddcdiff\relax,%
- \fi%
- footskip=\the\dimexpr\tud@dim@headsep+\tud@ta@footheight%
- -1.25\baselineskip+\tud@dim@ddcdiff\relax,%
- }%
- }{}%
- \fi%
+ \TUD@parameter@def{cdfont}[true]{\TUDoption{cdfont}{#1}}%
% \end{macrocode}
-% Es wird die Differenz der Höhen zwischen TUD-Kopf und Standardkopfzeile
-% für den Satzspiegel des \CDs berechnet. Außerdem wird die standardmäßige
-% vertikale Verschiebung der Überschriften festgelegt.
+% \end{parameter}^^A cdfont
+% \begin{parameter}{cdhead}
+% \changes{v2.03}{2015/01/28}{\val{barfont} und \val{widehead} überlagert}^^A
+% Mit dem Parameter \val{cdhead} kann die Verwendung der Schriften des \CDs
+% aktiviert werden, wenn diese im Fließtext nicht zum Einsatz kommen. Die
+% Breite des Querbalkens kann über diesen Parameter ebenfalls geändert werden.
% \begin{macrocode}
- \ifdim\tud@ta@headdiff<\z@\relax\setlength\tud@ta@headdiff{\z@}\fi%
- \global\tud@ta@headdiff=\tud@ta@headdiff%
- \setlength\tud@dim@headingsvskip{.6\tud@dim@topmargin}%
- \global\tud@dim@headingsvskip=\tud@dim@headingsvskip%
+ \TUD@parameter@def{cdhead}[true]{\TUDoption{cdhead}{#1}}%
% \end{macrocode}
-% Für den Satzspiegel der Version~v2.02 wird außerdem die Länge für den höheren
-% Seitenfuß gesetzt.
+% \end{parameter}^^A cdhead
+% \begin{parameter}{cdfoot}
+% \changes{v2.03}{2015/01/30}{neu}^^A
+% Über \val{cdfoot} kann gg. die Hintergrundfarbe sowie die Standardfußzeile
+% des \CDs aktiviert werden.
% \begin{macrocode}
- \tud@ifverlower{2.03}{%
- \ifdim\tud@dim@ddcdiff<\z@\relax\setlength\tud@dim@ddcdiff{\z@}\fi%
- \global\tud@dim@ddcdiff=\tud@dim@ddcdiff%
- }{}%
+ \TUD@parameter@def{cdfoot}[true]{\TUDoption{cdfoot}{#1}}%
% \end{macrocode}
-% Es wird \cs{tud@geometry@@process} aufgerufen, was die zuvor definierten
-% Hilfsmakros nutzt, um alle benötigten Seitenlayouts optionsabhängig zu
-% erstellen.
+% \end{parameter}^^A cdfoot
+% \begin{parameter}{headlogo}
+% \changes{v2.03}{2015/01/28}{neu}^^A
+% \begin{parameter}{footlogo}
+% \changes{v2.03}{2015/01/28}{neu}^^A
+% Das Zweit- und die Drittlogos können ebenfalls lokal geändert werden.
% \begin{macrocode}
- \tud@geometry@@process%
- }%
-% \end{macrocode}
-% Der Befehl \cs{tud@geometry@@process} setzt mit den zuvor definierten
-% Hilfsmakros die \pkg{geometry}"=Optionen für sowohl die seitlichen als auch
-% die oberen sowie unteren Seitenränder und inkludiert ggf. Kopf- und Fußzeile
-% in den Satzspiegel. Die unterschiedlichen Layouts sind dabei \opt{tudddc} für
-% TUD-Kopf und \DDC-Fuß, \opt{tudpage} für den alleinigen TUD-Kopf sowie
-% \opt{tudarea} für den normalen bzw. mit \pkg{typearea} berechneten
-% Satzspiegel.
-% \begin{macrocode}
- \newcommand*\tud@geometry@@process{%
-% \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@geometry@ddcmargin}.
-% \begin{macrocode}
- \edef\Gm@restore@org{\Gm@restore}%
- \tud@ifverlower{2.03}{%
- \edef\@tempa{%
- \tud@geometry@hmargin,%
- \tud@geometry@vmargin,%
- \tud@geometry@tudmargin,%
- \tud@geometry@ddcmargin,%
- ignorehead,ignorefoot%
- }%
- \tud@newgeometry{\@tempa}%
- \savegeometry{tudareaddc}%
- }{}%
+ \TUD@parameter@def{headlogo}{\headlogo{#1}}%
+ \TUD@parameter@def{footlogo}{\footlogo{#1}}%
% \end{macrocode}
-% Danach folgt der Seitenstil, mit dem TUD-Kopf und der Standardfußzeile.
+% \end{parameter}^^A footlogo
+% \end{parameter}^^A headlogo
+% \begin{parameter}{ddc}
+% \changes{v2.02}{2014/08/16}{neu}^^A
+% \begin{parameter}{ddchead}
+% \begin{parameter}{ddcfoot}
+% Mit diesen Parametern kann das \DDC-Logo im Kopf bzw. Fuß eingeblendet werden.
% \begin{macrocode}
- \edef\@tempa{%
- \tud@geometry@hmargin,%
- \tud@geometry@vmargin,%
- \tud@geometry@tudmargin%
- }%
- \tud@newgeometry{\@tempa}%
- \savegeometry{tudarea}%
+ \TUD@parameter@def{ddc}[true]{\TUDoption{ddc}{#1}}%
+ \TUD@parameter@def{ddchead}[true]{\TUDoption{ddchead}{#1}}%
+ \TUD@parameter@def{ddcfoot}[true]{\TUDoption{ddcfoot}{#1}}%
% \end{macrocode}
-% Als letztes wird der Standardsatzspiegel erstellt.
+% \end{parameter}^^A ddcfoot
+% \end{parameter}^^A ddchead
+% \end{parameter}^^A ddc
+% \begin{parameter}{cdfonts}
+% \begin{parameter}{tudfonts}
+% \begin{parameter}{barfont}
+% \begin{parameter}{widehead}
+% \begin{parameter}{tudfoot}
+% \begin{parameter}{logo}
+% Für die Kompatibilität werden auch veraltete Parameter bereitgestellt.
% \begin{macrocode}
- \edef\@tempa{%
- \tud@geometry@hmargin,%
- \tud@geometry@vmargin%
- }%
- \tud@newgeometry{\@tempa}%
- \savegeometry{typearea}%
- }%
-% \end{macrocode}
-% \end{macro}^^A \tud@geometry@@process
-% \end{macro}^^A \tud@geometry@process
-% \begin{macro}{\tud@geometry@hincl}
-% \changes{v2.02}{2014/06/23}{geändert für das Paket \pkg{scrlayer-scrpage}}^^A
-% \begin{macro}{\tud@geometry@fincl}
-% \begin{macro}{\tud@geometry@mpincl}
-% \changes{v2.04}{2015/03/09}{neu}^^A
-% Diese Hilfsmakros werten die Optionen für das Einbeziehen von Kopf- und
-% Fußzeile sowie der Randnotizen aus.
-% \begin{macrocode}
- \newcommand*\tud@geometry@hincl{%
- \if@hincl%
- includehead=true%
- \else%
- includehead=false%
- \fi%
- }%
- \newcommand*\tud@geometry@fincl{%
- \if@fincl%
- includefoot=true%
- \else%
- includefoot=false%
- \fi%
- }%
- \newcommand*\tud@geometry@mpincl{%
- \if@mincl%
- includemp=true%
- \else%
- includemp=false%
- \fi%
- }%
+ \TUD@parameter@def{cdfonts}[true]{\TUDoption{cdfonts}{#1}}%
+ \TUD@parameter@def{tudfonts}[true]{\TUDoption{tudfonts}{#1}}%
+ \TUD@parameter@def{barfont}[true]{\TUDoption{barfont}{#1}}%
+ \TUD@parameter@def{widehead}[true]{\TUDoption{widehead}{#1}}%
+ \TUD@parameter@def{tudfoot}[true]{\TUDoption{tudfoot}{#1}}%
+ \TUD@parameter@let{logo}{headlogo}%
% \end{macrocode}
-% \end{macro}^^A \tud@geometry@mpincl
-% \end{macro}^^A \tud@geometry@fincl
-% \end{macro}^^A \tud@geometry@hincl
-% Damit sind alle notwendigen Satzspiegel für die unterschiedlichen Seitenstile
-% definiert.
+% \end{parameter}^^A logo
+% \end{parameter}^^A tudfoot
+% \end{parameter}^^A widehead
+% \end{parameter}^^A barfont
+% \end{parameter}^^A tudfonts
+% \end{parameter}^^A cdfonts
+% Damit sind alle notwendigen Parameter für die Kopf- und Fußzeile der Seiten
+% im Stil \pgs{tudheadings} definiert.
% \begin{macrocode}
}
% \end{macrocode}
-% \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
-% \begin{macro}{\tud@currentgeometry}
-% \changes{v2.02}{2014/06/23}{neu}^^A
-% Mit \cs{tud@BeforeSelectAnyPageStyle} wird beim Umschalten des Seitenstils
-% gegebenfalls der Satzspiegel geändert. Dabei wird der aktivierte Satzspiegel
-% in dem Makro \cs{tud@currentgeometry} gesichert, um darauf zu einem späteren
-% Zeitpunkt prüfen zu können.
+% \end{macro}^^A \tud@ps@parameters
+%
+% \iffalse
+%<*book|report|article>
+% \fi
%
-% Für den Fall, dass das Dokument nicht ausschließlich mit dem Kopf im \CD
-% auf jeder Seite gesetzt wird, muss der komplette vertikale Satzspiegel
-% angepasst werden, sonst wäre der obere Rand optisch viel zu groß. Hierfür
-% wird das Paket \pkg{geometry} genutzt. Durch \cs{tud@geometry@process}
-% 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]{%
-% \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}}{%
-% \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@iftudps{#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@ifverlower{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%
-% \end{macrocode}
-% Das \DDC-Logo im Fuß ist nicht aktiviert.
-% \begin{macrocode}
- \ifcase\@tempb\relax% \tud@ddc@foot=false
- \ifstr{\tud@currentgeometry}{tudarea}{}{%
- \loadgeometry{tudarea}%
- \gdef\tud@currentgeometry{tudarea}%
- }%
-% \end{macrocode}
-% Das \DDC-Logo im Fuß ist aktiviert.
-% \begin{macrocode}
- \else% \tud@ddc@foot!=false
- \ifstr{\tud@currentgeometry}{tudareaddc}{}{%
- \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}{}{%
- \loadgeometry{tudarea}%
- \gdef\tud@currentgeometry{tudarea}%
- }%
- }%
-% \end{macrocode}
-% Die Länge \cs{tud@dim@headdiff} 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@dim@headdiff{\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}}%
-% \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}{typearea}{}{%
- \loadgeometry{typearea}%
- \gdef\tud@currentgeometry{typearea}%
- }%
-% \end{macrocode}
-% Die Länge \cs{tud@dim@headdiff} 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@dim@headdiff{\tud@ta@headdiff}%
- \ifcase\tud@geometry\relax\else% true/symmetric/twoside
- \if@hincl%
- \addtolength\tud@dim@headdiff{%
- \dimexpr-\tud@ta@headheight-\tud@dim@headsep\relax%
- }%
- \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}%
- }%
-% \end{macrocode}
-% Die Länge \cs{tud@dim@headdiff} wird vorsichtshalber global gesetzt.
-% \begin{macrocode}
- \global\tud@dim@headdiff=\tud@dim@headdiff%
- }{}%
-}
-% \end{macrocode}
-% \end{macro}^^A \tud@currentgeometry
-% \end{macro}^^A \tud@BeforeSelectAnyPageStyle
-% \begin{macro}{\cleardoubleoddpageusingstyle}
-% \begin{macro}{\cleardoubleevenpageusingstyle}
-% \begin{macro}{\cleardoublepageusingstyle}
-% Damit die Satzspiegelumstellungen nicht durchgeführt werden, wenn durch die
-% folgenden \KOMAScript-Befehle Leerseiten erzeugt werden, müssen diese minimal
-% angepasst werden.
-% \begin{macrocode}
-\patchcmd{\cleardoubleoddpageusingstyle}{\pagestyle}{%
- \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle%
-}{}{\tud@patch@wrn{cleardoubleoddpageusingstyle}}
-\patchcmd{\cleardoubleevenpageusingstyle}{\pagestyle}{%
- \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle%
-}{}{\tud@patch@wrn{cleardoubleevenpageusingstyle}}
-\patchcmd{\cleardoublepageusingstyle}{\pagestyle}{%
- \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle%
-}{}{\tud@patch@wrn{cleardoublepageusingstyle}}
-% \end{macrocode}
-% \end{macro}^^A \cleardoublepageusingstyle
-% \end{macro}^^A \cleardoubleevenpageusingstyle
-% \end{macro}^^A \cleardoubleoddpageusingstyle
-% \begin{macro}{\tud@ddc@enlargepage}
-% \changes{v2.02}{2014/06/23}{neu}^^A
-% Der Befehl wird nur für den Kompatibilitätsmodus zur Version~v2.02 benötigt
-% und für die Titelkopf- und Kapitelseiten verwendet. Er verkleinert die
-% entsprechenden Seiten, wenn für diese mit dem Befehl \cs{thispagestyle} einer
-% der \pgs{tudheadings}"=Seitenstile gewählt wird \emph{und} das \DDC-Logo im
-% Fuß gesetzt werden soll. Der entsprechende Seitenstil kann im optionalen
-% Argument angegeben werden, wenn der Befehl bedingt ausgeführt werden soll.
-% \begin{macrocode}
-\tud@ifverlower{2.03}{%
- \newcommand*\tud@ddc@enlargepage[1][]{%
- \tud@iftudps{#1}{%
- \ifstr{\tud@currentgeometry}{tudareaddc}{}{%
- \tud@ddc@check%
- \ifcase\@tempb\relax\else% \tud@ddc@foot!=false
- \enlargethispage{-\tud@dim@ddcdiff}%
- \fi%
- }%
- }{}%
- }%
-}{}
-% \end{macrocode}
-% \end{macro}^^A \tud@ddc@enlargepage
-% \begin{length}{\tud@ta@textheight}
-% \begin{length}{\tud@ta@topmargin}
-% \begin{length}{\tud@ta@headheight}
-% \begin{length}{\tud@ta@headsep}
-% \begin{length}{\tud@ta@footheight}
-% \changes{v2.03}{2015/01/09}{neu, für entsprechende \pkg{typearea}-Option}^^A
-% \begin{length}{\tud@ta@footskip}
-% Diese Längen werden benötigt, um einen mit \pkg{typearea} berechneten
-% Satzspiegel an \pkg{geometry} weiterzureichen und die unterschiedlichen, vom
-% Satzspiegel abhängigen Seitenlayouts zu erstelen.
-% \begin{macrocode}
-\newlength\tud@ta@textheight
-\newlength\tud@ta@topmargin
-\newlength\tud@ta@headheight
-\newlength\tud@ta@headsep
-\newlength\tud@ta@footheight
-\newlength\tud@ta@footskip
-% \end{macrocode}
-% \end{length}^^A \tud@ta@footskip
-% \end{length}^^A \tud@ta@footheight
-% \end{length}^^A \tud@ta@headsep
-% \end{length}^^A \tud@ta@headheight
-% \end{length}^^A \tud@ta@topmargin
-% \end{length}^^A \tud@ta@textheight
-% \begin{length}{\tud@ta@headdiff}
-% \begin{length}{\tud@ta@footdiff}
-% \changes{v2.02}{2014/06/23}{entfernt}^^A
-% Eine Länge für den Ausgleich zwischen normalem und benötigtem Satzspiegel für
-% das spezielle Layout des \CDs. Die Differenz zwischen den unterschiedlichen
-% Kopfhöhen der Satzspiegelvarianten wird bei der Ausführung von
-% \cs{tud@geometry@process} berechnet und in \cs{tud@ta@headdiff} gespeichert.
-% Dabei muss unterschieden werden, ober der Satzspiegel genutzt wird, der durch
-% das \CD vorgegeben ist oder der durch \pkg{typearea} berechnete. Die Länge
-% \cs{tud@ta@footdiff} wurde mit der \TUDScript-Version~v2.02 entfernt.
-% \begin{macrocode}
-\newlength\tud@ta@headdiff
-% \end{macrocode}
-% \end{length}^^A \tud@ta@footdiff
-% \end{length}^^A \tud@ta@headdiff
-% \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{geometry=no}) wird jedoch der von \pkg{typearea} berechnete
-% Satzspiegel an \pkg{geometry} weitergereicht. Somit wird es möglich,
-% unabhängig vom genutzten Paket\footnote{\pkg{typearea} oder \pkg{geometry}}
-% zur Festlegung des Satzspiegels, diesen innerhalb des Dokumentes zu ändern.
-% \begin{macrocode}
-\newcommand*\tud@AfterChangingArea{%
- \setlength\tud@ta@textheight{\textheight}%
- \setlength\tud@ta@topmargin{\topmargin}%
- \setlength\tud@ta@headheight{\headheight}%
- \setlength\tud@ta@headsep{\headsep}%
- \ifcsvoid{ta@fh}{%
- \setlength\tud@ta@footheight{\footheight}%
- }{%
- \setlength\tud@ta@footheight{\ta@fh}%
- }%
- \setlength\tud@ta@footskip{\footskip}%
- \tud@geometry@process%
-% \end{macrocode}
-% Nachder Änderung desSatzspiegels 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.
-% \begin{macrocode}
- \gdef\tud@currentgeometry{}%
- \expandafter\pagestyle\expandafter{\currentpagestyle}%
-}
-% \end{macrocode}
-% \end{macro}^^A \tud@AfterChangingArea
-% 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. Nachfolgend erstellt
-% \cs{tud@geometry@process} alle benötigten Satzspiegel. Durch das Setzen des
-% Seitenstils wird der jeweils richtige bzw. benötigte Satzspiegel ausgewählt.
-% Dies geschieht \emph{nicht}, wenn die \cls{standalone}-Klasse mit der Option
-% \opt{crop} geladen wurde, um die Seitenränder nicht zu ändern.
-% \begin{macrocode}
-\AtEndPreamble{%
- \tud@ifsacrop{}{%
-% \end{macrocode}
-% Nach einer Neuberechnung oder Änderung des Satzspiegels durch \pkg{typearea}
-% werden die für die Seitenstile benötigten Satzspiegel mit \pkg{geometry} neu
-% erstellt.
-% \ToDo{\cs{AfterRestoreareas} einfügen}[v3.18]
-% \begin{macrocode}
- \AfterCalculatingTypearea{\tud@AfterChangingArea}%
- \AfterSettingArea{\tud@AfterChangingArea}%
-% \AfterRestoreareas{\tud@AfterChangingArea}%
-% \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}}%
- \recalctypearea%
- }%
-}
-% \end{macrocode}
% \begin{environment}{tudpage}
% \changes{v2.02}{2014/06/23}{an Paket \pkg{scrlayer-scrpage} angepasst}^^A
-% \begin{macro}{\tud@ps}
-% \begin{macro}{\tud@ps@select}
+% \begin{macro}{\tud@envir@ps}
+% \begin{macro}{\tud@envir@selectps}
% \changes{v2.02}{2014/07/19}{neu}^^A
-% \begin{macro}{\tud@currentpagestyle}
% \begin{macro}{\tud@currentpagestyle@set}
% \changes{v2.02}{2014/07/18}{neu}^^A
% \begin{macro}{\tud@currentpagestyle@reset}
% \changes{v2.02}{2014/07/18}{neu}^^A
% \changes{v2.03}{2015/01/09}{Bugfix}^^A
+% \begin{macro}{\tud@currentpagestyle@value}
% Durch den hohen TUD-Kopf muss bei der Verwendung dessens das Seitenlayout
% temporär umgeschaltet werden, um die Höhe des Satzspiegels zu verringern.
% Dies geschieht innerhalb dieser Umgebung reversibel mit \cs{pagestyle}.
@@ -3154,10 +2633,10 @@
% wiederhergestellt. Die gewünschte Sprache der Umgebung kann als einzelner
% Wert ohne Schlüssel angegben werden.
% \begin{macrocode}
-\newcommand*\tud@ps{tudheadings}
-\newcommand*\tud@ps@select{%
- \expandafter\pagestyle\expandafter{\tud@ps}%
- \ifstr{\GetRealPageStyle{\tud@ps}}{empty}{%
+\newcommand*\tud@envir@ps{tudheadings}
+\newcommand*\tud@envir@selectps{%
+ \expandafter\pagestyle\expandafter{\tud@envir@ps}%
+ \ifstr{\GetRealPageStyle{\tud@envir@ps}}{empty}{%
\renewcommand*\titlepagestyle{empty}%
%<*book|report>
\renewcommand*\partpagestyle{empty}%
@@ -3165,7 +2644,7 @@
%</book|report>
\renewcommand*\indexpagestyle{empty}%
}{}%
- \ifstr{\GetRealPageStyle{\tud@ps}}{empty.tudheadings}{%
+ \ifstr{\GetRealPageStyle{\tud@envir@ps}}{empty.tudheadings}{%
\renewcommand*\titlepagestyle{empty.tudheadings}%
%<*book|report>
\renewcommand*\partpagestyle{empty.tudheadings}%
@@ -3174,40 +2653,40 @@
\renewcommand*\indexpagestyle{empty.tudheadings}%
}{}%
}
-\newcommand*\tud@currentpagestyle{}
+\newcommand*\tud@currentpagestyle@value{}
\newcommand*\tud@currentpagestyle@set{%
- \ifdefvoid{\tud@currentpagestyle}{%
- \xdef\tud@currentpagestyle{\currentpagestyle}%
+ \ifdefvoid{\tud@currentpagestyle@value}{%
+ \xdef\tud@currentpagestyle@value{\currentpagestyle}%
}{}%
}
\newcommand*\tud@currentpagestyle@reset{%
- \ifdefvoid{\tud@currentpagestyle}{}{%
- \expandafter\pagestyle\expandafter{\tud@currentpagestyle}%
- \let\tud@currentpagestyle\relax%
+ \ifdefvoid{\tud@currentpagestyle@value}{}{%
+ \expandafter\pagestyle\expandafter{\tud@currentpagestyle@value}%
+ \let\tud@currentpagestyle@value\relax%
}%
}
\NewEnviron{tudpage}[1][]{%
% \end{macrocode}
% Um beim Umschalten des Seitenstils den aktuellen selbst zu behalten, wird
-% dieser im Hilfsmakro \cs{tud@currentpagestyle} gespeichert.
+% dieser im Hilfsmakro \cs{tud@currentpagestyle@value} gespeichert.
% \begin{macrocode}
\tud@currentpagestyle@set%
\clearpage%
- \def\tud@ps{tudheadings}%
+ \def\tud@envir@ps{tudheadings}%
\TUD@parameter@set{tudpage}{#1}%
- \tud@ps@select%
- \tud@multicols@check%
+ \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}
- \ifnum\tud@multicols>\@ne\relax%
- \begin{multicols}{\tud@multicols}%
+ \ifnum\tud@x@multicol@num>\@ne\relax%
+ \begin{multicols}{\tud@x@multicol@num}%
\fi%
\BODY%
- \ifnum\tud@multicols>\@ne\relax%
+ \ifnum\tud@x@multicol@num>\@ne\relax%
\end{multicols}%
\fi%
% \end{macrocode}
@@ -3220,138 +2699,45 @@
\clearpage%
]
% \end{macrocode}
+% \end{macro}^^A \tud@currentpagestyle@value
% \end{macro}^^A \tud@currentpagestyle@reset
% \end{macro}^^A \tud@currentpagestyle@set
-% \end{macro}^^A \tud@currentpagestyle
-% \end{macro}^^A \tud@ps@select
-% \end{macro}^^A \tud@ps
+% \end{macro}^^A \tud@envir@selectps
+% \end{macro}^^A \tud@envir@ps
% \end{environment}^^A tudpage
-% \begin{macro}{\TUD@parameter@define@ps}
-% Im Folgenden werden die einzelnen Parameter für die \env{tudpage}"=Umgebung
-% definiert. Die Parameter für Kopf- und Fußzeile werden nicht nur für die
-% \env{tudpage}-Umgebung sondern auch noch für Titel und Umschlagseite
-% verwendet, weshalb deren Definitionen zur einfacheren Wiederverwendung in das
-% Makro \cs{TUD@parameter@define@ps} ausgelagert werden.
-% \begin{macrocode}
-\newcommand*\TUD@parameter@define@ps[1]{%
-% \end{macrocode}
-% \begin{parameter}{cdfont}
-% Die Option \opt{cdfont} bestimmt, ob die Schriften des \CDs oder aber die
-% standardmäßigen Serifenlosen für die Auszeichnugen in der Kopfzeile und
-% Serifen im Inhalt verwendet werden.
-% \begin{macrocode}
- \TUD@parameter@define{cdfont}[true]{\TUDoption{cdfont}{#1}}%
-% \end{macrocode}
-% \end{parameter}^^A cdfont
-% \begin{parameter}{cdhead}
-% \changes{v2.03}{2015/01/28}{\val{barfont} und \val{widehead} überlagert}^^A
-% Mit dem Parameter \val{cdhead} kann die Verwendung der Schriften des \CDs
-% aktiviert werden, wenn diese im Fließtext nicht zum Einsatz kommen. Die
-% Breite des Querbalkens kann über diesen Parameter ebenfalls geändert werden.
-% \begin{macrocode}
- \TUD@parameter@define{cdhead}[true]{\TUDoption{cdhead}{#1}}%
-% \end{macrocode}
-% \end{parameter}^^A cdhead
-% \begin{parameter}{cdfoot}
-% \changes{v2.03}{2015/01/30}{neu}^^A
-% Über \val{cdfoot} kann gg. die Hintergrundfarbe sowie die Standardfußzeile
-% des \CDs aktiviert werden.
-% \begin{macrocode}
- \TUD@parameter@define{cdfoot}[true]{\TUDoption{cdfoot}{#1}}%
-% \end{macrocode}
-% \end{parameter}^^A cdfoot
-% \begin{parameter}{headlogo}
-% \changes{v2.03}{2015/01/28}{neu}^^A
-% \begin{parameter}{footlogo}
-% \changes{v2.03}{2015/01/28}{neu}^^A
-% Das Zweit- und die Drittlogos können ebenfalls lokal geändert werden.
-% \begin{macrocode}
- \TUD@parameter@define{headlogo}{\headlogo{#1}}%
- \TUD@parameter@define{footlogo}{\footlogo{#1}}%
-% \end{macrocode}
-% \end{parameter}^^A footlogo
-% \end{parameter}^^A headlogo
-% \begin{parameter}{ddc}
-% \changes{v2.02}{2014/08/16}{neu}^^A
-% \begin{parameter}{ddchead}
-% \begin{parameter}{ddcfoot}
-% Mit diesen Parametern kann das \DDC-Logo im Kopf bzw. Fuß eingeblendet werden.
-% \begin{macrocode}
- \TUD@parameter@define{ddc}[true]{\TUDoption{ddc}{#1}}%
- \TUD@parameter@define{ddchead}[true]{\TUDoption{ddchead}{#1}}%
- \TUD@parameter@define{ddcfoot}[true]{\TUDoption{ddcfoot}{#1}}%
-% \end{macrocode}
-% \end{parameter}^^A ddcfoot
-% \end{parameter}^^A ddchead
-% \end{parameter}^^A ddc
-% \begin{parameter}{cdfonts}
-% \begin{parameter}{tudfonts}
-% \begin{parameter}{barfont}
-% \begin{parameter}{widehead}
-% \begin{parameter}{tudfoot}
-% \begin{parameter}{logo}
-% Für die Kompatibilität werden auch veraltete Parameter bereitgestellt.
-% \begin{macrocode}
- \TUD@parameter@define{cdfonts}[true]{\TUDoption{cdfonts}{#1}}%
- \TUD@parameter@define{tudfonts}[true]{\TUDoption{tudfonts}{#1}}%
- \TUD@parameter@define{barfont}[true]{\TUDoption{barfont}{#1}}%
- \TUD@parameter@define{widehead}[true]{\TUDoption{widehead}{#1}}%
- \TUD@parameter@define{tudfoot}[true]{\TUDoption{tudfoot}{#1}}%
- \TUD@parameter@let{logo}{headlogo}%
-% \end{macrocode}
-% \end{parameter}^^A logo
-% \end{parameter}^^A tudfoot
-% \end{parameter}^^A widehead
-% \end{parameter}^^A barfont
-% \end{parameter}^^A tudfonts
-% \end{parameter}^^A cdfonts
-% Damit sind alle notwendigen Parameter für die Kopf- und Fußzeile der Seiten
-% im Stil \pgs{tudheadings} definiert.
-% \begin{macrocode}
-}
-% \end{macrocode}
-% \end{macro}^^A \TUD@parameter@define@ps
-% Mit \cs{TUD@parameter}\marg{Family}\marg{\dots} wird die Parameterfamilie
-% festgelegt und anschließend die Definitionen getätigt.
+% Mit \cs{TUD@parameter@family}\marg{Family}\marg{\dots} wird die Familie der
+% Parameter festgelegt und anschließend die Definitionen getätigt.
% \begin{macrocode}
-\TUD@parameter{tudpage}{%
+\TUD@parameter@family{tudpage}{%
% \end{macrocode}
% \begin{parameter}{language}
% Mit diesem Parameter kann die Sprache in der Umgebung umgeschaltet werden. Die
% Sprache kann auch ohne den entsprechenden Schlüssel direkt als Parameter
% angegeben werden.
% \begin{macrocode}
- \TUD@parameter@define{language}{\selectlanguage{#1}}%
+ \TUD@parameter@def{language}{\selectlanguage{#1}}%
% \end{macrocode}
% \end{parameter} ^^A language
% \begin{parameter}{columns}
% Hiermit kann die Anzahl der Spalten für die Umgebung angegeben werden. Für
-% mehr als zwei Spalten muss das Paket \pkg{multicols} geladen werden. Die
+% mehr als zwei Spalten muss das Paket \pkg{multicol} geladen werden. Die
% Spaltenanzahl kann auch ohne den entsprechenden Schlüssel direkt Parameter
% angegeben werden.
% \begin{macrocode}
- \TUD@parameter@define{columns}{\cs@std@lock{tud@multicols}{#1}}%
+ \TUD@parameter@def{columns}{\cs@std@lock{tud@x@multicol@num}{#1}}%
% \end{macrocode}
% \end{parameter} ^^A columns
-% \begin{parameter}{color}
-% \changes{v2.03}{2015/01/28}{entfernt}^^A
-% \begin{parameter}{colour}
-% \changes{v2.03}{2015/01/28}{entfernt}^^A
-% Beide Parameter wurden entfernt, da diese augenscheinlich für das \CD nicht
-% notwendig sind.
-% \end{parameter}^^A colour
-% \end{parameter}^^A color
% \begin{parameter}{pagestyle}
% \changes{v2.02}{2014/06/23}{neu}^^A
-% \changes{v2.03}{2015/01/28}{\cs{tud@iftudps} verwendet}^^A
+% \changes{v2.03}{2015/01/28}{\cs{tud@if@tudheadings} verwendet}^^A
% Mit diesem Parameter kann der verwendete Seitenstil eingestellt werden, wobei
% einer der \pgs{tudheadings}-Seitenstile verwendet wird.
% \begin{macrocode}
- \TUD@parameter@define{pagestyle}{%
- \tud@iftudps{#1}{\renewcommand*\tud@ps{#1}}{%
- \ifstr{#1}{empty}{\renewcommand*\tud@ps{empty.tudheadings}}{%
- \ifstr{#1}{plain}{\renewcommand*\tud@ps{plain.tudheadings}}{%
- \ifstr{#1}{headings}{\renewcommand*\tud@ps{tudheadings}}{%
+ \TUD@parameter@def{pagestyle}{%
+ \tud@if@tudheadings{#1}{\renewcommand*\tud@envir@ps{#1}}{%
+ \ifstr{#1}{empty}{\renewcommand*\tud@envir@ps{empty.tudheadings}}{%
+ \ifstr{#1}{plain}{\renewcommand*\tud@envir@ps{plain.tudheadings}}{%
+ \ifstr{#1}{headings}{\renewcommand*\tud@envir@ps{tudheadings}}{%
\TUD@parameter@error{pagestyle}{%
headings, plain, empty or any tudheadings page style type%
}%
@@ -3360,35 +2746,23 @@
}%
% \end{macrocode}
% \end{parameter}^^A pagestyle
-% \begin{parameter}{head}
-% \changes{v2.02}{2014/06/30}{entfernt, Funktionalität teilweise durch Option
-% \opt{ddchead} übernommen}^^A
-% \begin{parameter}{foot}
-% \changes{v2.02}{2014/06/30}{entfernt, Funktionalität teilweise durch Option
-% \opt{ddcfoot} übernommen}^^A
-% Diese Parameter wurden entfernt. Stattdessen kann innerhalb der Umgebung
-% entweder der Befehl \cs{TUDoptions} mit den Schlüsseln \opt{ddchead=\dots}
-% und \opt{ddcfoot=\dots} bzw. für den Querbalken \opt{cdhead=\dots} sowie das
-% Makro \cs{headlogo} genutzt werden oder aber die gleichnamigen Parameter der
-% Umgebung.
-% \end{parameter}^^A head
-% \end{parameter}^^A foot
% Hier werden die Parameter für Kopf- und Fußzeile tatsächlich defniert.
% \begin{macrocode}
- \TUD@parameter@define@ps{#1}%
+ \tud@ps@parameters{#1}%
% \end{macrocode}
% Für den Fall, dass ein Wert nicht in der Schlüssel"=Wert"=Notation gegeben
-% wird, erfolgt eine Sonderbehandlung durch \cs{TUD@parameter@defaulthandler},
+% wird, erfolgt eine Sonderbehandlung durch \cs{TUD@parameter@handler@default},
% bei dererst auf eine Zahl geprüft wird und anschießend versucht wird, das
% Argument als Sprache zu setzen. Nach der Definition aller Parameter wird der
-% Befehl \cs{TUD@parameter} und damit auch die aktuelle Parameterfamilie
+% Befehl \cs{TUD@parameter@family} und damit auch die aktuelle Parameterfamilie
% beendet.
% \begin{macrocode}
- \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{tudpage}{#1}}%
+ \TUD@parameter@handler@default{}%
}
% \end{macrocode}
%
% \iffalse
+%</book|report|article>
%</class&body>
% \fi
%
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-poster.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-poster.dtx
deleted file mode 100644
index e135d68f154..00000000000
--- a/Master/texmf-dist/source/latex/tudscr/tudscr-poster.dtx
+++ /dev/null
@@ -1,311 +0,0 @@
-% \CheckSum{182}
-% \iffalse meta-comment
-%
-% ============================================================================
-%
-% TUD-KOMA-Script
-% Copyright (c) Falk Hanisch <tudscr@gmail.com>, 2012-2016
-%
-% ============================================================================
-%
-% 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 veraendert werden. Die aktuelle
-% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
-% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
-% oder spaeter 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-poster.dtx
-%<*driver>
-\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
-\ProvidesFile{tudscr-poster.dtx}[%
- 2015/06/02 v2.04 TUD-KOMA-Script\space%
-%</driver>
-%<package&identify>\NeedsTeXFormat{LaTeX2e}
-%<package&identify>\ProvidesPackage{tudscrposter}[%
-%<*driver|package&identify>
-%!TUDVersion
-%<package> package
- (corporate design posters)%
-]
-%</driver|package&identify>
-%<*driver>
-\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
-\documentclass[english,ngerman]{tudscrdoc}
-\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
-\usepackage[T1]{fontenc}
-\usepackage{babel}
-\usepackage{tudscrfonts} % only load this package, if the fonts are installed
-\KOMAoptions{parskip=half-}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{tudscr-poster.dtx}
-\begin{document}
- \maketitle
- \DocInput{\filename}
-\end{document}
-%</driver>
-% \fi
-%
-% \selectlanguage{ngerman}
-%
-% \section{Poster}
-%
-% Diese Paket stellt für die \cls{tudscr}-Klassen das Layout für ein Poster im
-% \CD der \TnUD zur Verfügung.
-%
-% \StopEventually{\PrintIndex\PrintChanges}
-%
-% \iffalse
-%<*package&option>
-% \fi
-%
-% \subsection{Das Paket \pkg{tudscrposter}}
-%
-% \begin{option}{cdstyle}
-% \changes{v2.04}{2015/05/12}{neu}^^A
-% \begin{option}{style}
-% \changes{v2.04}{2015/05/12}{neu}^^A
-% \begin{macro}{\tud@cdstyle}
-% \changes{v2.04}{2015/05/12}{neu}^^A
-% Mit dieser Option wird festgelegt, in welcher farbigen Ausprägung das Poster
-% erstellt wird. Dabei sind alle Werte gültig, die auch für die meisten anderen
-% Layouteinstellungen verwendet werden können. Abhängig vom 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 frühestens zu Beginn des Dokumentes.
-% \begin{macrocode}
-\newcommand*\tud@cdstyle{0}
-\TUD@key{cdstyle}[true]{%
- \TUD@set@numkey{cdstyle}{tud@cdstyle}{\tud@layout@switch}{#1}%
- \ifx\FamilyKeyState\FamilyKeyStateProcessed%
- \if@atdocument\tud@style@set\fi%
- \fi%
-}
-% \end{macrocode}
-% Der Schlüssel \opt{style} wird als Alias bereitgehalten.
-% \begin{macrocode}
-\TUD@key{style}[true]{\TUDoptions{cdstyle=#1}}
-% \end{macrocode}
-% \end{macro}^^A \tud@cdstyle
-% \end{option}^^A style
-% \end{option}^^A cdstyle
-%
-% \iffalse
-%</package&option>
-%<*package&body>
-% \fi
-%
-% \begin{macro}{\tud@cdstyle@set}
-% \changes{v2.04}{2015/05/18}{neu}^^A
-% Mit diesem Makro erfolgt die Zuweisung des Seitenstils.
-% \begin{macrocode}
-\newcommand*\tud@cdstyle@set{%
- \ifcase\tud@cdstyle\relax% false
- \footcontent{}%
- \else% !false
- \pagestyle{empty.tudheadings}%
- \footcontent{\tud@foot@poster@left}[\tud@foot@poster@right]%
- \ifcase\tud@cdstyle\relax\or% true
- \TUDoptions{cdhead=nocolor,cdfoot=true}%
- \or% litecolor
- \TUDoptions{cdhead=litecolor,cdfoot=true}%
- \or% barcolor
- \TUDoptions{cdhead=barcolor,cdfoot=true}%
- \else% bicolor/color/full
- \TUDoptions{cdhead=bicolor,cdfoot=bicolor}%
- \fi%
- \fi%
-}
-\AtBeginDocument{\tud@cdstyle@set}
-% \end{macrocode}
-% \end{macro}^^A \tud@cdstyle@set
-% \begin{macro}{\tud@foot@line@add}
-% \changes{v2.04}{2015/05/12}{neu}^^A
-% \begin{macro}{\tud@foot@line@write}
-% \changes{v2.04}{2015/05/12}{neu}^^A
-% 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}@foot} ebenfalls das zweite
-% Argument abgelegt, andernfalls das dritte.
-%
-% Damit wird es für Poster möglich, die Befehle \cs{faculty}, \cs{department},
-% \cs{institute}, \cs{chair} und \cs{professor} dahingehend zu erweitern, dass
-% unterschiedliche Angaben für die Kopf- und Fußzeile gemacht werden können.
-% Wird eines der zuvor genannten Makros lediglich mit einem obligatorischen
-% Argument verwendet, so enthalten Kopf und Fuß den gleichen Eintrag. Wird
-% jedoch zusätzlich das optionale Argument genutzt, so wird dessen Inhalt im
-% Fußbereich mit \cs{tud@foot@line@write} ausgegeben.
-% \begin{macrocode}
-\newcommand*\tud@foot@line@add[3]{%
- \csgdef{@#1}{\trim@spaces{#2}}%
- \ifx#3\@empty\relax%
- \global\csletcs{@#1@foot}{@#1}%
- \else%
- \csgdef{@#1@foot}{\trim@spaces{#3}}%
- \fi%
-}
-\newcommand*\tud@foot@line@write[1]{%
- \protected@edef\@tempa{\csuse{@#1@foot}}%
- \ifx\@tempa\@empty\else\newline{\csuse{@#1@foot}}\fi%
-}
-% \end{macrocode}
-% \end{macro}^^A \tud@foot@line@write
-% \end{macro}^^A \tud@foot@line@add
-% \begin{macro}{\tud@foot@poster@left}
-% \changes{v2.04}{2015/05/12}{neu}^^A
-% \begin{macro}{\tud@foot@poster@right}
-% \changes{v2.04}{2015/05/12}{neu}^^A
-% \begin{macro}{\tud@newline}
-% \begin{macro}{\tud@split@author}
-% \begin{macro}{\tud@split@contactperson}
-% Mit diesen beiden Hilfsmakros werden die linke und die rechte Spalte des
-% Standard-Seitenfußes eines Posters festgelegt. In der linken Spalte werden
-% dabei Fakultät, Einrichtung, Institut und Lehrstuhl sowie der Professor
-% ausgegeben, wobei die Angaben über das optionale Argument der entsprechenden
-% Feldbefehle, die in den Klassen normalerweise nur für den Seitenkopf genutzt
-% werden, variiert werden können.
-% \begin{macrocode}
-\newcommand*\tud@foot@poster@left{%
- \ifx\contactname\@empty\else{\tud@head@font@bold\contactname}\newline\fi%
- Technische Universit\"at Dresden%
- \tud@foot@line@write{faculty}%
- \tud@foot@line@write{department}%
- \tud@foot@line@write{institute}%
- \tud@foot@line@write{chair}%
- \tud@foot@line@write{professor}%
-}
-% \end{macrocode}
-% In der rechten Spalte werden der Autor oder die Autoren (\cs{author}) und
-% die Kontaktperson(en) (\cs{contactperson}) ausgegeben. Zu jeder Person können
-% individuelle Angaben bzgl. Büro, Telefonnummer und E-Mail-Adresse gemacht
-% werden.
-% \begin{macrocode}
-\newcommand*\tud@foot@poster@right{%
- \def\tud@newline{%
- \ifx\@office\@empty\else\newline\@office\fi%
- \ifx\@telephone\@empty\else\newline\@telephone\fi%
- \ifx\@emailaddress\@empty\else\newline\@emailaddress\fi%
- }%
-% \end{macrocode}
-% Wurde kein Autor angegeben, wird in diesem Fall die normalerweise erzeugte
-% Warnung bei der Verwendung des Feldes \cs{@author} unterdrückt.
-% \begin{macrocode}
- \ifpatchable{\@author}{\@latex@warning@no@line}{%
- \let\@tempa\@empty%
- }{%
- \let\@tempa\@author%
- }%
-% \end{macrocode}
-% Der temporäre Schalter wird verwendet, um die gleichzeitige Angabe von Autor
-% und Kontaktperson zu erkennen und zwischen den Angaben eine Leerzeile
-% einzufügen.
-% \begin{macrocode}
- \@tempswafalse%
- \ifx\@tempa\@empty\else%
- \ifx\authorname\@empty\else%
- {\tud@head@font@bold\authorname}\newline%
- \fi%
-% \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
-% Argument mit einem \val{*} aufgerufen wird.
-% \begin{macrocode}
- \renewcommand*\tud@split@author[2]{%
- \tud@multiple@fields@store{@author}{##1}%
- \tud@multiple@fields@preset{@author}{*}{##1}%
- \ignorespaces##1\tud@newline%
- \tud@multiple@fields@restore{@author}%
- \tud@multiple@@@split{##2}{\newline}%
- }%
- \noindent\tud@multiple@split{@author}%
- \tud@multiple@fields@restore{@author}%
-% \end{macrocode}
-% Wurde gültige Felder außerhalb von \cs{@author} global angegeben, so werden
-% diese \emph{nach} allen Autoren ausgegeben.
-% \begin{macrocode}
- \tud@newline%
- \@tempswatrue%
- \fi%
-% \end{macrocode}
-% Die Ausgabe der Kontaktperson(en) erfolgt analog zu der Autorenausgabe.
-% \begin{macrocode}
- \ifx\@contactperson\@empty\else%
- \if@tempswa\newline\fi%
- \ifx\contactpersonname\@empty\else%
- {\tud@head@font@bold\contactpersonname}\newline%
- \fi%
- \renewcommand*\tud@split@contactperson[2]{%
- \tud@multiple@fields@store{@contactperson}{##1}%
- \tud@multiple@fields@preset{@contactperson}{*}{##1}%
- \ignorespaces##1\tud@newline%
- \tud@multiple@fields@restore{@contactperson}%
- \tud@multiple@@@split{##2}{\newline}%
- }%
- \noindent\tud@multiple@split{@contactperson}%
- \tud@multiple@fields@restore{@contactperson}%
- \tud@newline%
- \fi%
-% \end{macrocode}
-% Zu guter letzt noch eine mögliche Homepage.
-% \begin{macrocode}
- \ifx\@webpage\@empty\else\newline\@webpage\fi%
-}
-% \end{macrocode}
-% \end{macro}^^A \tud@split@contactperson
-% \end{macro}^^A \tud@split@author
-% \end{macro}^^A \tud@newline
-% \end{macro}^^A \tud@foot@poster@right
-% \end{macro}^^A \tud@foot@poster@left
-% \begin{macro}{\tud@split@author@list}
-% Der Befehl \cs{tud@split@author@list} wird um die im Paket \pkg{tudscrposter}
-% zusätzlich definierten Felder erweitert.
-% \begin{macrocode}
-\patchcmd{\tud@split@author@list}{authormore}{%
- authormore,office,telephone,emailaddress%
-}{}{\tud@patch@wrn{tud@split@author@list}}
-% \end{macrocode}
-% \end{macro}^^A \tud@split@author@list
-%
-% \iffalse
-%</package&body>
-% \fi
-%
-% \Finale
-%
-\endinput
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-supervisor.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-supervisor.dtx
index 372ba37e28f..133661a9b93 100644
--- a/Master/texmf-dist/source/latex/tudscr/tudscr-supervisor.dtx
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-supervisor.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{581}
+% \CheckSum{594}
% \iffalse meta-comment
%
% ============================================================================
@@ -18,13 +18,13 @@
%
% ----------------------------------------------------------------------------
%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
-% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
-% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
-% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
-% oder spaeter 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.
+% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
+% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
+% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
+% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
+% oder spaeter 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.
%
% ============================================================================
%
@@ -51,24 +51,25 @@
%<*driver>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\ProvidesFile{tudscr-supervisor.dtx}[%
- 2015/06/03 v2.04 TUD-KOMA-Script\space%
+ 2016/07/26 v2.05 TUD-KOMA-Script\space%
%</driver>
-%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{tudscrsupervisor}[%
%<*driver|package>
-%!TUDVersion
+%!TUD@Version
%<package> package
(commands for supervisors)%
]
%</driver|package>
%<*driver>
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
-\documentclass[english,ngerman]{tudscrdoc}
+\documentclass[english,ngerman,xindy]{tudscrdoc}
\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{tudscrfonts} % only load this package, if the fonts are installed
\KOMAoptions{parskip=half-}
+\usepackage{microtype}
+\usepackage{bookmark}
\CodelineIndex
\RecordChanges
\GetFileInfo{tudscr-supervisor.dtx}
@@ -87,7 +88,7 @@
% Befehle zur Erstellung der Aufgabenstellung einer Abschlussarbeit sowie
% eines Gutachtens und eines Aushangs bereit.
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \StopEventually{\PrintIndex\PrintChanges\PrintToDos}
%
% \iffalse
%<*package>
@@ -98,11 +99,21 @@
% \begin{environment}{task}
% \changes{v2.03}{2015/01/05}{Bugfix für initialen Seitenstil}^^A
% \changes{v2.03}{2015/01/05}{Bugfix für Seitenstil im zweiseitigen Satz}^^A
+% \begin{parameter}{headline}
+% \begin{parameter}{heading}
+% \begin{parameter}{line}
+% \begin{parameter}{style}
+% \begin{macro}{\tud@multiple@fields@output}
+% \changes{v2.05}{2016/03/09}{neu}^^A
+% \begin{macro}{\tud@multiple@fields@style}
+% \changes{v2.05}{2016/05/26}{neu}^^A
% Die Umgebung für die Aufgabenstellung nutzt die \env{tudpage}-Umgebung. Sie
% wird auf einer neuen (rechten) Seite gesetzt. Es wird zu Beginn eine Tabelle
% mit Informationen zum Autor gesetzt. Zum Abschluss werden Betreuer,
% Hochschullehrer und ggf. Vorsitzender des Prüfungsausschusses ausgegeben.
% \begin{macrocode}
+\newcommand*\tud@multiple@fields@output{}
+\newcommand*\tud@multiple@fields@style{table}
\newenvironment{task}[1][]{%
% \end{macrocode}
% Die \env{tudpage}-Umgebung wird geöffnet. Mit dem Parameter \opt{headline}
@@ -110,10 +121,12 @@
% \begin{macrocode}
\cleardoubleoddpage%
\def\@headline{}%
- \TUD@parameter{tudpage}{%
- \TUD@parameter@define{headline}{\def\@headline{##1}}%
+ \TUD@parameter@family{tudpage}{%
+ \TUD@parameter@def{headline}{\def\@headline{##1}}%
+ \TUD@parameter@let{heading}{headline}%
\TUD@parameter@let{line}{headline}%
- \TUD@parameter@sethandler{\TUD@parameter@set{tudpage}{headline=##1}}%
+ \TUD@parameter@def{style}{\def\tud@multiple@fields@style{##1}}%
+ \TUD@parameter@handler@default{headline}%
}%
\tudpage[pagestyle=empty,#1]%
% \end{macrocode}
@@ -124,32 +137,46 @@
\subsection*{%
\ifx\@headline\@empty%
\taskname\space%
- \ifx\tasktext\@empty\else\ifx\@thesis\@empty\else%
- \ignorespaces\tasktext\space\trim@spaces{\@thesis}%
+ \ifx\tasktext\@empty\else\ifx\@@thesis\@empty\else%
+ \ignorespaces\tasktext\space\@@thesis%
\fi\fi%
\else\@headline\fi%
}%
- \tud@author@table%
+ \tud@authortable@set%
}{%
% \end{macrocode}
-% Da auch Betreuer durch den Befehl \cs{and} getrennt werden, wird dieser für
-% die korrekte Ausgabe umdefiniert. Anschließend folgt die Ausgabe in einer
-% Tabelle, die Spalte der Bezeichner entspricht der aus dem oberen Teil.
+% Da auch Gutachter und Betreuer durch den Befehl \cs{and} getrennt werden,
+% wird dieser für die korrekte Ausgabe umdefiniert. Anschließend folgt die
+% Ausgabe in einer Tabelle, die Spalte der Bezeichner entspricht der aus dem
+% oberen Teil.
% \begin{macrocode}
- \def\and{%
- \tabularnewline%
- \ifx\supervisorothername\@empty\else\supervisorothername\@titledelim\fi%
- & \def\and{\tabularnewline &}%
+ \def\tud@multiple@fields@output##1{%
+ \ifstr{\tud@multiple@fields@style}{table}{%
+ \def\and{%
+ \tabularnewline%
+ \ifstr{\csuse{##1othername}}{}{}{%
+ \csuse{##1othername}\tud@title@delimiter%
+ }%
+ & \def\and{\tabularnewline &}%
+ }%
+ }{%
+ \def\and{\unskip,\space\ignorespaces}%
+ }%
+ \csuse{@##1}%
}%
\removelastskip%
\ifdim\parskip>\z@\vskip\parskip\else\vskip\topsep\fi\medskip%
\begingroup%
\setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative%
- \begin{tabular}{@{}p{\tud@dim@table}l@{}}%
- \supervisorname\@titledelim &
- \@supervisor\tabularnewline[\smallskipamount]%
- \issuedatetext\@titledelim & \@issuedate\tabularnewline%
- \duedatetext\@titledelim & \@duedate\tabularnewline%
+ \begin{tabular}{@{}p{\tud@len@authortable}l@{}}%
+ \ifx\@referee\@empty\else%
+ \refereename\tud@title@delimiter & %
+ \tud@multiple@fields@output{referee}\tabularnewline[\smallskipamount]%
+ \fi%
+ \supervisorname\tud@title@delimiter & %
+ \tud@multiple@fields@output{supervisor}\tabularnewline[\smallskipamount]%
+ \issuedatetext\tud@title@delimiter & \@issuedate\tabularnewline%
+ \duedatetext\tud@title@delimiter & \@duedate\tabularnewline%
\end{tabular}%
% \end{macrocode}
% Darunter wird etwas Platz für die Unterschriften von betreuendem Professor
@@ -157,7 +184,7 @@
% in einer Tabelle ausgegeben. Die \env{tudpage}-Umgebung wird beendet, und
% eine neue (rechte) Seite geöffnet.
% \begin{macrocode}
- \vskip\tud@signatureskip\noindent%
+ \vskip\tud@len@signatureskip\noindent%
\ifx\@chairman\@empty\else%
\begin{tabular}{@{}l@{}}%
\@chairman\tabularnewline%
@@ -177,6 +204,12 @@
\aftergroup\cleardoublepage%
}
% \end{macrocode}
+% \end{macro}^^A \tud@multiple@fields@style
+% \end{macro}^^A \tud@multiple@fields@output
+% \end{parameter}^^A style
+% \end{parameter}^^A line
+% \end{parameter}^^A heading
+% \end{parameter}^^A headline
% \end{environment}^^A task
% \begin{macro}{\taskform}
% Dies soll die Standardform einer Aufgabenstellung sein. Im ersten Argument
@@ -184,13 +217,13 @@
% besten Fall die Schwerpunkte in einer \env{itemize}-Umgebung aufgeschlüsselt.
% \begin{macrocode}
\newcommand\taskform[3][]{%
- \begin{task}[#1]
+ \begin{task}[#1]%
\removelastskip%
- \ifxblank{#2}{}{\minisec{\objectivesname}#2}%
- \ifxblank{#3}{}{%
+ \ifblank{#2}{}{\minisec{\objectivesname}#2}%
+ \ifblank{#3}{}{%
\minisec{\focusname}%
\begin{itemize}\tud@RaggedRight%
- #3
+ #3%
\end{itemize}%
}%
\end{task}%
@@ -199,6 +232,9 @@
% \end{macro}^^A \taskform
% \begin{environment}{evaluation}
% \changes{v2.03}{2015/01/05}{Bugfix für Seitenstil im zweiseitigen Satz}^^A
+% \begin{parameter}{headline}
+% \begin{parameter}{heading}
+% \begin{parameter}{line}
% Die Umgebung für das Gutachten nutzt ebenfalls die \env{tudpage}-Umgebung. Sie
% wird auf einer neuen (rechten) Seite gesetzt. Es wird zu Beginn eine Tabelle
% mit Informationen zum Autor gesetzt. Zum Abschluss werden Ort, Datum und
@@ -213,23 +249,24 @@
% \begin{macrocode}
\cleardoubleoddpage%
\def\@headline{}%
- \TUD@parameter{tudpage}{%
- \TUD@parameter@define{headline}{\def\@headline{##1}}%
+ \TUD@parameter@family{tudpage}{%
+ \TUD@parameter@def{headline}{\def\@headline{##1}}%
+ \TUD@parameter@let{heading}{headline}%
\TUD@parameter@let{line}{headline}%
- \TUD@parameter@define{grade}{\def\@grade{##1}}%
- \TUD@parameter@sethandler{\TUD@parameter@set{tudpage}{headline=##1}}%
+ \TUD@parameter@def{grade}{\def\@grade{##1}}%
+ \TUD@parameter@handler@default{headline}%
}%
\tudpage[pagestyle=empty,#1]%
\tudbookmark{\evaluationname}{evaluation}%
\subsection*{%
\ifx\@headline\@empty%
\evaluationname\space%
- \ifx\evaluationtext\@empty\else\ifx\@thesis\@empty\else%
- \ignorespaces\evaluationtext\space\trim@spaces{\@thesis}%
+ \ifx\evaluationtext\@empty\else\ifx\@@thesis\@empty\else%
+ \ignorespaces\evaluationtext\space\@@thesis%
\fi\fi%
\else\@headline\fi%
}%
- \tud@author@table%
+ \tud@authortable@set%
}{%
% \end{macrocode}
% Die gegebenen Note sowie Ort und Datum werden am Ende ggf. ausgegeben.
@@ -246,7 +283,7 @@
\vskip\@tempskipa\noindent%
\ifx\@place\@empty\else\@place,\nobreakspace\fi\@date%
\fi%
- \vskip\tud@signatureskip\noindent%
+ \vskip\tud@len@signatureskip\noindent%
% \end{macrocode}
% Der Befehl \cs{and} wird für einen möglichen Zweitgutachter angepasst. Das
% Hilfsmakro \cs{@tempa} dient zur Übernahme des richtigen Bezeichners für
@@ -273,6 +310,9 @@
\aftergroup\cleardoublepage%
}
% \end{macrocode}
+% \end{parameter}^^A line
+% \end{parameter}^^A heading
+% \end{parameter}^^A headline
% \end{environment}^^A evaluation
% \begin{macro}{\evaluationform}
% Dies soll die Standardform eines Gutachtens sein. Im ersten Argument wird
@@ -281,12 +321,12 @@
% erfolgt die Bewertung, das letzte Argument beinhaltet die Note.
% \begin{macrocode}
\newcommand\evaluationform[5][]{%
- \begin{evaluation}[#1]
+ \begin{evaluation}[#1]%
\removelastskip%
- \ifxblank{#2}{}{\minisec{\taskname}#2}%
- \ifxblank{#3}{}{\minisec{\contentname}#3}%
- \ifxblank{#4}{}{\minisec{\assessmentname}#4}%
- \ifxblank{#5}{}{\def\@grade{#5}}%
+ \ifblank{#2}{}{\minisec{\taskname}#2}%
+ \ifblank{#3}{}{\minisec{\contentname}#3}%
+ \ifblank{#4}{}{\minisec{\assessmentname}#4}%
+ \ifblank{#5}{}{\def\@grade{#5}}%
\end{evaluation}%
}
% \end{macrocode}
@@ -297,15 +337,15 @@
\newcommand*\student{\author}
% \end{macrocode}
% \end{macro}^^A \student
-% \begin{macro}{\tud@author@table}
-% \changes{v2.01b}{2014/06/04}{Probleme mit \pkg{calc} behoben}^^A
-% \begin{length}{\tud@dim@table}
-% Der Befehl \cs{tud@author@table} dient zur Ausgabe einer Tabelle mit
+% \begin{macro}{\tud@authortable@set}
+% \changes{v2.01b}{2014/06/04}{Probleme mit Paket \pkg{calc} behoben}^^A
+% \begin{length}{\tud@len@authortable}
+% Der Befehl \cs{tud@authortable@set} dient zur Ausgabe einer Tabelle mit
% Informationen zum Autor/zu den Autoren\footnote{Matrikelnummer, Jahrgang,
% Studiengang etc.} für Aufgabenstellung und Gutachten.
% \begin{macrocode}
-\newlength\tud@dim@table%
-\newcommand*\tud@author@table{%
+\newlength\tud@len@authortable
+\newcommand*\tud@authortable@set{%
\begingroup%
\let\thanks\@gobble%
\let\footnote\@gobble%
@@ -321,31 +361,37 @@
% \begin{macrocode}
\tud@multiple@split{@author}%
\tud@multiple@fields@preset{@author}{\null}{}%
- \setlength\tud@dim@table{2em}%
+ \setlength\tud@len@authortable{2em}%
% \end{macrocode}
% Anschließend werden die Bezeichner sowohl der obligatorischen als auch der
-% genutzten, optionalen Felder expandiert. Anschließend wir mit dieser Liste
-% der längste bestimmt und in \cs{tud@dim@table} gespeichert.
+% genutzten, optionalen Felder in \cs{@tempa} gespeichert. Mit der Liste wird
+% der längste Bezeichner bestimmt und dessen Länge in \cs{tud@len@authortable}
+% gespeichert.
% \begin{macrocode}
- \edef\@tempa{%
- \namesname,\titlename,\supervisorname,\supervisorothername,%
- \issuedatetext,\duedatetext,%
- \expandafter\ifx\@matriculationnumber\@empty\else%
- \matriculationnumbername%
- \fi,%
- \expandafter\ifx\@matriculationyear\@empty\else%
- \matriculationyearname%
- \fi,%
- \expandafter\ifx\@course\@empty\else\coursename\fi,%
- \expandafter\ifx\@discipline\@empty\else\disciplinename\fi,%
+ \def\@tempb##1{%
+ \expandafter\ifx\csname @##1\endcsname\@empty\else%
+ \expandafter\appto\expandafter\@tempa\expandafter{%
+ \expandafter,\csname ##1name\endcsname%
+ }%
+ \fi%
+ }%
+ \def\@tempa{%
+ \namesname,\titlename,\issuedatetext,\duedatetext,\supervisorname%
}%
+ \tud@ifin@and{\@supervisor}{\appto\@tempa{,\supervisorothername}}{}%
+ \@tempb{referee}%
+ \tud@ifin@and{\@referee}{\appto\@tempa{,\refereeothername}}{}%
+ \@tempb{matriculationnumber}%
+ \@tempb{matriculationyear}%
+ \@tempb{course}%
+ \@tempb{discipline}%
\@for\@tempb:=\@tempa\do{%
- \settowidth\@tempdima{\@tempb\@titledelim}%
- \ifdim\@tempdima>\tud@dim@table\relax%
- \setlength\tud@dim@table{\@tempdima}%
+ \settowidth\@tempdima{\@tempb\tud@title@delimiter}%
+ \ifdim\@tempdima>\tud@len@authortable\relax%
+ \setlength\tud@len@authortable{\@tempdima}%
\fi%
}%
- \global\tud@dim@table=\tud@dim@table%
+ \global\tud@len@authortable=\tud@len@authortable%
% \end{macrocode}
% Die Tabelle mit den benötigten Bezeichnern. Damit diese bis an den Seiterand
% ohne Warnungen gesetzt werden können, wird die Auszeichnung von Absatzenden
@@ -353,29 +399,29 @@
% \begin{macrocode}
\begingroup%
\setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative%
- \begin{tabular}{@{}p{\tud@dim@table}}%
+ \begin{tabular}{@{}p{\tud@len@authortable}}%
\ifx\@course\@empty\else%
- \coursename\@titledelim\tabularnewline%
+ \coursename\tud@title@delimiter\tabularnewline%
\fi%
\ifx\@discipline\@empty\else%
- \disciplinename\@titledelim\tabularnewline%
+ \disciplinename\tud@title@delimiter\tabularnewline%
\fi%
- \namesname\@titledelim\tabularnewline%
+ \namesname\tud@title@delimiter\tabularnewline%
\ifx\@matriculationnumber\@empty\else%
- \matriculationnumbername\@titledelim\tabularnewline%
+ \matriculationnumbername\tud@title@delimiter\tabularnewline%
\fi%
\ifx\@matriculationyear\@empty\else%
- \matriculationyearname\@titledelim\tabularnewline%
+ \matriculationyearname\tud@title@delimiter\tabularnewline%
\fi%
\end{tabular}%
% \end{macrocode}
-% Der Befehl \cs{tud@split@author} wird innerhalb der \cls{tudscr}-Klassen zur
-% formatierten Ausgabe von mehreren Autoren auf der Titelseite verwendet,
+% Der Befehl \cs{tud@split@author@do} wird innerhalb der \cls{tudscr}-Klassen
+% zur formatierten Ausgabe mehrerer Autoren auf der Titelseite verwendet,
% welche 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}
- \renewcommand*\tud@split@author[2]{%
+ \renewcommand*\tud@split@author@do[2]{%
% \end{macrocode}
% Weil alle Autoren in einer Tabelle gesetzt werden wird geprüft, welche Felder
% individuell via \cs{author} angegeben wurden. Damit die Tabellen die gleiche
@@ -419,9 +465,9 @@
% Danach wird der Inhalt der Aufgabenstellung gesetzt.
% \begin{macrocode}
\vskip\smallskipamount%
- \begin{tabular}{@{}p{\tud@dim@table}%
- p{\dimexpr\textwidth-\tud@dim@table-2\tabcolsep\relax}@{}}%
- \titlename\@titledelim & \tud@RaggedRight\textsf{\textbf{\@@title}}%
+ \begin{tabular}{@{}p{\tud@len@authortable}%
+ p{\dimexpr\textwidth-\tud@len@authortable-2\tabcolsep\relax}@{}}%
+ \titlename\tud@title@delimiter & \tud@RaggedRight\textsf{\textbf{\@@title}}%
\end{tabular}%
\par%
\endgroup%
@@ -430,20 +476,13 @@
\noindent\ignorespaces%
}
% \end{macrocode}
-% \end{length}^^A \tud@dim@table
-% \end{macro}^^A \tud@author@table
-% \begin{macro}{\tud@split@author@list}
-% Der Befehl \cs{tud@split@author@list} wird um die hier im Paket zusätzlich
-% definierten Felder erweitert.
-% \begin{macrocode}
-\patchcmd{\tud@split@author@list}{authormore}{%
- authormore,course,discipline%
-}{}{\tud@patch@wrn{tud@split@author@list}}
-% \end{macrocode}
-% \end{macro}^^A \tud@split@author@list
+% \end{length}^^A \tud@len@authortable
+% \end{macro}^^A \tud@authortable@set
% \begin{environment}{notice}
+% \begin{parameter}{headline}
+% \begin{parameter}{heading}
+% \begin{parameter}{line}
% \changes{v2.03}{2015/01/05}{Bugfix für Seitenstil im zweiseitigen Satz}^^A
-% \begin{macro}{\tud@split@contactperson}
% Die Umgebung für Aushänge nutzt ebenfalls die \env{tudpage}-Umgebung. Sie wird
% auf einer neuen (rechten) Seite gesetzt. Die Überschrift wird in der
% Voreinstellung auf den sprachabhängigen Bezeichner \cs{noticename} gesetzt,
@@ -452,26 +491,18 @@
\newenvironment{notice}[1][]{%
\cleardoubleoddpage%
\def\@headline{\noticename}%
- \TUD@parameter{tudpage}{%
- \TUD@parameter@define{headline}{\def\@headline{##1}}%
+ \TUD@parameter@family{tudpage}{%
+ \TUD@parameter@def{headline}{\def\@headline{##1}}%
+ \TUD@parameter@let{heading}{headline}%
\TUD@parameter@let{line}{headline}%
- \TUD@parameter@sethandler{\TUD@parameter@set{tudpage}{headline=##1}}%
+ \TUD@parameter@handler@default{headline}%
}%
- \tudpage[pagestyle=empty,#1]%
- \tudbookmark{\noticename}{notice}%
% \end{macrocode}
% Es wird zu Beginn das angegebene Datum oben auf der rechten Seite ausgegeben.
% Anschließend wird die Überschrift und der gegebene Titel gesetzt.
% \begin{macrocode}
- \ifx\@date\@empty\else%
- \begingroup%
- \vspace*{-\parskip}%
- \vspace*{-2\baselineskip}%
- \raggedleft
- \@date\par%
- \vspace*{-\parskip}%
- \endgroup%
- \fi%
+ \tudpage[pagestyle=empty,cdhead=date,#1]%
+ \tudbookmark{\noticename}{notice}%
\ifx\@headline\@empty\else%
\section*{\@headline}%
\fi%
@@ -485,13 +516,14 @@
\ifx\@contactperson\@empty\else%
\removelastskip%
\ifdim\parskip>\z@\vskip\parskip\else\vskip\topsep\fi%
- \renewcommand*\tud@split@contactperson[2]{%
+ \renewcommand*\tud@split@contactperson@do[2]{%
\tud@multiple@fields@store{@contactperson}{##1}%
\tud@multiple@fields@preset{@contactperson}{}{##1}%
\begin{tabular}[t]{@{}l@{}}%
\ignorespaces##1\tabularnewline%
\ifx\@office\@empty\else\@office\tabularnewline\fi%
\ifx\@telephone\@empty\else\@telephone\tabularnewline\fi%
+ \ifx\@telefax\@empty\else\@telefax\tabularnewline\fi%
\ifx\@emailaddress\@empty\else\@emailaddress\tabularnewline\fi%
\end{tabular}%
\tud@multiple@fields@restore{@contactperson}%
@@ -504,7 +536,9 @@
\aftergroup\cleardoublepage%
}
% \end{macrocode}
-% \end{macro}^^A \tud@split@contactperson
+% \end{parameter}^^A line
+% \end{parameter}^^A heading
+% \end{parameter}^^A headline
% \end{environment}^^A notice
% \begin{macro}{\noticeform}
% Dies soll die Standardform eines Aushangs für eine Abschlussarbeit sein. Im
@@ -512,18 +546,18 @@
% werden die Arbeitsschwerpunkte beschrieben.
% \begin{macrocode}
\newcommand\noticeform[3][]{%
- \begin{notice}[#1]
+ \begin{notice}[#1]%
\removelastskip%
- \ifxblank{#2}{}{%
+ \ifblank{#2}{}{%
\ifx\@@title\@empty\else%
\minisec{\expandonce{\@@title}}%
\fi%
#2%
}%
- \ifxblank{#3}{}{%
+ \ifblank{#3}{}{%
\minisec{\focusname}%
\begin{itemize}\tud@RaggedRight%
- #3
+ #3%
\end{itemize}%
}%
\end{notice}%
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-title.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-title.dtx
index 2d5fb3c5dd3..54047097e68 100644
--- a/Master/texmf-dist/source/latex/tudscr/tudscr-title.dtx
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-title.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{1290}
+% \CheckSum{1381}
% \iffalse meta-comment
%
% ============================================================================
@@ -18,13 +18,13 @@
%
% ----------------------------------------------------------------------------
%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
-% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
-% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
-% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
-% oder spaeter 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.
+% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
+% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
+% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
+% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
+% oder spaeter 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.
%
% ============================================================================
%
@@ -51,15 +51,17 @@
%<*driver>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\ProvidesFile{tudscr-title.dtx}[%
- 2015/06/12 v2.04 TUD-KOMA-Script (title)%
+ 2016/07/20 v2.05 TUD-KOMA-Script (title)%
]
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
-\documentclass[english,ngerman]{tudscrdoc}
+\documentclass[english,ngerman,xindy]{tudscrdoc}
\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{tudscrfonts} % only load this package, if the fonts are installed
\KOMAoptions{parskip=half-}
+\usepackage{microtype}
+\usepackage{bookmark}
\CodelineIndex
\RecordChanges
\GetFileInfo{tudscr-title.dtx}
@@ -72,13 +74,14 @@
%
% \selectlanguage{ngerman}
%
-% \changes{v2.02}{2014/06/24}{Unterstützung für \pkg{titlepage} entfernt}^^A
+% \changes{v2.02}{2014/06/23}{Paket \pkg{titlepage} nicht weiter unterstützt}^^A
+% \changes{v2.05}{2015/07/13}{Titel für Poster}^^A
%
% \section{Titelei}
%
-% Die Titelseite wird für die \TUDScript-Klassen bereitgestellt.
+% Titelseite und Titelkopf werden für die \TUDScript-Klassen bereitgestellt.
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \StopEventually{\PrintIndex\PrintChanges\PrintToDos}
%
% \iffalse
%<*class&body>
@@ -95,6 +98,7 @@
% \iffalse
%</class&body>
%<*class&option>
+%<*book|report|article>
% \fi
%
% \begin{option}{subjectthesis}
@@ -114,6 +118,43 @@
% \end{option}^^A subjectthesis
%
% \iffalse
+%</book|report|article>
+%<*poster>
+% \fi
+%
+% \begin{option}{titlepage}
+% \begin{macro}{\tud@titlepage@deactivate}
+% Für Poster gibt es keine separate Titelseite sondern nur einen Titelkopf.
+% Falls die falsche Einstellung gewählt ist, wird diese deaktiviert und eine
+% Warnung ausgegeben.
+% \begin{macrocode}
+\DefineFamilyMember{KOMA}
+\DefineFamilyKey{KOMA}{titlepage}[true]{%
+ \TUD@set@numkey{titlepage}{@tempa}{\TUD@numkey@bool,{firstiscover}{2}}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \AtEndOfFamilyOptions{\tud@titlepage@deactivate}%
+ \fi%
+}
+\newcommand*\tud@titlepage@deactivate{%
+ \if@titlepage%
+ \KOMAoptions{titlepage=false}%
+ \ClassWarning{\TUD@Class@Name}{%
+ The class `\TUD@Class@Name' can't be used with\MessageBreak%
+ activated titlepage option. It will be enforced to\MessageBreak%
+ `titlepage=false'%
+ }%
+ \renewcommand*\tud@titlepage@deactivate{%
+ \if@titlepage\KOMAoptions{titlepage=false}\fi%
+ }%
+ \fi%
+}
+\AtBeginDocument{\tud@titlepage@deactivate}
+% \end{macrocode}
+% \end{macro}^^A \tud@titlepage@deactivate
+% \end{option}^^A titlepage
+%
+% \iffalse
+%</poster>
%</class&option>
%<*class&body>
% \fi
@@ -129,22 +170,180 @@
% allerdings etwas kleiner. \opt{titlepage} für alle Zusatzinformationen wie
% Autor, Datum etc.
% \begin{macrocode}
-\newkomafont{thesis}{\usekomafont{title}\LARGE}
+%<*book|report|article>
+\newkomafont{thesis}{%
+ \usekomafont{title}%
+ \tud@thesis@fontsize%
+}
+%</book|report|article>
\newkomafont{titlepage}{%
\usekomafont{subject}%
- \fontseries{\mddefault}%
- \selectfont%
+ \mdseries%
\large%
}
% \end{macrocode}
% \end{KOMAfont}^^A titlepage
% \end{KOMAfont}^^A thesis
-% \begin{macro}{\tud@title@fontcolor}
-% Das Makro wird für die Hintergrundfarbe der Titelseite verwendet.
+% Die Befehle \cs{thanks} und \cs{footnotemark} werden mit \cs{robustify}
+% behandelt, um die Makros vor dem Expandieren zu schützen. Dies ist z.\,B. für
+% \cs{tud@multiple@split} aber auch für weitere Felder auf dem Titel nötig.
+% \begin{macrocode}
+\robustify{\thanks}
+\robustify{\footnotemark}
+% \end{macrocode}
+% \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{macrocode}
+\newcommand*\tud@title@uppercase[1]{%
+ \let\@tempa\relax%
+ \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
+% ausgegeben.
+% \begin{macrocode}
+ \def\thanks##1{\gdef\@tempa{##1}}%
+ \let\footnote\thanks%
+ \sbox\z@{#1}%
+ \let\thanks\@gobble%
+ \let\footnote\@gobble%
+ \tud@makeuppercase{#1}%
+ \endgroup%
+ \ifx\@tempa\relax\else\thanks\@tempa\fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@title@uppercase
+%
+% \iffalse
+%<*book|report|article>
+% \fi
+%
+% \begin{macro}{\titledelimiter}
+% \begin{macro}{\tud@title@delimiter}
+% Dieses Makro wird für das Trennzeichen auf der Titelseite genutzt.
+% \begin{macrocode}
+\newcommand*\tud@title@delimiter{:\nobreakspace}
+\newcommand*\titledelimiter[1]{\gdef\tud@title@delimiter{#1}}
+% \end{macrocode}
+% \end{macro}^^A \tud@title@delimiter
+% \end{macro}^^A \titledelimiter
+% \begin{macro}{\tud@split@author@title}
+% \changes{v2.04}{2015/05/12}{neu}^^A
+% \begin{macro}{\tud@newline@title}
+% Das Makro \cs{tud@split@author@title} dient der formatierten Ausgabe aller
+% Informationen für mehrere Autoren auf der Titelseite.
+% \begin{macrocode}
+\newcommand*\tud@newline@title{}
+\newcommand*\tud@split@author@title[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}
+% Um die Abstände definiert zu setzen, wird \cs{tud@newline@title} verwendet.
+% Sobald auch nur eine zusätzliche Information ausgegeben werden soll, wird ein
+% 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}%
+% \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.
+% \begin{macrocode}
+ {\usekomafont{author}{\ignorespaces#1}}%
+ \if@tud@cover\else%
+ \ifx\@authormore\@empty\else%
+ \tud@newline@title%
+ \@authormore%
+ \fi%
+% \end{macrocode}
+% Nur auf der Titelseite erfolgt die Ausgabe von Geburtsdatum, Geburtsort,
+% Matrikelnummer und Immatrikulationsjahr. Sollte ein Titelkopf verwendet
+% werden, so wird für jedes gesetzte Feld eine Warnung ausgegeben.
+% \begin{macrocode}
+ \ifx\@dateofbirth\@empty\else%
+ \if@titlepage%
+ \tud@newline@title%
+ \ifxblank{\dateofbirthtext}{}{\dateofbirthtext\tud@title@delimiter}%
+ \@dateofbirth%
+ \ifx\@placeofbirth\@empty\else%
+ \nobreakspace\placeofbirthtext\nobreakspace\@placeofbirth%
+ \fi%
+ \else%
+ \tud@title@wrn{dateofbirth}%
+ \fi%
+ \fi%
+ \def\@tempc##1{%
+ \ifstr{\csuse{@##1}}{}{}{%
+ \if@titlepage%
+ \tud@newline@title%
+ \ifstr{\csuse{##1name}}{}{}{\csuse{##1name}\tud@title@delimiter}%
+ \csuse{@##1}%
+ \else%
+ \tud@title@wrn{##1}%
+ \fi%
+ }%
+ }%
+ \@tempc{course}%
+ \@tempc{discipline}%
+ \@tempc{matriculationnumber}%
+ \@tempc{matriculationyear}%
+ \fi%
+% \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}
-\newcommand*\tud@title@fontcolor{}
+ \tud@multiple@fields@restore{@author}%
+ \tud@multiple@@@split{#2}{\vskip 2ex}%
+}
% \end{macrocode}
-% \end{macro}^^A \tud@title@fontcolor
+% \end{macro}^^A \tud@newline@title
+% \end{macro}^^A \tud@split@author@title
+% \begin{macro}{\tud@title@wrn}
+% Bei der Nutzung eines Titelkopfes wird bloß eine reduzierte Menge an
+% Informationen ausgegeben. Darauf wird der Anwender ggf. hingewiesen.
+% \begin{macrocode}
+\newcommand*\tud@title@wrn[1]{%
+ \ClassWarning{\TUD@Class@Name}{%
+ `\@backslashchar#1' has to be used with\MessageBreak%
+ activated titlepage option%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@title@wrn
+% \begin{macro}{\tud@thesis@tosubject}
+% Bei der Verwendung der Option \opt{subjectthesis} wird zum einen geprüft, ob
+% das Feld \cs{@thesis} gesetzt ist und zum anderen, ob das Feld \cs{@subject}
+% auch leer ist.
+% \begin{macrocode}
+\newcommand*\tud@thesis@tosubject{%
+ \if@tud@subjectthesis\ifx\@thesis\@empty\else%
+ \ifx\@subject\@empty\else%
+ \ClassWarning{\TUD@Class@Name}{%
+ The option `subjectthesis' was activated, so\MessageBreak%
+ the field `subject' will be overwritten with the\MessageBreak%
+ given thesis%
+ }%
+ \fi%
+ \let\@subject\@thesis%
+ \fi\fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@thesis@tosubject
+%
+% \iffalse
+%</book|report|article>
+% \fi
+%
% \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
@@ -152,64 +351,71 @@
% \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}{Neue Parameter}^^A
-% \changes{v2.02}{2014/09/05}{Titelseite mit \cs{tud@maketitlepage}}^^A
-% \begin{macro}{\tud@titlepagenumber}
+% \changes{v2.02}{2014/09/05}{Titelseite mit \cs{tud@make@titlepage}}^^A
+% \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@maketitlepage} eine Titelseite
+% des \CDs gefordert wird entweder mit \cs{tud@make@titlepage} eine Titelseite
% gesetzt~-- wobei sich diese in ihrer Struktur am originalen \cs{maketitle}
% orientiert~-- oder das Titelkopflayout wird angepasst.
% \begin{macrocode}
-\newcommand*\tud@titlepagenumber{}%
-\let\tud@titlepagenumber\relax%
+\newcommand*\tud@title@pagenumber{}
+\let\tud@title@pagenumber\relax
\newcommand*\tud@maketitle[1][]{%
\begingroup%
% \end{macrocode}
% Das optionale Argument wird für das Setzen der Parameter verwendet.
% \begin{macrocode}
\TUD@parameter@set{title}{#1}%
- \ifcase\tud@layout@title\relax% false
- \ifx\tud@titlepagenumber\relax\gdef\tud@titlepagenumber{1}\fi%
- \tud@cmd@use{maketitle}[\tud@titlepagenumber]%
- \else% !false
- \if@titlepage%
- \tud@maketitlepage%
% \end{macrocode}
-% Neben einer kompletten Titelseite gibt es auch noch einen Titelkopf. Auch
-% hierfür wird die Ausprägung festgelegt.
+% Ist das \CD für den Titel deaktiviert, wird mit \cs{tud@cmd@use} der
+% originale \KOMAScript-Befehl \cs{maketitle} aufgerufen.
% \begin{macrocode}
- \else%
- \def\tud@title@fontcolor{}%
- \ifcase\tud@layout@title\relax\or\else% *color
- \def\tud@title@fontcolor{HKS41}%
- \fi%
-% \end{macrocode}
-% Um einen Titelkopf zu setzen, wird einfach der Originalbefehl verwendet und
-% nur der innere Teil (\cs{@maketitle}) angepasst.
-% \begin{macrocode}
- \let\@maketitle\tud@@maketitle%
- \ifx\tud@titlepagenumber\relax\gdef\tud@titlepagenumber{1}\fi%
+ \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]%
+ \tud@if@tudheadings{\currentpagestyle}{%
+ \ifstr{\titlepagestyle}{empty}{\thispagestyle{empty.tudheadings}}{}%
+ }{}%
% \end{macrocode}
-% Um einen zweispaltigen Satz für den Titelkopf ermöglichen zu können und
-% gleichzeitig dabei den TUD-Kopf zu verwenden, wird der interne Befehl
-% \cs{tud@title@twocolumn} verwendet. Damit wird der Titel selber einspaltig
-% gesetzt und direkt danach der zweispaltige Satz begonnen.
+% Für die \TUDScript-Klassen gibt es für doe Titleseite sowie den Titelkopf
+% separate Befehle.
% \begin{macrocode}
- \if@twocolumn%
- \tud@title@twocolumn{\tud@cmd@use{maketitle}[\tud@titlepagenumber]}%
- \else%
- \tud@cmd@use{maketitle}[\tud@titlepagenumber]%
- \fi%
+ \else% !false
+%<*book|report|article>
+ \if@titlepage%
+ \tud@make@titlepage%
+ \else%
+%</book|report|article>
+ \tud@make@titlehead%
+%<*book|report|article>
\fi%
+%</book|report|article>
\fi%
\endgroup%
+ \setcounter{footnote}{0}%
+ \global\let\and\relax%
}
% \end{macrocode}
-% \end{macro}^^A \tud@titlepagenumber
+% 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}
+% \end{macro}^^A \tud@title@pagenumber
% \end{macro}^^A \tud@maketitle
% \begin{parameter}{cdtitle}
% \changes{v2.03}{2015/01/12}{neu}^^A
@@ -229,21 +435,21 @@
% Die einzelnen Parameter dienen zur Einstellung der Titelseite und entsprechen
% in ihrem Verhalten den gleichnamigen Klassenoptionen.
% \begin{macrocode}
-\TUD@parameter{title}{%
- \TUD@parameter@define{cdtitle}[true]{\TUDoption{cdtitle}{#1}}%
+\TUD@parameter@family{title}{%
+ \TUD@parameter@def{cdtitle}[true]{\TUDoption{cdtitle}{#1}}%
\TUD@parameter@let{cd}{cdtitle}%
- \TUD@parameter@define{pagenumber}{\def\tud@titlepagenumber{#1}}%
+ \TUD@parameter@def{pagenumber}{\def\tud@title@pagenumber{#1}}%
% \end{macrocode}
-% Mit \cs{TUD@parameter@define@ps} werden alle verfügbaren Parameter für die
-% Kopf- und Fußzeilen definiert.
+% Mit \cs{tud@ps@parameters} werden alle verfügbaren Parameter für die Kopf-
+% und Fußzeilen definiert.
% \begin{macrocode}
- \TUD@parameter@define@ps{#1}%
+ \tud@ps@parameters{#1}%
% \end{macrocode}
% Für den Fall, dass ein Wert nicht in der Schlüssel"=Wert"=Notation angegeben
% wurde, wird versucht, das gegebene Argument als Seitenzahl zu verwenden.
% \begin{macrocode}
- \TUD@parameter@sethandler{\TUD@parameter@set{title}{pagenumber=#1}}%
-}%
+ \TUD@parameter@handler@value{pagenumber}%
+}
% \end{macrocode}
% \end{parameter}^^A ddcfoot
% \end{parameter}^^A ddchead
@@ -256,14 +462,12 @@
% \end{parameter}^^A pagenumber
% \end{parameter}^^A cd
% \end{parameter}^^A cdtitle
-% Die Befehle \cs{thanks} und \cs{footnotemark} werden mit \cs{robustify}
-% behandelt, um die Makros vor dem Expandieren zu schützen. Dies ist z.\,B. für
-% \cs{tud@multiple@split} aber auch für weitere Felder auf dem Titel nötig.
-% \begin{macrocode}
-\robustify{\thanks}%
-\robustify{\footnotemark}%
-% \end{macrocode}
-% \begin{macro}{\tud@maketitlepage}
+%
+% \iffalse
+%<*book|report|article>
+% \fi
+%
+% \begin{macro}{\tud@make@titlepage}
% \changes{v2.02}{2014/09/05}{neu}^^A
% \begin{macro}{\tud@titleback}
% Bei der entsprechend gewählten Layoutoption, wird eine neue Titelseite im \CD
@@ -272,12 +476,11 @@
% überschrieben (siehe \cs{tud@layout@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. Mit \cs{tud@titlepagenumber}
-% kann eine Seitenzahl für den Titel~-- auch über den Befehl \cs{makecover}~--
-% angegeben werden.
+% 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@maketitlepage{%
+\newcommand*\tud@titleback{}
+\newcommand*\tud@make@titlepage{%
% \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
@@ -285,17 +488,17 @@
% wird die entsprechende Layoutoption ausgewertet und entsprechend dieser die
% Werte belegt.
% \begin{macrocode}
- \def\tud@title@fontcolor{}%
- \ifcase\tud@layout@title\relax\or\or% litecolor
- \def\tud@title@fontcolor{HKS41}%
+ \renewcommand*\tud@title@fontcolor{}%
+ \ifcase\tud@layout@title@num\relax\or\or% litecolor
+ \renewcommand*\tud@title@fontcolor{HKS41}%
\or% barcolor
- \def\tud@title@fontcolor{HKS41}%
+ \renewcommand*\tud@title@fontcolor{HKS41}%
\or% bicolor
- \def\tud@title@fontcolor{HKS41}%
+ \renewcommand*\tud@title@fontcolor{HKS41}%
\or% color
- \def\tud@title@fontcolor{HKS41!30}%
+ \renewcommand*\tud@title@fontcolor{HKS41!30}%
\or% full
- \def\tud@title@fontcolor{HKS41!30}%
+ \renewcommand*\tud@title@fontcolor{HKS41!30}%
\fi%
% \end{macrocode}
% Die Titelseite. Es existieren die Optionen \opt{full} für eine vollständig
@@ -308,8 +511,8 @@
% Dieser Teil entspricht der Standarddefinition. Für das Setzen des Covers ist
% ein Großteil der Einstellungen irrelevant und wird übersrpungen.
% \begin{macrocode}
- \ifx\tud@titlepagenumber\relax\else%
- \setcounter{page}{\tud@titlepagenumber}%
+ \ifx\tud@title@pagenumber\relax\else%
+ \setcounter{page}{\tud@title@pagenumber}%
\fi%
% \end{macrocode}
% Dieser Teil entspricht der Standarddefinition. Für das Setzen des Covers ist
@@ -331,16 +534,16 @@
% Layout per später Optionswahl noch zu ändern, muss der interne Code aus
% \pkg{hyperref} hier noch einmal für den TUD-Titel aufgerufen werden.
% \begin{macrocode}
- \tud@footnote@unhyper%
+ \tud@x@hyperref@realfootnotes%
% \end{macrocode}
% Im Gegensatz zu den \KOMAScript-Klassen wird für eine Umschlagseite die
% Option \opt{titlepage=firstiscover} nur für den Schmutztitel \cs{extratitle}
-% und nicht für die eigentlcihe Titelseite unterstützt. Für ein Cover im \CD
+% und nicht für die eigentliche Titelseite unterstützt. Für ein Cover im \CD
% ist der Befehl \cs{makecover} mit den dazugehörigen Parametern zu nutzen.
% \begin{macrocode}
\ifx\@extratitle\@empty%
\if@titlepageiscoverpage%
- \ClassWarning{\TUDClassName}{%
+ \ClassWarning{\TUD@Class@Name}{%
Using option `titlepage=firstiscover' is only\MessageBreak%
possible with an extra title. Alternatively you can\MessageBreak%
create a cover with `\string\makecover'%
@@ -363,9 +566,9 @@
\topmargin=\dimexpr\coverpagetopmargin-1in\relax%
\oddsidemargin=\dimexpr\coverpageleftmargin-1in\relax%
\evensidemargin=\dimexpr\coverpageleftmargin-1in\relax%
- \textwidth=\dimexpr\paperwidth-\coverpageleftmargin%
+ \textwidth=\dimexpr\tud@len@layoutwidth-\coverpageleftmargin%
-\coverpagerightmargin\relax%
- \textheight=\dimexpr\paperheight-\coverpagetopmargin%
+ \textheight=\dimexpr\tud@len@layoutheight-\coverpagetopmargin%
-\coverpagebottommargin\relax%
\headheight=0pt%
\headsep=0pt%
@@ -383,37 +586,14 @@
\fi%
\fi%
% \end{macrocode}
-% Ist die Option \opt{tudbookmarks} aktiviert, werden für Umschlag- und
-% Titelseite PDF"=Lesezeichen gesetzt.
-% \begin{macrocode}
- \if@tud@bookmarks%
- \if@tud@cover%
-%<*book|report>
- \tudbookmark[0]{\coverpagename}{cover}%
-%</book|report>
-%<*article>
- \tudbookmark[1]{\coverpagename}{cover}%
-%</article>
- \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}%
- \else%
-%<*book|report>
- \tudbookmark[0]{\titlepagename}{title}%
-%</book|report>
-%<*article>
- \tudbookmark[1]{\titlepagename}{title}%
-%</article>
- \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}%
- \fi%
- \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@dim@headdiff+\tud@dim@headingsvskip-\baselineskip%
- +\parskip\relax%
+ \dimexpr\tud@len@areavskip+\tud@len@areaheadvskip-\baselineskip\relax%
}%
- \vspace*{\pageheadingsvskip}%
+ \TUD@len@deprecated{pageheadingsvskip}%
+ \vspace*{\tud@dim@pageheadingsvskip}%
\setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative%
% \end{macrocode}
% Damit die Farbeinstellungen der Schriften lokal begrenzt bleiben, wird dieser
@@ -446,7 +626,7 @@
% Erkennen, ob in der Betreffzeile eine Abschlussarbeit ausgegeben werden soll
% und kann.
% \begin{macrocode}
- \tud@letsubjectthesis%
+ \tud@thesis@tosubject%
\ifx\@subject\@empty\else%
\sbox\@ne{\vbox{{\usekomafont{subject}{\@subject\par\null}}}}%
\addtolength\@tempdima{\dimexpr\ht\@ne+\dp\@ne+\p@\relax}%
@@ -460,20 +640,20 @@
% Titelseite in unterschiedlichen Größen und Schriftstärken.
% \begin{macrocode}
{\usekomafont{title}{\tud@title@uppercase{\@title}\par}}%
- \vskip 2ex\@plus1ex\@minus1ex%
% \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}}%
- \vskip 2ex\@plus1ex\@minus1ex%
\fi%
+ \vskip 2ex\@plus1ex\@minus1ex%
\vskip 2\bigskipamount%
% \end{macrocode}
% Ausgabe eines Autors oder mehrerer Autoren ggf. mit Zusatzinformationen.
% \begin{macrocode}
- \let\tud@split@author\tud@split@author@title%
+ \let\tud@split@author@do\tud@split@author@title%
\tud@multiple@split{@author}\par%
\vskip 2ex\@plus1ex\@minus1ex%
% \end{macrocode}
@@ -485,7 +665,7 @@
\if@tud@cover\else%
\ifx\@date\@empty\else%
\vskip 2ex\@plus.1fill%
- {\usekomafont{date}{\@date\nobreakspace\@datemore\par}}%
+ {\usekomafont{date}{\tud@date@print\par}}%
\fi%
\fi%
\vskip 2ex\@plus.25fill%
@@ -511,7 +691,7 @@
\ifx\@graduation\@empty\else%
\def\@tempc{%
\@graduation%
- \ifx\@graduationabbr\@empty\else\nobreakspace\@graduationabbr\fi%
+ \ifx\@@graduation\@empty\else\nobreakspace\@@graduation\fi%
}%
{\usekomafont{titlepage}{\graduationtext\par}}%
\vskip 2ex\@plus1ex\@minus1ex%
@@ -533,28 +713,30 @@
% Darauf folgend wird der betreuende Hochschullehrer ausgegeben.
% \begin{macrocode}
\if@tud@cover\else%
- \tud@title@names{supervisor}%
\tud@title@names{referee}%
\tud@title@names{advisor}%
+ \tud@title@names{supervisor}%
\tud@title@names{professor}%
% \end{macrocode}
% Bei einer Abschlussarbeit gehört normalerweise auch ein Abgabedatum auf den
% Titel. Sollte keines angegeben sein, so erscheint eine Warnung. Es wird an
% Stelle dessen das angegebene Enddatum oder aber das heutige Datum verwendet.
-% Durch das Paket \pkg{tudscrtask} wird das zusätzliche Feld \cs{@duedate}
+% Durch das Paket \pkg{tudscrsupervisor} wird zusätzlich das Feld \cs{@duedate}
% definiert, welches hier ggf. für auf ein nutzbares Datum geprüft wird.
% \begin{macrocode}
\ifx\@thesis\@empty\else%
- \tud@datecheck%
+ \tud@date@check%
\ifx\@date\@empty\else%
\vskip 2ex\@plus1ex\@minus1ex%
- \ifstr{\datetext}{}{}{\datetext\@titledelim}%
- {\usekomafont{date}{\@date\nobreakspace\@datemore\par}}%
+ \ifxblank{\datetext}{}{\datetext\tud@title@delimiter}%
+ {\usekomafont{date}{\tud@date@print\par}}%
% \end{macrocode}
% Zusätzlich kann noch ein Datum der mündlichen Verteidigung angegeben werden.
% \begin{macrocode}
\ifx\@defensedate\@empty\else%
- \ifstr{\defensedatetext}{}{}{\defensedatetext\@titledelim}%
+ \ifxblank{\defensedatetext}{}{%
+ \defensedatetext\tud@title@delimiter%
+ }%
{\usekomafont{date}{\@defensedate\par}}%
\fi%
\fi%
@@ -600,21 +782,21 @@
% Einstellungen übernommen.
% \begin{macrocode}
\def\@tempa{%
- \def\tud@pagecolor{}%
- \ifcase\tud@layout@title\relax\or% true
- \cs@std@lock{tud@head@bar}{0}%
+ \renewcommand*\tud@pagecolor{}%
+ \ifcase\tud@layout@title@num\relax\or% true
+ \cs@std@lock{tud@head@bar@num}{0}%
\or% litecolor
- \cs@set@lock{tud@head@bar}{1}%
+ \cs@set@lock{tud@head@bar@num}{1}%
\or% barcolor
- \cs@set@lock{tud@head@bar}{2}%
+ \cs@set@lock{tud@head@bar@num}{2}%
\or% bicolor
- \cs@set@lock{tud@head@bar}{3}%
+ \cs@set@lock{tud@head@bar@num}{3}%
\or% color
- \def\tud@pagecolor{HKS41}%
- \cs@set@lock{tud@head@bar}{1}%
+ \renewcommand*\tud@pagecolor{HKS41}%
+ \cs@set@lock{tud@head@bar@num}{1}%
\or% full
- \def\tud@pagecolor{HKS41}%
- \cs@set@lock{tud@head@bar}{3}%
+ \renewcommand*\tud@pagecolor{HKS41}%
+ \cs@set@lock{tud@head@bar@num}{3}%
\fi%
\tud@color{\tud@title@fontcolor}%
\addtokomafont{pagenumber}{\usekomafont{tudheadings}}%
@@ -624,7 +806,7 @@
% Im Kompatibilitätsmodus für die Version~v2.02 wird im Zweifelsfall die Seite
% für den Fuß mit \DDC-Logo vergrößert.
% \begin{macrocode}
- \tud@ifverlower{2.03}{\tud@ddc@enlargepage}{}%
+ \tud@if@v@lower{2.03}{\tud@ddc@enlargepage}{}%
}%
% \end{macrocode}
% Bei der Ausgabe des Covers werden lediglich die Farb- und Schriftdefinitionen
@@ -674,41 +856,10 @@
\fi%
\fi%
\end{titlepage}%
- \if@tud@cover\else%
- \setcounter{footnote}{0}%
- \global\let\and\relax%
- \fi%
}
% \end{macrocode}
% \end{macro}^^A \tud@titleback
-% \end{macro}^^A \tud@maketitlepage
-% \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{macrocode}
-\newcommand*\tud@title@uppercase[1]{%
- \let\@tempa\relax%
- \begingroup%
-% \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
-% ausgegeben.
-% \begin{macrocode}
- \def\thanks##1{\gdef\@tempa{##1}}%
- \let\footnote\thanks%
- \sbox\z@{#1}%
- \let\thanks\@gobble%
- \let\footnote\@gobble%
- \tud@makeuppercase{#1}%
- \endgroup%
- \ifx\@tempa\relax\else\thanks\@tempa\fi%
-}
-% \end{macrocode}
-% \end{macro}^^A \tud@title@uppercase
+% \end{macro}^^A \tud@make@titlepage
% \begin{macro}{\tud@title@names}
% Dieser Befehl dient zur getrennten Ausgabe von mehreren, mit dem Makro
% \cs{and} separierten Einträgen in den Feldern \cs{@supervisor}, \cs{@referee}
@@ -720,36 +871,92 @@
\def\and{%
\ifcsvoid{#1othername}{\par}{%
\vskip 1ex\@plus.5ex\@minus.5ex%
- {\usekomafont{titlepage}{\@nameuse{#1othername}\par}}%
+ {\usekomafont{titlepage}{\csuse{#1othername}\par}}%
}%
\let\and\par%
}%
\vskip 1ex\@plus.5ex\@minus.5ex%
- {\usekomafont{titlepage}{\@nameuse{#1name}\par}}%
- {\usekomafont{author}{\@nameuse{@#1}\par}}%
+ {\usekomafont{titlepage}{\csuse{#1name}\par}}%
+ {\usekomafont{author}{\csuse{@#1}\par}}%
\fi%
}
% \end{macrocode}
% \end{macro}^^A \tud@title@names
-% \begin{macro}{\titledelimiter}
-% \begin{macro}{\@titledelim}
-% Dieses Makro wird für das Trennzeichen auf der Titelseite genutzt.
+%
+% \iffalse
+%</book|report|article>
+% \fi
+%
+% \begin{macro}{\tud@make@titlehead}
+% \changes{v2.05}{2015/07/13}{neu}^^A
+% \begin{macro}{\tud@make@@titlehead}
+% \changes{v2.05}{2015/07/13}{neu}^^A
+% Die Befehle für einen Titelkopf (\opt{titlepage=no}). Diese sind stark an den
+% orginalen \KOMAScript-Befehle orientiert.
+% \begin{macrocode}
+\newcommand*\tud@make@titlehead{%
+ \renewcommand*\tud@title@fontcolor{}%
+ \ifcase\tud@layout@title@num\relax\or\else% *color
+ \ifstr{\tud@pagecolor}{HKS41}{}{\renewcommand*\tud@title@fontcolor{HKS41}}%
+ \fi%
+ \par%
+ \ifx\tud@title@pagenumber\relax\else%
+ \ifnum\tud@title@pagenumber=\@ne\relax\else%
+ \ClassWarning{\TUD@Class@Name}{%
+ Optional argument of \string\maketitle\space ignored\MessageBreak%
+ at notitlepage-mode%
+ }%
+ \fi%
+ \fi%
+% \end{macrocode}
+% Dieser Teil ist mehr oder weniger funktional identisch zu \KOMAScript.
% \begin{macrocode}
-\newcommand*\@titledelim{:\nobreakspace}
-\newcommand*\titledelimiter[1]{\gdef\@titledelim{#1}}
+ \begingroup%
+ \let\titlepage@restore\relax%
+ \renewcommand*\thefootnote{\@fnsymbol\c@footnote}%
+ \let\@oldmakefnmark\@makefnmark%
+ \renewcommand*\@makefnmark{\rlap\@oldmakefnmark}%
+ \next@tdpage%
+% \end{macrocode}
+% Hier wird überprüft, ob das Dokument zweispaltig gesetzt wird und zusätzlich
+% das Paket \pkg{multicol} geladen wurde. Ist letzteres nicht der Fall, wird
+% der Titel einspaltig ausgegeben und anschließend der im Zweispaltensatz
+% begonnen.
+% \begin{macrocode}
+ \@tempswafalse%
+ \if@twocolumn\ifnum\col@number>\@ne\relax%
+ \@tempswatrue%
+ \fi\fi%
+ \if@tempswa%
+ \ifx\@extratitle\@empty\else%
+ \twocolumn[\@makeextratitle]\next@tdpage%
+ \fi%
+ \twocolumn[\tud@make@@titlehead]%
+ \else%
+ \ifx\@extratitle\@empty\else%
+ \@makeextratitle\next@tdpage%
+ \fi%
+ \tud@make@@titlehead%
+ \fi%
+ \ifx\titlepagestyle\@empty\else\thispagestyle{\titlepagestyle}\fi%
+ \@thanks%
+ \endgroup%
+}
% \end{macrocode}
-% \end{macro}^^A \@titledelim
-% \end{macro}^^A \titledelimiter
-% \begin{macro}{\tud@@maketitle}
-% Der eigentliche Befehl für einen Titelkopf (\opt{titlepage=no}).
+% Hier erfolgt die Ausgabe des Titelkopfes.
% \begin{macrocode}
-\newcommand*\tud@@maketitle{%
+\newcommand*\tud@make@@titlehead{%
\global\@topnum=\z@%
+%<*book|report|article>
\vspace*{%
- \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip-\baselineskip%
- +\parskip\relax%
+ \dimexpr\tud@len@areavskip+\tud@len@areaheadvskip-\baselineskip\relax%
}%
- \vspace*{\headingsvskip}%
+ \TUD@len@deprecated{headingsvskip}%
+ \vspace*{\tud@dim@headingsvskip}%
+%</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
@@ -758,7 +965,7 @@
% \begin{macrocode}
\begingroup%
\usekomafont{titlepage}%
- \tud@footnote@unhyper%
+ \tud@x@hyperref@realfootnotes%
% \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
@@ -777,32 +984,39 @@
% Erkennen, ob in der Betreffzeile eine Abschlussarbeit ausgegeben werden soll
% und kann. Bei einem Titelkopf ist nur diese Variante möglich.
% \begin{macrocode}
+%<*book|report|article>
\TUDoptions{subjectthesis=true}%
- \tud@letsubjectthesis%
+ \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}}%
- \vskip 2ex\@plus1ex\@minus1ex%
\ifx\@subtitle\@empty\else%
+ \vskip 1ex\@plus.5ex\@minus.5ex%
{\usekomafont{subtitle}{\tud@title@uppercase{\@subtitle}\par}}%
- \vskip 2ex\@plus1ex\@minus1ex%
\fi%
- \vskip 2\bigskipamount%
+ \vskip 2ex\@plus1ex\@minus1ex%
% \end{macrocode}
% Ausgabe eines Autors oder mehrerer Autoren ggf. mit Zusatzinformationen.
% \begin{macrocode}
- \let\tud@split@author\tud@split@author@title%
+%<*book|report|article>
+ \vskip 2\bigskipamount%
+ \let\tud@split@author@do\tud@split@author@title%
\tud@multiple@split{@author}\par%
- \vskip 2ex\@plus1ex\@minus1ex%
% \end{macrocode}
% Ausgabe von Datum, Verlag und Danksagung wie im Original.
% \begin{macrocode}
- {\usekomafont{date}{\@date\nobreakspace\@datemore\par}}%
+ \ifx\@date\@empty\else%
+ \vskip 2ex\@plus1ex\@minus1ex%
+ {\usekomafont{date}{\tud@date@print\par}}%
+ \fi%
\ifx\@publishers\@empty\else%
\vskip 2ex\@plus1ex\@minus1ex%
{\usekomafont{publishers}{\@publishers\par}}%
@@ -816,109 +1030,35 @@
% Titelkopf ausgegeben werden, dann wird eine Warnung ausgegeben.
% \begin{macrocode}
\ifx\@graduation\@empty\else\tud@title@wrn{graduation}\fi%
- \ifx\@supervisor\@empty\else\tud@title@wrn{supervisor}\fi%
\ifx\@referee\@empty\else\tud@title@wrn{referee}\fi%
+ \ifx\@advisor\@empty\else\tud@title@wrn{advisor}\fi%
+ \ifx\@supervisor\@empty\else\tud@title@wrn{supervisor}\fi%
\ifx\@professor\@empty\else\tud@title@wrn{professor}\fi%
% \end{macrocode}
% Am Ende wird noch etwas vertikaler Abstand eingefügt.
% \begin{macrocode}
\vskip 2\bigskipamount%
+%</book|report|article>
+ \ifnum\col@number>\@ne\relax%
+ \ifdefvoid{\multicolsep}{}{%
+ \ifisskip{\multicolsep}{\vspace{-\multicolsep}}{}%
+ }%
+ \fi%
% \end{macrocode}
% Wird das \DDC-Logo im Kompatibilitätsmodus für die Version~v2.02 gesetzt,
% muss dafür am unteren Rand entsprechend Platz gelassen werden.
% \begin{macrocode}
- \tud@ifverlower{2.03}{\tud@ddc@enlargepage[\titlepagestyle]}{}%
+ \tud@if@v@lower{2.03}{\tud@ddc@enlargepage[\titlepagestyle]}{}%
\endgroup%
}
% \end{macrocode}
-% \end{macro}^^A \tud@@maketitle
-% \begin{macro}{\tud@split@author@title}
-% \changes{v2.04}{2015/05/12}{neu}^^A
-% \begin{macro}{\tud@newline}
-% Das Makro \cs{tud@split@author} dient der formatierten Ausgabe aller
-% Informationen für mehrere Autoren auf der Titelseite.
-% \begin{macrocode}
-\newcommand*\tud@newline{}
-\newcommand*\tud@split@author@title[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}
-% Um die Abstände definiert zu setzen, wird \cs{tud@newline} verwendet. Sobald
-% auch nur eine zusätzliche Information ausgegeben werden soll, wird ein etwas
-% kleiner Abstand eingefügt. Anschließend wird jede Information einfach in
-% einer neuen Zeile ausgegeben.
-% \begin{macrocode}
- \def\tud@newline{\vskip .5ex\let\tud@newline\newline}%
-% \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.
-% \begin{macrocode}
- {\usekomafont{author}{\ignorespaces#1}}%
- \if@tud@cover\else%
- \ifx\@authormore\@empty\else%
- \tud@newline%
- \@authormore%
- \fi%
-% \end{macrocode}
-% Nur auf der Titelseite erfolgt die Ausgabe von Geburtsdatum, Geburtsort,
-% Matrikelnummer und Immatrikulationsjahr. Sollte ein Titelkopf verwendet
-% werden, so wird für jedes gesetzte Feld eine Warnung ausgegeben.
-% \begin{macrocode}
- \ifx\@dateofbirth\@empty\else%
- \if@titlepage%
- \tud@newline%
- \ifstr{\dateofbirthtext}{}%
- {}{\dateofbirthtext\@titledelim}\@dateofbirth%
- \ifx\@placeofbirth\@empty\else%
- \nobreakspace\placeofbirthtext\nobreakspace\@placeofbirth%
- \fi%
- \else%
- \tud@title@wrn{dateofbirth}%
- \fi%
- \fi%
- \ifx\@matriculationnumber\@empty\else%
- \if@titlepage%
- \tud@newline%
- \ifstr{\matriculationnumbername}{}%
- {}{\matriculationnumbername\@titledelim}%
- \@matriculationnumber%
- \else%
- \tud@title@wrn{matriculationnumber}%
- \fi%
- \fi%
- \ifx\@matriculationyear\@empty\else%
- \if@titlepage%
- \tud@newline%
- \ifstr{\matriculationyearname}{}%
- {}{\matriculationyearname\@titledelim}%
- \@matriculationyear%
- \else%
- \tud@title@wrn{matriculationyear}%
- \fi%
- \fi%
- \fi%
-% \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}{\vskip 2ex}%
-}
-% \end{macrocode}
-% \end{macro}^^A \tud@newline
-% \end{macro}^^A \tud@split@author@title
+% \end{macro}^^A \tud@make@@titlehead
+% \end{macro}^^A \tud@make@titlehead
% \begin{macro}{\maketitleonecolumn}
% \changes{v2.02}{2014/08/16}{einspaltiger Text obligatorisch}^^A
-% \begin{macro}{\@maketitleonecolumn}
-% \changes{v2.02}{2014/08/12}{entfernt}^^A
% \begin{macro}{\tud@title@twocolumn}
% \changes{v2.03}{2015/01/13}{Bugfix für falsche Position des Titels}^^A
-% \begin{macro}{\tud@title@twocolumn@box}
+% \begin{macro}{\tud@title@box}
% Zum Setzen eines einspaltigen Titels mit einspaltiger Zusammenfassung bei
% einem Titelkopf~-- dank der Hilfe von Markus Kohm.%
% \footnote{\url{http://www.komascript.de/node/1699}}
@@ -935,14 +1075,18 @@
% \opt{titlepage}.
% \begin{macrocode}
\if@twocolumn%
+%<*book|report|article>
\if@titlepage%
- \maketitle[#1]%
+ \tud@maketitle[#1]%
\onecolumn{#2}\twocolumn%
\else%
- \tud@title@twocolumn{\maketitle[#1]{#2}}%
+%</book|report|article>
+ \tud@title@twocolumn{\tud@maketitle[#1]{#2}}%
+%<*book|report|article>
\fi%
+%</book|report|article>
\else%
- \ClassError{\TUDClassName}{%
+ \ClassError{\TUD@Class@Name}{%
`\string\maketitleonecolumn' can only be used in twocolumn mode%
}{}%
\fi%
@@ -952,7 +1096,7 @@
% gesetzt werden soll. Damit sich dieser auch über mehrere Seiten erstrecken
% kann, wird mit einer Box gearbeitet.
% \begin{macrocode}
-\newsavebox\tud@title@twocolumn@box
+\newsavebox\tud@title@box
\newcommand\tud@title@twocolumn[1]{%
% \end{macrocode}
% Zunächst wird auf einseitigen Satz umgeschaltet. Der zu schreibende Inhalt
@@ -969,7 +1113,7 @@
% von \val{.9}\cs{baselineskip} zur korrekten Postionierung der Überschrift
% eingefügt werden.
% \begin{macrocode}
- \global\setbox\tud@title@twocolumn@box\vbox{%
+ \global\setbox\tud@title@box\vbox{%
\vspace*{.9\baselineskip}#1\bigskip%
}%
\endgroup%
@@ -979,10 +1123,10 @@
% der ggf. beachtet werden muss.
% \begin{macrocode}
\setlength\@tempdima{\textheight}%
- \tud@ifverlower{2.03}{%
+ \tud@if@v@lower{2.03}{%
\tud@ddc@check%
- \ifcase\@tempb\relax\else% \tud@ddc@foot!=false
- \setlength\@tempdima{\dimexpr\textheight-\tud@dim@ddcdiff\relax}%
+ \ifcase\@tempb\relax\else% \tud@ddc@foot@num!=false
+ \setlength\@tempdima{\dimexpr\textheight-\tud@len@ddcdiff\relax}%
\@tempswatrue%
\fi%
}{}%
@@ -990,14 +1134,14 @@
% Jetzt werden der Inhalt stückweise so lange auf einzelnen Seiten ausgeben,
% bis der immer kleiner werdende Rest in der Box auf eine Seite passt.
% \begin{macrocode}
- \ifdim\ht\tud@title@twocolumn@box>\@tempdima\relax%
- \@whiledim\ht\tud@title@twocolumn@box>\@tempdima\do{%
+ \ifdim\ht\tud@title@box>\@tempdima\relax%
+ \@whiledim\ht\tud@title@box>\@tempdima\do{%
\splittopskip\topskip%
\splitmaxdepth\maxdepth%
- \vsplit\tud@title@twocolumn@box to \@tempdima%
+ \vsplit\tud@title@box to \@tempdima%
\clearpage%
\setlength\@tempdima{\textheight}%
- \tud@ifverlower{2.03}{\@tempswafalse}{}%
+ \tud@if@v@lower{2.03}{\@tempswafalse}{}%
}%
% \end{macrocode}
% Passt der auszugebende einspaltige Teil auf eine Seite, ist eine vertikale
@@ -1005,74 +1149,39 @@
% die Box vor der Ausgabe einfach neu und ohne diese Länge gesetzt.
% \begin{macrocode}
\else%
- \setbox\tud@title@twocolumn@box\vbox{#1\bigskip}%
+ \setbox\tud@title@box\vbox{#1\bigskip}%
\fi%
% \end{macrocode}
% Der Rest wir einfach als optionales Argument von \cs{twocolumn} ausgegeben.
% \begin{macrocode}
- \twocolumn[\unvbox\tud@title@twocolumn@box]%
+ \twocolumn[\unvbox\tud@title@box]%
% \end{macrocode}
% In der Version~v2.02 wird eine Warnung ausgegeben, damit der Anwender den
% Satzspiegel manuell anpassen kann. Die Verwendung von \pkg{afterpage} liefert
% leider nicht in allen Fällen das gewollte Ergebnis, weshalb darauf verzichtet
% wird.
% \begin{macrocode}
- \tud@ifverlower{2.03}{%
+ \tud@if@v@lower{2.03}{%
\if@tempswa%
- \ClassWarning{\TUDClassName}{%
+ \ClassWarning{\TUD@Class@Name}{%
You are using a two-column title along with\MessageBreak%
the DDC-logo. Unfortunately in this case, the\MessageBreak%
type area has to be adjusted manually. Please\MessageBreak%
- use `\string\enlargethispage{-\the\tud@dim@ddcdiff}'\MessageBreak%
+ use `\string\enlargethispage{-\the\tud@len@ddcdiff}'\MessageBreak%
in both columns after the title%
}%
\fi%
}{}%
}
% \end{macrocode}
-% \end{macro}^^A \tud@title@twocolumn@box
+% \end{macro}^^A \tud@title@box
% \end{macro}^^A \tud@title@twocolumn
-% \end{macro}^^A \@maketitleonecolumn
% \end{macro}^^A \maketitleonecolumn
-% \begin{macro}{\tud@letsubjectthesis}
-% Bei der Verwendung der Option \opt{subjectthesis} wird zum einen geprüft, ob
-% das Feld \cs{@thesis} gesetzt ist und zum anderen, ob das Feld \cs{@subject}
-% auch leer ist.
-% \begin{macrocode}
-\newcommand*\tud@letsubjectthesis{%
- \if@tud@subjectthesis\ifx\@thesis\@empty\else%
- \ifx\@subject\@empty\else%
- \ClassWarning{\TUDClassName}{%
- The option `subjectthesis' was activated.\MessageBreak%
- The field `subject' will be overwritten with the\MessageBreak%
- given thesis%
- }%
- \fi%
- \let\@subject\@thesis%
- \fi\fi%
-}
-% \end{macrocode}
-% \end{macro}^^A \tud@letsubjectthesis
-% \begin{macro}{\tud@title@wrn}
-% Bei der Nutzung eines Titelkopfes wird bloß eine reduzierte Menge an
-% Informationen ausgegeben. Darauf wird der Anwender ggf. hingewiesen.
-% \begin{macrocode}
-\newcommand*\tud@title@wrn[1]{%
- \ClassWarning{\TUDClassName}{%
- `\@backslashchar#1' has to be used with\MessageBreak%
- activated titlepage option%
- }%
-}
-% \end{macrocode}
-% \end{macro}^^A \tud@title@wrn
-% \begin{macro}{\next@tdpage}
-% \changes{v2.02}{2014/05/17}{entfernt}^^A
-% \begin{macro}{\tud@extratitle}
-% \changes{v2.02}{2014/06/23}{entfernt}^^A
-% Mit \TUDScript~v2.02 wurde die Bereitstellung dieser beiden Befehle aufgrund
-% der zwingenden Verwendung von \KOMAScript{}~v3.12 entfernt.
-% \end{macro}^^A \tud@extratitle
-% \end{macro}^^A \next@tdpage
+%
+%
+% \iffalse
+%<*book|report|article>
+% \fi
%
% \subsection{Cover}
%
@@ -1084,7 +1193,7 @@
% \begin{macro}{\makecover}
% \changes{v2.02}{2014/06/23}{Warnung für die Option \opt{titlepage} mit dem
% Wert \val{firstiscover}}^^A
-% \changes{v2.02}{2014/08/08}{\cs{makecover} auch ohne \CD verwendbar}^^A
+% \changes{v2.02}{2014/08/08}{ohne \CD verwendbar}^^A
% \changes{v2.02}{2014/08/12}{Satzspiegel mit \cs{coverpage\dots{}margin}
% änderbar, falls CD-Layout deaktiviert}^^A
% \changes{v2.03}{2015/01/09}{Anpassungen für neue Satzspiegelerzeugung}^^A
@@ -1098,7 +1207,7 @@
% Ist die Option \opt{titlepage=firstiscover} aktiv, wird eine Warnung erzeugt.
% \begin{macrocode}
\if@titlepageiscoverpage%
- \ClassWarning{\TUDClassName}{%
+ \ClassWarning{\TUD@Class@Name}{%
Using both option `titlepage=firstiscover' and\MessageBreak%
`\string\makecover' together isn't supported. The\MessageBreak%
option `titlepage=firstiscover' will be ignored. If you\MessageBreak%
@@ -1122,7 +1231,7 @@
\let\thanks\@gobble%
\let\footnote\@gobble%
\TUD@parameter@set{cover}{#1}%
- \let\tud@layout@title\tud@layout@cover%
+ \let\tud@layout@title@num\tud@layout@cover@num%
\tud@layout@process%
% \end{macrocode}
% Wird der Parameter \opt{cdgeometry} aktiviert, werden die Seitenränder wie
@@ -1130,14 +1239,14 @@
% Einstellungen des Satzspiegels und können mit \cs{coverpage\dots margin}
% durch den Anwender angepasst werden.
% \begin{macrocode}
- \if@tud@cover@cdgeometry%
- \let\coverpagetopmargin\tud@dim@slimmargin%
- \let\coverpagebottommargin\tud@dim@widemargin%
- \let\coverpageleftmargin\tud@dim@widemargin%
- \let\coverpagerightmargin\tud@dim@slimmargin%
- \tud@ifverlower{2.03}{%
- \def\coverpagetopmargin{.5\tud@dim@both}%
- \def\coverpagebottommargin{.5\tud@dim@both}%
+ \if@tud@cdgeometry@cover%
+ \let\coverpagetopmargin\tud@len@slimmargin%
+ \let\coverpagebottommargin\tud@len@widemargin%
+ \let\coverpageleftmargin\tud@len@widemargin%
+ \let\coverpagerightmargin\tud@len@slimmargin%
+ \tud@if@v@lower{2.03}{%
+ \def\coverpagetopmargin{.5\tud@len@both}%
+ \def\coverpagebottommargin{.5\tud@len@both}%
}{}%
\fi%
% \end{macrocode}
@@ -1147,14 +1256,14 @@
% 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\relax% false
+ \ifcase\tud@layout@cover@num\relax% false
\KOMAoptions{titlepage=firstiscover}%
\let\@extratitle\@empty%
\let\@uppertitleback\@empty%
\let\@lowertitleback\@empty%
\let\@dedication\@empty%
- \ifx\tud@titlepagenumber\relax\gdef\tud@titlepagenumber{1}\fi%
- \tud@cmd@use{maketitle}[\tud@titlepagenumber]%
+ \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
@@ -1185,23 +1294,23 @@
\begingroup%
\oddsidemargin=\dimexpr\coverpageleftmargin-1in\relax%
\evensidemargin=\dimexpr\coverpageleftmargin-1in\relax%
- \textwidth=\dimexpr\paperwidth-\coverpageleftmargin%
+ \textwidth=\dimexpr\tud@len@layoutwidth-\coverpageleftmargin%
-\coverpagerightmargin\relax%
\headheight=0pt%
\headsep=0pt%
- \footskip=\dimexpr\tud@dim@footsep+\tud@ta@footheight\relax%
- \tud@ifverlower{2.03}{%
- \footskip=\dimexpr\tud@dim@headsep+\tud@ta@footheight%
+ \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@cover@cdgeometry%
+ \if@tud@cdgeometry@cover%
\def\coverpagetopmargin{%
- \dimexpr\tud@dim@topmargin+\tud@dim@barheight%
- +\tud@dim@headsep\relax%
+ \dimexpr\tud@len@topmargin+\tud@len@barheight%
+ +\tud@len@headsep\relax%
}%
\else%
% \end{macrocode}
@@ -1211,13 +1320,13 @@
% 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@dim@topmargin+\tud@dim@barheight%
- +\tud@dim@headsep-1in\relax%
+ \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@dim@widemargin%
- \tud@ifverlower{2.03}{%
- \def\coverpagebottommargin{.5\tud@dim@both}%
+ \let\coverpagebottommargin\tud@len@widemargin%
+ \tud@if@v@lower{2.03}{%
+ \def\coverpagebottommargin{.5\tud@len@both}%
}{}%
\fi%
\fi%
@@ -1227,7 +1336,7 @@
% Seitenrande gesetzt werden. Dies hat mit der originären Definition von
% \cs{coverpagetopmargin} zu tun.
% \begin{macrocode}
- \textheight=\dimexpr\paperheight-\coverpagetopmargin%
+ \textheight=\dimexpr\tud@len@layoutheight-\coverpagetopmargin%
-\coverpagebottommargin-\tud@dim@extrabottommargin\relax%
\topmargin=\dimexpr\coverpagetopmargin-1in\relax%
\@colht=\textheight%
@@ -1236,20 +1345,20 @@
\columnwidth=\textwidth%
\hsize=\columnwidth%
\linewidth=\hsize%
- \tud@dim@headdiff=\z@%
+ \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}
- \ifdef{\hypersetup}{\hypersetup{pageanchor=false}}{}%
+ \ifundef{\hypersetup}{}{\hypersetup{pageanchor=false}}%
% \end{macrocode}
% Die Ausgabe des Covers und ggf. das Wiederherstellen des Satzspiegels.
% \begin{macrocode}
\tud@maketitle%
\clearpage%
- \csname titlepage@restore\endcsname%
+ \titlepage@restore%
\fi%
\endgroup%
}
@@ -1262,8 +1371,8 @@
% \changes{v2.03}{2015/01/12}{neu}^^A
% \begin{parameter}{cdgeometry}
% \changes{v2.02}{2014/06/23}{neu}^^A
-% \begin{macro}{\if@tud@cover@cdgeometry}
-% \begin{macro}{\if@tud@cover@cdgeometry@locked}
+% \begin{macro}{\if@tud@cdgeometry@cover}
+% \begin{macro}{\if@tud@cdgeometry@cover@locked}
% \begin{parameter}{pagenumber}
% \begin{parameter}{cdfont}
% \begin{parameter}{cdhead}
@@ -1277,37 +1386,35 @@
% entsprechen in ihrem Verhalten den gleichnamigen Klassenoptionen~--
% \opt{cdgeometry} ausgenommen.
% \begin{macrocode}
-\bool@lock{@tud@cover@cdgeometry}
-\TUD@parameter{cover}{%
- \TUD@parameter@define{cdcover}[true]{\TUDoption{cdcover}{#1}}%
+\bool@lock{@tud@cdgeometry@cover}
+\TUD@parameter@family{cover}{%
+ \TUD@parameter@def{cdcover}[true]{\TUDoption{cdcover}{#1}}%
\TUD@parameter@let{cd}{cdcover}%
- \TUD@parameter@define{cdgeometry}[true]{%
+ \TUD@parameter@def{cdgeometry}[true]{%
\ifstrbool{#1}{%
- \bool@set@lock{@tud@cover@cdgeometry}{true}%
+ \bool@set@lock{@tud@cdgeometry@cover}{true}%
}{%
- \bool@set@lock{@tud@cover@cdgeometry}{false}%
+ \bool@set@lock{@tud@cdgeometry@cover}{false}%
}{%
- \TUD@parameter@error{cdgeometry}{true,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}%
+ }%
+ }%
}%
}%
- \TUD@parameter@define{pagenumber}{\def\tud@titlepagenumber{#1}}%
+ \TUD@parameter@def{pagenumber}{\def\tud@title@pagenumber{#1}}%
% \end{macrocode}
-% Mit \cs{TUD@parameter@define@ps} werden alle verfügbaren Parameter für die
-% Kopf- und Fußzeilen definiert.
+% Mit \cs{tud@ps@parameters} werden alle verfügbaren Parameter für die Kopf-
+% und Fußzeilen definiert.
% \begin{macrocode}
- \TUD@parameter@define@ps{#1}%
+ \tud@ps@parameters{#1}%
% \end{macrocode}
% Für den Fall, dass ein Wert nicht in der Schlüssel"=Wert"=Notation angegeben
% wurde, wird versucht, das gegebene Argument entweder als booleschen Ausdruck
% für das Seitenlayout oder als Seitenzahl zu interpretieren.
% \begin{macrocode}
- \TUD@parameter@sethandler{%
- \ifxnumber{#1}{%
- \TUD@parameter@set{cover}{pagenumber=#1}%
- }{%
- \TUD@parameter@set{cover}{cdgeometry=#1}%
- }%
- }%
+ \TUD@parameter@handler@value{pagenumber}%
}
% \end{macrocode}
% \end{parameter}^^A ddcfoot
@@ -1319,13 +1426,14 @@
% \end{parameter}^^A cdhead
% \end{parameter}^^A cdfont
% \end{parameter}^^A pagenumber
-% \end{macro}^^A \if@tud@cover@cdgeometry@locked
-% \end{macro}^^A \if@tud@cover@cdgeometry
+% \end{macro}^^A \if@tud@cdgeometry@cover@locked
+% \end{macro}^^A \if@tud@cdgeometry@cover
% \end{parameter}^^A cdgeometry
% \end{parameter}^^A cd
% \end{parameter}^^A cdcover
%
% \iffalse
+%</book|report|article>
%</class&body>
% \fi
%
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-twocolfix.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-twocolfix.dtx
index 3ca84b2a62b..9e781b88257 100644
--- a/Master/texmf-dist/source/latex/tudscr/tudscr-twocolfix.dtx
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-twocolfix.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{124}
+% \CheckSum{210}
% \iffalse meta-comment
%
% ============================================================================
@@ -18,13 +18,13 @@
%
% ----------------------------------------------------------------------------
%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
-% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
-% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
-% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
-% oder spaeter 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.
+% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
+% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
+% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
+% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
+% oder spaeter 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.
%
% ============================================================================
%
@@ -51,24 +51,26 @@
%<*driver>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\ProvidesFile{tudscr-twocolfix.dtx}[%
- 2015/06/02 v2.04 TUD-KOMA-Script\space%
+ 2016/07/11 v2.05 TUD-KOMA-Script\space%
%</driver>
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{twocolfix}[%
%<*driver|package>
-%!TUDVersion
+%!TUD@Version
%<package> package
(twocolumn layout bugfix)%
]
%</driver|package>
%<*driver>
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
-\documentclass[english,ngerman]{tudscrdoc}
+\documentclass[english,ngerman,xindy]{tudscrdoc}
\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{tudscrfonts} % only load this package, if the fonts are installed
\KOMAoptions{parskip=half-}
+\usepackage{microtype}
+\usepackage{bookmark}
\CodelineIndex
\RecordChanges
\GetFileInfo{tudscr-twocolfix.dtx}
@@ -81,6 +83,9 @@
%
% \selectlanguage{ngerman}
%
+% \changes{v2.05}{2016/04/25}{Überprüfen der Definition von \cs{@topnewpage}
+% des \LaTeXe-Kernels}^^A
+%
% \section{Bugfix für den zweispaltigen Satz}
%
% Der \LaTeXe-Kernel enthält einen Fehler, der Kapitelüberschriften im
@@ -93,7 +98,7 @@
% \footnote{\url{http://www.komascript.de/node/1681}} jedoch von ihm bis jetzt
% nicht weiter verfolgt.
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \StopEventually{\PrintIndex\PrintChanges\PrintToDos}
%
% \iffalse
%<*package>
@@ -102,7 +107,7 @@
% \subsection{Das Paket \pkg{twocolfix}}
%
% Es wird der fehlerhafte Befehl aus dem \LaTeXe-Kernel neu definiert.
-% Allerdingds definieren die \KOMAScript"=Klassen das Makro \cs{@topnewpage}
+% Allerdingds definieren die \KOMAScript-Klassen das Makro \cs{@topnewpage}
% um und sichern vorher das Original in \cs{scr@topnewpage}. Daher wird der
% neue Befehl erst temporär definiert.
% \begin{macrocode}
@@ -166,14 +171,65 @@
\fi%
}
% \end{macrocode}
+% Um eine Änderung am \LaTeXe-Kernel feststellen zu können, wird auf die zum
+% Zeitpunkt des Paketes aktuelle Definition von \cs{@topnewpage} geprüft.
+% \begin{macrocode}
+\long\def\@tempb[#1]{%
+ \@nodocument
+ \@next\@currbox\@freelist{}{}%
+ \global \setbox\@currbox
+ \color@vbox
+ \normalcolor
+ \vbox {%
+ \hsize\textwidth
+ \@parboxrestore
+ \col@number \@ne
+ #1%
+ \vskip -\dbltextfloatsep
+ }%
+ \color@endbox
+ \ifdim \ht\@currbox>\textheight
+ \ht\@currbox \textheight
+ \fi
+ \global \count\@currbox \tw@
+ \@tempdima -\ht\@currbox
+ \advance \@tempdima -\dbltextfloatsep
+ \global \advance \@colht \@tempdima
+ \ifx \@dbltoplist \@empty
+ \else
+ \@latexerr{Float(s) lost}\@ehb
+ \let \@dbltoplist \@empty
+ \fi
+ \@cons \@dbltoplist \@currbox
+ \global \@dbltopnum \m@ne
+ \ifdim \@colht<2.5\baselineskip
+ \@latex@warning@no@line {Optional argument of \noexpand\twocolumn
+ too tall on page \thepage}%
+ \@emptycol
+ \if@firstcolumn
+ \else
+ \@emptycol
+ \fi
+ \else
+ \global \vsize \@colht
+ \global \@colroom \@colht
+ \@floatplacement
+ \fi
+}
+% \end{macrocode}
% \begin{macro}{\@topnewpage}
% \begin{macro}{\scr@topnewpage}
-% Nachdem der Befehl zuerst temporär definert wurde, wird nun abhängig von der
-% aktiven Klasse der notwendige Befehl mit der neuen Definition überschrieben.
+% Nachdem der neue Befehl sowie die Definition aus dem \LaTeXe-Kernel zuerst
+% temporär definiert wurden, wird nun abhängig von der aktiven Klasse der
+% notwendige Befehl mit der neuen Definition überschrieben.
% \begin{macrocode}
-\@ifundefined{scr@topnewpage}
- {\let\@topnewpage\@tempa}
- {\let\scr@topnewpage\@tempa}
+\@ifundefined{scr@topnewpage}{%
+ \@check@eq\@topnewpage\@tempb%
+ \let\@topnewpage\@tempa%
+}{%
+ \@check@eq\scr@topnewpage\@tempb%
+ \let\scr@topnewpage\@tempa%
+}
% \end{macrocode}
% \end{macro}^^A \scr@topnewpage
% \end{macro}^^A \@topnewpage
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-version.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-version.dtx
index 4a9a2e3eb62..2f43996a34d 100644
--- a/Master/texmf-dist/source/latex/tudscr/tudscr-version.dtx
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-version.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{100}
+% \CheckSum{128}
% \iffalse meta-comment
%
% ============================================================================
@@ -18,13 +18,13 @@
%
% ----------------------------------------------------------------------------
%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
-% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
-% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
-% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
-% oder spaeter 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.
+% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
+% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle
+% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
+% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01
+% oder spaeter 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.
%
% ============================================================================
%
@@ -51,9 +51,10 @@
% \fi
%
% \iffalse
-% Nicht verwirren lassen! In dieser Datei steht die Dokumentation und der Code
-% vor dem Treiber. Das ist notwendig, weil der Code bereits am Anfang des
-% Treibers selbst benötigt wird.
+% Nicht verwirren lassen! In dieser Datei steht ein Teil der Dokumentation und
+% des Codes vor dem Treiber. Das ist notwendig, weil der Teil des Codes bereits
+% am Anfang des Treibers selbst benötigt wird. Genauer gesagt handelt es sich
+% dabei um den Teil zur Versionsangbabe.
% \fi
%
% \selectlanguage{ngerman}
@@ -72,67 +73,87 @@
% Für alle Klassen und Paketen, die zum \TUDScript-Bundle auf \KOMAScript-Basis
% gehören wird als erstes die aktuelle Version festgelgt.
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \StopEventually{\PrintIndex\PrintChanges\PrintToDos}
%
-% \begin{macro}{\TUDVersion}
-% \begin{macro}{\@TUDVersion}
+% \begin{macro}{\TUD@Version}
+% \begin{macro}{\TUD@Version@Check}
% \changes{v2.02}{2014/07/22}{Expandieren der Versionsangabe bei der Verwendung
% von \pkg{docstrip} ermöglicht}^^A
-% Das Makro \cs{TUDVersion} gibt an, zu welcher \TUDScript"~Version die Datei
-% gehört. Die Klassen und Pakete des Bundles verwenden dieses Makro außerdem
-% zur eigenen Versionsangabe. Je nachdem, ob \cs{TUDVersion} bereits definiert
-% ist oder nicht, wird mit \cs{@TUDVersion} die Definition überprüft oder eine
-% globale Definition vorgenommen. Da das Ganze auch bei der Erstellung der
-% Dokumentation geschieht, wird \cs{makeatletter} innerhalb einer Gruppe
-% verwendet.
+% \begin{macro}{\TUD@Version@KOMA}
+% \begin{macro}{\TUDScriptVersion}
+% \begin{macro}{\TUDScriptVersionNumber}
+% Das Makro \cs{TUD@Version} gibt an, zu welcher \TUDScript"~Version die
+% Datei gehört. Die Klassen und Pakete des Bundles verwenden dieses Makro
+% außerdem zur eigenen Versionsangabe. Je nachdem, ob \cs{TUD@Version}
+% bereits definiert ist oder nicht, wird mit \cs{TUD@Version@Check} die
+% Definition überprüft oder eine globale Definition vorgenommen. Da das Ganze
+% auch bei der Erstellung der Dokumentation geschieht, wird \cs{makeatletter}
+% innerhalb einer Gruppe verwendet. Das Makro \cs{TUD@Version@KOMA} definiert
+% die mindestens notwendige Version von \KOMAScript. In \cs{TUDScriptVersion}
+% wird die Versioninformation für den Anwender definiert.
% \begin{macrocode}
-\begingroup%
- \catcode`\@11\relax%
+\begingroup
+ \catcode`\@11\relax
%<*!(package|class)>
- \ifx\newcommand\undefined%
- \gdef\@TUDVersion#1{%
- \gdef\TUDVersion{\space\space#1}%
+ \ifx\newcommand\undefined
+ \gdef\TUD@Version@Check#1{%
+ \gdef\TUD@Version{\space\space#1}%
+ \gdef\TUDScriptVersion{\space\space#1}%
\aftergroup\endinput%
- }%
- \else%
+ }
+ \else
%</!(package|class)>
- \ifx\TUDVersion\undefined%
- \newcommand*\@TUDVersion[1]{\gdef\TUDVersion{#1}}%
- \else%
- \newcommand*\@TUDVersion[1]{%
+ \ifx\TUD@Version\undefined
+ \newcommand*\TUD@Version@Check[1]{%
+ \gdef\TUD@Version{#1}%
+ \gdef\TUDScriptVersion{#1}%
+ \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}%
+ }
+ \else
+ \newcommand*\TUD@Version@Check[1]{%
\def\@tempa{#1}%
- \ifx\TUDVersion\@tempa\else%
+ \ifx\TUD@Version\@tempa\else%
\@latex@warning@no@line{%
- \noexpand\TUDVersion\space is `\TUDVersion',\MessageBreak%
+ \noexpand\TUD@Version\space is `\TUD@Version',\MessageBreak%
but `#1' was expected!\MessageBreak%
You should not use classes, packages or files from\MessageBreak%
different TUD-KOMA-Script-Bundle versions%
}%
\fi%
- }%
- \fi%
+ }
+ \fi
%<*!(package|class)>
- \fi%
+ \fi
%</!(package|class)>
- \@TUDVersion{2016/06/17 v2.04e TUD-KOMA-Script}%
-\endgroup%
% \end{macrocode}
% \ToDo{Version eintragen}[Release]
-% \end{macro}^^A \@TUDVersion
-% \end{macro}^^A \TUDVersion
+% \begin{macrocode}
+ \TUD@Version@Check{2016/07/26 v2.05 TUD-KOMA-Script}
+\endgroup
+% \end{macrocode}
+% \end{macro}^^A \TUDScriptVersionNumber
+% \end{macro}^^A \TUDScriptVersion
+% \end{macro}^^A \TUD@Version@KOMA
+% \end{macro}^^A \TUD@Version@Check
+% \end{macro}^^A \TUD@Version
%
% \iffalse
%<*driver>
% \fi
-\ProvidesFile{tudscr-version.dtx}[\TUDVersion\space (versions)]
+\ProvidesFile{tudscr-version.dtx}[\TUDScriptVersion\space (versions)]
% \iffalse
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
-\documentclass[english,ngerman]{tudscrdoc}
+\documentclass[english,ngerman,xindy]{tudscrdoc}
\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{tudscrfonts} % only load this package, if the fonts are installed
\KOMAoptions{parskip=half-}
+\usepackage{microtype}
+\usepackage{bookmark}
\CodelineIndex
\RecordChanges
\GetFileInfo{tudscr-version.dtx}
@@ -143,8 +164,12 @@
%</driver>
% \fi
%
+% Als erstes das benötigte \LaTeX-Format.
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+% \end{macrocode}
% \begin{macro}{\tudscrmail}
-% Die E-Mail-Adresse für Supportanfragen.
+% Die E"~Mail-Adresse für Supportanfragen.
% \begin{macrocode}
\providecommand*\tudscrmail{tudscr@gmail.com}
% \end{macrocode}
@@ -158,14 +183,12 @@
% \changes{v2.04}{2015/06/13}{neu}^^A
% \begin{macro}{\TUD@ProvidesWrapperClass}
% \changes{v2.04}{2015/06/13}{neu}^^A
-% \begin{macro}{\TUDClassName}
+% \begin{macro}{\TUD@Class@Name}
% \changes{v2.04}{2015/06/12}{neu}^^A
-% \begin{macro}{\TUDClassName@Parent}
+% \begin{macro}{\TUD@Class@Parent}
% \changes{v2.04}{2015/06/12}{neu}^^A
-% \begin{macro}{\TUDClassName@KOMA}
+% \begin{macro}{\TUD@Class@KOMA}
% \changes{v2.04}{2015/06/12}{neu}^^A
-% \begin{macro}{\TUD@ClassInfo}
-% \changes{v2.04}{2015/06/13}{neu}^^A
% Mit diesen Befehlen erfolgt die Versionsangabe der \TUDScript-Klassen beim
% Laden. Dabei werden hier einmalig die Namen der jeweiligen Klassen definiert.
% Hierfür werden die Befehle \cs{TUD@ProvidesClass} für die Hauptklassen und
@@ -174,70 +197,74 @@
% Argument entspricht der Basis-Klasse. Das dritte Argument enthält eine kurze
% Beschreibung.
% \begin{macrocode}
-%<*book|report|article|doc>
+%<*!inherit>
\newcommand*\TUD@ProvidesClass[3]{%
- \newcommand*\TUDClassName@KOMA{#2}%
- \@ifundefined{TUDClassName@Parent}{\newcommand*\TUDClassName{#1}}{}%
\ProvidesClass{#1}[%
-%!TUDVersion
+%!TUD@Version
^^J#3 (#2)%
]%
- \@ifundefined{TUDClassName@Parent}{\TUD@ClassInfo}{}%
+ \newcommand*\TUD@Class@KOMA{#2}%
+ \@ifundefined{TUD@Class@Parent}{%
+ \newcommand*\TUD@Class@Name{#1}%
+ \TUD@Class@Info%
+ }{}%
}
-%</book|report|article|doc>
-%<*poster|manual>
+%</!inherit>
+%<*inherit>
\newcommand*\TUD@ProvidesWrapperClass[3]{%
- \newcommand*\TUDClassName@Parent{#2}%
- \newcommand*\TUDClassName{#1}%
\ProvidesClass{#1}[%
-%!TUDVersion
+%!TUD@Version
^^J#3 (#2)%
]%
- \TUD@ClassInfo%
+ \newcommand*\TUD@Class@Parent{#2}%
+ \newcommand*\TUD@Class@Name{#1}%
+ \TUD@Class@Info%
}
-%</poster|manual>
+%</inherit>
% \end{macrocode}
+% \end{macro}^^A \TUD@Class@KOMA
+% \end{macro}^^A \TUD@Class@Parent
+% \end{macro}^^A \TUD@Class@Name
+% \end{macro}^^A \TUD@ProvidesWrapperClass
+% \end{macro}^^A \TUD@ProvidesClass
+% \begin{macro}{\TUD@Class@Info}
+% \changes{v2.04}{2015/06/13}{neu}^^A
% Beim Verwenden der Klassen wird in der log-Datei ein Vermerk mit \cs{typeout}
% erstellt.
% \begin{macrocode}
-\providecommand*\TUD@ClassInfo{%
- \typeout{+---------------------------------------------------------------}
- \typeout{| The Corporate Design of Technische Universitaet Dresden}
- \typeout{| Class: \TUDClassName}
- \typeout{| Version: \TUDVersion}
- \typeout{| Author: Falk Hanisch (\tudscrmail)}
- \typeout{| Forum: http://latex.wcms-file3.tu-dresden.de/phpBB3/index.php}
- \typeout{+---------------------------------------------------------------}
+\providecommand*\TUD@Class@Info{%
+ \typeout{+---------------------------------------------------------------}%
+ \typeout{| The 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{+---------------------------------------------------------------}%
}
% \end{macrocode}
-% Hier erfolgt die Indentifizierung und die Zuweisung der Klassennamen.
+% \end{macro}^^A \TUD@Class@Info
+% Hier erfolgt nun die Indentifizierung und die Zuweisung der Klassennamen.
% \begin{macrocode}
-\NeedsTeXFormat{LaTeX2e}
%<book>\TUD@ProvidesClass{tudscrbook}{scrbook}{document class}
%<report>\TUD@ProvidesClass{tudscrreprt}{scrreprt}{document class}
%<article>\TUD@ProvidesClass{tudscrartcl}{scrartcl}{document class}
-%<*doc>
-\TUD@ProvidesClass{tudscrdoc}{scrdoc}{%
- internal source code documentation class%
-}
-%</doc>
-%<poster>\TUD@ProvidesWrapperClass{tudscrposter}{tudscrartcl}{poster class}
-%<*manual>
-\TUD@ProvidesWrapperClass{tudscrman}{tudscrreprt}{%
- internal manual class%
-}
-%</manual>
+%<poster>\TUD@ProvidesClass{tudscrposter}{scrartcl}{poster class}
+%<doc>\TUD@ProvidesClass{tudscrdoc}{scrartcl}{source code documentation class}
+%<manual>\TUD@ProvidesWrapperClass{tudscrmanual}{tudscrreprt}{manual class}
+% \end{macrocode}
+% \begin{macro}{\TUDScriptClassName}
+% \begin{macro}{\TUDClassName}
+% Die Benutzermakros für den Namen der verwendeten \TUDScript-Klasse.
+% \begin{macrocode}
+\edef\TUDScriptClassName{\TUD@Class@Name}
+\providecommand*\TUDClassName{\TUDScriptClassName}
% \end{macrocode}
-% \end{macro}^^A \TUD@ClassInfo
-% \end{macro}^^A \TUDClassName@KOMA
-% \end{macro}^^A \TUDClassName@Parent
% \end{macro}^^A \TUDClassName
-% \end{macro}^^A \TUD@ProvidesWrapperClass
-% \end{macro}^^A \TUD@ProvidesClass
+% \end{macro}^^A \TUDScriptClassName
%
% \iffalse
%</class>
-%<*package&(supervisor|comp|manual)>
+%<*package&(supervisor|comp|tutorial)>
% \fi
%
% \subsection{Verwendbarkeit von \TUDScript-Paketen}
@@ -245,29 +272,31 @@
% Einige Pakete sind nur mit den \TUDScript-Klassen verwendbar. Diese erzeugen
% einen Fehler, wenn sie nicht mit diesen verwendet werden.
% \begin{macrocode}
-\@ifundefined{TUDClassName}{%
+\@ifundefined{TUD@Class@Name}{%
\PackageError{%
%<supervisor> tudscrsupervisor%
-%<comp> tudscrcomp%
-%<manual> tudscrman%
+%<comp&base> tudscrcomp%
+%<comp&book> tudscrcomp-book%
+%<comp&poster> tudscrcomp-poster%
+%<tutorial> tudscrtutorial%
}{Unsupported class found}{%
This package can only be used with a class out of the\MessageBreak%
- tudscr bundle (tudscrbook, tudscrreprt, tudscrartcl).%
- }
+ tudscr bundle (tudscrbook, tudscrreprt, tudscrartcl, tudscrposter).%
+ }%
\endinput
}{}
% \end{macrocode}
%
% \iffalse
-%</package&(supervisor|comp|manual)>
+%</package&(supervisor|comp|tutorial)>
% \fi
%
% \subsection{Das \TUDScript-Logo}
-% Der Schriftzug von \TUDScript.
% \begin{macro}{\TUDScript}
+% Der Schriftzug von \TUDScript.
% \begin{macrocode}
\@ifundefined{TUDScript}{%
- \DeclareRobustCommand{\TUDScript}{%
+ \DeclareRobustCommand\TUDScript{%
\ifdin{TUD-KOMA-SCRIPT}{%
\textsf{T\kern.05em U\kern.05em D\kern.1em-\kern.1em}\KOMAScript%
}\csname xspace\endcsname%
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr.ins b/Master/texmf-dist/source/latex/tudscr/tudscr.ins
index 132dab9a541..64ed1fb51ed 100644
--- a/Master/texmf-dist/source/latex/tudscr/tudscr.ins
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr.ins
@@ -59,140 +59,162 @@
\generate{%
\usepreamble\defaultpreamble%
\file{tudscrbase.sty}{%
- \from{tudscr-version.dtx}{package}%
- \from{tudscr-base.dtx}{package}%
+ \from{tudscr-version.dtx}{package,base}%
+ \from{tudscr-base.dtx}{package,base}%
}
\file{tudscrbook.cls}{%
\from{tudscr-version.dtx}{class,book}%
- \from{tudscr-base.dtx}{load}%
- \from{tudscr-fonts.dtx}{class,option}%
+ \from{tudscr-base.dtx}{class,book,load}%
+ \from{tudscr-fonts.dtx}{class,book,option}%
+ \from{tudscr-area.dtx}{class,book,option}%
\from{tudscr-pagestyle.dtx}{class,book,option}%
\from{tudscr-layout.dtx}{class,book,option}%
- \from{tudscr-frontmatter.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-misc.dtx}{class,execute}%
- \from{tudscr-base.dtx}{class,body}%
- \from{tudscr-fonts.dtx}{class,body}%
- \from{tudscr-fields.dtx}{class,body}%
+ \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-area.dtx}{class,book,body}%
\from{tudscr-pagestyle.dtx}{class,book,body}%
\from{tudscr-layout.dtx}{class,book,body}%
- \from{tudscr-frontmatter.dtx}{class,book,body}%
\from{tudscr-title.dtx}{class,book,body}%
+ \from{tudscr-frontmatter.dtx}{class,book,body}%
\from{tudscr-comp.dtx}{class,book,body}%
\from{tudscr-misc.dtx}{class,book,body}%
}
\file{tudscrreprt.cls}{%
\from{tudscr-version.dtx}{class,report}%
- \from{tudscr-base.dtx}{load}%
- \from{tudscr-fonts.dtx}{class,option}%
+ \from{tudscr-base.dtx}{class,report,load}%
+ \from{tudscr-fonts.dtx}{class,report,option}%
+ \from{tudscr-area.dtx}{class,report,option}%
\from{tudscr-pagestyle.dtx}{class,report,option}%
\from{tudscr-layout.dtx}{class,report,option}%
- \from{tudscr-frontmatter.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-misc.dtx}{class,execute}%
- \from{tudscr-base.dtx}{class,body}%
- \from{tudscr-fonts.dtx}{class,body}%
- \from{tudscr-fields.dtx}{class,body}%
+ \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-area.dtx}{class,report,body}%
\from{tudscr-pagestyle.dtx}{class,report,body}%
\from{tudscr-layout.dtx}{class,report,body}%
- \from{tudscr-frontmatter.dtx}{class,report,body}%
\from{tudscr-title.dtx}{class,report,body}%
+ \from{tudscr-frontmatter.dtx}{class,report,body}%
\from{tudscr-comp.dtx}{class,report,body}%
\from{tudscr-misc.dtx}{class,report,body}%
}
\file{tudscrartcl.cls}{%
\from{tudscr-version.dtx}{class,article}%
- \from{tudscr-base.dtx}{load}%
- \from{tudscr-fonts.dtx}{class,option}%
+ \from{tudscr-base.dtx}{class,article,load}%
+ \from{tudscr-fonts.dtx}{class,article,option}%
+ \from{tudscr-area.dtx}{class,article,option}%
\from{tudscr-pagestyle.dtx}{class,article,option}%
\from{tudscr-layout.dtx}{class,article,option}%
- \from{tudscr-frontmatter.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-misc.dtx}{class,execute}%
- \from{tudscr-base.dtx}{class,body}%
- \from{tudscr-fonts.dtx}{class,body}%
- \from{tudscr-fields.dtx}{class,body}%
+ \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-area.dtx}{class,article,body}%
\from{tudscr-pagestyle.dtx}{class,article,body}%
\from{tudscr-layout.dtx}{class,article,body}%
- \from{tudscr-frontmatter.dtx}{class,article,body}%
\from{tudscr-title.dtx}{class,article,body}%
+ \from{tudscr-frontmatter.dtx}{class,article,body}%
\from{tudscr-comp.dtx}{class,article,body}%
\from{tudscr-misc.dtx}{class,article,body}%
}
-}
-\generate{%
- \usepreamble\defaultpreamble%
- \file{tudscrfonts.sty}{%
- \from{tudscr-version.dtx}{package}%
- \from{tudscr-fonts.dtx}{package,identify}%
- \from{tudscr-base.dtx}{load}%
- \from{tudscr-comp.dtx}{package,preset,fonts}%
- \from{tudscr-fonts.dtx}{package,option}%
- \from{tudscr-comp.dtx}{package,option,fonts}%
- \from{tudscr-misc.dtx}{package,execute,fonts}%
- \from{tudscr-fonts.dtx}{package,body}%
- \from{tudscr-comp.dtx}{package,body,fonts}%
- }
-% \file{tudscrfontsizes.sty}{%
-% \from{tudscr-version.dtx}{package}%
-% \from{tudscr-fonts.dtx}{package,identify,fontsizes}%
-% \from{tudscr-fonts.dtx}{package,body,fontsizes}%
-% }
-% \file{tudscrsize10pt.clo}{%
-% \from{tudscr-version.dtx}{package}%
-% \from{tudscr-fonts.dtx}{fontsizes,10pt}%
-% }
-% \file{tudscrsize11pt.clo}{%
-% \from{tudscr-version.dtx}{package}%
-% \from{tudscr-fonts.dtx}{fontsizes,11pt}%
-% }
-% \file{tudscrsize12pt.clo}{%
-% \from{tudscr-version.dtx}{package}%
-% \from{tudscr-fonts.dtx}{fontsizes,12pt}%
-% }
+ \file{tudscrposter.cls}{%
+ \from{tudscr-version.dtx}{class,poster}%
+ \from{tudscr-base.dtx}{class,poster,load}%
+ \from{tudscr-fonts.dtx}{class,poster,option}%
+ \from{tudscr-area.dtx}{class,poster,option}%
+ \from{tudscr-pagestyle.dtx}{class,poster,option}%
+ \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-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-area.dtx}{class,poster,body}%
+ \from{tudscr-pagestyle.dtx}{class,poster,body}%
+ \from{tudscr-layout.dtx}{class,poster,body}%
+ \from{tudscr-title.dtx}{class,poster,body}%
+ \from{tudscr-frontmatter.dtx}{class,poster,body}%
+ \from{tudscr-comp.dtx}{class,poster,body}%
+ \from{tudscr-misc.dtx}{class,poster,body}%
+ }
}
\generate{%
\usepreamble\defaultpreamble%
\file{tudscrsupervisor.sty}{%
\from{tudscr-version.dtx}{package,supervisor}%
- \from{tudscr-supervisor.dtx}{package}%
+ \from{tudscr-supervisor.dtx}{package,supervisor}%
\from{tudscr-fields.dtx}{package,supervisor}%
\from{tudscr-locale.dtx}{package,supervisor}%
}
}
-%\generate{%
-% \usepreamble\defaultpreamble%
-% \file{tudscrposter.sty}{%
-% \from{tudscr-version.dtx}{package,poster}%
-% \from{tudscr-poster.dtx}{package,identify}%
-% \from{tudscr-base.dtx}{load}%
-% \from{tudscr-poster.dtx}{package,option}%
-% \from{tudscr-misc.dtx}{package,execute,poster}%
-% \from{tudscr-poster.dtx}{package,body}%
-% \from{tudscr-fields.dtx}{package,poster}%
-% \from{tudscr-locale.dtx}{package,poster}%
-% }
-%}
+\generate{%
+ \usepreamble\defaultpreamble%
+ \file{tudscrfonts.sty}{%
+ \from{tudscr-version.dtx}{package,fonts}%
+ \from{tudscr-fonts.dtx}{package,fonts,identify}%
+ \from{tudscr-base.dtx}{package,fonts,load}%
+ \from{tudscr-fonts.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}%
+ \from{tudscr-comp.dtx}{package,fonts,body}%
+ \from{tudscr-misc.dtx}{package,fonts,body}%
+ }
+}
+\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}%
+ }
+}
\generate{%
\usepreamble\defaultpreamble%
\file{tudscrcomp.sty}{%
- \from{tudscr-version.dtx}{package,comp}%
- \from{tudscr-comp.dtx}{package,identify}%
- \from{tudscr-comp.dtx}{package,option}%
- \from{tudscr-comp.dtx}{package,body}%
+ \from{tudscr-version.dtx}{package,comp,base}%
+ \from{tudscr-comp.dtx}{package,comp,base,identify}%
+ }
+ \file{tudscrcomp-book.sty}{%
+ \from{tudscr-version.dtx}{package,comp,book}%
+ \from{tudscr-comp.dtx}{package,comp,book,identify}%
+ \from{tudscr-comp.dtx}{package,comp,book,option}%
+ \from{tudscr-misc.dtx}{package,comp,book,execute}%
+ \from{tudscr-comp.dtx}{package,comp,book,body}%
+ }
+ \file{tudscrcomp-poster.sty}{%
+ \from{tudscr-version.dtx}{package,comp,poster}%
+ \from{tudscr-comp.dtx}{package,comp,poster,identify}%
+ \from{tudscr-comp.dtx}{package,comp,poster,option}%
+ \from{tudscr-misc.dtx}{package,comp,poster,execute}%
+ \from{tudscr-comp.dtx}{package,comp,poster,body}%
}
\file{tudscrcolor.sty}{%
- \from{tudscr-version.dtx}{package}%
- \from{tudscr-color.dtx}{package}%
+ \from{tudscr-version.dtx}{package,color}%
+ \from{tudscr-color.dtx}{package,color}%
}
\file{twocolfix.sty}{%
\from{tudscr-twocolfix.dtx}{package}%
@@ -203,21 +225,25 @@
}
\generate{%
\usepreamble\defaultpreamble%
- \file{tudscrman.cls}{%
- \from{tudscr-version.dtx}{class,manual}%
- \from{tudscr-manual.dtx}{class}%
- \from{tudscr-base.dtx}{load}%
- \from{tudscr-manual.dtx}{class,option}%
- \from{tudscr-misc.dtx}{class,inherit,execute}%
- \from{tudscr-manual.dtx}{class,body}%
- }
- \file{tudscrman.sty}{%
- \from{tudscr-version.dtx}{package,manual}%
- \from{tudscr-manual.dtx}{package,identify}%
- \from{tudscr-base.dtx}{load}%
- \from{tudscr-manual.dtx}{package,option}%
- \from{tudscr-misc.dtx}{}%
- \from{tudscr-manual.dtx}{package,body}%
+ \file{tudscrmanual.cls}{%
+ \from{tudscr-version.dtx}{class,manual,inherit}%
+ \from{tudscr-manual.dtx}{class,manual}%
+ \from{tudscr-base.dtx}{class,manual,inherit,load}%
+ \from{tudscr-manual.dtx}{class,manual,option}%
+ \from{tudscr-misc.dtx}{class,manual,inherit,execute}%
+ \from{tudscr-manual.dtx}{class,manual,body}%
+ \from{tudscr-misc.dtx}{class,manual,xindy}%
+ \from{tudscr-fields.dtx}{class,manual,body}%
+ \from{tudscr-locale.dtx}{class,manual,body}%
+ }
+ \file{tudscrtutorial.sty}{%
+ \from{tudscr-version.dtx}{package,tutorial}%
+ \from{tudscr-manual.dtx}{package,tutorial,identify}%
+ \from{tudscr-base.dtx}{package,tutorial,load}%
+ \from{tudscr-manual.dtx}{package,tutorial,option}%
+ \from{tudscr-misc.dtx}{package,tutorial,execute}%
+ \from{tudscr-manual.dtx}{package,tutorial,body}%
+ \from{tudscr-misc.dtx}{package,tutorial,xindy}%
}
}
\generate{%
@@ -226,6 +252,7 @@
\from{tudscr-version.dtx}{class,doc}%
\from{tudscr-doc.dtx}{class,doc}%
\from{tudscr-manual.dtx}{class,doc}%
+ \from{tudscr-misc.dtx}{class,doc,xindy}%
}
}
\endbatchfile
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscrsource.tex b/Master/texmf-dist/source/latex/tudscr/tudscrsource.tex
index 8cf3fc82891..697f647d744 100644
--- a/Master/texmf-dist/source/latex/tudscr/tudscrsource.tex
+++ b/Master/texmf-dist/source/latex/tudscr/tudscrsource.tex
@@ -3,27 +3,28 @@
\input tudscr-version.dtx
\gdef\filename{\jobname}
\endgroup
-\ProvidesFile{tudscrsource.tex}[\TUDVersion (sourcedoc)]
+\ProvidesFile{tudscrsource.tex}[\TUDScriptVersion (sourcedoc)]
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
-\documentclass[english,ngerman]{tudscrdoc}
+\documentclass[english,ngerman,xindy]{tudscrdoc}
\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{tudscrfonts} % only load this package, if the fonts are installed
-\usepackage{bookmark}
+\KOMAoptions{parskip=half-}
\usepackage{microtype}
-\EnableCrossrefs
+\usepackage{bookmark}
+%\EnableCrossrefs
\CodelineIndex
\RecordChanges
\GetFileInfo{tudscrsource.tex}
-\KOMAoptions{parskip=half-}
\begin{document}
\addtokomafont{subject}{\sffamily}
-\subject{\TUDScript{}~\vTUDScript{} basierend auf \KOMAScript{}~\vKOMAScript}
+\subject{\TUDScript \vTUDScript{} basierend auf \KOMAScript}
\title{Ein \LaTeXe-Bundle für Dokumente \mbox{im neuen \CD der} \mbox{\TnUD}}
\subtitle{Dokumentierter Quelltext}
\date{\filedate\\[1ex] Version \fileversion}
\author{Falk Hanisch\thanks{\tudscrmail}}
+
\makeatletter
\begingroup%
\def\and{, }%
@@ -36,8 +37,14 @@
pdfkeywords = {LaTeX, \TUDScript, Quelltext},%
}%
\endgroup%
+\renewcommand*\@pnumwidth{1.9em}
+\renewcommand*\@tocrmarg{2.9em}
\makeatother
+
+
\maketitle
+
+
Das \TUDScript-Bundle setzt das \CD der \TnUD für \LaTeXe{} um. Die darin
enthaltenen Klassen und Paketen basieren auf dem \KOMAScript-Bundle und sind
sehr eng mit diesen verwoben. Momentan ergänzen sie die alten, auf den
@@ -45,12 +52,14 @@ Standard-\LaTeX-Klassen basierenden Vorlagen von Klaus Bergmann, sollen diese
jedoch mittel- bis langfristig ersetzen.%
\footnote{%
aktuell ist dies \cls{tudbook}, geplant \cls{tudfax}, \cls{tudletter},
- \cls{tudform}, \cls{tudhaus} und evtl. auch \cls{tudbeamer}
+ \cls{tudform}, \cls{tudhaus} und evtl. auch \cls{tudbeamer}%
}
Es handelt sich bei diesem Dokument \emph{nicht} um das Anwenderhandbuch
sondern um den dokumentierten Quelltext der Implementierung von \TUDScript.
Das Anwenderhandbuch kann über die Konsole respektive das Terminal mit dem
-Aufruf \texttt{texdoc tudscr} geöffnet werden.
+Aufruf \texttt{texdoc tudscr} geöffnet werden.
+
+\ToDo{Sämtliche \cs{@temp\dots}-Makros auf \cs{tud@reserved\dots} ändern}[v2.06]
\tableofcontents
\clearpage
@@ -60,43 +69,33 @@ Aufruf \texttt{texdoc tudscr} geöffnet werden.
\DocInclude{tudscr-fonts}
\DocInclude{tudscr-fields}
\DocInclude{tudscr-locale}
+\DocInclude{tudscr-area}
\DocInclude{tudscr-pagestyle}
\DocInclude{tudscr-layout}
-\DocInclude{tudscr-frontmatter}
\DocInclude{tudscr-title}
-\DocInclude{tudscr-misc}
+\DocInclude{tudscr-frontmatter}
\DocInclude{tudscr-comp}
-
+\DocInclude{tudscr-misc}
\DocInclude{tudscr-color}
\DocInclude{tudscr-supervisor}
-\DocInclude{tudscr-poster}
+
\DocInclude{tudscr-twocolfix}
\DocInclude{tudscr-mathswap}
-%\DocInclude{tudscr-doc}
-%\DocInclude{tudscr-manual}
-%
-%\DocInclude{install/tudscr-metrics}
-%\DocInclude{install/tudscr-scripts}
+\ifdefined\tudfinalflag\else
+\DocInclude{tudscr-doc}
+\DocInclude{tudscr-manual}
+
+\DocInclude{install/tudscr-metrics}
+\DocInclude{install/tudscr-scripts}
+\fi
\addpart{\appendixname}
\vspace*{-2\baselineskip}
-\phantomsection\addsectiontocentry{}{\indexname}
-\begingroup
- \makeatletter
- \l@addto@macro\IndexParms{\hbadness=10000}
- \makeatother
- \PrintIndex
-\endgroup
-%
+\PrintIndex
+\clearpage
+\PrintChanges
+\clearpage
+\PrintToDos
\clearpage
-\phantomsection\addsectiontocentry{}{Change History}
-\begingroup
- \makeatletter
- \def\@oddfoot{Change History\hfill\thepage}
- \def\@evenfoot{Change History\hfill\thepage}
- \makeatother
- \PrintChanges
- \clearpage
-\endgroup
\end{document}