diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /info/translations/footmisc/de |
Initial commit
Diffstat (limited to 'info/translations/footmisc/de')
-rw-r--r-- | info/translations/footmisc/de/README | 6 | ||||
-rw-r--r-- | info/translations/footmisc/de/flushmargin-crop.pdf | bin | 0 -> 9247 bytes | |||
-rw-r--r-- | info/translations/footmisc/de/footmiscDE.pdf | bin | 0 -> 594707 bytes | |||
-rw-r--r-- | info/translations/footmisc/de/footmiscDE.tex | 2457 | ||||
-rw-r--r-- | info/translations/footmisc/de/hang-crop.pdf | bin | 0 -> 9234 bytes | |||
-rw-r--r-- | info/translations/footmisc/de/marginal-crop.pdf | bin | 0 -> 9239 bytes | |||
-rw-r--r-- | info/translations/footmisc/de/para-crop.pdf | bin | 0 -> 3103 bytes | |||
-rw-r--r-- | info/translations/footmisc/de/perpage-crop.pdf | bin | 0 -> 7824 bytes | |||
-rw-r--r-- | info/translations/footmisc/de/side-crop.pdf | bin | 0 -> 11148 bytes | |||
-rw-r--r-- | info/translations/footmisc/de/symbol-crop.pdf | bin | 0 -> 9220 bytes |
10 files changed, 2463 insertions, 0 deletions
diff --git a/info/translations/footmisc/de/README b/info/translations/footmisc/de/README new file mode 100644 index 0000000000..24c3e19e1a --- /dev/null +++ b/info/translations/footmisc/de/README @@ -0,0 +1,6 @@ +Students of my latex seminar and I translated in german the +documentation to footmisc. Also, in the first part a few examples +are given for illustrating the options. + +Author's name: Christine Römer +License type: nocommercial
\ No newline at end of file diff --git a/info/translations/footmisc/de/flushmargin-crop.pdf b/info/translations/footmisc/de/flushmargin-crop.pdf Binary files differnew file mode 100644 index 0000000000..73db8d27aa --- /dev/null +++ b/info/translations/footmisc/de/flushmargin-crop.pdf diff --git a/info/translations/footmisc/de/footmiscDE.pdf b/info/translations/footmisc/de/footmiscDE.pdf Binary files differnew file mode 100644 index 0000000000..f2655ffc6b --- /dev/null +++ b/info/translations/footmisc/de/footmiscDE.pdf diff --git a/info/translations/footmisc/de/footmiscDE.tex b/info/translations/footmisc/de/footmiscDE.tex new file mode 100644 index 0000000000..70b9af1322 --- /dev/null +++ b/info/translations/footmisc/de/footmiscDE.tex @@ -0,0 +1,2457 @@ +\documentclass[10pt,a4paper,ngerman]{article} +\usepackage[T1]{fontenc} +\usepackage[latin1]{inputenc} +\usepackage{babel} +\usepackage{url} +\usepackage{multicol,doc,listings,graphicx} + +\setlength{\parindent}{0em} +\setlength{\parskip}{2.0ex plus 1.0ex minus 0.5ex} + +\begin{document} + +\title{\texttt{footmisc} -- ein umfangreiches Paket für Fußnoten} +\author{Robin Fairbairns\footnote{Übersetzung ins Deutsche und Einfügen von +Beispielen durch Theresa +Ziegenfuß, Pierre Dumont \& Christine Römer von der FSU +Jena}\footnote{{Dank gilt der University of +Cambridge Computer Laboratory, William Gates Building, J.\,J. Thompson Avenue, Cambridge, CB2 0FD, UK +(\texttt{rf10<snail-shape>cam.ac.uk}}}} +\date{\today} + +\maketitle + + +%--------------------------------------------------------------------------- +\section{Benutzer Interface und Paket-Optionen} + +Das \texttt{footmisc} Paket liefert viele verschiedene Möglichkeiten, wie +Fußnoten in \LaTeXe{} Dokumenten dargestellt werden können (die Quellen des Codes dieses Pakets +sind verschiedene). +Das Interface zu den Paket-Optionen ist größtenteils sehr einfach gehalten +-- jede einzelne ist als eine Option im \verb|\usepackage| Kommando und in den meisten Fällen muss +sonst nichts weiter getan werden. Als Beispiel, um ein nützliches und einheitliches System zu nutzen, +verwendet der Autor das Paket mit folgendem Kommando \newline +\verb|\usepackage[perpage,para,symbol*]{footmisc}|.\newline +Für einige der Optionen sind zusätzliche Parameter von Nöten, diese werden in den nachfolgenden +Abschnitten beschrieben. + +%------------------------------------------------------ +\subsection{Die Option \texttt{perpage}} + +Diese Option setzt die Fußnoten-Nummerierung für jede Seite des Dokuments auf Anfang. Damit es korrekt +funktioniert, werden jedoch mindestens zwei Durchläufe mit dem Ausgabeprofil benötigt. Da man für die +Querverweise normalerweise schon mindestens zwei Durchläufe macht, sollte es dahingehend keine weiteren +Probleme geben. Die Option beinhaltet Code zum Berichten, ob "`\emph{Label(s) may have changed}"', +was dem einfachen Benutzer hilft zu merken, wann ein weiterer (dritter) Durchlauf nötig ist. + +Wie das folgende Beispiel zeigt, trägt die Fußnote auf der zweiten Seite +auch die Nummer 1: +\begin{lstlisting}[language={[LaTeX]TeX}, +basicstyle=\scriptsize, +frame=single] + +\usepackage[perpage]{footmisc} + +\begin{document} +Dies ist ein Satz, der ganz alleine auf einer Seite\footnote{Hier steht +eine vereinzelte Single-Fußnote}. steht. + +\newpage + +Auch dieser Satz steht ganz alleine auf einer Seite\footnote{Hier steht +noch eine vereinzelte Single-Fußnote}. +\end{document} +\end{lstlisting} + +\fbox{\includegraphics{perpage-crop.pdf}} + +%------------------------------------------------------ +\subsection{Die Option \texttt{para}} + +Diese Option dient dazu, dass die Fußnoten als ein einzelner zusammengefasster Paragraph am Ende der +Seite dargestellt werden. Wenn es nur eine Fußnote am Ende der Seite gibt, dann passiert nichts. Wenn +jedoch mehrere kleine Fußnoten auf einer Seite vorkommen, dann werden diese am Ende der Seite in einem +einzigen Paragraphen zusammengefasst, jede einzelne Fußnote ist dann durch ihre Nummer zu erkennen. Der +ursprüngliche Sinn dieses Pakets bestand darin, dass es lächerlich aussah, wenn man für viele kleine +Fußnoten einer Seite immer einen einzelne Paragraph am Ende nutzt. +Zu beachten ist, dass in "`alten"' \LaTeX-Versionen vielleicht Probleme mit +\textbf{para} Fußnoten auf großen Seiten (zum Beispiel Seiten mit der +a0poster-Klasse) auftreten. Aktuelle \LaTeX-Versionen haben eine weiterentwickelte Technik, die als +weniger empfindlich für dieses Problem gilt. + +Wie das Beispiel zeigt, werden mit \LaTeXe{} und der moderneren +Dokumentklasse \texttt{memoir} die Fußnoten nicht +untereinander aufgeführt. Möglicherweise ist das, mit zu einem Paragraphen +zusammengefasst, gemeint. + +\begin{lstlisting}[language={[LaTeX]TeX}, +basicstyle=\scriptsize, +frame=single] +\usepackage[para]{footmisc} + +\begin{document} + +Dies ist ein Satz mit einer Fußnote\footnote{Hier steht +eine Fußnote.}. Dies\footnote{Hier steht +eine Fußnote.} ist ein zweiter Satz\footnote{Hier steht +eine sehr, sehr, sehr, sehr, sehr, sehr, sehr, sehr, sehr, +sehr, sehr, sehr lange Fußnote.} mit drei +Fußnoten\footnote{Hier steht eine Fußnote}. + +Leider werden mit \LaTeXe{} die Fußnoten nicht zu einem Paragraphen +zusammengefasst. + +\end{document} +\end{lstlisting} + +\fbox{\includegraphics{para-crop.pdf}} + + +%------------------------------------------------------ +\subsection{Die Option \texttt{side}} + +Diese Option (vorgeschlagen von Frank Mittelbach) bewirkt, dass die Fußnoten mit dem +\verb|\marginpar|-Kommando dargestellt wird; das hat den Vorteil, dass die +Fußnote näher bei ihrem Aufruf erscheint. Jedoch hat es alle Nachteile, die +das \verb|\marginpar|-Kommando mitbringt (das Verschlingen von "`float"' slots, und es platziert sich +selbst nicht immer korrekt am Anfang von Seiten in zweiseitigen Dokumenten). Da aber Fußnoten bevorzugt +eng aneinander gesetzt werden, wird Benutzern (die die \texttt{side}-Option +verwenden) empfohlen, die \texttt{ragged}-Option zu nutzen (um unschöne Abstände und +Zeilenumbrüche zu vermeiden). + +Ein Beispiel: + +\fbox{\includegraphics[width=.9\linewidth]{side-crop.pdf}} + +%------------------------------------------------------ +\subsection{Die \texttt{ragged} und $\backslash$\texttt{footnotelayout} Option} + +Das Paket liefert Möglichkeiten für rechtsbündig gesetzte Fußnoten (solange wie die para Option nicht +verwendet wird). Der Wechsel wird beeinflusst durch das Verwenden des +\verb|\footnotelayout|-Kommandos; das Paket fügt dieses Kommando an den Anfang des +\verb|\footnotetext|-Arguments(\verb|\footnote| und funktioniert durch aufrufen der "`Innereien"' +von \verb|\footnotetext| am Ende). +Wenn man einige andere spezielle Effekte benutzen will, dann ist es auch +möglich, dass \verb|footnotelayout| selbst zu ändern: Dabei sind jedoch einige irreführende (und +unerwünschte) Resultate ohne Zweifel möglich. Ändern Sie die Einstellung einfach mit +\verb|\renewcommand\footnotelayout...| Die \texttt{ragged}-Option setzt einfach nur das \verb|\footenotelayout| +auf \verb|\raggedright| oder \verb|\RaggedRight| so, wie es angemessen ist. +Wenn Sie beabsichtigen, das \texttt{ragged2e} Paket zu nutzen, dann laden +sie es vor \texttt{footmisc} (wenn \texttt{footmisc} erkennt, dass \verb|\RaggedRight| verfügbar ist, +dann wird es automatisch, anstelle von \verb|raggedright|, verwendet). + +%------------------------------------------------------ +\subsection{Die Option \texttt{symbol}} + +Diese Option bewirkt nur, dass Fußnoten mit einer Folge von Symbolen beschriftet werden. Das Kommando zu +verwenden ist äquivalent zu dem, was im \LaTeX-Manual vorgeschlagen wird (die Aufgabe der Option ist sehr +einfach, und braucht nicht wirklich ein Paket). +Es kann auch problematisch sein, Symbole als Nummerierung für Fußnoten zu +verwenden, da es nur eine +begrenzte Anzahl von Symbolen gibt. \LaTeX{} würde einen Fehler melden, wenn die Anzahl der Fußnoten die +der Symbole überschreitet. Um solche Probleme zu vermeiden, sollte die +\texttt{symbol}*-Option in Betracht gezogen werden, oder das +\verb|\setfnsymbol| Kommando (siehe die nächsten beiden Abschnitte), oder nummerieren Sie die Fußnote pro +Seite (siehe \texttt{perpage}). + +Das Beispiel zeigt, dass nun die Fußnoten untereinander aufgelistet werden. +\begin{lstlisting}[language={[LaTeX]TeX}, +basicstyle=\scriptsize, +frame=single] +\usepackage[symbol]{footmisc} + +\begin{document} + +Dies ist ein Satz mit einer Fußnote\footnote{Hier steht +eine sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr +sehr lange Fußnote, um zu schauen, wie sie nach dem +Zeilenumbruch aussieht.}. +Dies\footnote{Hier steht eine Fußnote.} ist ein zweiter +Satz\footnote{Hier steht eine Fußnote.} mit drei +Fußnoten\footnote{Hier steht eine Fußnote}. + +Die Fußnoten werden nun auch untereinander gesetzt. +\end{document} +\end{lstlisting} + + +\fbox{\includegraphics[width=.9\linewidth]{symbol-crop.pdf}} + +%------------------------------------------------------ +\subsection{Option \texttt{symbol*}} + +Diese Option ist im Grunde dieselbe wie die \texttt{symbol} Option, aber mit einem Schutz vor der +Eintönigkeit, die aufgrund der \texttt{perpage}-Option entsteht. Wenn +\texttt{perpage} genutzt wird, setzt das Paket oftmals die Fußnoten auf falsche Seiten, was nur durch +einen späteren Durchlauf zu berichtigen ist (dann wenn der Benutzer mit \emph{'Labels may have changed'} +gewarnt wird). Unter diesen Umständen neigt die \texttt{symbol}-Option zu +\LaTeX{} Fehlern, was den Durchlauf stoppt und verwirrende automatische Prozesse generiert. In der selben +Situation produziert die \texttt{symbol*}-Option Informations- und +Warnmitteilungen am Ende des Dokuments, und der Benutzer kann dann diese im +Log File einsehen, nachdem der Durchlaufprozess beendet ist. Die Option produziert Nummern (17 und höher, +beim Standard-Symbolsatz) anstatt von Symbolen immer dann, wenn es mehr Fußnoten als Symbole gibt. + +%------------------------------------------------------ +\subsection{Die $\backslash$\texttt{setfnssymbol} und +$\backslash$\texttt{DefineFNsymbol} Kommandos} + +Diese Kommandos erlauben es, andere Symbole zu definieren, die zum Nummerieren von Fußnoten verwendet +werden sollen. \LaTeX{} selbst bringt bereits einen vorgefertigten Satz an Symbolen mit, die aber nicht +immer gewünscht sind.\\ +Aber Sie können auch andere Symbolesätze mit dem \verb|\DefineFNsymbol| Kommando wählen.\\ +\LaTeX{} Standardsatz mit dem Kommando: +\begin{quote} +\begin{verbatim} + \DefineFNsymbols*{lamport}{*\dagger\ddagger\S\P|% + {**}{\dagger\dagger}{\ddagger\ddagger}} +\end{verbatim} + \end{quote} + +So definiert, produziert die Symbol-Option einen "`counter too large"' (Zähler zu hoch) Fehler, eine +robuste Version wird durch das selbe \verb|\DefineFSymbols| Kommando, ohne die optionalen *, erzeugt. Sie +können auch selber Symbolsätze mit dem \verb|\setfnsymbol| Kommando +einfügen. Um den Standardsatz wiederherzustellen, nutzen sie folgenden Befehl: +\begin{quote} +\begin{verbatim} + \setfnsymbol{lamport} +\end{verbatim} +\end{quote} + +Dieses Paket definiert eine kleine Auswahl an alternative Symbolsätzen durch das \verb|\DefineFNSymbol|: + +\begin{table}[htbp] +\centering + \begin{tabular}{ll} + bringhurst & * \dag \ddag \S || \P \\ + chicago & * \dag \ddag \S || \# \\ + wiley & * ** \dag \ddag \S \P || \\ + \end{tabular} +\end{table} + +Dies erfolgt zusammen mit einer Version von Lamport's Originalsatz, mit +doppelt großen Versionen von \S{} +und \P und dreifach so großen Versionen von allen (außer den vertikalen Linien) und liefert somit eine +Menge von 16 Symbolen.\\ +Diese letzte Auswahl, bekannt als \texttt{lamport*}, wird als Standard vom Paket geladen. + +%------------------------------------------------------ +\subsection{Die Option \texttt{bottom}} + +Dieses Paket zwingt Fußnoten an das Ende der Seite, das ist nur merkbar +sinnvoll, wenn die \verb|\raggedbottom|-Option benutzt wird, denn dann +würde \LaTeX{} normalerweise die Fußnoten annähernd in einen \verb|\skip\footins| Abstand vom Boden des +Textes setzen.\\ +Es gibt eine weitere unangenehme Sache in \LaTeX's Art und Weise, Fußnoten am Ende der Seite zu platzieren: +Wenn ein bottom float auf der Seite auftaucht, dann platziert \LaTeX{} die Fußnote(n) darüber.\\ +Die \texttt{bottom}-Option platziert die Fußnoten am Fuß der Seite. + +%------------------------------------------------------ +\subsection{Die Option \texttt{marginal}} + +Diese Option setzt die Position der Fußnoten in Relation zum Start der +Zeile, in der sie vorkommen(diese Option ist inkompatibel mit der +\texttt{para}-Option).\\ +Wenn diese Option aktiv ist, wird die Fußnote \verb|\footnotemargin| vom +linken Rand der Seite aus gesetzt, +die Standardeinstellung von \verb|\footnotemargin| ist -0.8\,em, also +entsteht eine "`Marginalspalte"' neben der Zeile. Wenn \verb|\footnotemargin| eine positive Länge hat, +dann wird die Fußnote mit ihrer rechten Ecke um \verb|\footnotemargin| vom Rand gesetzt. Wenn die Option +nicht gesetzt ist, dann steht die \verb|\footnotemargin| standardmäßig auf +1.8\,em, das kann mit dem +\verb|\setlength| Kommando geändert werden. + +Das Beispiel zeigt, dass die Fußnoten nun nummeriert, untereinander, +eingerückt und mit einem kleinen Abstand zwischen Zahl Rand und Text erscheinen. + +\fbox{\includegraphics[width=.9\linewidth]{marginal-crop.pdf}} + + +%------------------------------------------------------ +\subsection{Die Option \texttt{flushmargin}} + +Diese Option ist gleich der "`margin"'-Option. Sie setzt aber den +Fußnoten-Marker \texttt{flush} (bündig) dazu, aber nur innerhalb der +"`margin"'-Form, also bündig mit dem Rand. + +Ein Beispiel: + +\fbox{\includegraphics[width=.9\linewidth]{flushmargin-crop.pdf}} + + +%------------------------------------------------------ +\subsection{Die Option \texttt{hang}} + +Diese Option setzt die Fußnotenmarke bündig mit dem Rand und lässt den Körper der Fußnote am Einzug von +\verb|\footnotemargin| hängen (wenn sie eine positive Länge hat) oder +Breite des Marker (wenn \verb|\footnotemargin| $\leq 0$). Der Optionscode +selber bleibt +\verb|\footnotemargin| bei dem Standardwert von 1.8em.\\ +Die Fußnote selber kann natürlich auch länger sein als nur ein Paragraph, in dem Fall wird der Paragraph +getrennt, im vertikalen Abstand, der durch \verb|hangfootparskip| definiert wird, und alle weiteren Paragraphen +werden mit \verb|\hangfootparindent| eingezogen/eingerückt. +Standardwerte dabei sind: + +\begin{quote} + \begin{verbatim} + \hangfootparskip 0.5\baselineskip + \hangfootparindent 0em + \end{verbatim} +\end{quote} + +Der Benutzer kann diese Werte natürlich selber definieren (mit +\verb|\renewcommand|): Es ist dabei am besten die "`font-size-dependent +measures"'. Zu beachten ist, dass die Standardeinstellung nur einen der beide Werte auf ungleich Null hat. Wenn +beide auf Null stehen, können schnell Zeilenumbrüche verloren gehen. Wenn +beide auf ungleich Null stehen, dann sieht das im Allgemeinen nicht gut aus. + +Ein Beispiel: + +\fbox{\includegraphics[width=.9\linewidth]{hang-crop.pdf}} + +%------------------------------------------------------ +\subsection{Die Option \texttt{norule}} + +Sie unterdrückt die normalen Regeln für Fußnoten. Um dies zu kompensieren, wird mit \verb|\skip\footins| +erweitert. + +%------------------------------------------------------ +\subsection{Die Option \texttt{splitrule}} + +Diese Option erstellt eine "`full-width"'-Regel über dem "`splitt-off"' +(umgebrochenen) Teil einer getrennten Fußnote (merke, dass getrennte +Fußnoten nicht entstehen, wenn Paragraph-Fußnoten verwendet werden). Die Option liefert drei unterschiedliche +\verb|\footnoterule|-Kommandos: + +\begin{quote} +\begin{verbatim} +\mpfootnoterule Für Minipages +\pagefootnoterule Für normale Fußnoten auf normalen Seiten +\splitfootnoterule Für den Rest einer "gesplitteten" Fußnote +\end{verbatim} +\end{quote} + +Beim Standard behalten \verb|\mpfootnoterule| und \verb|\pagefootnoterule| +die originalen Definitionen von \verb|\footnoterule| (welche +vielleicht durch die \texttt{norule}-Option modifiziert wurden), während \verb|\splitfootnoterule| +eine "`full-width"' Regel wird. + +%------------------------------------------------------ +\subsection{Die \texttt{stable}-Option} + +Diese Option behandelt das Problem, wie Fußnoten in Abschnittstiteln +(section, subsection, etc.) zu +verwenden sind. Der Umgang von \LaTeX{} mit den Inhalten von Titeln widerspricht dem Platzieren von Fußnoten +in Titeln, +auch wenn es manchmal angemessen ist, diese dort zu platzieren. Natürlich ist das Titelargument ein wanderndes +und \verb|\footnote| ist ein sehr "`zerbrechliches"' Kommando, aber das eigentliche Problem kommt von der Art +und Weise, wie sich das Argument bewegt -- was an zwei Stellen passiert. Einmal bewegt es sich im +Inhaltsverzeichnis (bei Änderung der Seitenanzahl), dort sieht die Fußnote jedenfalls seltsam aus. Aber das +Argument bewegt sich auch mit den Markierungen, die die Seitenköpfe +gestalten, wo es eine "`Verwüstung"' anrichtet, weil Seitenköpfe im Seitenlayout erstellt werden und das +Seitenlayout kreiert keine Fußnoten.\\ +Wenn aber die \texttt{stable}-Option aktiv ist, dann ist die Fußnote nicht im Inhaltsverzeichnis oder auf den +Seitenköpfen fixiert, aber wird im Text selbst korrekt dargestellt.\\ +Die Situation mit \verb|\footnotemark| ist weniger tragisch. Prinzipiell können sie in Seitenköpfen auftauchen, +Beispielsweise erscheinen Fußnoten-Markierungen auf Seiten, wo sie nicht +hingehören. Die \texttt{stable}-Option behandelt \verb|\footnotemark| und \verb|\footnote| gleichermaßen. + +%------------------------------------------------------ +\subsection{Die \texttt{multiple}-Option} + +Dies Option behandelt die Fälle, wo der Autor Dinge schreiben muss wie: + +\begin{quote} +\begin{verbatim} +mumble\footnote{blah}\footnote{grumble} +\end{verbatim} +\end{quote} + +Ohne spezielles Behandeln würde \LaTeX{} sowas erstellen: + +\begin{quote} +mumble$^{1314}$ +\end{quote} + +Die \texttt{multiple}-Option würde dann diese elegantere Version erzeugen: + +\begin{quote} +mumble$^{13,14}$ +\end{quote} + +Dies entspricht auch dem, was die meisten Leute erwarten würden. Das Komma kommt eigentlich von der Definition +\verb|\multfootsep|, das mit dem Kommando \verb|\renewcommand| geändert +werden kann, wenn die Option aktiv ist.\\ +Die Option behandelt \verb|\fottnotemark| auf die selbe Art und Weise. +%------------------------------------------------------ +\subsection{Die Benutzeroberfläche -- verschiedene Kommandos} + +Das Paket definiert ebenfalls einige verschiedene Kommandos, die verwandt sind mit Fußnoten. Die aktuelle +Gruppe liefert alternative Wege, wie man Fußnoten-Markierung produziert: \verb|\footref| und +\verb|\mpfootnotemark|.\\ +Wenn Sie auf einer Minipage sind, dann verlaufen die \verb|\footnote|-Nummern mit dem Minipage eigenen Zähler +und die Markierungen werden in italic Buchstaben gesetzt. Aber die Nummern, die von \verb|\footnotemark| +verwendet werden, erstellen trotzdem Verweise im "`main"' Fußnoten-Zähler +und werden in dem aktuellen Stil gesetzt. Dieses Verhalten überrascht +oftmals, und es gibt keine offensichtliche Methode, dies zu vermeiden. Das Kommando \verb|\mpfootnotemark| kann +dieses Problem auf einer Minipage umgehen, durch das Genieren von Fußnoten-Markierungen, genauso wie sie +in \verb|\footnote| definiert sind.\\ +Änderungen an Verweisen von Fußnoten sind im Allgemeinen problematisch: Es +kann dennoch getan werden wenn man die Werte der Fußnoten-Markierung in einem Zähler(oder ähnlichem) notiert +(sich merkt), um sie dann in einer späteren \verb|\footnotemark| oder \verb|\mpfootnotemark| zu verwenden. Das +ist eine mühsame Art, über alle einzeln zu gehen, und es erlaubt nicht alle möglichen Darstellungen von +Fußnoten-Markierungen. \verb|\footref| ist eine Form von einem +Referenz-Kommando, das die Referenzen so setzt, als wenn sie Fußnoten wären. Das Label sollte in das Argument +des Fußnoten-Kommandos gesetzt werden: + +\begin{quote} +\begin{verbatim} +...\footnote{Note text\label{fnlabel}} +... +...potato head\footref{fnlabel} +\end{verbatim} +\end{quote} + +%------------------------------------------------------ +\section{Die Benutzeroberfläche -- Interaktionen mit anderen Paketen} + +Das \texttt{footmisc}-Paket modifiziert verschiedene Teile des +\LaTeX-Kernels, was genau geändert wird, ist abhängig davon, was für eine Option verwendet wird. Diese +Vorgehensweise kann Konflikte mit anderen Paketen verursachen, meistens mit +denen, die selber auch den Kernel modifizieren.\\ +Bekannte Interaktionen sind: +\begin{description} +\item[\texttt{setspace}] +Das \texttt{setspace}-Paket modifiziert/ändert die Art, wie der Zeilenabstand in Fußnoten berechnet wird. +\texttt{Footmisc} kennt dieses Problem und verhindert eine Änderung. Aber +\texttt{setspace} muss vor \texttt{footmisc} geladen werden. +\item[\texttt{memoir}] class: Die Klasse macht es \texttt{setspace} nach und wird genauso behandelt wie +\texttt{setspace}. +\item[\texttt{hyperref}] Das \texttt{hyperref}-Paket will Hyperlinks von +Fußnotenmakierungen zu der entsprechenden Fußnoten setzen, normalerweise +verusacht das Schaden/Kummer am \texttt{footmisc}-Paket, dafür ist aber leider noch keine Lösung bekannt. +Wenn Sie \texttt{footmisc} verwenden, dann unterdrücken Sie hyperref's hyper-Fußnoten (die mit Links), indem Sie +es wie folgt laden:\\ +\quad\verb|\usepackage[hyperfootnotes=false,...]{hyperref}|\\ +Weitere Arbeit an Interaktionen zwischen diesen beiden Paketen wäre +angebracht, ist aber nicht geplant. +\item[\texttt{manyfoot}] Das \texttt{manyfoot}-Paket erlaubt verschiedene unabhängige Sequenzen von Fußnoten. +Einige vorbereitende Arbeiten für das Zusammenarbeiten mit +\texttt{footmisc} sind bereits geschehen, aber es muss dabei noch viel während des Schreibens des Textes +getan werden. +\end{description} + +%--------------------------------------------------------------------- +\section{Code: Einleitung/Vorbereitung} + +Gut, soweit sind wir, lassen sie uns die Paketdatei erstellen:\\ +\hspace*{2mm} \verb|1 <*package>|\\ +\hspace*{2mm} Jetzt definieren wir, welche Umgebung wir brauchen:\\ +\hspace*{2mm} \verb|2 \NeedsTeXFormat{LaTeX2e}[1994/12/01]|\\ +\hspace*{2mm} Wir brauchen ein Token-Register, falls wir \verb|\@makecol| patchen müssen:\\ +\hspace*{2mm} \verb|3 \newtoks\FN@temptoken| + +\reversemarginpar + +Dieses \marginpar{$\backslash$protected@writeaux} +Kommando ist definiert für weitere Kompatibilität mit Matt Swift's +\texttt{newclude}-Paket(immer noch im Beta Status):\\ +\hspace*{2mm} \verb|4 \providecommand\protected@writeaux{|\\ +\hspace*{2mm} \verb|5 \protected@write\@auxout|\\ +\hspace*{2mm} \verb|6 }| + +Wir \marginpar{$\backslash$l@advance@macro} +\marginpar{@@dvance@macro} +\marginpar{$\backslash$@advance@macro} +verallgemeinern das Folgende (\verb|\@@dvance@macro|) wie folgt (die globale Form wird in diesem +Paket nicht verwendet \ldots, noch nicht):\\ +\hspace*{2mm} \verb|7 \def\l@advance@macro{\@@dvance@macro\edef}|\\ +\hspace*{2mm} \verb|8 \def\@@dvance@macro#1#2#3{\expandafter\@tempcnta#2\relax|\\ +\hspace*{2mm} \verb|9 \advance\@tempcnta#3\relax|\\ +\hspace*{2mm} \verb|10 #1#2{\the\@tempcnta}|\\ +\hspace*{2mm} \verb|11 }| + +Jetzt definieren wir ein kleines Makro, um den Makrozähler(\#1) +durch eine vorgebende Anzahl (\#2) zu erweitern:\\ +\hspace*{2mm} \verb|12\let\@advance@macro\l@advance@macro| + +Überprüfen\marginpar{$\backslash$ifFN@etex}, ob wir \texttt{etex} verwenden:\\ +\hspace*{2mm} \verb|13 \newif\ifFN@etex|\\ +\hspace*{2mm} \verb|14 \ifx\dimexpr\undefined|\\ +\hspace*{2mm} \verb|15 \FN@etexfalse|\\ +\hspace*{2mm} \verb|16 \else|\\ +\hspace*{2mm} \verb|17 \FN@etextrue|\\ +\hspace*{2mm} \verb|18 \fi| + +Abschließend\marginpar{$\backslash$footnotemargin} + definieren wir die Länge, die von der \texttt{marginal}-Option verwendet werden soll und +initialisieren es, so als ob wir die Option nicht hätten:\\ +\hspace*{2mm} \verb|19 \newdimen\footnotemargin|\\ +\hspace*{2mm} \verb|20 \footnotemargin1.8em\relax| + +%----------------------------------------------------------------- +\section{Paketoptionen} + +Der Großteil Paket-Codes ist irgendwie in der "`option processing"' +beinhaltet (das was fehlt, muss nach der \verb|\processOptions| als ein Resultat von flags in der +"`option processing"'). + +%------------------------------------------------------ +\subsection{Die \texttt{symbol}-Option} + +Das ist eine Deklaration, die im original \LaTeX-Buch auftaucht. Seitdem es +im alten \texttt{pagefoots.sty} erschienen ist, habe ich dieses kleine Stück angepasst: + +\verb|21 \DeclareOption{symbol}{\renewcommand\thefootnote{\fnsymbol{footnote}}}| + +\subsection{Die \texttt{symbol*}-Option} + +Die robuste Version der \texttt{symbol}-Option, wenn die aktuelle 'symbol' Option nicht genügend Variationen +liefern kann, dann benutzen sie arabische Fußnotennummern. Wir benutzen eine robuste Version des "`extended +ordinary"' Symbolsatzes, später weiter beschrieben (Abschnitt 1.7). + +\verb|22 \DeclareOption{symbol*}{| +\verb|23 \renewcommand\thefootnote{\@fnsymbol\c@footnote}| +\verb|24 \AtEndOfPackage{\setfnsymbol{lamport*-robust}}| +\verb|25 }| +%------------------------------------------------------ +\subsection{Die \texttt{para}-Option} + +Die Grundlage des Codes für diese Option kommt vom \TeX book, Seite 398 ff. +("`Dirty Tricks"'). Sie verhindert das Neudefinieren \verb|\\|, was einigen +Nutzen in \LaTeX{} hat. Dem Benutzer sollte Knuth's Hinweis über Limitation +dieser Methode bekannt sein: Der \TeX stack wird viermal per Fußnote benutzt +und der Stack ist limitiert (siehe \TeX book, Seite 300 ff.). Wenn Sie viele +Fußnoten haben (ca. 100) und erhalten den Fehler "`! TeX capacity exceeded, +sorry (...save size...)"' angezeigt, +dann müssen Sie ihren Text in kleinere Sektionen aufteilen und diese separat compilieren. \\ + +Definieren\marginpar{$\backslash$ifFN@para} + der \texttt{para}-Option: Jetzt setzten wir einfach eine +Markierung, um Sie später zu nutzen, wenn wir den Hilfs-Code und wenn wir +die Output-Routine definieren. + +\verb|26 \newif\ifFN@para \FN@parafalse|\\ +\verb|27 \DeclareOption{para}{\ifFN@sidefn|\\ +\verb|28 \PackageError{footmisc}{Option "\CurrentOption" incompatible with| +\verb|29 option "side"}|\\ +\verb|30 {I shall ignore "\CurrentOption"}|\\ +\verb|31 \else|\\ +\verb|32 \FN@paratrue|\\ +\verb|33 \fi|\\ +\verb|34 }| + +%------------------------------------------------------ +\subsection{Die \texttt{side}-Option} + +Es ist einfach\marginpar{$\backslash$ifFN@sidefn} das Verhalten zu wechseln von \verb|\@footnotetext|, +es ist aber inkompatibel mit Paragraph-Fußnoten. + +\verb|35 \newif\ifFN@sidefn \FN@sidefnfalse|\\ +\verb|36 \DeclareOption{side}{\ifFN@para|\\ +\verb|37 \PackageError{footmisc}{Option "\CurrentOption" incompatible with|\\ +\verb|38 option "para"}|\\ +\verb|39 {I shall ignore "\CurrentOption"}|\\ +\verb|40 \else|\\ +\verb|41 \FN@sidefntrue|\\ +\verb|42 \fi|\\ +\verb|43 }| + +%------------------------------------------------------ +\subsection{Die \texttt{ragged}-Option} +Eine sehr einfach Option\marginpar{$\backslash$footnotelayout}, es wird gerade mal die Definition eines Makros +geändert. (Bemerken Sie die Erkennung des \texttt{ragged2e}-Pakets.) + +\verb|44 \let\footnotelayout\@empty|\\ +\verb|45 \DeclareOption{ragged}{|\\ +\verb|46 \@ifundefined{RaggedRight}|\\ +\verb|47 {\renewcommand\footnotelayout{\linepenalty50 \raggedright}}|\\ +\verb|48 {\renewcommand\footnotelayout{\linepenalty50 \RaggedRight}}|\\ +\verb|49 }| +%------------------------------------------------------ +\subsection{Die \texttt{perpage}-Option} + +Eine\marginpar{$\backslash$ifFN@perpage} +Änderung der Fußnoten-Nummerierung, ein neuer Algorithmus, der einen von Brian T. Schellenberger ersetzt, +welcher sich als fehlerhaft herausgestellt hat. Wir setzten hier wieder einfach eine Markierung und definieren +den Code später. + +\verb|50 \newif\ifFN@perpage|\\ +\verb|51 \FN@perpagefalse|\\ +\verb|52 \DeclareOption{perpage}{|\\ +\verb|53 \FN@perpagetrue|\\ +\verb|54 }| +%------------------------------------------------------ +\subsection{Die \texttt{PPdebug}-Option} + +Sie setzt\marginpar{$\backslash$ifFN@pp@debug} +"`Flaggen"', die Nachrichten sind und an vielen verschiedenen Plätzen generiert. Die Option ist nicht im +ausgelieferten Zustand verfügbar. Modifizieren Sie die \texttt{.ins}-Datei, um eine Version des Pakets zu +generieren, die die Option enthält, wenn Sie denken, dass Sie es +brauchen. + +\verb|55 <*PPdebug>|\\ +\verb|56 \newif\ifFN@pp@debug \FN@pp@debugfalse|\\ +\verb|57 \DeclareOption{PPdebug}{\FN@pp@debugtrue}|\\ +\verb|58 </PPdebug>| +%------------------------------------------------------ +\subsection{Die \texttt{bottom}-Option} + +Alles\marginpar{$\backslash$ifFN@bottom} +was wir tun müssen, ist eine Flagge zu setzen, die sagt, dass es passieren +soll. + +\verb|59 \newif\ifFN@bottom \FN@bottomfalse|\\ +\verb|60 \DeclareOption{bottom}{|\\ +\verb|61 \FN@bottomtrue|\\ +\verb| 62 }| +%------------------------------------------------------ +\subsection{Die \texttt{marginal}-Option} + +Auch hier ist die Umsetzung der Option ziemlich einfach: + +\verb|63 \DeclareOption{marginal}{|\\ +\verb|64 \footnotemargin-0.8em\relax|\\ +\verb|65 }| +%------------------------------------------------------ +\subsection{Die \texttt{flushmargin}-Option} + +Auch hier ist die Umsetzung der Option ziemlich einfach: + +\verb|66 \DeclareOption{flushmargin}{|\\ +\verb|67 \footnotemargin0pt\relax|\\ +\verb|68 }| +%------------------------------------------------------ +\subsection{Die \texttt{hang}-Option} + +Wir\marginpar{$\backslash$ifFN@hangfoot} +brauchen diesen Schalter, weil \verb|\@makefntext| gepatcht werden muss: + +\verb|69 \newif\ifFN@hangfoot \FN@hangfootfalse|\\ +\verb|70 \DeclareOption{hang}{|\\ +\verb|71 \FN@hangfoottrue|\\ +\verb|72 }| + +Layout-Parameter\marginpar{$\backslash$hangfootparskip} +\marginpar{$\backslash$hangfootparindent} +für hängende Fußnoten: \verb|\hangfootparskip| und +\verb|\hangfootparindent| sind Werte, die genutzt werden für \verb|\parskip| und \verb|\parindent| in +hängenden Fußnoten.\\ +\verb|73 \newcommand*\hangfootparskip{0.5\baselineskip}|\\ +\verb|74 \newcommand*\hangfootparindent{0em}| + +%------------------------------------------------------ +\subsection{Die \texttt{norule}-Option} + +Auch hier ist die Umsetzung der Option ziemlich einfach: + +\verb|75 \DeclareOption{norule}{|\\ +\verb|76 \renewcommand\footnoterule{}|\\ +\verb|77 \advance\skip\footins 4\p@\@plus2\p@\relax|\\ +\verb|78 }| + +%------------------------------------------------------ +\subsection{Die \texttt{splitrule} Option} + +Diese\marginpar{$\backslash$split@prev} +stammt von einem Posting von Donald Arseneau vom 13.\,November 1996. Der +Code basiert auf dem Fakt, dass \LaTeX Fußnoten immer nur einfügt (also +immer, wenn ein Einfügen im Gange ist, wird sie gesplittet). + +\verb|79 \DeclareOption{splitrule}{|\\ +\verb|80 \gdef\split@prev{0}| + +Definieren\marginpar{$\backslash$pagefootnoterule} +\marginpar{$\backslash$mpfootnoterule} \marginpar{$\backslash$splitfootnoterule} +von Standardwerten für drei Fußnoten-Regeln: Achtung, wir übernehmen die aktuellen Einstellungen von +\verb|\footnoterule| für die beiden regulären Fußnoten-Standardwerte, und +wenn bei der Option \textbf{norule} beeinflusst werden, gehen die Werte +auf null \ldots + +\verb|81 \let\pagefootnoterule\footnoterule|\\ +\verb|82 \let\mpfootnoterule\footnoterule|\\ +\verb|83 \def\splitfootnoterule{\kern-3\p@ \hrule \kern2.6\p@}| + +Jetzt definieren wir \verb|\footnoterule| für drei Situation neu: + +\verb|84 \def\footnoterule{\relax|\\ +\verb|85 \ifx \@listdepth\@mplistdepth|\\ +\hspace*{3mm} Auf einer Minipage\\ +\verb|86 \mpfootnoterule|\\ +\verb|87 \else|\\ +\verb|88 \ifnum\split@prev=\z@|\\ +\hspace*{3mm} Normale Fußnoten auf regulären Seiten\\ +\verb|89 \pagefootnoterule|\\ +\verb|90 \else|\\ +\hspace*{3mm} Zweiter Teil einer gesplitteten Fußnote\\ +\verb|91 \splitfootnoterule|\\ +\verb|92 \fi|\\ +\hspace*{3mm} Ein Split für eine nächste Seite\\ +\verb|93 \xdef\split@prev{\the\insertpenalties}|\\ +\verb|94 \fi|\\ +\verb|95 }|\\ +\verb|96 }| +%------------------------------------------------------ +\subsection{Die \texttt{stable} Option} + +Einfach\marginpar{$\backslash$ifFN@stablefootnote} +eine "`Flagge"' setzen, der Code wird erst am Ende des Pakets ausgeführt: + +\verb|97 \newif\ifFN@stablefootnote \FN@stablefootnotefalse|\\ +\verb|98 \DeclareOption{stable}{\FN@stablefootnotetrue}| +%------------------------------------------------------ +\subsection{Die \texttt{multiple}-Option} + +Hier\marginpar{$\backslash$ifFN@multiplefootnote} wieder einfach eine "`Flagge"' setzen, auch hier +wird der Code wieder am Ende des Pakets ausgeführt. + +\verb|99 \newif\ifFN@multiplefootnote \FN@multiplefootnotefalse|\\ +\verb|100 \DeclareOption{multiple}{\FN@multiplefootnotetrue}| + +%------------------------------------------------------ +\subsection{Der Start des Endspiels} + +Übe die Optionen, die der Benutzer angefordert hat \ldots + +\verb|101 \ProcessOptions| + +%------------------------------------------------------------------------------- +\section{Die Kernel Hack Kommandos} + +Einige Standardkommandos (einige davon interne) müssen gehackt werden, um +ihren Effekt zu erzielen und das machen wir jetzt, entsprechend den Flags, +die wir im "`Option processing"' gesetzt haben. + +%------------------------------------------------------ +\subsection{Die Ausgaberoutine} + +Wenn entweder die \texttt{para}-Option oder die \texttt{bottom}-Option aufgerufen wurde, dann müssen wir uns +mit der Ausgaberoutine beschäftigen. + +\verb|102 \let \if@tempswa \ifFN@bottom|\\ +\verb|103 \ifFN@para \@tempswatrue \fi|\\ +\verb|104 \if@tempswa| + +\ldots{} also müssen wir anpassen.\\ +Als erstes versichern wir uns, dass das \verb|\@makecol| so ist, wie es +original geschrieben wurde. Da wir +es ja anpassen wollen, gehen wir lieber auf sicher, damit wir auch das richtige verwenden. (Es gab eine +winzige Änderung in der Definition von 1999, aber das macht keinen nennenswerten Unterschied in der Semantik +der Definition, auf der wir unsere Änderung anwenden). + +\verb|105 \@ifl@t@r\fmtversion{2005/12/01}{|\\ +\verb|106 \CheckCommand*\@makecol{\ifvoid \footins|\\ +\verb|107 \setbox\@outputbox \box\@cclv|\\ +\verb|108 \else|\\ +\verb|109 \setbox\@outputbox \vbox{|\\ +\verb|110 \boxmaxdepth \@maxdepth|\\ +\verb|111 \unvbox\@cclv|\\ +\verb|112 \vskip \skip\footins|\\ +\verb|113 \color@begingroup|\\ +\verb|114 \normalcolor\footnoterule|\\ +\verb|115 \unvbox\footins|\\ +\verb|116 \color@endgroup|\\ +\verb|117 }|\\ +\verb|118 \fi|\\ +\verb|119 \let \@elt \relax|\\ +\verb|120 \xdef\@freelist{\@freelist\@midlist}|\\ +\verb|121 \global\let\@midlist\@empty|\\ +\verb|122 \@combinefloats|\\ +\verb|123 \ifvbox\@kludgeins|\\ +\verb|124 \@makespecialcolbox|\\ +\verb|125 \else|\\ +\verb|126 \setbox\@outputbox \vbox to\@colht{|\\ +\verb|127 \@texttop \dimen@\dp\@outputbox|\\ +\verb|128 \unvbox\@outputbox|\\ +\verb|129 \vskip -\dimen@\@textbottom|\\ +\verb|130 }|\\ +\verb|131 \fi|\\ +\verb|132 \global\maxdepth\@maxdepth|\\ +\verb|133 }|\\ +\verb|134 }{|\\ +\verb|135 \@ifl@t@r\fmtversion{2003/12/01}{|\\ +\verb|136 \CheckCommand*\@makecol{\ifvoid \footins|\\ +\verb|137 \setbox\@outputbox \box\@cclv|\\ +\verb|138 \else|\\ +\verb|139 \setbox\@outputbox \vbox{|\\ +\verb|140 \boxmaxdepth\@maxdepth|\\ +\verb|141 \@tempdima\dp\@cclv|\\ +\verb|142 \unvbox\@cclv|\\ +\verb|143 \vskip \skip\footins|\\ +\verb|144 \color@begingroup|\\ +\verb|145 \normalcolor|\\ +\verb|146 \footnoterule|\\ +\verb|147 \unvbox\footins|\\ +\verb|148 \color@endgroup|\\ +\verb|149 }|\\ +\verb|150 \fi|\\ +\verb|151 \let \@elt \relax|\\ +\verb|152 \xdef\@freelist{\@freelist\@midlist}|\\ +\verb|153 \global\let\@midlist\@empty|\\ +\verb|154 \@combinefloats|\\ +\verb|155 \ifvbox\@kludgeins|\\ +\verb|156 \@makespecialcolbox|\\ +\verb|157 \else|\\ +\verb|158 \setbox\@outputbox \vbox to\@colht{|\\ +\verb|159 \@texttop|\\ +\verb|160 \dimen@\dp\@outputbox|\\ +\verb|161 \unvbox\@outputbox|\\ +\verb|162 \vskip -\dimen@|\\ +\verb|163 \@textbottom|\\ +\verb|164 }|\\ +\verb|165 \fi|\\ +\verb|166 \global\maxdepth\@maxdepth|\\ +\verb|167 }|\\ +\verb|168 }{|\\ +\verb|169 \@ifl@t@r\fmtversion{1999/12/01}{|\\ +\verb|170 \CheckCommand*\@makecol{\ifvoid \footins|\\ +\verb|171 \setbox\@outputbox \box\@cclv|\\ +\verb|172 \else|\\ +\verb|173 \setbox\@outputbox \vbox{|\\ +\verb|174 \boxmaxdepth\@maxdepth|\\ +\verb|175 \@tempdima\dp\@cclv|\\ +\verb|176 \unvbox\@cclv|\\ +\verb|177 \vskip \skip\footins|\\ +\verb|178 \color@begingroup|\\ +\verb|179 \normalcolor\footnoterule|\\ +\verb|180 \unvbox\footins|\\ +\verb|181 \color@endgroup|\\ +\verb|182 }|\\ +\verb|183 \fi|\\ +\verb|184 \xdef\@freelist{\@freelist\@midlist}|\\ +\verb|185 \global\let\@midlist\@empty|\\ +\verb|186 \@combinefloats|\\ +\verb|187 \ifvbox\@kludgeins|\\ +\verb|188 \@makespecialcolbox|\\ +\verb|189 \else|\\ +\verb|190 \setbox\@outputbox \vbox to\@colht{|\\ +\verb|191 \@texttop \dimen@\dp\@outputbox|\\ +\verb|192 \unvbox\@outputbox|\\ +\verb|193 \vskip -\dimen@\@textbottom|\\ +\verb|194 }|\\ +\verb|195 \fi|\\ +\verb|196 \global\maxdepth\@maxdepth|\\ +\verb|197 }|\\ +\verb|198 }|\\ +\verb|199 }{|\\ +\verb|200 \CheckCommand*\@makecol{\ifvoid \footins|\\ +\verb|201 \setbox\@outputbox \box\@cclv|\\ +\verb|202 \else|\\ +\verb|203 \setbox\@outputbox \vbox{|\\ +\verb|204 \boxmaxdepth\@maxdepth|\\ +\verb|205 \unvbox\@cclv|\\ +\verb|206 \vskip \skip\footins|\\ +\verb|207 \color@begingroup|\\ +\verb|208 \normalcolor\footnoterule|\\ +\verb|209 \unvbox\footins|\\ +\verb|210 \color@endgroup|\\ +\verb|211 }|\\ +\verb|212 \fi|\\ +\verb|213 \xdef\@freelist{\@freelist\@midlist}|\\ +\verb|214 \global\let\@midlist\@empty|\\ +\verb|215 \@combinefloats|\\ +\verb|216 \ifvbox\@kludgeins|\\ +\verb|217 \@makespecialcolbox|\\ +\verb|218 \else|\\ +\verb|219 \setbox\@outputbox \vbox to\@colht{|\\ +\verb|220 \@texttop \dimen@\dp\@outputbox|\\ +\verb|221 \unvbox\@outputbox|\\ +\verb|222 \vskip -\dimen@\@textbottom|\\ +\verb|223 }|\\ +\verb|224 \fi|\\ +\verb|225 \global\maxdepth\@maxdepth|\\ +\verb|226 }|\\ +\verb|227 }|\\ +\verb|228 }| + +Wenn wir Paragraph-Fußnoten verwenden, dann braucht die Output-Routine +einen anderen Code, um den Text zu platzieren. Wir bereiten den Code hier vor, da er an zwei unterschiedlichen +Orten genutzt wird.\\ +Wir erstellen den Code in einem Token-Register, um es an dem passenden Platz (unserer \verb|\@makecol| Änderung) +zu verwenden. Also entsteht ein Token-Register, das den Code beinhaltet, wie man Dinge in einem Token-Register +speichert.\\ +\verb|229 ifFN@para|\\ +Wir machen aus den Paragraph-Fußnoten eine Box, dann "`stopfen"' wir den +Inhalt der Box in das, was das \verb|\shipped out| sein wird.\\ +\verb|230 \FN@temptoken{|\\ +\verb|231 \toks@\expandafter{\the\toks@|\\ +\verb|232 \vskip\skip\footins|\\ +\verb|233 \color@begingroup|\\ +\verb|234 \normalcolor\footnoterule|\\ +\verb|235 \global\setbox\FN@tempboxc\vbox{\makefootnoteparagraph}|\\ +\verb|236 \unvbox\FN@tempboxc|\\ +\verb|237 \color@endgroup|\\ +\verb|238 }|\\ +\verb|239 }| + +Wenn wir keine Paragraph-Fußnoten verwenden, dann fügen wir den kleinen +Code ein, der durch den obigen ersetzt worden wäre.\\ +\verb|240 \else|\\ +\verb|241 \FN@temptoken{|\\ +\verb|242 \toks@\expandafter{\the\toks@|\\ +\verb|243 \vskip\skip\footins|\\ +\verb|244 \color@begingroup|\\ +\verb|245 \normalcolor\footnoterule|\\ +\verb|246 \unvbox\footins|\\ +\verb|247 \color@endgroup|\\ +\verb|248 }|\\ +\verb|249 }|\\ +\enlargethispage{4mm}\verb|250 \fi| + +Jetzt fangen wir an die revidierte Version von \verb|\@makecol| zu bauen. Die Definition startet mit +der \verb|\toks@|, zuerst die "`bottom"' Version: \\ +\verb|251 \ifFN@bottom|\\ +\verb|252 \toks@{\setbox\@outputbox \box\@cclv|\\ +\verb|253 \xdef\@freelist{\@freelist\@midlist}|\\ +\verb|254 \global\let\@midlist\@empty|\\ +\verb|255 \@combinefloats|\\ +\verb|256 \ifvoid\footins|\\ +\verb|257 \else|\\ +\verb|258 \setbox\@outputbox \vbox\bgroup|\\ +\verb|259 \boxmaxdepth\@maxdepth|\\ +\verb|260 \unvbox\@outputbox|\\ +\verb|261 \vfill\relax|\\ +\verb|262 }|\\ +\verb|263 \the\FN@temptoken|\\ +\verb|264 \toks@\expandafter{\the\toks@\egroup\fi}| + +Kein "`Zeug"' ans Ende packen, Fußnoten werden durch den Kernel-Algorithmus platziert: \\ +\verb|265 \else|\\ +\verb|266 \toks@{\ifvoid\footins|\\ +\verb|267 \setbox\@outputbox\box\@cclv|\\ +\verb|268 \else|\\ +\verb|269 \setbox\@outputbox \vbox\bgroup|\\ +\verb|270 \boxmaxdepth\@maxdepth|\\ +\verb|271 \unvbox\@cclv|\\ +\verb|272 }|\\ +\verb|273 \the\FN@temptoken| + +Abschließend schließen Sie \verb|\setbox| und \verb|\ifvoid| und "`taggen"' +Sie die Stellen der \verb|\@makecol|-Definition zum Ende der unteren Version auf \verb|\toks@|. \\ +\verb|274 \toks@\expandafter{\the\toks@|\\ +\verb|275 \egroup|\\ +\verb|276 \fi|\\ +\verb|277 \xdef\@freelist{\@freelist\@midlist}|\\ +\verb|278 \global\let\@midlist\@empty|\\ +\verb|279 \@combinefloats|\\ +\verb|280 }|\\ +\verb|281 \fi| + +Jetzt erstellen wir die Definition vom resultierenden Objekt mit dem Verweis auf die original \verb|\@makecol|, +getaggt am Ende.\\ +\verb|282 \toks@\expandafter{\the\toks@|\\ +\verb|283 \ifvbox\@kludgeins|\\ +\verb|284 \@makespecialcolbox|\\ +\verb|285 \else|\\ +\verb|286 \setbox\@outputbox \vbox to\@colht{|\\ +\verb|287 \@texttop \dimen@\dp\@outputbox|\\ +\verb|288 \unvbox\@outputbox|\\ +\verb|289 \vskip -\dimen@\@textbottom|\\ +\verb|290 }|\\ +\verb|291 \fi|\\ +\verb|292 \global\maxdepth\@maxdepth|\\ +\verb|293 }|\\ +\verb|294 \edef\@makecol{\the\toks@}| + +All das Obige tritt bedingt beim 'or' von \verb|\ifFN@para| und \verb|\ifFN@bottom| auf, damit schließen wir +nun die Bedingung.\\ +\verb|295 \fi| + +%------------------------------------------------------ +\subsection{Die Vorraussetzungen für $\backslash$@footnotetext} + +Was\marginpar{$\backslash$ifFN@baselinestretch} +\marginpar{$\backslash$FN@singlespace} +auch immer wir tun, wir ändern den \verb|\@footnotetext|, deshalb +überprüfen wir als erstes, ob +bei nichts anderem gehackt wurde als setspace.sty (wo wir schon mal dabei +sind, überprüfen wir gleich +noch, ob \texttt{setspace} geladen wurde). Also machen wir das:\\ +\verb|296 \newif\ifFN@setspace|\\ +\verb|297 \@ifpackageloaded{setspace}{|\\ +\verb|298 \FN@setspacetrue|\\ +\verb|299 \@ifclassloaded{memoir}{| + Wir sehen \texttt{memoirs} Emulation des \texttt{setspace}. +\verb|300 \let\FN@baselinestretch\m@m@singlespace|\\ +\verb|301 }{|\\ +\verb|302 \let\FN@baselinestretch\setspace@singlespace|\\ +\verb|303 }|\\ +\verb|304 }{|\\ +\verb|305 \FN@setspacefalse|\\ +\verb|306 }| + +Es müssen wesentliche Änderungen vorgenommen werden, wenn wir +Paragraph-Fußnoten verwenden:\\ +\verb|307 \ifFN@para|\\ +\verb|308 \renewcommand\@footnotetext[1]{|\\ +\verb|309 \insert\footins{|\\ +Einfügen von kompatiblen Code mit dem \texttt{setspace.sty} falls nötig\\ +\verb|310 \ifFN@setspace|\\ +\verb|311 \let\baselinestretch\FN@baselinestretch|\\ +\verb|312 \fi|\\ +\verb|313 \reset@font\footnotesize|\\ +\verb|314 \interlinepenalty\interfootnotelinepenalty|\\ +\verb|315 \splittopskip\footnotesep|\\ +\verb|316 \splitmaxdepth \dp\strutbox|\\ +\verb|317 \floatingpenalty\@MM|\\ +\verb|318 \hsize\columnwidth|\\ +\verb|319 \@parboxrestore|\\ +\verb|320 \protected@edef\@currentlabel{\csname|\\ +\verb|p@footnote\endcsname\@thefnmark}|\\ +\verb|321 \color@begingroup| + +Wir setzten den Paragraph in eine \verb|\hbox| und akzeptieren die +geänderten Faktoren hiermit:\\ +\verb|322 \setbox\FN@tempboxa=\hbox{|\\ +Das braucht einen Parameter, dabei sollte die Regel an den Anfang des +Fußnote-Paragraphen geschoben werden, jedoch \verb|\ignorespace| sollte +hier gelassen werden.\\ +\verb|323 \@makefntext{\ignorespaces#1\strut|\\ +Wir fügen hier eine Strafe ein, um den Zeilenumbruch in den Fußnoten-Paragraphen zu unterstützen, der Wert +kommt vom \TeX book.\\ +\verb|324 \penalty-10\relax|\\ +\verb|325 \hskip\footglue|\\ +\verb|326 } end of \@makefntext parameter|\\ +\verb|327 } end of \hbox|\\ +\verb|328 \dp\FN@tempboxa=0pt|\\ +\verb|329 \ifFN@etex|\\ +\verb|330 \ht\FN@tempboxa=\dimexpr\wd\FN@tempboxa *|\\ +\verb|331 \footnotebaselineskip / \columnwidth\relax|\\ +\verb|332 \else|\\ +\verb|333 \ht\FN@tempboxa=\fudgefactor\wd\FN@tempboxa|\\ +\verb|334 \fi|\\ +\verb|335 \box\FN@tempboxa|\\ +\verb|336 \color@endgroup|\\ +\verb|337 }|\\ +\verb|338 \FN@mf@prepare|\\ +\verb|339 }|\\ +Wenn wir keine Paragraph-Fußnoten verwenden, taggen wir einfach ein \verb|\FN@mf@prepare| Kommando ans Ende +der Definition. Natürlich gibt es verschiedene Definitionen, abhängig davon +ob wir \texttt{side}-Fußnoten verwenden \ldots\\ +\verb|340 \else|\\ +\verb|341 \ifFN@sidefn|\\ +\verb|342 \renewcommand\@footnotetext[1]{|\\ +\verb|343 \marginpar{|\\ + Einfügen von kompatiblen Code mit \texttt{setspace.sty} falls nötig\\ +\verb|344 \ifFN@setspace|\\ +\verb|345 \let\baselinestretch\FN@baselinestretch|\\ +\verb|346 \fi|\\ +\verb|347 \reset@font\footnotesize|\\ +\verb|348 \protected@edef\@currentlabel{|\\ +\verb|349 \csname p@footnote\endcsname\@thefnmark|\\ +\verb|350 }|\\ +\verb|351 \color@begingroup|\\ +\verb|352 \@makefntext{|\\ +\verb|353 \ignorespaces#1|\\ +\verb|354 }|\\ +\verb|355 \color@endgroup|\\ +\verb|356 }|\\ +\verb|357 \FN@mf@prepare|\\ +\verb|358 }|\\ +\verb|359 \else|\\ +\verb|360 \renewcommand\@footnotetext[1]{|\\ +\verb|361 \insert\footins{| + + Einfügen von kompatiblen Code mit \texttt{setspace} falls nötig\\ +\verb|362 \ifFN@setspace|\\ +\verb|363 \let\baselinestretch\FN@baselinestretch|\\ +\verb|364 \fi|\\ +\verb|365 \reset@font\footnotesize|\\ +\verb|366 \interlinepenalty\interfootnotelinepenalty|\\ +\verb|367 \splittopskip\footnotesep|\\ +\verb|368 \splitmaxdepth \dp\strutbox|\\ +\verb|369 \floatingpenalty\@MM|\\ +\verb|370 \hsize\columnwidth|\\ +\verb|371 \@parboxrestore|\\ +\verb|372 \protected@edef\@currentlabel{|\\ +\verb|373 \csname p@footnote\endcsname\@thefnmark|\\ +\verb|374 }|\\ +\verb|375 \color@begingroup|\\ +\verb|376 \@makefntext{|\\ +\verb|377 \rule\z@\footnotesep|\\ +\verb|378 \ignorespaces#1\@finalstrut\strutbox|\\ +\verb|379 }|\\ +\verb|380 \color@endgroup|\\ +\verb|381 }|\\ +\verb|382 \FN@mf@prepare|\\ +\verb|383 }|\\ +\verb|384 \fi|\\ +\verb|385 \fi| + +%------------------------------------------------------ +\subsection{Unterstützender Code für Fußnoten in Paragraphen} + +Dieser Code (der meistens nicht effektiv verwendet wird) wird im Argument von \verb|\DeclareOption| verwendet, +das kommt ohne Zweifel von dem Code, der über Weihnachten 1993 geschrieben +wurde \ldots\\ +Alles was jetzt unter den \texttt{para}-Konditionen ausgeführt wird, ist in +der Option-Deklaration definiert.\\ +\verb|386 \ifFN@para| + +Wir\marginpar{$\backslash$FN@tempboxa} +\marginpar{$\backslash$FN@tempboxb} +\marginpar{$\backslash$FN@tempboxb} +brauchen einige temporäre Boxen und \LaTeX{} definiert nur eine\\ +\verb|387 \let\FN@tempboxa\@tempboxa|\\ +\verb|388 \newbox\FN@tempboxb|\\ +\verb|389 \newbox\FN@tempboxc| + +Direkt\marginpar{$\backslash$footglue} +aus dem \LaTeX -Buch genommen:\\ +\verb|390 \newskip\footglue \footglue=1em plus.3em minus.3em| + +Die\marginpar{$\backslash$@makefntext} +Standardklasse setzt die Fußnoten fließend mit dem Text, aber das ist +nicht angemessen bei Paragraph-Fußnoten.\\ +Es ist nicht sehr sinnvoll den Code vom Original zu ändern, vor allem weil +das einzige, was er mit dem Original gemeinsam hat, die +Fußnotenmarkierungen und der Fußnotentext sind. Denken sie dran, dass +\verb|\leavevmode| nur nötig ist, wenn Fußnoten auf Minipages verwendet werden, welche andererseit mit +dem \verb|@makefnmark| im eingeschränkten vertikalen Modus ausgeführt +werden, was in seiner \verb|\hbox| in einer eigenen Zeile auftaucht.\\ +\verb|391 \long\def\@makefntext#1{\leavevmode|\\ +\verb|392 \@makefnmark\nobreak|\\ +\verb|393 \hskip.5em\relax#1|\\ +\verb|394 }|\\ +Wir\marginpar{$\backslash$footnotebaselineskip} +müssen einen Wert für den Zeilenabstand innerhalb eines Absatzes von Fußnoten aufnehmen:\\ +\verb|395 \newdimen\footnotebaselineskip|\\ +\verb|396 {|\\ +\verb|397 \footnotesize|\\ +\verb|398 \global|\\ +\verb|399 \footnotebaselineskip=\normalbaselineskip|\\ +\verb|400 }|\\ +Jetzt\marginpar{$\backslash$fudgefactor} +erstellen wir eine Variable, abgeleitet vom Zeilenabstand innerhalb des Absatzes, welchen wir eben definiert +haben (wir nutzen \verb|\dimexpr|, wenn wir in \texttt{etex} sind, also wäre in diesem Fall eine solche Variable +nicht von Nöten).\\ +\verb|401 \ifFN@etex|\\ +\verb|402 \else|\\ +\verb|403 \@tempdima=\footnotebaselineskip \multiply\@tempdima by 1024|\\ +\verb|404 \divide \@tempdima by \columnwidth \multiply\@tempdima by 64|\\ +\verb|405 \xdef\fudgefactor{\strip@pt\@tempdima }|\\ +\verb|406 \fi|\\ +\ Für\marginpar{$\backslash$makefootnoteparagraph} +das Verwenden in der Output-Routine:\\ +\verb|407 \long\def\makefootnoteparagraph{\unvbox\footins \makehboxofhboxes|\\ +\verb|408 \setbox\FN@tempboxa=\hbox{\unhbox\FN@tempboxa \removehboxes}|\\ + Jetzt sind wir bereit, den Absatz zu setzen:\\ +\verb|409 \hsize\columnwidth|\\ +\verb|410 \@parboxrestore|\\ +\verb|411 \baselineskip=\footnotebaselineskip|\\ +\verb|412 \noindent|\\ +\verb|413 \rule{\z@}{\footnotesep}|\\ +\verb|414 \unhbox\FN@tempboxa\par|\\ +\verb|415 }|\\ +Unterstützender\marginpar{$\backslash$makehboxofhboxes} +\marginpar{$\backslash$removehboxes} +Code für \verb|\makefootnoteparagraph| \\ +\verb|416 \def\makehboxofhboxes{\setbox\FN@tempboxa=\hbox{}|\\ +\verb|417 \loop|\\ +\verb|418 \setbox\FN@tempboxb=\lastbox|\\ +\verb|419 \ifhbox\FN@tempboxb|\\ +\verb|420 \setbox\FN@tempboxa=\hbox{\box\FN@tempboxb\unhbox\FN@tempboxa}|\\ +\verb|421 \repeat|\\ +\verb|422 }|\\ +\verb|423 \def\removehboxes{\setbox\FN@tempboxa=\lastbox|\\ +\verb|424 \ifhbox|\\ +\verb|425 \FN@tempboxa{\removehboxes}|\\ +\verb|426 \unhbox\FN@tempboxa|\\ +\verb|427 \fi|\\ +\verb|428 }|\\ +\verb|429 \fi| + +%------------------------------------------------------ +\subsection{Die anderen Fußnotenkommandos}\label{sec:perpage-code} + +Eine\marginpar{$\backslash$ifFN@pp@footnotehint} +Bedingung wird von dem \texttt{perpage}-Code benötigt: Es muss außerhalb +der \texttt{perpage}-Bedingung definiert werden.\\ +\verb|430 \newif\ifFN@pp@footnotehint| + +Im\marginpar{$\backslash$c@pp@next@reset} \texttt{perpage}-Modus wird ein +Counter verwendet, der Informationen über den nächsten Reset der +Fußnoten-Nummern sammelt.\\ +\verb|431 \newcounter{pp@next@reset}| + +Eine\marginpar{$\backslash$ifFN@pp@towrite} +Bedingung, die die Interaktion zwischen der \texttt{perpage}-Option und der +\texttt{multiple}-Option vermittelt.\\ +\verb|432 \newif\ifFN@pp@towrite|\\ +\verb|433 \FN@pp@towritefalse| + +Wir\marginpar{$\backslash$ifFN@pp@lastseq} +verhindern endlose Prozeduren an Diagnosen von "`footnote sequence lost"', indem wir diese Kondition verwenden +(dies muss außerhalb von \texttt{perpage} definiert werden):\\ +\verb|434 <*PPdebug>|\\ +\verb|435 \newif\ifFN@pp@lastseq|\\ +\verb|436 \global\FN@pp@lastseqfalse|\\ +\verb|437 </PPdebug>|\\ +Nun, wie können wir $\backslash$\{\texttt{footnote\}} für die +\texttt{per}/(pro)-Seite-Fußnoten flicken? \\ +\verb|438 \ifFN@perpage|\\ +\verb|439 \CheckCommand*\footnote{\@ifnextchar []|\\ +\verb|440 \@xfootnote|\\ +\verb|441 {|\\ +\verb|442 \stepcounter\@mpfn \protected@xdef\@thefnmark{\thempfn}|\\ +\verb|443 \@footnotemark \@footnotetext|\\ +\verb|444 }|\\ +\verb|445 }|\\ +\verb|446 \renewcommand*\footnote{\@ifnextchar []|\\ +\verb|447 \@xfootnote|\\ +\verb|448 {|\\ +\verb|449 \stepcounter\@mpfn \protected@xdef\@thefnmark{\thempfn}|\\ +\verb|450 \FN@pp@footnote\@footnotemark|\\ + Im Fall, dass wir keine multiple Option nutzen, \verb|\@footnotemark| wird + keine Details in die \texttt{.aux}-Datei schreiben, also tun wir es + jetzt: \\ +\verb|451 \ifFN@pp@towrite|\\ +\verb|452 \FN@pp@writetemp|\\ +\verb|453 \FN@pp@towritefalse|\\ +\verb|454 \fi|\\ +\verb|455 \@footnotetext|\\ +\verb|456 }|\\ +\verb|457 }|\\ + Und die analoge Änderung für \textbackslash\{\texttt{footnotemark\}}\\ +\verb|458 \CheckCommand*\footnotemark{|\\ +\verb|459 \@ifnextchar []|\\ +\verb|460 \@xfootnotemark|\\ +\verb|461 {|\\ +\verb|462 \stepcounter{footnote}|\\ +\verb|463 \protected@xdef\@thefnmark{\thefootnote}|\\ +\verb|464 \@footnotemark |\\ +\verb|465 }|\\ +\verb|466 }|\\ +\verb|467 \renewcommand*\footnotemark{|\\ +\verb|468 \@ifnextchar []|\\ +\verb|469 \@xfootnotemark|\\ +\verb|470 {|\\ +\verb|471 \stepcounter{footnote}|\\ +\verb|472 \protected@xdef\@thefnmark{\thefootnote}|\\ +\verb|473 \FN@pp@footnote\@footnotemark|\\ + Nun wieder aufräumen, wenn wir die multiple Option nicht nutzen\\ +\verb|474 \ifFN@pp@towrite|\\ +\verb|475 \FN@pp@writetemp|\\ +\verb|476 \FN@pp@towritefalse|\\ +\verb|477 \fi|\\ +\verb|478 }|\\ +\verb|479 }| + +Jetzt\marginpar{$\backslash$FN@pp@initialstab} +die unterstützenden Kommandos \ldots\\ +Wenn uns keine Informationen in der \texttt{.aux}-Datei begegnen , machen +wir einen ersten Stich, zurückzusetzen die Fußnoten auf den +Seitenzahl-Zähler.\\ +\verb|480 \gdef\FN@pp@initial@stab{\@addtoreset{footnote}{page}}|\\ +\verb|481 \AtBeginDocument{\FN@pp@initial@stab}| + +Wir verwenden einen Counter, um mit den Fußnoten Schritt zu halten. Dieser +Counter wird benutzt in den Daten, die in die \texttt{.aux}-Datei +geschrieben werden und die richtige Fußnoten-Nummern beim zweiten +Durchlauf passend zu kreieren.\\ +\verb|482 \newcounter{@fnserial}|\\ +Das\marginpar{$\backslash$FN@pp@cpage} +Paket muss wissen, wie viele Seiten das Dokument aktuell hat. Dies findet man +in \verb|\FN@pp@cpage{0}|\\ +\verb|483 \def\FN@pp@cpage{0}|\\ +Wie\marginpar{$\backslash$footnotehint} +auch immer, der Verlauf der Seitennummerierung ist nicht vorhersehbar, also +haben wir eine "`flag"', die +"`reset footnote number"' sagt. Die "`flag"' ist indirekt für Leute, die mit den Seitenzahlen rumspielen, mit +dem \verb|\footnotehint| Kommando und für Plätze, wo wir wissen, dass Unregelmäßigkeiten auftreten können.\\ +\verb|484 \FN@pp@footnotehinttrue|\\ +\verb|485 \newcommand{\footnotehint}{|\\ +\verb|486 \setcounter{footnote}{0}|\\ +\verb|487 \protected@writeaux\relax{\protect\FN@pp@footnotehinttrue}|\\ +\verb|488 \@tempcnta\c@@fnserial|\\ +\verb|489 \advance\@tempcnta\@ne|\\ +\verb|490 \global\c@pp@next@reset\@tempcnta|\\ +\verb|491 }|\\ +\verb|492 \AtBeginDocument{\protected@writeaux\relax{|\\ +\verb|493 \protect\providecommand{\protect\FN@pp@footnotehinttrue}{}|\\ +\verb|494 }|\\ +\verb|495 }| + +Wir\marginpar{$\backslash$FN@pp@lastfoot} +erhalten "`dummy"' Werte für die Nummern der letzten Fußnote.\\ +\verb|496 \def\FN@pp@lastfoot{-1}| + +Das\marginpar{$\backslash$FN@pp@footnote@aux} Kommando +\verb|\FN@pp@footnote@aux| wird in die \texttt{.aux}-Datei für alle +zugeteilten Fußnoten-Counter geschrieben (anders als auf Minipages):\\ + \#1 ist die Fußnoten Serial-Nummer,\\ + \#2 ist die Seite, auf der die Fußnote eigentlich geschrieben + wurde. + + +\verb|497 \newcommand{\FN@pp@footnote@aux}[2]{|\\ +\verb|498 \ifnum\FN@pp@lastfoot<#1|\\ +\verb|499 \ifFN@pp@footnotehint|\\ +\verb|500 \FN@pp@resetfn{#1}{#2}|\\ +\verb|501 \FN@pp@footnotehintfalse|\\ +\verb|502 \else|\\ +\verb|503 \gdef\@tempa{#2}|\\ +\verb|504 \ifx\@tempa\FN@pp@cpage|\\ +\verb|505 \else|\\ +\verb|506 \FN@pp@resetfn{#1}{#2}|\\ +\verb|507 \fi|\\ +\verb|508 \fi|\\ +\verb|509 \def\FN@pp@lastfoot{#1}|\\ +\verb|510 <*PPdebug>|\\ +\verb|511 \else|\\ +\verb|512 \ifFN@pp@debug|\\ +\verb|513 \typeout{not considering footnote serial number #1|\\ +\verb|514 (last valid was \FN@pp@lastfoot)}|\\ +\verb|515 \fi|\\ +\verb|516 </PPdebug>|\\ +\verb|517 \fi|\\ + Weil wir jetzt mindestens ein Item der Fußnoten-Information + aus einer \texttt{.aux}-Datei haben, können wir es nicht erlauben, + dass Fußnoten auf jeder Seite "`resetten"'.\\ +\verb|518 \global\let\FN@pp@initial@stab\relax|\\ +\verb|519 }| + +Setzen\marginpar{$\backslash$FN@pp@resetfn} +Sie die Flagge so, dass sie die Fußnotennummern resettet. Das erzeugt eine +Kette durch die Fußnoten-Seriennummern am Anfang jeder Seite.\\ +\verb|520 \newcommand{\FN@pp@resetfn}[2]{|\\ +\verb|521 \gdef\FN@pp@cpage{#2}|\\ +\verb|522 \expandafter\gdef|\\ +\verb|523 \csname FN@pp@next-\FN@pp@prev@foot\endcsname{#1}|\\ +\verb|524 \def\FN@pp@prev@foot{#1}|\\ +\verb|525 \expandafter\xdef|\\ +\verb|526 \csname FN@pp@next-\FN@pp@prev@foot\endcsname{\the\@MM}|\\ +\verb|527 }| + +Die\marginpar{$\backslash$FN@pp@prev@foot} +Basis der Fußnoten-Seriennummer-Kette (Fußnoteserie 1 muss immer die 1 haben):\\ +\verb|528 \newcommand{\FN@pp@prev@foot}{root}|\\ + Wieder um Verwirrung zu vermeiden, erstellen einer + \verb|\FN@pp@footnote@aux| in der \texttt{.aux}-Datei\\ +\verb|529 \AtBeginDocument{\protected@writeaux\relax{|\\ +\verb|530 \protect\providecommand{\protect\FN@pp@footnote@aux}[2]{}}|\\ +\verb|531 \c@pp@next@reset\@ne|\\ +\verb|532 }|\\ +Am Ende des Dokuments erstelle ein neues \verb|\FN@pp@footnote@aux|, +welches überprüft, +ob sich Nummern geändert haben, während dem Scan der \texttt{.aux}-Dateien +nach geänderten Labels und Ähnlichem.\\ +\verb|533 \AtEndDocument{\let\FN@pp@footnote@aux\FN@pp@footnote@endaux|\\ +\verb|534 \def\FN@pp@lastfoot{-1}|\\ +\verb|535 \FN@pp@footnotehintfalse|\\ +\verb|536 \renewcommand{\FN@pp@prev@foot}{root}|\\ +\verb|537 }| + +\ \marginpar{$\backslash$FN@pp@footnote@endaux} + +Das Fußnoten-Analyse-Kommando für "`end document"'\\ +\verb|538 \newcommand{\FN@pp@footnote@endaux}[2]{|\\ +\verb|539 \ifnum\FN@pp@lastfoot<#1|\\ +\verb|540 \ifFN@pp@footnotehint|\\ +\verb|541 \FN@pp@resetfn@end{#1}{#2}|\\ +\verb|542 \FN@pp@footnotehintfalse|\\ +\verb|543 \else|\\ +\verb|544 \gdef\@tempa{#2}|\\ +\verb|545 \ifx\@tempa\FN@pp@cpage|\\ +\verb|546 \else|\\ +\verb|547 \FN@pp@resetfn@end{#1}{#2}|\\ +\verb|548 \fi|\\ +\verb|549 \fi|\\ +\verb|550 \def\FN@pp@lastfoot{#1}|\\ +\verb|551 <*PPdebug>|\\ +\verb|552 \else|\\ +\verb|553 \ifFN@pp@debug|\\ +\verb|554 \typeout{not considering footnote serial number #1|\\ +\verb|555 (last valid was \FN@pp@lastfoot)}|\\ +\verb|556 \fi|\\ +\verb|557 </PPdebug>|\\ +\verb|558 \fi|\\ +\verb|559 }| + +Bei\marginpar{$\backslash$FN@pp@resetfn@end} +"`end document"' bearbeitet man die Fußnotendetails der \texttt{.aux}-Datei \\ +\verb|560 \newcommand{\FN@pp@resetfn@end}[2]{|\\ +\verb|561 \def\@tempa{#1}|\\ +\verb|562 \expandafter\ifx\csname FN@pp@next-\FN@pp@prev@foot\endcsname\@tempa|\\ +\verb|563 \else|\\ +\verb|564 \@tempswatrue|\\ +\verb|565 <*PPdebug>|\\ +\verb|566 \ifFN@pp@debug|\\ +\verb|567 \expandafter\ifx\csname FN@pp@next-\FN@pp@prev@foot\endcsname\relax|\\ +\verb|568 \ifFN@pp@lastseq\else|\\ +\verb|569 \typeout{footnote sequence lost between pages|\\ +\verb|570 \FN@pp@cpage\space and #2}|\\ +\verb|571 \global\FN@pp@lastseqtrue|\\ +\verb|572 \fi|\\ +\verb|573 \else|\\ +\verb|574 \typeout{footnotes changed between pages \FN@pp@cpage\space and #2:|\\ +\verb|575 next was \csname FN@pp@next-\FN@pp@prev@foot\endcsname, now #1}|\\ +\verb|576 \global\FN@pp@lastseqfalse|\\ +\verb|577 \fi|\\ +\verb|578 \fi|\\ +\verb|579 </PPdebug>|\\ +\verb|580 \fi|\\ +\verb|581 \gdef\FN@pp@prev@foot{#1}|\\ +\verb|582 \gdef\FN@pp@cpage{#2}|\\ +\verb|583 }| + +Wie\marginpar{$\backslash$clearpage} +\marginpar{$\backslash$FN@pp@@clearpage} +nutzen wir jetzt \verb|\included| in Dokumenten? Wir können nichts +einfügen (das \texttt{includex}-Paket +bietet \verb|\AtBeginIncludeDocument|), aber es gibt kein entsprechendes +Kommando zum Einfügen von Dateien durch den Kernel \verb|\include|. Also fügen wir ein Fußnoten-Hinweis an +jedem \verb|\clearpage| ein.\\ +\verb|584 \let\FN@pp@@clearpage\clearpage|\\ +\verb|585 \renewcommand{\clearpage}{\footnotehint\FN@pp@@clearpage}| + +Das\marginpar{$\backslash$FN@pp@footnote} +Ende der Angelegenheit mit einer Option: Ein Makro, um sich für +Fußnotennummern zu entscheiden, gerufen von \verb|\footnote| und \verb|\footnotemark|(siehe oben). +\verb|586 \def\FN@pp@footnote{|\\ +\verb|587 \if@minipage\else|\\ +\verb|588 \global\advance\c@@fnserial\@ne|\\ +\verb|589 \if@filesw|\\ + Im Fall, dass wir auch die multiple Option verwenden, sichern wir + jetzt das Kommando, um in die \texttt{.aux Datei} zu schrieben, und merken + uns, dass wir es getan haben.\\ +\verb|590 \xdef\FN@pp@writetemp{|\\ +\verb|591 \noexpand\protected@writeaux\relax{|\\ +\verb|592 \string\FN@pp@footnote@aux|\\ +\verb|593 {\the\c@@fnserial}{\noexpand\thepage}|\\ +\verb|594 }|\\ +\verb|595 }|\\ +\verb|596 \FN@pp@towritetrue|\\ +\verb|597 \fi|\\ +\verb|598 \ifnum\c@pp@next@reset>\c@@fnserial|\\ +\verb|599 \else|\\ +\verb|600 \global\expandafter\csname c@\@mpfn\endcsname\@ne|\\ +\verb|601 \protected@xdef\@thefnmark{\thempfn}|\\ + Jetzt auf das nächste Element in der Kette schaun:\\ +\verb|602 \expandafter\let\expandafter\@tempa|\\ +\verb|603 \csname FN@pp@next-\number\c@pp@next@reset\endcsname|\\ + Wenn die Kette hier unterbrochen ist, setzt den nächsten + Reset-Punkt zu etwas (man hofft) Großem. \ldots{} ein schwacher + Punkt?\\ +\verb|604 \ifx\@tempa\relax|\\ +\verb|605 \global\c@pp@next@reset\@MM|\\ +\verb|606 \else|\\ +\verb|607 \global\c@pp@next@reset\@tempa|\\ +\verb|608 \fi|\\ +\verb|609 \fi|\\ +\verb|610 \fi|\\ +\verb|611 }| + +Der Rest des Codes wird mit der \texttt{perpage}-Option geladen.\\ +\verb|612 \fi| + +Letztendlich, wenn wir keine Paragraphen-Fußnoten haben, definieren wir +\verb|\@makefntext| neu, um den Wert von \verb|\footnotemargin| zu übernehmen und an \verb|\footnotelayout| +weiterzugeben und die Fußnote mit an den Text zu hängen.\\ +\verb|613 \ifFN@para|\\ +\verb|614 \else|\\ + Die "hanging footnote"-Version:\\ +\verb|615 \long\def\@makefntext#1{|\\ +\verb|616 \ifFN@hangfoot|\\ +\verb|617 \bgroup|\\ + Erhalten der Makierung, damit wir sie messen können:\\ +\verb|618 \setbox\@tempboxa\hbox{|\\ +\verb|619 \ifdim\footnotemargin>0pt|\\ +\verb|620 \hb@xt@\footnotemargin{\@makefnmark\hss}|\\ +\verb|621 \else|\\ +\verb|622 \@makefnmark|\\ +\verb|623 \fi|\\ +\verb|624 }|\\ + +Benutze die Breite der Box, um den Einschub nach Absätzen zu definieren +(für mehr als einen Paragraphen). Bemerke, dass der Einschub \verb|\parskip| und "\verb|\parindent| gesetzt werden, +nachdem wir \verb|\leavevmode(!)| ausgeführt haben.\\ +\verb|625 \leftmargin\wd\@tempboxa|\\ +\verb|626 \rightmargin\z@|\\ +\verb|627 \linewidth \columnwidth|\\ +\verb|628 \advance \linewidth -\leftmargin|\\ +\verb|629 \parshape \@ne \leftmargin \linewidth|\\ +\verb|630 \footnotesize|\\ + Stopp, damit \verb|\parshape| überschrieben wird:\\ +\verb|631 \@setpar{{\@@par}}|\\ + Und abschließend den Marker an seinen gewählten Platz:\\ +\verb|632 \leavevmode|\\ +\verb|633 \llap{\box\@tempboxa}|\\ +\verb|634 \parskip\hangfootparskip\relax|\\ +\verb|635 \parindent\hangfootparindent\relax|\\ +\verb|636 \else|\\ + Die "normale footnote"-Version:\\ +\verb|637 \parindent1em|\\ +\verb|638 \noindent|\\ +\verb|639 \ifdim\footnotemargin>\z@|\\ +\verb|640 \hb@xt@ \footnotemargin{\hss\@makefnmark}|\\ +\verb|641 \else|\\ +\verb|642 \ifdim\footnotemargin=\z@|\\ +\verb|643 \llap{\@makefnmark}|\\ +\verb|644 \else|\\ +\verb|645 \llap{\hb@xt@ -\footnotemargin{\@makefnmark\hss}}|\\ +\verb|646 \fi|\\ +\verb|647 \fi|\\ +\verb|648 \fi|\\ +\verb|649 \footnotelayout#1|\\ + Wenn wir "`hanging footnote"' haben, dann muss die Hang-Gruppe + geschlossen werden.\\ +\verb|650 \ifFN@hangfoot|\\ +\verb|651 \par\egroup|\\ +\verb|652 \fi|\\ +\verb|653 }|\\ +\verb|654 \fi| +%------------------------------------------------------ +\section{Verbleibende Anforderungen} + +Wir müssen den Code implementieren, der die \texttt{stable} und die +\texttt{multiple} Option ausführt. Da \texttt{stable} die Einstellungen von Fußnoten unterdrücken kann, setzen +wir zuerst die \texttt{multiple} Option, sonst würden wir isolierte, +hochgestellte Kommas erhalten, das separiert die Fußnoten, die sonst +unterdrückt werden würden. + +%------------------------------------------------------ +\subsection{Der ausführende Code für die \texttt{multiple}-Option} + +Dieser\marginpar{$\backslash$multiplefootnotemarker} +\marginpar{$\backslash$multfootsep} +\marginpar{$\backslash$@footnotemark} +\marginpar{$\backslash$FN@mf@prepare} +\marginpar{$\backslash$FN@mf@check} +(revidierter) Code kommt von einem Vorschlag von Alexander Rozhenko (dem Autor des \textit{manyfoot} Pakets): Der +Grundgedanke ist, dass \textit{footmisc} und \textit{manyfoot} zusammenarbeiten können, sodass sie gegenseitig +ihre Fußnoten-Markierungen erkennen können und sich dementsprechend +verhalten. Der Trick ist, dass \verb|\footnote| und \verb|\footnotemark| +einen Marker einfügen (ein sich gegenseitig beendendes Paar von "`kerns"'), +welcher erkannt wird in folgendem +\verb|\footnote| oder \verb|\footnotemark| Kommando. Bemerke, wir müssen +spezielle Vorsichtsmaßnahmen treffen, um sicherzustellen, dass die "`kerns"' als letzte Elemente der horizontalen +Liste an Kommandos hinzugefügt werden.\\ +\verb|655 \ifFN@multiplefootnote|\\ +\verb|656 \providecommand*{\multiplefootnotemarker}{3sp}|\\ +\verb|657 \providecommand*{\multfootsep}{,}|\\ +\verb|658 \CheckCommand*\@footnotemark{|\\ +\verb|659 \leavevmode|\\ +\verb|660 \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi|\\ +\verb|661 \@makefnmark|\\ +\verb|662 \ifhmode\spacefactor\@x@sf\fi|\\ +\verb|663 \relax|\\ +\verb|664 }|\\ +\verb|665 \renewcommand*\@footnotemark{|\\ +\verb|666 \leavevmode|\\ +\verb|667 \ifhmode|\\ +\verb|668 \edef\@x@sf{\the\spacefactor}|\\ +\verb|669 \FN@mf@check|\\ +\verb|670 \nobreak|\\ +\verb|671 \fi|\\ +\verb|672 \@makefnmark|\\ + Wenn wir auch die \texttt{perpage}-Option nutzen, schreibt es sein Zeug in die + \texttt{.aux}-Datei, sodass die "wotsit node" nicht mit der + \verb|\kern| Ermittlung kollidiert.\\ +\verb|673 \ifFN@pp@towrite|\\ +\verb|674 \FN@pp@writetemp|\\ +\verb|675 \FN@pp@towritefalse|\\ +\verb|676 \fi|\\ +\verb|677 \FN@mf@prepare|\\ +\verb|678 \ifhmode\spacefactor\@x@sf\fi|\\ +\verb|679 \relax|\\ +\verb|680 }|\\ +\verb|681 \def\FN@mf@prepare{|\\ +\verb|682 \kern-\multiplefootnotemarker|\\ +\verb|683 \kern\multiplefootnotemarker\relax|\\ +\verb|684 }|\\ +\verb|685 \def\FN@mf@check{|\\ +\verb|686 \ifdim\lastkern=\multiplefootnotemarker\relax|\\ +\verb|687 \edef\@x@sf{\the\spacefactor}|\\ +\verb|688 \unkern|\\ +\verb|689 \textsuperscript{\multfootsep}|\\ +\verb|690 \spacefactor\@x@sf\relax|\\ +\verb|691 \fi|\\ +\verb|692 }|\\ + Wenn wir nicht die \texttt{multiple}-Option verwenden, dann erzeugt + es einfach ein leeres \verb|\FN@mf@prepare|.\\ +\verb|693 \else|\\ +\verb|694 \let\FN@mf@prepare\relax|\\ +\verb|695 \fi| + +%------------------------------------------------------ +\subsection{Der ausführende Code für die \texttt{stable}-Option} + +Die\marginpar{$\backslash$ifFN@stablefootnote} +\marginpar{$\backslash$FN@sf@@footnote} +Idee ist, den "`original"' Code von \verb|\footnote| nur zu verwenden, +wenn wir im "`typesetting"' Modus sind.\\ +\verb|696 \ifFN@stablefootnote|\\ +\verb|697 \let\FN@sf@@footnote\footnote|\\ +\verb|698 \def\footnote{\ifx\protect\@typeset@protect|\\ +\verb|699 \expandafter\FN@sf@@footnote|\\ +\verb|700 \else|\\ +\verb|701 \expandafter\FN@sf@gobble@opt|\\ +\verb|702 \fi|\\ +\verb|703 }| + +Definieren \ \marginpar{$\backslash$FN@sf@gobble@opt} +\marginpar{$\backslash$FN@sf@gobble@twobracket} +von \verb|\FN@sf@gobble@opt| als ein robustes Kommando, das\\ +\hspace*{6mm} entweder ein optionales und ein erforderliches Argument +oder nur ein erforderliches erzeugt.\\ +\verb|704 \edef\FN@sf@gobble@opt{\noexpand\protect|\\ +\verb|705 \expandafter\noexpand\csname FN@sf@gobble@opt \endcsname}|\\ +\verb|706 \expandafter\def\csname FN@sf@gobble@opt \endcsname{|\\ +\verb|707 \@ifnextchar[]|\\ +\verb|708 \FN@sf@gobble@twobracket|\\ +\verb|709 \@gobble|\\ +\verb|710 }|\\ +\verb|711 \def\FN@sf@gobble@twobracket[#1]#2{}| + +\ Jetzt \marginpar{$\backslash$FN@sf@@footnotemark} +\marginpar{$\backslash$FN@sf@gobble@optonly} +\marginpar{$\backslash$FN@sf@gobble@bracket} dasgleiche für \verb|\footnotemark|\\ +\verb| 712 \let\FN@sf@@footnotemark\footnotemark|\\ +\verb| 713 \def\footnotemark{\ifx\protect\@typeset@protect|\\ +\verb|714 \expandafter\FN@sf@@footnotemark|\\ +\verb|715 \else|\\ +\verb|716 \expandafter\FN@sf@gobble@optonly|\\ +\verb|717 \fi|\\ +\verb|718 }|\\ +\verb|719 \edef\FN@sf@gobble@optonly{\noexpand\protect|\\ +\verb|720 \expandafter\noexpand\csname FN@sf@gobble@optonly \endcsname}|\\ +\verb|721 \expandafter\def\csname FN@sf@gobble@optonly \endcsname{|\\ +\verb|722 \@ifnextchar[]|\\ +\verb|723 \FN@sf@gobble@bracket|\\ +\verb|724 {}|\\ +\verb|725 }|\\ +\verb|726 \def\FN@sf@gobble@bracket[#1]{}|\\ +\verb|727 \fi| + +%-------------------------------------------------------------------------------------- +\section{Varianten der Symboloption} + +Lamport's \marginpar{$\backslash$setfnsymbol} + \marginpar{$\backslash$FN@fnsymbol@lamport} Auswahl an Symbolen für \verb|\fnsymbol| war nicht + komplett "`traditionell"', also +liefern wir (jetzt) Alternativen. Das \verb|\setfnsymbol| Kommando liefert eine kleine Auswahl und +der Benutzer kann immer noch mehr durch das \verb|\DefineFNsymbols| oder +\verb|\DefineFNsymbolsTM| Kommando hinzufügen. Definiert wie folgt:\\ +\verb|728 \newcommand\setfnsymbol[1]{|\\ +\verb|729 \@bsphack|\\ +\verb|730 \@ifundefined{FN@fnsymbol@#1}|\\ +\verb|731 {|\\ +\verb|732 \PackageError{footmisc}{Symbol style "#1" not known}|\\ +\verb|733 \@eha|\\ +\verb|734 }{|\\ +\verb|735 \expandafter\let\expandafter\@fnsymbol\csname|\\ +\verb|736 FN@fnsymbol@#1\endcsname|\\ +\verb|737 }|\\ +\verb|738 \@esphack|\\ +\enlargethispage{3mm}\verb|739 }|\\ +Die Standardauswahl ist Lamport's Original, dargestellt wie im aktuellen +\LaTeX{} -- wir erhalten es uns noch für den Fall, dass wir es noch +brauchen.\\ +\verb|740 \let\FN@fnsymbol@lamport\@fnsymbol|\\ +\verb|741 </package>| + +Wir \marginpar{$\backslash$if@tempswb} +\marginpar{$\backslash$@tempswbfalse} +\marginpar{$\backslash$@tempswbtrue} +\marginpar{$\backslash$DefineFNsymbols} +\marginpar{$\backslash$@DefineFNsymbols} +\marginpar{$\backslash$@DefineFNsymbols@} +\marginpar{$\backslash$FN@build@symboldef} +benötigen eine weitere temporäre Bedingung:\\ +\verb|742 \newif\if@tempswb| + +Das Makro \verb|\DefineFNsymbols| erlaubt dem Benutzer, einen Satz an Fußnoten-Symbolen zu definieren und kann +mit \verb|\setfnsymbol| verwendet werden. Die Syntax dafür ist:\\ +\verb|\DefineFNsymbols[*]{<set name>}[<style>]{<symbol list>}|\\ +Wenn das optionale Sternchen aktiv ist, wird der definierte Satz einen +Fehler produzieren, wenn die Symbol-Anzahl zu groß ist. Sonst würde es von +selbst auf Zahlen wechseln, anstatt zu +Symbolen (Eine Warnung wird dann am Ende des Dokument erscheinen). Das \textit{set name} ist ein zukünftiges Argument +für \verb|\setfnsymbol|. Der Stil (Standard ist \texttt{text}) gibt an, wie die Symbole dargestellt werden +(das ist die \textit{korrekte} Methode. Dies kann in älteren \LaTeX -Versionen unter Umständen anders dargestellt +werden). Die Symbol-Liste ist ein Satz von Objekten, der genutzt wird, wenn er ausgewählt wurde. + +Ein Beispiel zum Verwenden:\\ +Definieren wir einen kompletten Ersatz für Lamport's originales \verb|\fnsymbol| Kommando -- +\begin{verbatim} +\DefineFNsymbols*{lamport}[math]{*\dagger\ddagger\mathsection +\mathparagraph\|{**}{\dagger\dagger}{\ddagger\ddagger} +} +\end{verbatim} + +Zu beachten ist, dass doppelt hohe Symbole geschweifte Klammern um sich haben müssen. + +\begin{verbatim} +743 \newcommand{\DefineFNsymbols}{ +744 \@ifstar{\@tempswbtrue\@DefineFNsymbols} +745 {\@tempswbfalse\@DefineFNsymbols} +746 } +747 \newcommand{\@DefineFNsymbols}[1]{ +748 \@ifnextchar[ ] +749 {\@DefineFNsymbols@{#1}}{\@DefineFNsymbols@{#1}[text]} +750 } +751 \def\@DefineFNsymbols@#1[#2]#3{ +752 \expandafter\ifx\csname FN@fnsymbol@#1\endcsname\relax +753 \PackageInfo{footmisc}{Declaring symbol style #1} +754 \else +755 \PackageWarning{footmisc}{Redeclaring symbol style #1} +756 \fi +757 \toks@{} +758 \def\@tempb{\end} +759 \FN@build@symboldef#3\end +760 \def\@tempc{math} +761 \def\@tempd{#2} +762 \expandafter\xdef\csname FN@fnsymbol@#1\endcsname##1{ +763 \ifx\@tempc\@tempd +764 \noexpand\ensuremath +765 \else +766 \noexpand\nfss@text +767 \fi +768 { +769 \noexpand\ifcase##1 +770 \the\toks@ +771 \noexpand\else +772 \if@tempswb +773 \noexpand\@ctrerr +774 \else +775 \noexpand\@arabic##1\noexpand\FN@orange##1 +776 \fi +777 \noexpand\fi +778 } +779 } +780 } +781 \def\FN@build@symboldef#1{ +782 \def\@tempa{#1} +783 \ifx\@tempa\@tempb +784 \else +785 \toks@\expandafter{\the\toks@\or#1} +786 \expandafter\FN@build@symboldef +787 \fi +788 } +\end{verbatim} + +Jetzt\marginpar{$\backslash$DefineFNsymbolsTM} +\marginpar{$\backslash$@DefineFNsymbolsTM} +\marginpar{$\backslash$FN@build@symboldefTM} mache dasselbe für den +"`modern way"', um Text- und Mathevarianten auf alles anzuwenden. + + +\begin{verbatim} +789 \newcommand{\DefineFNsymbolsTM}{ +790 \@ifstar{\@tempswbtrue\@DefineFNsymbolsTM} +791 {\@tempswbfalse\@DefineFNsymbolsTM}} +792 \newcommand{\@DefineFNsymbolsTM}[2]{ +793 \expandafter\ifx\csname FN@fnsymbol@#1\endcsname\relax +794 \PackageInfo{footmisc}{Declaring symbol style #1} +795 \else +796 \PackageWarning{footmisc}{Redeclaring symbol style #1} +797 \fi +798 \toks@{} +799 \def\@tempb{\end} +800 \FN@build@symboldefTM#2\end\@null +801 \expandafter\xdef\csname FN@fnsymbol@#1\endcsname##1{ +802 \noexpand\ifcase##1 +803 \the\toks@ +804 \noexpand\else +805 \if@tempswb +806 \noexpand\@ctrerr +807 \else +808 \noexpand\@arabic##1\noexpand\FN@orange##1 +809 \fi +810 \noexpand\fi +811 } +812 } +\end{verbatim} + Beachte, dass diese Versionen zwei Varianten von jeder Definition hat, + also braucht es zwei "`stopper codes"'. +\begin{verbatim} +813 \def\FN@build@symboldefTM#1#2{ +814 \def\@tempa{#1} +815 \ifx\@tempa\@tempb +816 \else +817 \toks@\expandafter{\the\toks@\or\TextOrMath{#1}{#2}} +818 \expandafter\FN@build@symboldefTM +819 \fi +820 } +\end{verbatim} + + +Das\marginpar{$\backslash$TextOrMath} +ist eine abgespeckte (e-\TeX only) Version von \texttt{fixltx2e}. Wenn das Kommando schon definiert ist, +nehmen wir an, dass es die Version ist. + +\begin{verbatim} +821 \@ifundefined{TextOrMath}{ +822 \@ifundefined{eTeXversion}{ +823 \PackageError{footmisc}{Cant define commands for footnote symbol} +824 {Use e-LaTeX, or load package fixltx2e before +825 footmisc} +826 }{ +827 \protected\expandafter\def\csname TextOrMath\space\endcsname{ +828 \ifmmode \expandafter\@secondoftwo +829 \else \expandafter\@firstoftwo \fi +830 } +831 \edef\TextOrMath#1#2{ +832 \expandafter\noexpand\csname TextOrMath\space\endcsname +833 {#1}{#2} +834 } +835 } +836 }{} +\end{verbatim} + + +Makros,\marginpar{$\backslash$FN@orange} +\marginpar{$\backslash$@fnsymbol@orange} +\marginpar{$\backslash$@diagnose@fnsymbol@orange} die sich um Fußnoten-Symbole kümmern, die "`out of range"' gehen. + +\begin{verbatim} +837 \def\FN@orange#1{ +838 \@bsphack +839 \PackageInfo{footmisc}{Footnote number \number#1 out of range} +840 \protect\@fnsymbol@orange +841 \@esphack +842 } +843 \global\let\@diagnose@fnsymbol@orange\relax +844 \AtEndDocument{\@diagnose@fnsymbol@orange} +845 \def\@fnsymbol@orange{ +846 \gdef\@diagnose@fnsymbol@orange{ +847 \PackageWarningNoLine{footmisc}{Some footnote number(s) +848 were out of range +849 \MessageBreak +850 see log for details +851 } +852 } +853 } +\end{verbatim} + + +Das\marginpar{$\backslash$textbardbl} +ist in aktuellen \LaTeX Versionen definiert, aber nicht in den letzten te\TeX Versionen. Weil es aber in +einigen Symbol-Satzdefinitionen gebraucht wird, definieren wir es hier. + +\begin{verbatim} +854 \@ifundefined{textbardbl}{ +855 \DeclareTextSymbol{\textbardbl}{OMS}{107} +856 \DeclareTextSymbolDefault{\textbardbl}{TS1}}{} +\end{verbatim} + +(Diese Definition kommt von den \LaTeX Quellen)\\ + +\hspace*{4mm}\marginpar{$\backslash$FN@fnsymbol@bringhurst} +\marginpar{$\backslash$FN@fnsymbol@chicago} +\marginpar{$\backslash$FN@fnsymbol@wiley} +\marginpar{$\backslash$FN@fnsymbol@lamport-robust} +\marginpar{$\backslash$FN@fnsymbol@lamport} + Diese Makros liefern Ersetzungsreihenfolgen (und Symbolsätze) für Fußnoten-Symbole plus einer robusten und einer +erweiterten Version vom Lamport's Original. + +\begin{verbatim} +857 \DefineFNsymbolsTM*{bringhurst}{ +858 \textasteriskquoteed * +859 \textdagger \dagger +860 \textdaggerdbl \ddagger +861 \textsection \mathsection +862 \textbardbl \| +863 \textparagraph \mathparagraph +864 } +865 \DefineFNsymbolsTM*{chicago}{ +866 \textasteriskcentered * +867 \textdagger \dagger +868 \textdaggerdbl \ddagger +869 \textsection \mathsection +870 \textbardbl \| +871 \#\# +872 } +873 \DefineFNsymbolsTM*{wiley}{ +874 \textasteriskcentered * +875 {\textasteriskcentered\textasteriskcentered}{**} +876 \textdagger \dagger +877 \textdaggerdbl \ddagger +878 \textsection \mathsection +879 \textparagraph \mathparagraph +880 \textbardbl \| +881 } +882 \DefineFNsymbolsTM{lamport-robust}{ +883 \textasteriskcentered * +884 \textdagger \dagger +885 \textdaggerdbl \ddagger +886 \textsection \mathsection +887 \textparagraph \mathparagraph +888 \textbardbl \| +889 {\textasteriskcentered\textasteriskcentered}{**} +890 {\textdagger\textdagger}{\dagger\dagger} +891 {\textdaggerdbl\textdaggerdbl}{\ddagger\ddagger} +892 } +893 \DefineFNsymbolsTM*{lamport*}{ +894 \textasteriskcentered * +895 \textdagger \dagger +896 \textdaggerdbl \ddagger +897 \textsection \mathsection +898 \textparagraph \mathparagraph +899 \textbardbl \| +900 {\textasteriskcentered\textasteriskcentered}{**} +901 {\textdagger\textdagger}{\dagger\dagger} +902 {\textdaggerdbl\textdaggerdbl}{\dagger\dagger} +903 {\textsection\textsection}{\mathsection\mathsection} +904 {\textparagraph\textparagraph}{\mathparagraph\mathparagraph} +905 {\textasteriskcentered\textasteriskcentered\textasteriskcentered}{***} +906 {\textdagger\textdagger\textdagger}{\dagger\dagger\dagger} +907 {\textdaggerdbl\textdaggerdbl\textdaggerdbl}{\ddagger\ddagger\ddagger} +908 {\textsection\textsection\textsection} +909 {\mathsection\mathsection\mathsection} +910 {\textparagraph\textparagraph\textparagraph} +911 {\mathparagraph\mathparagraph\mathparagraph} +912 } +913 \setfnsymbol{lamport*} +914 \DefineFNsymbolsTM{lamport*-robust}{ +915 \textasteriskcentered * +916 \textdagger \dagger +917 \textdaggerdbl \ddagger +918 \textsection \mathsection +919 \textparagraph \mathparagraph +920 \textbardbl \| +921 {\textasteriskcentered\textasteriskcentered}{**} +922 {\textdagger\textdagger}{\dagger\dagger} +923 {\textdaggerdbl\textdaggerdbl}{\ddagger\ddagger} +924 {\textsection\textsection}{\mathsection\mathsection} +925 {\textparagraph\textparagraph}{\mathparagraph\mathparagraph} +926 {\textasteriskcentered\textasteriskcentered\textasteriskcentered}{***} +927 {\textdagger\textdagger\textdagger}{\dagger\dagger\dagger} +928 {\textdaggerdbl\textdaggerdbl\textdaggerdbl}{\ddagger\ddagger\ddagger} +929 {\textsection\textsection\textsection} +930 {\mathsection\mathsection\mathsection} +931 {\textparagraph\textparagraph\textparagraph} +932 {\mathparagraph\mathparagraph\mathparagraph} + 933 } +\end{verbatim} + + +%--------------------------------------------------------------------------------------------- +\section{Andere verschiedenartige Kommandos} +%------------------------------------------------------ +\subsection{Fußnotenreferenz} + +Die\marginpar{$\backslash$footref} +Syntax dafür: \verb|footref{<label-name>}|\\ +Es ist oftmals erwünscht, auf eine Fußnote zu verweisen, aber dafür ist \verb|\footnotemark| einfach nicht gut genug +(beispielsweise auf einer Minipage, wenn \verb|\footnotemark| eine Referenz zu einer Fußnote außerhalb der +Miniseite erstellt).\\ +\verb|\footref| adressiert dieses Problem durch eine Label-Referenz, die eigentlich wie ein \verb|\footnotemark| +aussieht. (Das Kommando ist verfügbar in der "`memoir class"'. Deshalb +nehmen wir \verb|providecommand|; es ist freilich als "`outright"' +definiert).\\ +\begin{verbatim} +934 \providecommand*{\footref}[1]{ +935 \begingroup +936 \unrestored@protected@xdef\@thefnmark{\ref{#1}} +937 \endgroup +938 \@footnotemark +939 } +\end{verbatim} + +%------------------------------------------------------ +\subsection{Minipage $\backslash$\texttt{footnotemarks}} + +Die\marginpar{$\backslash$mpfootnotemark} +Syntax dafür: \verb|mpfootnotemark[<number>]|\\ +Hier definieren wir \verb|\mpfootnotemark|, das dieselbe Syntax hat wie +\verb|\footnotemark| und auf die die Semantik +von \verb|\footnotemark| zutrifft. +\begin{verbatim} +940 \newcommand\mpfootnotemark{ +941 \@ifnextchar[ +942 \@xmpfootnotemark +943 { +944 \stepcounter\@mpfn +945 \protected@xdef\@thefnmark{\thempfn} +946 \@footnotemark +947 } +948 } +949 \def\@xmpfootnotemark[#1]{ +950 \begingroup +951 \csname c@\@mpfn\endcsname #1\relax +952 \unrestored@protected@xdef\@thefnmark{\thempfn} +953 \endgroup +954 \@footnotemark +955 } + +956 \endinput +957 </package> +\end{verbatim} + +%--------------------------------------------------------------------------\ +\section{Index} + +Nummern geschrieben in italic referieren zu der Seite, wo der entsprechende Eintrag beschrieben ist, +unterstrichene +Nummern verweisen auf die Code-Linie der Definition, Nummern in roman +referieren zu den Code-Lines, in der der Eintrag genutzt wird. + +Da beim Übertragen des Index die Zeichenformatierungen verloren gegangen +sind und die Seitenzahl sich erhöht hat, kann der Index in der deutschen +Übersetzung nur als Orientierung dienen. Die meisten Angaben beziehen sich +auf die Zeile der Codeangabe. Später sollte der Index für die Übersetzung +noch neu erstellt werden. + +\begin{multicols}{2}[Symbole] +\begin{lstlisting}[language={[LaTeX]TeX}, +basicstyle=\scriptsize] + +\# . . . . . . . . . . . . . 871 +\@@dvance@macro . . . . 7, 7, 8 +\@@par . . . . . . . . . . . 631 +\@DefineFNsymbols . . . . . 743 +\@DefineFNsymbols@ . . . . . 743 +\@DefineFNsymbolsTM . . . . 789 +\@addtoreset . . . . . . . . 480 +\@advance@macro . . . . . . . 7 +\@arabic . . . . . . . 775, 808 +\@auxout . . . . . . . . . . . 5 +\@bsphack . . . . . . . 729, 838 +\@colht . . . . . . . . . . 126, + 158, 190, 219, 286 +\@combinefloats . . . . 122, 154, + 186, 215, 255, 279 +\@ctrerr . . . . . . . 773, 806 +\@currentlabel . . . . . . . 320, + 348,372 +\@diagnose@fnsymbol@orange 837 +\@eha . . . . . . . . . . . 733 +\@elt . . . . . . . . . 119, 151 +\@empty . . . . . . 44, 121, 153, + 185, 214, 254, 278 +\@esphack . . . . . . . 738, 841 +\@finalstrut . . . . . . . . 378 +\@firstoftwo . . . . . . . . 829 +\@fnsymbol . . . . 23, 735, 740 +\@fnsymbol@orange . . . . . 837 +\@footnotemark . . 443, 450, 464, + 473, 655, 938, 946, 954 +\@footnotetext . . 308, 342, 360, + 443, 455 +\@freelist . 120, 152, 184, 213, + 253, 277 +\@ifclassloaded . . . . . . 299 +\@ifl@t@r . . . . .105, 135, 169 +\@ifpackageloaded . . . . . 297 +\@ifstar . . . . . . . 744, 790 +\@kludgeins . . . . . . . . 123, + 155, 187, 216, 283 +\@listdepth . . . . . . . . 85 +\@makecol . . . . . . . . . 106, + 136, 170, 200, 294 +\@makefnmark . . . . . . . 392, + 620, 622, 640, + 643, 645, 661, 672 +\@makefntext . . . . . 323, 326, + 352, 376, 391, 615 +\@makespecialcolbox . . . . 124, + 156, 188, 217, 284 +\@maxdepth . . . 110, 132, 140, + 166, 174, 196, 204, + 225, 259, 270, 292 +\@midlist . . . . . . 120, 121, +152, 153, 184, 185, 213, 214, + 253, 254, 277, 278 +\@mpfn . . . . . . . . . . 442, +449, 600, 944, 951 + \@mplistdepth . . . . . 85 +\@ne . . . . . . . . . . . 489, + 531, 588, 600, 629 +\@null . . . . . . . . . . .800 +\@outputbox . 107, 109, 126-128, + 137, 139, 158, 160, 161, + 171, 173, 190-192, 201, + 203, 219-221, 252, 258, + 260, 267, 269, 286-288 +\@parboxrestore . 319, 371, 410 +\@plus . . . . . . . . . . . 77 +\@secondoftwo . . . . . . . 828 +\@setpar . . . . . . . . . 631 +\@tempa . . 503, 504, 544, 545, + 561, 562, 602, 604, 607, + 782, 783, 814, 815 +\@tempb . . 758, 783, 799, 815 +\@tempboxa . . . . . . 387, 618, + 625, 633 +\@tempc . . . . . . . 760, 763 +\@tempcnta . . . 8-10, 488-490 +\@tempd . . . . . . . 761, 763 +\@tempdima . 141, 175, 403-405 +\@tempswatrue . . . . 103, 564 +\@tempswbfalse . . . . . . 742, + 745, 791 +\@tempswbtrue . . 742, 744, 790 +\@textbottom . . 129, 163, 193, + 222, 289 +\@texttop . . . . 127, 159, 191, + 220, 287 +\@thefnmark . . . 320, 349, 373, + 442, 449, 463, 472, + 601, 936, 945, 952 +\@typeset@protect .. . 698, 713 +\@x@sf . . . 660, 662, 668, 678, + 687, 690 +\@xfootnote . . . . . 440, 447 +\@xfootnotemark . . . 460, 469 +\@xmpfootnotemark .. . 942, 949 + + A + +\AtBeginDocument 481, 492, 529 +\AtEndDocument . . . . 533, 844 +\AtEndOfPackage . . . . . . 24 + + B + +\baselineskip . . . . . 73, 411 +\baselinestretch 311, 345, 363 +\boxmaxdepth . . . . . 110, 140, + 174, 204, 259, 270 + + C + +\c@@fnserial . . . . . 488, 588, + 593, 598 +\c@footnote . . . . . . . . 23 +\c@pp@next@reset 431, 490, 531, + 598, 603, 605, 607 +\CheckCommand . . 106, 136, 170, + 200, 439, 458, 658 +\clearpage . . . . . . . . 584 +\color@begingroup .. . 113, 144, + 34, 178, 207, 233, + 244, 321, 351, 375 +\color@endgroup . . . 116, 148, + 181, 210, 237, + 247, 336, 355, 380 +\columnwidth . . . . . 318, 331, + 370, 404, 409, 627 +\CurrentOption . . .. . 28, + 30, 37, 39 + + D + +\DeclareOption . . . . 21, 22, + 27, 36, 45, 52, + 57, 60, 63, 66, + 70, 75, 79, 98, 100 +\DeclareTextSymbol . . . . 855 +\DeclareTextSymbolDefault . 856 +\DefineFNsymbols . . . . . 743 +\DefineFNsymbolsTM . . 789, 857, + 865, 873, 882, 893, 914 +\dimen@ . . . . . 127, 129, 160, + 162, 191, 193, + 220, 222, 287, 289 +\dimexpr . . . . . . . 14, 330 + + F + +\floatingpenalty . . . 317, 369 +\fmtversion . . . 105, 135, 169 +\FN@baselinestretch . . . . 300, + 302, 311, 345, 363 +\FN@bottomfalse . . . . . . 59 +\FN@bottomtrue . . . . . . . 61 +\FN@build@symboldef . . . . 743 +\FN@build@symboldefTM . . . 789 +\FN@etexfalse . . . . . . . 15 +\FN@etextrue . . . . . . . . 17 +\FN@fnsymbol@bringhurst . . 857 +\FN@fnsymbol@chicago. . . . 857 +\FN@fnsymbol@lamport . 728, 857 +\FN@fnsymbol@lamport-robust 857 +\FN@fnsymbol@wiley . . . . 857 +\FN@hangfootfalse . . . . . 69 +\FN@hangfoottrue . . . . . . 71 +\FN@mf@check . . . . . . . 655 +\FN@mf@prepare . 338, 357, 382, + 655 +\FN@multiplefootnotefalse . 99 +\FN@multiplefootnotetrue. . 100 +\FN@orange . . . 775, 808, 837 +\FN@parafalse . . . . . . . 26 +\FN@paratrue . . . . . . . . 32 +\FN@perpagefalse . . . . . . 51 +\FN@perpagetrue . . . . . . .53 +\FN@pp@@clearpage . . . . . 584 +\FN@pp@cpage . . 483, 504, 521, + 545, 570, 574, 582 +\FN@pp@debugfalse . . . . . 56 +\FN@pp@debugtrue . . . . . . 57 +\FN@pp@footnote . 450, 473, 586 +\FN@pp@footnote@aux . 497, 530, + 533, 592 +\FN@pp@footnote@endaux 533, 538 +\FN@pp@footnotehintfalse . . + 501, 535, 542 +\FN@pp@footnotehinttrue . . + 484, 487, 493 +\FN@pp@initial@stab . 480, 481, + 518 +\FN@pp@initialstab . . . . 480 +\FN@pp@lastfoot 496, 498, 509, + 514, 534, 539, 550, 555 +\FN@pp@lastseqfalse . 436, 576 +\FN@pp@lastseqtrue . . . . 571 +\FN@pp@prev@foot . . 523, 524, + 526, 528, 536, + 562, 567, 575, 581 +\FN@pp@resetfn . 500, 506, 520 +\FN@pp@resetfn@end . . + 541, 547, 560 +\FN@pp@towritefalse . . + 433, 453, 476, 675 +\FN@pp@towritetrue . . . . 596 +\FN@pp@writetemp . . + 452, 475, 590, 674 +\FN@setspacefalse . . . . 305 +\FN@setspacetrue . . . . . 298 +\FN@sf@@footnote . . . . . 696 +\FN@sf@@footnotemark . . . 712 +\FN@sf@gobble@bracket. . . 712 +\FN@sf@gobble@opt . . 701, 704 +\FN@sf@gobble@optonly. . . 712 +\FN@sf@gobble@twobracket . 704 +\FN@sidefnfalse . . . . . . 35 +\FN@sidefntrue . . . . . . 41 +\FN@singlespace . . . . . 296 +\FN@stablefootnotefalse . . 97 +\FN@stablefootnotetrue. . . 98 +\FN@tempboxa . . 322, 328, 330, + 333, 335, 387, + 408, 414, 416, + 420, 423, 425, 426 +\FN@tempboxb . . 387, 418-420 +\FN@tempboxc . . 235, 236, 389 +\FN@temptoken . . 3, 230, 241, + 263, 273 +\fnsymbol . . . . . . . . . 21 +\footglue . . . . . . 325, 390 +\footins . . . . . . . 77, 106, + 112, 115, 136, + 143, 147, 170, + 177, 180, 200, + 206, 209, 232, + 243, 246, 256, + 266, 309, 361, 407 +\footnote . 439, 446, 697, 698 +\footnotebaselineskip . . + 331, 395, 403, 411 +\footnotehint . . . . 484, 585 +\footnotelayout . . . 44, 649 +\footnotemargin . . . . . ..19, + 64, 67, 619, 620, + 639, 640, 642, 645 +\footnotemark . 458, 467, 712, + 713 +\footnoterule . 76, 81, 82, 84, +114, 146, 179, 208, 234, 245 +\footnotesep . . . . 315, 367, +377, 413 +\footnotesize . . . . . . .313, + 347, 365, 397, 630 +\footref . . . . . . . . . 934 +\fudgefactor . . . . 333, 401 + + H + +\hangfootparindent . . 73, 635 +\hangfootparskip . . . 73, 634 +\hb@xt@ . . . . .620, 640, 645 +\hrule . . . . . . . . . . 83 +\hsize . . . . . 318, 370, 409 + + I + +\if@filesw . . . . . . . . 589 +\if@minipage . . . . . . . 587 +\if@tempswa . . . . . 102, 104 +\if@tempswb . . .742, 772, 805 +\ifFN@baselinestretch . . 296 +\ifFN@bottom . . 59, 102, 251 +\ifFN@etex . . . 13, 329, 401 +\ifFN@hangfoot . 69, 616, 650 +\ifFN@multiplefootnote 99, 655 +\ifFN@para . . . . 26, 36, 103, + 229, 307, 386, 613 +\ifFN@perpage . . . . 50, 438 +\ifFN@pp@debug . 55, 512, 553, + 566 +\ifFN@pp@footnotehint 430, 499, + 540 +\ifFN@pp@lastseq . . 434, 568 +\ifFN@pp@towrite . . 432, 451, + 474, 673 +\ifFN@setspace . . . 296, 310, + 344, 362 +\ifFN@sidefn . . . 27, 35, 341 +\ifFN@stablefootnote . 97, 696 +\ifmmode . . . . . . . . . 828 +\ignorespaces . . . . .. . 323, + 353, 378 +\insert . . . . . . . 309, 361 +\insertpenalties . . . . . 93 +\interfootnotelinepenalty .. + 314, 366 +\interlinepenalty . . + 314, 366 + + L + +\l@advance@macro . . . . . 7 +\lastbox . . . . . . 418, 423 +\lastkern . . . . . . . . 686 +\leavevmode . . . . 391, 632, + 659, 666 +\leftmargin . . 625, 628, 629 +\linepenalty . . . . . 47, 48 +\linewidth . . . . . 627-629 +\llap . . . . . 633, 643, 645 + + M + +\m@m@singlespace . . . . 300 +\makefootnoteparagraph . . + 235, 407 +\makehboxofhboxes . . + 407, 416 +\marginpar . . . . . . . 343 +\mathparagraph . . . 863, 879, + 887, 898, 904, + 911, 919, 925, 932 +\mathsection . 861, 869, 878, + 886, 897, 903, + 909, 918, 924, 930 +\maxdepth . . . . . . . . 132, + 166, 196, 225, 292 +\mpfootnotemark . . . . . 940 +\mpfootnoterule . . . 81, 86 +\multfootsep . . . . . . 655 +\multiplefootnotemarker . 655 +\multiply . . . . . 403, 404 + + N + +\NeedsTeXFormat . . . . . . 2 +\nfss@text . . . . . . . 766 +\nobreak . . . 392, 660, 670 +\noindent . . . . . 412, 638 +\normalbaselineskip . . . 399 +\normalcolor. . . . 114, 145, + 179, 208, 234, 245 +\number . . . . . . 603, 839 + + P + +\PackageError . . 28, 37, 732, + 823 +\PackageInfo . 753, 794, 839 +\PackageWarning . . 755, 796 +\PackageWarningNoLine . . 847 +\pagefootnoterule . . 81, 89 +\parindent . . . . . 635, 637 +\parshape . . . . . . . . 629 +\parskip . . . . . . . . 634 +\ProcessOptions . . . . . 101 +\protected . . . . . . . 827 +\protected@edef 320, 348, 372 +\protected@write . . . . . 5 +\protected@writeaux . . + 4, 487, 492, 529, 591 +\protected@xdef . . 442, 449, + 463, 472, 601, 945 + + R + +\RaggedRight . . . . . . 48 +\raggedright . . . . . . 47 +\ref . . . . . . . . . . 936 +\removehboxes . . . 408, 416 +\repeat . . . . . . . . .421 +\reset@font . . 313, 347,365 +\rightmargin . . . . . . 626 +\rule . . . . . . . 377,413 + + S + +\setfnsymbol . 24, 728, 913 +\setspace@singlespace. . 302 +\spacefactor . . . 660, 662, + 668, 678, 687, 690 +\split@prev . . . 79, 88, 93 +\splitfootnoterule. . 81, 91 +\splitmaxdepth . . 316, 368 +\splittopskip . . . 315, 367 +\stepcounter . . . . . . 442, + 449, 462, 471, 944 +\string. . . . . . . . . 592 +\strip@pt. . . . . . . . 405 +\strut . . . . . . . . . 323 +\strutbox . . 316, 368, 378 + + T + +\textasteriskcentered . 858, + 866, 874, 875, 883, + 889, 894, 900, + 905, 915, 921, 926 +\textbardbl . . . . 854, 862, +870, 880, 888, 899, 920 +\textdagger . . . . 859, 867, +876, 884, 890, 895, 901, + 906, 916, 922, 927 +\textdaggerdbl . . . . . 860, + 868, 877, 885, + 891, 896, 902, + 907, 917, 923, 928 +\TextOrMath . . . . 817, 821 +\textparagraph . . 863, 879, + 887, 898, 904, + 910, 919, 925, 931 +\textsection . . . 861, 869, + 878, 886, 897, 903, + 908, 918, 924, 929 +\textsuperscript . . . . 689 +\thefootnote . . . . . . 21, + 23, 463, 472 +\thempfn . . . . . . . . 442, + 449, 601, 945, 952 +\thepage . . . . . . . . 593 +\toks@ . . . . . . . . . 231, + 242, 252, 264, + 266, 274, 282, + 294, 757, 770, + 785, 798, 803, 817 + + U + +\undefined . . . . . . . 14 +\unhbox 408, 414, 420, 426 +\unkern . . . . . . . . 688 +\unrestored@protected@xdef +. . . . . . . . . 936, 952 +\unvbox . . . . . 111, 115, + 128, 142, 147, + 161, 176, 180, + 192, 205, 209, + 221, 236, 246, + 260, 271, 288, 407 + + V + +\vfill . . . . . . . . 261 + + Z + +\z@ . . . . . . . 88, 377, + 413, 626, 639, 642 + +\end{lstlisting} + +\end{multicols} +------------------------------------------------------ + +\end{document} diff --git a/info/translations/footmisc/de/hang-crop.pdf b/info/translations/footmisc/de/hang-crop.pdf Binary files differnew file mode 100644 index 0000000000..7ed33d7c60 --- /dev/null +++ b/info/translations/footmisc/de/hang-crop.pdf diff --git a/info/translations/footmisc/de/marginal-crop.pdf b/info/translations/footmisc/de/marginal-crop.pdf Binary files differnew file mode 100644 index 0000000000..b9d0986126 --- /dev/null +++ b/info/translations/footmisc/de/marginal-crop.pdf diff --git a/info/translations/footmisc/de/para-crop.pdf b/info/translations/footmisc/de/para-crop.pdf Binary files differnew file mode 100644 index 0000000000..44098cadb7 --- /dev/null +++ b/info/translations/footmisc/de/para-crop.pdf diff --git a/info/translations/footmisc/de/perpage-crop.pdf b/info/translations/footmisc/de/perpage-crop.pdf Binary files differnew file mode 100644 index 0000000000..271a722874 --- /dev/null +++ b/info/translations/footmisc/de/perpage-crop.pdf diff --git a/info/translations/footmisc/de/side-crop.pdf b/info/translations/footmisc/de/side-crop.pdf Binary files differnew file mode 100644 index 0000000000..8fc0d629d9 --- /dev/null +++ b/info/translations/footmisc/de/side-crop.pdf diff --git a/info/translations/footmisc/de/symbol-crop.pdf b/info/translations/footmisc/de/symbol-crop.pdf Binary files differnew file mode 100644 index 0000000000..ae9a0384be --- /dev/null +++ b/info/translations/footmisc/de/symbol-crop.pdf |