You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
696 lines
24 KiB
696 lines
24 KiB
% \CheckSum{476}
|
|
% \iffalse meta-comment
|
|
% ======================================================================
|
|
% scrkernel-footnotes.dtx
|
|
% Copyright (c) Markus Kohm, 2002-2019
|
|
%
|
|
% 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.
|
|
% ----------------------------------------------------------------------
|
|
% scrkernel-footnotes.dtx
|
|
% Copyright (c) Markus Kohm, 2002-2019
|
|
%
|
|
% 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: $Id: scrkernel-footnotes.dtx 3390 2019-11-18 17:09:35Z kohm $
|
|
%<option>%%% (run: option)
|
|
%<body>%%% (run: body)
|
|
%<*dtx>
|
|
% \fi
|
|
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
|
|
\begingroup
|
|
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
|
|
\filedate$Date: 2019-11-18 18:09:35 +0100 (Mon, 18 Nov 2019) $
|
|
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
|
|
\filerevision$Revision: 1962 $
|
|
\edef\reserved@a{%
|
|
\noexpand\endgroup
|
|
\noexpand\ProvidesFile{scrkernel-footnotes.dtx}%
|
|
[\filedate\space\filerevision\space
|
|
KOMA-Script source
|
|
(footnotes)]
|
|
}%
|
|
\reserved@a
|
|
% \iffalse
|
|
\documentclass[parskip=half-]{scrdoc}
|
|
\usepackage[english,ngerman]{babel}
|
|
\CodelineIndex
|
|
\RecordChanges
|
|
\GetFileInfo{scrkernel-footnotes.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}
|
|
%</dtx>
|
|
% \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}%^^A
|
|
% \changes{v3.10}{2011/09/13}{\cs{let} durch \cs{def} ersetzt, damit die
|
|
% Option auch als Klassenoption funktioniert}%^^A
|
|
% \changes{v3.12}{2013/03/05}{Status-Signalisierung mit
|
|
% \cs{FamilyKeyStateProcessed}}%^^A
|
|
% \changes{v3.17}{2015/03/11}{interne Wert-Speicherung}%^^A
|
|
% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
|
|
% 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
|
|
%<class> \ClassWarning{\KOMAClassName}{%
|
|
%<package> \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
|
|
\def\FN@mf@prepare{\scr@mf@prepare}%
|
|
\def\scr@footmisc@options{multiple}%
|
|
\FamilyKeyStateProcessed
|
|
\KOMA@kav@replacevalue{.%
|
|
%<class> \KOMAClassFileName
|
|
%<package&extend> scrextend.\scr@pkgextension
|
|
}{footnotes}{multiple}%
|
|
}{%
|
|
\Ifstr{#1}{nomultiple}{%
|
|
\let\@footnotemark\scr@saved@footnotemark
|
|
\let\FN@mf@prepare\relax
|
|
\let\scr@footmisc@options\@empty
|
|
\FamilyKeyStateProcessed
|
|
\KOMA@kav@replacevalue{.%
|
|
%<class> \KOMAClassFileName
|
|
%<package&extend> scrextend.\scr@pkgextension
|
|
}{footnotes}{nomultiple}%
|
|
}{%
|
|
\KOMA@unknown@keyval{footnotes}{#1}{`multiple' and `nomultiple'}%
|
|
}%
|
|
}%
|
|
}
|
|
\AtBeginDocument{%
|
|
\ifx\@footnotemark\scr@saved@footnotemark
|
|
\KOMA@kav@removekey{.%
|
|
%<class> \KOMAClassFileName
|
|
%<package&extend> scrextend.\scr@pkgextension
|
|
}{footnotes}%
|
|
\KOMA@kav@add{.%
|
|
%<class> \KOMAClassFileName
|
|
%<package&extend> scrextend.\scr@pkgextension
|
|
}{footnotes}{nomultiple}%
|
|
\else\ifx\@footnotemark\scr@footnotemark
|
|
\KOMA@kav@removekey{.%
|
|
%<class> \KOMAClassFileName
|
|
%<package&extend> scrextend.\scr@pkgextension
|
|
}{footnotes}%
|
|
\KOMA@kav@add{.%
|
|
%<class> \KOMAClassFileName
|
|
%<package&extend> scrextend.\scr@pkgextension
|
|
}{footnotes}{multiple}%
|
|
\fi\fi
|
|
}
|
|
% \end{macrocode}
|
|
% \begin{macro}{\scr@footmisc@options}
|
|
% \changes{v2.98c}{2008/02/14}{Neuer (intern)}%^^A
|
|
% 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)}%^^A
|
|
% \begin{macro}{\scr@footnotemark}
|
|
% \changes{v2.98c}{2008/02/01}{Neu (intern)}%^^A
|
|
% \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
|
|
%</option>
|
|
%<*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}}
|
|
% \changes{v3.06}{2010/04/03}{die neuen Längenmakros werden genutzt}%^^A
|
|
% \changes{v3.07}{2010/09/14}{neues Font-Element \texttt{footnoterule} wird
|
|
% verwendet}
|
|
% 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{%
|
|
\normalsize\ftn@rule@test@values
|
|
\kern-\dimexpr 2.6\p@+\ftn@rule@height\relax
|
|
\ifx\@textbottom\relax\else\vskip \z@ \@plus.05fil\fi
|
|
{\usekomafont{footnoterule}{%
|
|
\hrule \@height\ftn@rule@height \@width\ftn@rule@width}}%
|
|
\kern 2.6\p@}
|
|
% \end{macrocode}
|
|
% \begin{macro}{\ftn@rule@test@values}
|
|
% \changes{v3.06}{2010/04/03}{neu (intern)}%^^A
|
|
% \changes{v3.19}{2015/08/24}{nicht in \textsf{scrextend}}%^^A
|
|
% Test, ob die Einstellungen für die Längen der Fußnotenlinie halbwegs
|
|
% vernünftig sind.
|
|
% \begin{macrocode}
|
|
\newcommand*{\ftn@rule@test@values}{%
|
|
\ifdim\ftn@rule@height <\z@
|
|
\ClassWarning{\KOMAClassName}{%
|
|
You might get into trouble, because the\MessageBreak
|
|
height of the footnote rule has a value\MessageBreak
|
|
less than 0%
|
|
}%
|
|
\else
|
|
\ifdim\ftn@rule@height >\dimexpr\skip\footins -2.6\p@\relax
|
|
\ClassWarning{\KOMAClassName}{%
|
|
You might get into trouble, because the\MessageBreak
|
|
height of the footnote rule has a value\MessageBreak
|
|
greater than \the\dimexpr\skip\footins -2.6\p@\relax
|
|
}%
|
|
\fi
|
|
\fi
|
|
\ifdim\ftn@rule@width <\z@
|
|
\ClassWarning{\KOMAClassName}{%
|
|
You might get into trouble, because the width\MessageBreak
|
|
or length of the footnote rule has a value\MessageBreak
|
|
less than 0pt%
|
|
}%
|
|
\else
|
|
\ifdim\ftn@rule@width >\columnwidth
|
|
\ClassWarning{\KOMAClassName}{%
|
|
You might get into trouble, because the width\MessageBreak
|
|
or length of the footnote rule has a value\MessageBreak
|
|
greater than \string\columnwidth
|
|
}%
|
|
\fi
|
|
\fi
|
|
}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \begin{KOMAfont}{footnoterule}
|
|
% \changes{v3.07}{2010/09/14}{\texttt{footnoterule} ist ein eneues
|
|
% Fontelement}
|
|
% \changes{v3.19}{2015/08/24}{nicht in \textsf{scrextend}}%^^A
|
|
% Damit man die Farbe der Fußnotentrennlinie ändern kann, gibt es nun ein
|
|
% eigenes Element dafür. Die Voreinstellung ist jedoch leer.
|
|
% \begin{macrocode}
|
|
\newkomafont{footnoterule}{}
|
|
% \end{macrocode}
|
|
% \end{KOMAfont}
|
|
% \begin{macro}{\ftn@rule@width}
|
|
% \changes{v3.06}{2010/04/03}{neu (intern)}%^^A
|
|
% \changes{v3.19}{2015/08/24}{nicht in \textsf{scrextend}}%^^A
|
|
% Die Länge der Fußnotentrennlinie.
|
|
% \begin{macrocode}
|
|
\newcommand*{\ftn@rule@width}{.4\columnwidth}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \begin{macro}{\ftn@rule@height}
|
|
% \changes{v3.06}{2010/04/03}{neu (intern)}%^^A
|
|
% \changes{v3.19}{2015/08/24}{nicht in \textsf{scrextend}}%^^A
|
|
% Die Höhe der Fußnotentrennlinie (die Tiefe ist immer 0).
|
|
% \begin{macrocode}
|
|
\newcommand*{\ftn@rule@height}{.4\p@}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \begin{macro}{\setfootnoterule}
|
|
% \changes{v3.06}{2010/04/03}{neue Anweisung}%^^A
|
|
% \changes{v3.19}{2015/08/24}{nicht in \textsf{scrextend}}%^^A
|
|
% \changes{v3.28}{2019/11/18}{\cs{ifstr} ersetzt durch \cs{IfArgIsEmpty}}%^^A
|
|
% Das erste, optionale Argument ist die Höhe der Linie, das zweite nicht
|
|
% optionale die Länge.
|
|
% \begin{macrocode}
|
|
\newcommand*{\setfootnoterule}[2][]{%
|
|
\IfArgIsEmpty{#1}{}{%
|
|
\renewcommand*{\ftn@rule@height}{#1}%
|
|
}%
|
|
\IfArgIsEmpty{#2}{}{%
|
|
\renewcommand*{\ftn@rule@width}{#2}%
|
|
}%
|
|
\ftn@rule@test@values
|
|
}
|
|
%</class>
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \end{macro}
|
|
%
|
|
% \begin{Counter}{footnote}
|
|
% Der Fußnotenzähler wird mit \cs{chapter} zurückgesetzt, die Fußnoten
|
|
% werden also kapitelweise nummeriert.
|
|
% \begin{macrocode}
|
|
%<book|report>\@addtoreset{footnote}{chapter}
|
|
% \end{macrocode}
|
|
% \end{Counter}
|
|
%
|
|
% \begin{macro}{\deffootnote}
|
|
% \changes{v2.4l}{1997/02/06}{neu}%^^A
|
|
% \changes{v2.95}{2002/07/09}{Absatzeinzug korrigiert}%^^A
|
|
% \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}%^^A
|
|
% \changes{v3.22}{2017/01/03}{Neuimplementierung}%^^A
|
|
% \changes{v3.23}{2017/03/27}{neues \cs{raggedfootnote} eingefügt}%^^A
|
|
% 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][]{%
|
|
\expandafter\ifnum\scr@v@is@ge{3.22}\relax
|
|
\long\def\@makefntext##1{%
|
|
\raggedfootnote
|
|
\leftskip #2
|
|
\l@addto@macro\@trivlist{%
|
|
\ifnum\@listdepth=\@ne\advance\leftmargin #2\relax\fi
|
|
}%
|
|
\parindent #3\noindent
|
|
\IfArgIsEmpty{#1}{}{%
|
|
\hskip \dimexpr #1-#2\relax
|
|
}%
|
|
\ftn@font\hbox to \z@{\hss\@@makefnmark}##1%
|
|
}%
|
|
\else
|
|
%<class> \ClassInfo{\KOMAClassName}{%
|
|
%<package> \PackageInfo{scrextend}{%
|
|
Using old \string\@makefntext\space due to compatibility
|
|
level\MessageBreak
|
|
less than 3.22}%
|
|
\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%
|
|
}%
|
|
\fi
|
|
% \end{macrocode}
|
|
% \begin{macro}{\@@makefnmark}
|
|
% \changes{v2.4l}{1997/02/06}{neu}%^^A
|
|
% 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}%^^A \@@makefnmark
|
|
%
|
|
% \begin{macro}{\raggedfootnote}
|
|
% \changes{v3.23}{2017/03/27}{neue Anweisung}
|
|
% Auf Wunsch von Falk kann man die Ausrichtrung des Fußnotentextes damit
|
|
% beeinflussen. Die Voreinstellung ist leer also keine Änderung der
|
|
% Ausrichtung.
|
|
% \begin{macrocode}
|
|
\newcommand*{\raggedfootnote}{}
|
|
% \end{macrocode}
|
|
% \end{macro}%^^A \raggedfootnote
|
|
%
|
|
% \begin{macro}{\ftn@font}
|
|
% \changes{v2.8q}{2001/11/16}{neu (intern)}%^^A
|
|
% \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)}%^^A
|
|
% \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 bei letzteren 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}%^^A
|
|
% 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)}%^^A
|
|
% \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)}%^^A
|
|
% Dafür sorgen, dass hier ggf. der Trenner eingefügt wird.
|
|
% \begin{macrocode}
|
|
%<package>\providecommand*{\FN@mf@check}{%
|
|
%<class>\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)}%^^A
|
|
% 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)}%^^A
|
|
% \changes{v3.25a}{2018/04/17}{Definition wird explizit vorgenommen}%^^A
|
|
% 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}{\let\FN@mf@prepare\relax}{}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
% \begin{macro}{\@footnotetext}
|
|
% \changes{v3.01a}{2008/11/22}{long}%^^A
|
|
% \begin{macro}{\scr@saved@footnotetext}
|
|
% \changes{v2.98c}{2008/02/01}{Neu (intern)}%^^A
|
|
% \changes{v3.01a}{2008/11/22}{long}%^^A
|
|
% 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}
|
|
%
|
|
% 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}
|
|
%
|
|
% \changes{v3.10}{2011/09/12}{Workaround für die zerstörerische Wirkung von
|
|
% \textsf{setspace}}%
|
|
% Außerdem zerstört das Paket \textsf{setspace} die Erweiterung von
|
|
% \cs{@footnotetext}. Deshalb schalten wir sie vor dem Paket lieber gleich ab
|
|
% und reaktivieren sie anschließend wieder:
|
|
% \begin{macrocode}
|
|
\BeforePackage{setspace}{%
|
|
\let\@footnotetext\scr@saved@footnotetext
|
|
}
|
|
\AfterPackage{setspace}{%
|
|
\let\scr@saved@footnotetext\@footnotetext
|
|
\renewcommand{\@footnotetext}[1]{%
|
|
\scr@saved@footnotetext{#1}%
|
|
\csname FN@mf@prepare\endcsname
|
|
}%
|
|
}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \end{macro}
|
|
%
|
|
% \begin{macro}{\multiplefootnoteseparator}
|
|
% \changes{v2.98c}{2008/02/01}{Neu}%^^A
|
|
% 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}%^^A
|
|
% Und hier \textsf{footmisc}-kompatibel unformatiert
|
|
% \begin{macrocode}
|
|
%<class>\newcommand*{\multfootsep}{,}
|
|
%<package>\providecommand*{\multfootsep}{,}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
% \begin{macro}{\multiplefootnotemarker}
|
|
% \changes{v2.98c}{2008/02/01}{Neu}%^^A
|
|
% \changes{v3.19}{2015/08/24}{im Paket mit \cs{providecommand} definieren}%^^A
|
|
% Das Markierungskerning wieder \textsf{footmisc}-kompatibel.
|
|
% \begin{macrocode}
|
|
%<class>\newcommand*{\multiplefootnotemarker}{3sp}
|
|
%<package>\providecommand*{\multiplefootnotemarker}{3sp}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
% \begin{macro}{\thefootnotemark}
|
|
% \changes{v2.4l}{1997/02/06}{neu}%^^A
|
|
% Makro, damit \cs{@thefnmark} auf Anwenderebene verfügbar wird:
|
|
% \begin{macrocode}
|
|
%<class>\newcommand*{\thefootnotemark}{\@thefnmark}
|
|
%<package>\providecommand*{\thefootnotemark}{\@thefnmark}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
% \changes{v2.4l}{1997/02/06}{Verwendung der neuen Makros zur
|
|
% Fußnotengestaltgebung}%^^A
|
|
% \begin{macro}{\@makefnmark}
|
|
% \changes{v3.10}{2011/09/27}{\textsf{scrextend} redefines \cs{@makefnmark}
|
|
% to use \cs{thefootnotemark}}%^^A
|
|
% \begin{macrocode}
|
|
%<*class>
|
|
\deffootnote[1em]{1.5em}{1em}{\textsuperscript{\thefootnotemark}}
|
|
%</class>
|
|
%<*package>
|
|
\def\reserved@a{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}
|
|
\ifx\reserved@a\@makefnmark
|
|
%</package>
|
|
\deffootnotemark{\textsuperscript{\thefootnotemark}}
|
|
%<*package>
|
|
\else
|
|
\IfFileExists{etoolbox.\@pkgextension}{%
|
|
\PackageInfo{scrextend}{%
|
|
unexpected definition of `\string\@makefnmark'.\MessageBreak
|
|
Trying to patch it%
|
|
}%
|
|
\RequirePackage{etoolbox}%
|
|
\patchcmd{\@makefnmark}{\@thefnmark}{\thefootnotemark}{%
|
|
\PackageInfo{scrextend}{patch seems to be successfull}%
|
|
}{%
|
|
\PackageWarning{scrextend}{%
|
|
patching `\string\@makefnmark' failed.\MessageBreak
|
|
Using hard coded redefinition%
|
|
}%
|
|
\deffootnotemark{\textsuperscript{\thefootnotemark}}%
|
|
}%
|
|
}{%
|
|
\PackageWarning{scrextend}{%
|
|
unexpected definition of `\string\@makefnmark'.\MessageBreak
|
|
Using hard coded redefintion%
|
|
}%
|
|
\deffootnotemark{\textsuperscript{\thefootnotemark}}%
|
|
}%
|
|
\fi
|
|
%</package>
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
% \subsection{Fußnotenreferenz}
|
|
%
|
|
% \begin{macro}{\footref}
|
|
% \changes{v2.98c}{2008/02/01}{Neue Anweisung}%^^A
|
|
% 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}
|
|
%<class>\newcommand*{\footref}[1]{%
|
|
%<package>\providecommand*{\footref}[1]{%
|
|
\begingroup
|
|
\unrestored@protected@xdef\@thefnmark{\ref{#1}}%
|
|
\endgroup
|
|
\@footnotemark
|
|
}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
% \iffalse
|
|
%</body>
|
|
% \fi
|
|
%
|
|
% \Finale
|
|
%
|
|
\endinput
|
|
%
|
|
% end of file `scrkernel-footnotes.dtx'
|
|
%%% Local Variables:
|
|
%%% mode: doctex
|
|
%%% TeX-master: t
|
|
%%% End:
|
|
|