% \CheckSum{278}
% \iffalse meta-comment
% ======================================================================
% scrkftn.dtx
% Copyright (c) Markus Kohm, 2002-2009
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
% This work may be distributed and/or modified under the conditions of
% the LaTeX Project Public License, version 1.3c of the license.
% The latest version of this license is in
% http://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions of LaTeX
% version 2005/12/01 or later and of this work.
%
% This work has the LPPL maintenance status "author-maintained".
%
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
% ----------------------------------------------------------------------
% scrkftn.dtx
% Copyright (c) Markus Kohm, 2002-2009
%
% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
% Version 1.3c, verteilt und/oder veraendert werden.
% Die neuste Version dieser Lizenz ist
% http://www.latex-project.org/lppl.txt
% und Version 1.3c ist Teil aller Verteilungen von LaTeX
% Version 2005/12/01 oder spaeter und dieses Werks.
%
% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
% (allein durch den Autor verwaltet).
%
% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
%
% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
% ======================================================================
% \fi
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
% Digits \0\1\2\3\4\5\6\7\8\9
% Exclamation \! Double quote \" Hash (number) \#
% Dollar \$ Percent \% Ampersand \&
% Acute accent \' Left paren \( Right paren \)
% Asterisk \* Plus \+ Comma \,
% Minus \- Point \. Solidus \/
% Colon \: Semicolon \; Less than \<
% Equals \= Greater than \> Question mark \?
% Commercial at \@ Left bracket \[ Backslash \\
% Right bracket \] Circumflex \^ Underscore \_
% Grave accent \` Left brace \{ Vertical bar \|
% Right brace \} Tilde \~}
%
% \iffalse
%%% From File: scrkftn.dtx
%<*driver>
% \fi
\ProvidesFile{scrkftn.dtx}[2008/11/22 v3.01a KOMA-Script (footnotes)]
% \iffalse
\documentclass[halfparskip-]{scrdoc}
\usepackage[english,ngerman]{babel}
\usepackage[latin1]{inputenc}
\CodelineIndex
\RecordChanges
\GetFileInfo{scrkftn.dtx}
\title{\KOMAScript{} \partname\ \texttt{\filename}%
\footnote{Dies ist Version \fileversion\ von Datei
\texttt{\filename}.}}
\date{\filedate}
\author{Markus Kohm}
\begin{document}
\maketitle
\tableofcontents
\DocInput{\filename}
\end{document}
%
% \fi
%
% \selectlanguage{ngerman}
%
% \changes{v2.95}{2002/07/01}{%
% erste Version aus der Aufteilung von \texttt{scrclass.dtx}}
%
% \section{Fußnoten}
%
% Die Fußnotengestaltung in \KOMAScript{} basiert auf einem Hinweis
% aus dem dokumentierten \LaTeX-Kern.
%
% \StopEventually{\PrintIndex\PrintChanges}
%
% \iffalse
%<*option>
% \fi
%
% \subsection{Option}
%
% \begin{option}{footnotes}
% \changes{v2.98c}{2008/02/01}{Neue Option für Mehrfachfußnoten}
% Mehrfachfußnoten gibt es dann, wenn zu einer Textstelle mehrere Fußnoten
% hintereinander gesetzt werden. Normalerweise werden die einfach ohne Abstand
% hintereinander geklatscht. Man kann dann aber die beiden Fußnoten 1 und 2
% beispielsweise nicht von der Fußnote 12 unterscheiden. Besser ist es, wenn
% mehrere Fußnoten automatisch durch ein Trennzeichen getrennt
% werden. Die Funktion ist \textsf{footmisc} entnommen und sollte inklusive
% Ein- und Ausschalten auch zusammen mit diesem Paket funktionieren.
% \begin{macrocode}
\KOMA@key{footnotes}{%
\ifx\@footnotemark\scr@saved@footnotemark
\else
\ifx\@footnotemark\scr@footnotemark
\else
% \ClassWarning{\KOMAClassName}{%
% \PackageWarning{scrextend}{%
Change of `\string\@footnotemark' detected!\MessageBreak
Use of `footnotes=#1' may break\MessageBreak
another package!\MessageBreak
Maybe you should remove the usage of\MessageBreak
option `footnotes=#1'}%
\fi
\fi
\ifstr{#1}{multiple}{%
\let\@footnotemark\scr@footnotemark
\let\FN@mf@prepare\scr@mf@prepare
\def\scr@footmisc@options{multiple}%
}{%
\ifstr{#1}{nomultiple}{%
\let\@footnotemark\scr@saved@footnotemark
\let\FN@mf@prepare\relax
\let\scr@footmisc@options\@empty
}{%
\KOMA@unknown@keyval{footnotes}{#1}{`multiple' and `nomultiple'}%
}%
}%
}
% \end{macrocode}
% \begin{macro}{\scr@footmisc@options}
% \changes{v2.98c}{2008/02/14}{Neuer (intern)}
% Für etwas mehr Kompatibilität mit \textsf{footmisc}, wird die aktuelle
% Einstellung der \texttt{multifootnotes} an das Paket weitergereicht.
% \begin{macrocode}
\newcommand*{\scr@footmisc@options}{}
\PassOptionsToPackage{\noexpand\scr@footmisc@options}{footmisc}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\scr@saved@footnotemark}
% \changes{v2.98c}{2008/02/01}{Neu (intern)}
% \begin{macro}{\scr@footnotemark}
% \changes{v2.98c}{2008/02/01}{Neu (intern)}
% \begin{macrocode}
\newcommand*{\scr@saved@footnotemark}{%
\leavevmode
\ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi
\@makefnmark
\ifhmode\spacefactor\@x@sf\fi
\relax}
\expandafter\CheckCommand\expandafter*\expandafter\@footnotemark
\expandafter{\scr@saved@footnotemark}
\newcommand*{\scr@footnotemark}{%
\leavevmode
\ifhmode\edef\@x@sf{\the\spacefactor}\FN@mf@check\nobreak\fi
\@makefnmark
\csname FN@mf@prepare\endcsname
\ifhmode\spacefactor\@x@sf\fi
\relax}
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{option}
%
%
% \iffalse
%
%<*body>
% \fi
%
% \subsection{Definitionen für Fußnoten}
%
% \begin{macro}{\footnoterule}
% \changes{v2.3a}{1995/07/08}{\cs{@width} verwendet}
% \changes{v2.8q}{2002/02/06}{\cs{raggedbottom}-Verbesserung
% eingefügt}
% \changes{v2.95}{2002/01/07}{\texttt{.05fil} statt
% \texttt{.005fil}}
% Im Fall, dass \cs{raggedbottom} verwendet wird, die Fußnotenlinie
% nach unten gedrückt. Dies funktioniert nur dann nicht, wenn
% Abbildungen oder Tabellen mit der Option "`\texttt{b}"' an das Ende
% der Seite gesetzt werden. \cs{raggedbottom} wird daran erkannt, dass
% \cs{@textbottom} nicht \cs{relax} ist. Das kann natürlich auch
% einmal schief gehen, ist dann aber auch nicht ganz so tragisch.
% \begin{macrocode}
%<*class>
\renewcommand*\footnoterule{%
\kern-3\p@
\ifx\@textbottom\relax\else\vskip \z@ \@plus.05fil\fi
\hrule\@width.4\columnwidth
\kern 2.6\p@}
%
% \end{macrocode}
% \end{macro}
%
% \begin{Counter}{footnote}
% Der Fußnotenzähler wird mit \cs{chapter} zurückgesetzt, die Fußnoten
% werden also kapitelweise nummeriert.
% \begin{macrocode}
%\@addtoreset{footnote}{chapter}
% \end{macrocode}
% \end{Counter}
%
% \begin{macro}{\deffootnote}
% \changes{v2.4l}{1997/02/06}{neu}
% \changes{v2.95}{2002/07/09}{Absatzeinzug korrigiert}
% \changes{v2.9l}{2003/01/28}{\cs{edef}\cs{@tempa} ersetzt}
% \changes{v2.9q}{2004/01/31}{\cs{ftn@font} erlaubt aus Gr"unden der
% Kompatibilität mit dem \textsl{footnote} Paket kein Argument mehr}
% Dieses Makro zur Definition der Gestalt von Fußnoten erlaubt einen
% optionalen und erwartet drei weitere Parameter. Der erste, optionale
% gibt den Einzug der ersten Zeile des Fußnotentextes vom linken Rand
% an. Die Fußnotenmarkierungen werden rechtsbündig in diesen Einzug
% gesetzt. Der zweite, also erste nicht optionale Parameter gibt den
% Einzug jeder weiteren Zeile des Fußnotentextes vom linken Rand
% an. Fehlt der optionale Parameter so ist er gleich diesem. Der
% dritte, also zweite nicht optionale Parameter gibt den zusätzlichen
% Einzug jedes weiteren Absatzes einer Fußnote an. Der letzte
% Parameter schließlich bestimmt die Ausgabe der Fußnotenmarkierung in
% der Fußnote. Diese wird zusätzlich in eine \cs{hbox} gesetzt.
% \begin{macrocode}
\newcommand\deffootnote[4][]{%
\long\def\@makefntext##1{%
\setlength{\@tempdimc}{#3}%
\def\@tempa{#1}\ifx\@tempa\@empty
\@setpar{\@@par
\@tempdima = \hsize
\addtolength{\@tempdima}{-#2}%
\parshape \@ne #2 \@tempdima}%
\else
\addtolength{\@tempdimc}{#2}%
\addtolength{\@tempdimc}{-#1}%
\@setpar{\@@par
\@tempdima = \hsize
\addtolength{\@tempdima}{-#1}%
\@tempdimb = \hsize
\addtolength{\@tempdimb}{-#2}%
\parshape \tw@ #1 \@tempdima #2 \@tempdimb
}%
\fi
\par
\parindent\@tempdimc\noindent
\ftn@font\hbox to \z@{\hss\@@makefnmark}##1%
}%
% \end{macrocode}
% \begin{macro}{\@@makefnmark}
% \changes{v2.4l}{1997/02/06}{neu}
% Makro zum Setzen der Fußnotenmarkierung in der Fußnote:
% \begin{macrocode}
\def\@@makefnmark{\hbox{\ftnm@font{#4}}}%
% \end{macrocode}
% \end{macro}
% \begin{macrocode}
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ftn@font}
% \changes{v2.8q}{2001/11/16}{neu (intern)}
% \begin{macro}{\scr@fnt@footnote}
% \changes{v2.8q}{2001/11/16}{neues Element \texttt{footnote}}
% \begin{macro}{\ftnm@font}
% \changes{v2.8q}{2001/11/16}{neu (intern)}
% \begin{macro}{\scr@fnt@footnotenumber}
% \changes{v2.8q}{2001/11/16}{neues Element
% \texttt{footnotenumber}}
% \begin{macro}{\scr@fnt@footnotenlabel}
% \changes{v2.8q}{2001/11/16}{neues Element \texttt{footnotelabel}}
% \begin{macro}{\scr@fnt@instead@footnotetext}
% \changes{v2.8q}{2001/11/16}{neuer Ersatz für Element
% \texttt{footnotetext}}
% Das erste Element gibt die Schrift an, in der die Fußnote gesetzt
% wird. Davon abweichend kann mit dem zweiten Element die Schriftart
% für die Fußnotennummer getrennt angegeben werden. Aufgrund der
% Definition kann auch ein Makro verwendet werden, das ein Argument
% erwartet.
% \begin{macrocode}
\newcommand*{\ftn@font}{\normalfont}
\newcommand*{\scr@fnt@footnote}{\ftn@font}
\newcommand*{\ftnm@font}{}
\newcommand*{\scr@fnt@footnotenumber}{\ftnm@font}
\newcommand*{\scr@fnt@footnotelabel}{\ftnm@font}
\newcommand*{\scr@fnt@instead@footnotetext}{footnote}
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\deffootnotemark}
% \changes{v2.4l}{1997/02/06}{neu}
% Makro zur Definition der Fußnotenmarkierung im Text:
% \begin{macrocode}
\newcommand*\deffootnotemark[1]{%
\def\@makefnmark{\hbox{\ftntm@font{#1}}}%
}
% \end{macrocode}
%
% \begin{macro}{\ftntm@font}
% \changes{v2.8q}{2001/11/16}{neu (intern)}
% \begin{macro}{\scr@fnt@footnotereference}
% \changes{v2.8q}{2001/11/16}{neues Element
% \texttt{footnotereference}}
% \begin{macro}{\scr@fnt@footnoteref}
% \changes{v2.8q}{2001/11/16}{neues Element \texttt{footnoteref}}
% Dies ist die Schriftart der Fußnotenreferenz im Text. Auch hier kann
% ggf. ein Makro verwendet werden, das ein Argument erwartet.
% \begin{macrocode}
\newcommand*{\ftntm@font}{}
\newcommand*{\scr@fnt@footnotereference}{\ftntm@font}
\newcommand*{\scr@fnt@footnoteref}{\ftntm@font}
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\FN@mf@check}
% \changes{v2.98c}{2008/02/01}{Neu (intern)}
% Dafür sorgen, dass hier ggf. der Trenner eingefügt wird.
% \begin{macrocode}
%\providecommand*{\FN@mf@check}{%
%\newcommand*{\FN@mf@check}{%
\ifdim\lastkern=\multiplefootnotemarker\relax
\edef\@x@sf{\the\spacefactor}%
\unkern\multiplefootnoteseparator
\spacefactor\@x@sf\relax
\fi
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\scr@mf@prepare}
% \changes{v2.98c}{2008/02/01}{Neu (intern)}
% Damit |\FN@mf@check| informiert ist, dass es etwas zu tun hat.
% \begin{macrocode}
\newcommand*{\scr@mf@prepare}{%
\kern-\multiplefootnotemarker
\kern\multiplefootnotemarker\relax
}
% \end{macro}
% \begin{macro}{\F@mf@prepare}
% \changes{v2.98c}{2008/02/14}{Neu (intern)}
% Aus Gründen der Kompatibilität mit \textsf{footmisc} wird das dann
% vorsoglich auch noch definiert (und zwar als \cs{relax}, wenn es bisher noch
% nicht definiert ist).
\@ifundefined{FN@mf@prepare}{}{}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@footnotetext}
% \changes{v3.01a}{2008/11/22}{long}
% \begin{macro}{\scr@saved@footnotetext}
% \changes{v2.98c}{2008/02/01}{Neu (intern)}
% \changes{v3.01a}{2008/11/22}{long}
% Auch hier muss dafür gesorgt werden, dass die Markierung erfolgt.
% \begin{macrocode}
\newcommand{\scr@saved@footnotetext}{}
\let\scr@saved@footnotetext\@footnotetext
\renewcommand{\@footnotetext}[1]{%
\scr@saved@footnotetext{#1}%
\csname FN@mf@prepare\endcsname
}
% \end{macrocode}
% \end{macro}
% \end{macro}
%
% Es muss auch dafür gesorgt werden, dass \textsf{footmisc} nicht unnötig mit
% Warnung um sich wirft.
% \begin{macrocode}
\BeforePackage{footmisc}{%
\ifx\@footnotemark\scr@footnotemark
\let\@footnotemark\scr@saved@footnotemark
\fi
\let\@footnotetext\scr@saved@footnotetext
}
% \end{macrocode}
%
% \begin{macro}{\multiplefootnoteseparator}
% \changes{v2.98c}{2008/02/01}{Neu}
% Das ist der formatierte Separator!
% \begin{macrocode}
\newcommand*{\multiplefootnoteseparator}{%
\begingroup\let\thefootnotemark\multfootsep\@makefnmark\endgroup
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\multfootsep}
% \changes{v2.98c}{2008/02/01}{Neu}
% Und hier \textsf{footmisc}-kompatibel unformatiert
% \begin{macrocode}
%\newcommand*{\multfootsep}{,}
%\providecommand*{\multfootsep}{,}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\multiplefootnotemarker}
% \changes{v2.98c}{2008/02/01}{Neu}
% Das Markierungskerning wieder \textsf{footmisc}-kompatibel.
% \begin{macrocode}
\newcommand*{\multiplefootnotemarker}{3sp}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\thefootnotemark}
% \changes{v2.4l}{1997/02/06}{neu}
% Makro, damit \cs{@thefnmark} auf Anwenderebene verfügbar wird:
% \begin{macrocode}
%\newcommand*{\thefootnotemark}{\@thefnmark}
%\providecommand*{\thefootnotemark}{\@thefnmark}
% \end{macrocode}
% \end{macro}
%
% \changes{v2.4l}{1997/02/06}{Verwendung der neuen Makros zur
% Fußnotengestaltgebung}
% \begin{macro}{\@makefnmark}
% \begin{macrocode}
%<*class>
\deffootnote[1em]{1.5em}{1em}{\textsuperscript{\thefootnotemark}}
\deffootnotemark{\textsuperscript{\thefootnotemark}}
%
% \end{macrocode}
% \end{macro}
%
% \subsection{Fußnotenreferenz}
%
% \begin{macro}{\footref}
% \changes{v2.98c}{2008/02/01}{Neue Anweisung}
% Damit man nicht nur zu diesem Zweck das Paket \textsf{footmisc} laden muss,
% kann man jetzt auch mit \KOMAScript{} alleine Fußnoten setzen, die
% Referenzen auf andere Fußnoten sind. Der Code stammt einerseits aus footmisc
% andererseits auf der Usenet-Gruppe comp.text.tex. Wer den zuerst hatte, ist
% für mich nicht mehr reproduzierbar. Jedenfalls steht er in footmisc unter
% LPPL und \KOMAScript{} steht ebenfalls unter LPPL. Das sollte also im
% Zweifelsfall nicht das Problem sein.
% \begin{macrocode}
%\newcommand*{\footref}[1]{%
%\providecommand*{\footref}[1]{%
\begingroup
\unrestored@protected@xdef\@thefnmark{\ref{#1}}%
\endgroup
\@footnotemark
}
% \end{macrocode}
% \end{macro}
%
% \iffalse
%