% \CheckSum{519}
% \iffalse meta-comment
% ======================================================================
% scrkernel-bibliography.dtx
% Copyright (c) Markus Kohm, 2002-2017
%
% 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-bibliography.dtx
% Copyright (c) Markus Kohm, 2002-2017
%
% 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-bibliography.dtx 2640 2017-05-08 09:36:55Z kohm $
%
%<*body>
% \fi
%
%
% \subsection{Standardbezeichner}
%
% \begin{macro}{\refname}
% \begin{macro}{\bibname}
% Je nach Klasse wird \cs{refname} oder \cs{bibname} verwendet.
% \begin{macrocode}
%\newcommand*\refname{References}
%\newcommand*\bibname{Bibliography}
% \end{macrocode}
% \end{macro}
% \end{macro}
%
%
% \subsection{Definitionen für das Literaturverzeichnis}
%
% \begin{macro}{\setbibpreamble}
% \changes{v2.6c}{2000/06/10}{neu}^^A
% \changes{v2.7j}{2001/05/27}{\cs{renewcommand} durch \cs{def}
% ersetzt zur Erhöhung der \textsf{natbib}-Kompatibilität}
% \begin{macro}{\bibpreamble}
% \changes{v2.6c}{2000/06/10}{neue (intern)}^^A
% \changes{v2.6d}{2000/07/20}{Makro funktioniert nachdem \cs{let}^^A
% durch \cs{newcommand*} ersetzt wurde}
% \changes{v2.8q}{2002/01/10}{wieder \cs{let}}
% \cs{bibpreamble} kann vom Benutzer mit \cs{setbibpreamble} auf
% einen Text gesetzt werden, der nach der Überschrift eingefügt
% wird. Dasselbe Makro wird von \textsf{natbib} als \cs{relax}
% definiert; aus Kompatibilitätsgründen wird hier vergleichbar
% verfahren und \cs{let} bzw. \cs{def} statt \cs{renewcommand}
% verwendet.
% \changes{v2.7j}{2001/05/27}{Setzen der Präambel in die
% \texttt{thebibliography}-Umgebung verschoben}
% Außerdem wird ab Version 2.7j die Präambel nicht mehr in
% \cs{bib@heading} gesetzt, sondern in der
% \texttt{thebibliography}-Umgebung. Dies dient ebenfalls der
% Kompatibilität mit natbib. Trotz aller Kompatibilität ist
% \cs{bibpreamble} als internes Makro zu betrachten.
% \begin{macrocode}
\newcommand*{\bibpreamble}{\relax}
\let\bibpreamble\relax
\newcommand{\setbibpreamble}[1]{\def\bibpreamble{#1}}
% \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{Length}{bibindent}
% Der Einzug der Einträge bei \texttt{openbib}. Voreingestellt sind
% 1,5\,em.
% \begin{macrocode}
\newdimen\bibindent
\bibindent=1.5em
% \end{macrocode}
% \end{Length}
%
% \begin{environment}{thebibliography}
% \changes{v2.2a}{1995/02/01}{in \textsf{scrartcl} \cs{bibname}
% vollständig durch \cs{refname} ersetzt}
% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{bib@heading}}
% \changes{v2.8q}{2002/01/10}{Erkennung und gesonderte Behandlung
% leerer Präambeln}^^A
% \changes{v2.9o}{2003/03/06}{Vergleich \cs{bibpreamble} mit \cs{@empty}
% korrigiert}
% \changes{v2.98c}{2008/02/15}{Neue Haken \cs{bib@before@hook} und
% \cs{bib@after@hook} eingefügt}
% Nun werden noch die Umgebung für das Literaturverzeichnis und der
% Befehl für die einzelnen Einträge definiert.
% \begin{macrocode}
\newenvironment{thebibliography}[1]{%
\if@bib@break@
\bib@beginhook
\else
%<*book|report>
\ifx\bibpreamble\relax\else\ifx\bibpreamble\@empty\else
\setchapterpreamble{\bibpreamble}%
\fi\fi
%
\bib@heading
%<*article>
\ifx\bibpreamble\relax\else\ifx\bibpreamble\@empty\else
\noindent\bibpreamble\par\nobreak
\fi\fi
%
\bib@beginhook
\bib@before@hook
\fi
% \end{macrocode}
% \begin{macro}{\BreakBibliography}
% \changes{v2.98c}{2008/02/15}{Neu}^^A
% An dieser Stelle wird \cs{BreakBibliography} passend umdefiniert.
% \begin{macrocode}
\renewcommand{\BreakBibliography}[1]{%
\@bib@break
\end{thebibliography}%
\begingroup ##1\endgroup
\begin{thebibliography}{#1}
}%
% \end{macrocode}
% \end{macro}
% \begin{macrocode}
% Hier geht es jetzt mit \texttt{thebibliography} weiter.
\list{%
\@biblabel{\@arabic\c@enumiv}%
}{%
\settowidth\labelwidth{\@biblabel{#1}}%
\leftmargin\labelwidth
\advance\leftmargin\labelsep
\@openbib@code
\if@bib@break@
\edef\@tempa{%
\noexpand\usecounter{enumiv}%
\noexpand\setcounter{enumiv}{\the\c@enumiv}%
}\@tempa
\no@bib@break
\else
\usecounter{enumiv}%
\fi
\let\p@enumiv\@empty
\renewcommand*\theenumiv{\@arabic\c@enumiv}%
}%
\sloppy\clubpenalty4000 \widowpenalty4000
\sfcode`\.=\@m
}{%
\if@bib@break@
\def\@noitemerr{%
\@latex@warning{%
\string\BreakBibliography\space at begin of `thebibliography'
environment\MessageBreak
or following \string\BreakBibliography}%
}%
\else
\def\@noitemerr{%
\@latex@warning{%
Empty `thebibliography' environment or
\string\BreakBibliography\MessageBreak
before end of `thebibliography' environment}%
}%
\fi
\endlist
\if@bib@break@
\else
\bib@after@hook
\let\bib@before@hook\@empty
\let\bib@after@hook\@empty
\fi
\bib@endhook
}
% \end{macrocode}
% \begin{macro}{\if@bib@break@}
% \changes{v2.98c}{2008/02/15}{Neu (intern)}^^A
% \begin{macro}{\no@bib@break}
% \changes{v2.98c}{2008/02/15}{Neu (intern)}^^A
% \begin{macro}{\@bib@break}
% \changes{v2.98c}{2008/02/15}{Neu (intern)}^^A
% Dieser Hilfsschalter arbeitet immer global!
% \begin{macrocode}
\newif\if@bib@break@
\newcommand{\no@bib@break}{\global\let\if@bib@break@\iffalse}
\newcommand*{\@bib@break}{\global\let\if@bib@break@\iftrue}
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \begin{macro}{\bib@before@hook}
% \changes{v2.98c}{2008/02/15}{Neu (intern)}^^A
% \begin{macro}{\bib@after@hook}
% \changes{v2.98c}{2008/02/15}{Neu (intern)}^^A
% \begin{macrocode}
\newcommand*{\bib@before@hook}{}
\newcommand*{\bib@after@hook}{}
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{environment}
%
% \begin{macro}{\BreakBibliography}
% \changes{v2.98c}{2008/02/15}{Neu}^^A
% Diese Anweisung unterbricht normalerweise das Literaturverzeichnis für ein
% paar eigene Anweisungen (z. B. Unterüberschriften). Wenn jedoch nicht das
% \KOMAScript-Literaturverzeichnis verwendet wird, dann gibt es eine Warnung
% aus.
% \begin{macrocode}
\newcommand{\BreakBibliography}[1]{%
\ClassWarning{\KOMAClassName}{%
You've used \string\BreakBibliography\space either outside of\MessageBreak
the bibliography or `thebibliography' was redefined\MessageBreak
incompatible, e.g., using a bibliography package.\MessageBreak
\string\BreakBibliography\space ignored%
}%
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\AfterBibliographyPreamble}
% \changes{v2.98c}{2008/02/15}{Neu}^^A
% \begin{macro}{\AtEndBibliography}
% \changes{v2.98c}{2008/02/15}{Neu}^^A
% Zwei neue Anweisungen, um am Anfang des Literaturverzeichnisses, nach
% Überschrift und Präambel, und am Ende des Literaturverzeichnisses, nach
% Abschluss der Liste, Code einschleusen zu können. Das funktioniert natürlich
% nur so lange, wie keine Paket verwendet wird, das die Umgebung umdefiniert.
% \begin{macrocode}
\newcommand{\AfterBibliographyPreamble}{\g@addto@macro\bib@before@hook}
\newcommand{\AtEndBibliography}{\g@addto@macro\bib@after@hook}
% \end{macrocode}
% \end{macro}
% \end{macro}
%
% \iffalse
%
% \fi
%
% \iffalse
%!letter>
% \fi
%
% \Finale
%
\endinput
%
% end of file `scrkernel-bibliography.dtx'
%%% Local Variables:
%%% mode: doctex
%%% TeX-master: t
%%% End: