summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/koma-script/scrkernel-bibliography.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/scrkernel-bibliography.dtx')
-rw-r--r--Master/texmf-dist/source/latex/koma-script/scrkernel-bibliography.dtx661
1 files changed, 661 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-bibliography.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-bibliography.dtx
new file mode 100644
index 00000000000..0522f044522
--- /dev/null
+++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-bibliography.dtx
@@ -0,0 +1,661 @@
+% \CheckSum{419}
+% \iffalse meta-comment
+% ======================================================================
+% scrkernel-bibliography.dtx
+% Copyright (c) Markus Kohm, 2002-2013
+%
+% 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-2013
+%
+% 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 1380 2013-10-01 15:31:55Z mjk $
+%<*driver>
+% \fi
+\ProvidesFile{scrkernel-bibliography.dtx}[2013/09/24 v3.12 KOMA-Script
+ (bibliography)]
+% \iffalse
+\documentclass[halfparskip-]{scrdoc}
+\usepackage[english,ngerman]{babel}
+\usepackage[latin1]{inputenc}
+\CodelineIndex
+\RecordChanges
+\GetFileInfo{scrkernel-bibliography.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}
+%</driver>
+% \fi
+% \selectlanguage{ngerman}
+%
+% \changes{v2.95}{2002/06/30}{%
+% erste Version aus der Aufteilung von \texttt{scrclass.dtx}}
+%
+% \section{Literaturverzeichnis}
+%
+% Das Literaturverzeichnis unterscheidet sich bei \KOMAScript{} nicht
+% wesentlich von den Standardklassen.
+%
+% Briefe haben kein Literaturverzeichnis.
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% \iffalse
+%<*!letter>
+% \fi
+%
+% \iffalse
+%<*option>
+% \fi
+% \subsection{Anweisungen, die für die Optionen benötigt werden}
+%
+% Einige Anweisungen werden über Optionen verändert. Dazu müssen sie aber
+% bereits vor der Abarbeitung der Optionen definiert sein.
+%
+% \subsubsection{Literaturverzeichnisstile}
+%
+% \begin{macro}{\newbibstyle}
+% \changes{v2.98c}{2008/02/15}{Neu}
+% Neue Literaturverzeichnisstile müssen mit dieser Anweisung definiert werden,
+% wenn sie von der Fehlermeldung korrekt angezeigt werden sollen. Das erste,
+% optionale Argument ist der Name eines Elternstils. Das zweite
+% Argument ist der Name des Stils. Das dritte Argument ist Code für den
+% Stil. Darin sollten normalerweise Umdefinierungen für \cs{@openbib@code},
+% \cs{newblock}, \cs{bib@beginhook}, \cs{bib@endhook} enthalten sein. Die
+% genannten Makros werden am Anfang des Stils zurückgesetzt. Danach wird der
+% Elternstil geladen und dann die eigenen Definitionen.
+% \begin{macrocode}
+\newcommand{\newbibstyle}[3][]{%
+ \scr@ifundefinedorrelax{scr@bibstyle@#2}{%
+ \scr@ifundefinedorrelax{scr@bibstyle@#1}{%
+ \ClassError{\KOMAClassName}{%
+ parent bibliography style `#1' does not exist}{%
+ You've told me to define the new bibliography style `#2'\MessageBreak
+ to be a child of bibliography style `#1', but bibliography
+ style\MessageBreak
+ `#1' does not exist.\MessageBreak
+ You have to remove the parent declaration or use an existing parent!
+ See the KOMA-Script manual for more information.%
+ }%
+ }{%
+ \@namedef{scr@bibstyle@#2}{%
+ \let\@openbib@code\@empty
+ \let\newblock\@empty
+ \let\bib@beginhook\@empty
+ \let\bib@endhook\@empty
+ \csname scr@bibstyle@#1\endcsname
+ #3%
+ }%
+ \g@addto@macro\scr@bibstylelist{, `#2'}%
+ }%
+ }{%
+ \ClassError{\KOMAClassName}{bibliography style `#2' already exists}{%
+ You've told me to define the new bibliography style `#2',\MessageBreak
+ but this style already exists.\MessageBreak
+ You have to use another bibliography style name.\MessageBreak
+ See the KOMA-Script manual for more information.%
+ }%
+ }%
+}
+% \end{macrocode}
+% \begin{macro}{\scr@bibstyle@}
+% \changes{v2.98c}{2008/02/15}{Neu (intern)}%
+% Nur ein Dummy, wenn kein Elternstil existiert.
+% \begin{macrocode}
+\newcommand*{\scr@bibstyle@}{}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\bib@beginhook}
+% \changes{v2.98c}{2008/02/15}{Neu (intern)}%
+% \begin{macro}{\bib@endhook}
+% \changes{v2.98c}{2008/02/15}{Neu (intern)}%
+% Die beiden Haken, wie sie durch den Literaturverzeichnisstil vorgegeben
+% werden.
+% \begin{macrocode}
+\newcommand*{\bib@beginhook}{}
+\newcommand*{\bib@endhook}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\scr@bibstylelist}
+% \changes{v2.98c}{2008/02/15}{Neu (intern)}%
+% Liste der mit \cs{newbibstyle} definierten und daher bekannten
+% Literaturverzeichnisstile.
+% \begin{macro}{\@openbib@code}
+% \changes{v2.3g}{1996/01/14}{Neu (intern)}
+% \changes{v2.98c}{2008/02/15}{wird nun früher definiert}
+% Code, der am Anfang des Literaturverzeichnisses ausgeführt wird und
+% normalerweise ursprünglich für die \texttt{openbib}-Funktionalität verwendet
+% wurde. Inzwischen wird er für die komplette Stilauswahl verwendet.
+% \begin{macro}{\newblock}
+% \changes{v2.3g}{1996/01/14}{Grundeinstellung geändert}
+% \changes{v2.98c}{2008/02/15}{wird nun früher definiert}
+% \begin{macrocode}
+\newcommand*{\scr@bibstylelist}{\@gobble}
+\newcommand*{\@openbib@code}{}
+\newcommand*{\newblock}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\scr@bibstyle@openstyle}
+% \changes{v2.98c}{2008/02/15}{Neu (intern)}%
+% Vordefiniert sind zwei Stile. Mit dem Bibliographystil \texttt{openstyle}
+% kann eine alternative Darstellung der Literatureinträge aktiviert
+% werden. Dabei fügt \cs{newblock} keinen horizontalen Abstand mehr ein,
+% sondern beginnt einen neuen Absatz (in Form einer neuen Zeile).
+% \begin{macro}{\scr@bibstyle@oldstyle}
+% \changes{v2.98c}{2008/02/15}{Neu (intern)}
+% Der Stil \texttt{oldstyle} entspricht hingegen der Voreinstellung.
+% \begin{macrocode}
+\newbibstyle{openstyle}{%
+ \renewcommand*{\@openbib@code}{%
+ \advance\leftmargin\bibindent
+ \itemindent -\bibindent
+ \listparindent \itemindent
+ \parsep \z@
+ }%
+ \renewcommand*{\newblock}{\par}%
+}
+\newbibstyle{oldstyle}{%
+ \renewcommand*{\newblock}{\hskip .11em\@plus.33em\@minus.07em}%
+}
+\scr@bibstyle@oldstyle
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsubsection{Überschrift des Literaturverzeichnisses}
+%
+% \begin{macro}{\bib@heading}
+% \changes{v2.3h}{1995/01/21}{neu (intern)}%
+% \changes{v2.6c}{2000/06/10}{die Präambel wird gesetzt}%
+% \changes{v2.7b}{2001/01/05}{\cs{setchapterpreamble} wird verwendet}%
+% \changes{v2.7j}{2001/06/27}{Setzen der Präambel in die
+% \texttt{thebibliography}-Umgebung verschoben}%
+% \changes{v2.98c}{2008/02/15}{wird nun früher definiert}%
+% \changes{v3.10}{2011/08/31}{\cs{MakeMarkcase} wird beachtet}%
+% \changes{v3.12}{2012/02/06}{\cs{ifbib@leveldown} wird beachtet}%
+% Befehl zum Setzen der Überschrift des Literaturverzeichnisses.
+% \begin{macrocode}
+\newcommand*\bib@heading{%
+%<*article>
+ \ifbib@leveldown
+ \subsection*{\refname}%
+ \ifx\@mkboth\@gobble\else\markright{\MakeMarkcase{\refname}}\fi
+ \else
+ \section*{\refname}%
+ \@mkboth{\MakeMarkcase{\refname}}{\MakeMarkcase{\refname}}%
+ \fi
+%</article>
+%<*book|report>
+ \ifbib@leveldown
+ \section*{\bibname}%
+ \ifx\@mkboth\@gobble\else\markright{\MakeMarkcase{\bibname}}\fi
+ \else
+ \chapter*{\bibname}%
+ \@mkboth{\MakeMarkcase{\bibname}}{\MakeMarkcase{\bibname}}%
+ \fi
+%</book|report>
+}%
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \subsection{Optionen für das Literaturverzeichnis}
+%
+% \begin{option}{bibliography}
+% \changes{v2.98c}{2008/02/15}{Neu}%^^A
+% \changes{v3.10}{2011/08/31}{\cs{MakeMarkcase} wird beachtet}%^^A
+% \changes{v3.12}{2013/02/06}{neuer Wert \texttt{leveldown}}%^^A
+% \changes{v3.12}{2013/02/06}{neuer Wert \texttt{standardlevel}}%^^A
+% \changes{v3.12}{2013/03/05}{an die Änderungen in \textsf{scrbase}
+% angepasst}%^^A
+% \changes{v3.12}{2013/09/28}{Verwendung von \cs{addxcontentsline} statt
+% \cs{addcontentsline}}%^^A
+% \changes{v3.12}{2013/09/28}{Es werden keine Kapiteleinträge in andere
+% Verzeichnisse geschrieben.}%^^A
+% Dies ist der Generalschlüssel für alle Optionen, die das
+% Literaturverzeichnis betreffen. Neu ist, dass verschiedene Stile definiert
+% werden können. Desweiteren kann man \texttt{totoc} und
+% \texttt{totocnumbered} wieder mit \texttt{nottotoc} aufgeben.
+% \begin{macro}{\ifbib@leveldown}
+% \changes{v3.12}{2013/02/06}{neuer Schalter (intern)}
+% Für den ab Version~3.12 neuen Wert \texttt{leveldown} und dessen
+% Gegenstück \texttt{standardlevel} wird außerdem ein Schalter benötigt.
+% \begin{macrocode}
+\newif\ifbib@leveldown
+\KOMA@key{bibliography}{%
+ \scr@ifundefinedorrelax{scr@bibstyle@#1}{%
+ \KOMA@set@ncmdkey{bibliography}{@tempa}{%
+ {notoc}{0},{nottotoc}{0},{plainheading}{0},%
+ {totoc}{1},{toc}{1},{notnumbered}{1},%
+ {numbered}{2},{totocnumbered}{2},{tocnumbered}{2},{numberedtotoc}{2},%
+ {numberedtoc}{2},%
+ {leveldown}{3},%
+ {standardlevel}{4}%
+ }{#1}%
+ \ifcase \@tempa\relax
+ \renewcommand*\bib@heading{%
+%<*article>
+ \ifbib@leveldown
+ \subsection*{\refname}%
+ \ifx\@mkboth\@gobble\else\markright{\MakeMarkcase{\refname}}\fi
+ \else
+ \section*{\refname}%
+ \@mkboth{\MakeMarkcase{\refname}}{\MakeMarkcase{\refname}}%
+ \fi
+%</article>
+%<*book|report>
+ \ifbib@leveldown
+ \section*{\bibname}%
+ \ifx\@mkboth\@gobble\else\markright{\MakeMarkcase{\bibname}}\fi
+ \else
+ \chapter*{\bibname}%
+ \@mkboth{\MakeMarkcase{\bibname}}{\MakeMarkcase{\bibname}}%
+ \fi
+%</book|report>
+ }%
+ \or% totoc
+ \renewcommand*\bib@heading{%
+%<*article>
+ \ifbib@leveldown
+ \subsection*{%
+ \addxcontentsline{toc}{subsection}{\refname}%
+ \refname
+ }%
+ \ifx\@mkboth\@gobble\else\markright{\MakeMarkcase{\refname}}\fi
+ \else
+ \addsec{\refname}
+ \@mkboth{\MakeMarkcase{\refname}}{\MakeMarkcase{\refname}}%
+ \fi
+%</article>
+%<*book|report>
+ \ifbib@leveldown
+ \addsec{\bibname}
+ \else
+ \if@chaptertolists
+ \@chaptertolistsfalse\addchap{\bibname}\@chaptertoliststrue
+ \else
+ \addchap{\bibname}
+ \fi
+ \@mkboth{\MakeMarkcase{\bibname}}{\MakeMarkcase{\bibname}}%
+ \fi
+%</book|report>
+ }%
+ \or% numbered
+ \renewcommand*\bib@heading{%
+%<*article>
+ \ifbib@leveldown
+ \subsection{\refname}%
+ \else
+ \section{\refname}%
+ \@mkboth{\MakeMarkcase{\sectionmarkformat \refname}}%
+ {\MakeMarkcase{\sectionmarkformat \refname}}%
+ \fi
+%</article>
+%<*book|report>
+ \ifbib@leveldown
+ \section{\bibname}%
+ \else
+ \if@chaptertolists
+ \@chaptertolistsfalse\chapter{\bibname}\@chaptertoliststrue
+ \else
+ \chapter{\bibname}
+ \fi
+ \@mkboth{\MakeMarkcase{\chaptermarkformat \bibname}}%
+ {\MakeMarkcase{\chaptermarkformat \bibname}}%
+ \fi
+%</book|report>
+ }
+ \or% leveldown
+ \bib@leveldowntrue
+ \or% standardlevel
+ \bib@leveldownfalse
+ \fi
+ }{%
+ \csname scr@bibstyle@#1\endcsname
+ \FamilyKeyStateProcessed
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{option}
+%
+% \begin{option}{openbib}
+% \changes{v2.3g}{1996/01/14}{\cs{if@openbib} (\cs{@openbibtrue},
+% \cs{@openbibfalse}) entfernt}
+% \changes{v2.3g}{1996/01/14}{Definition der openbib Option neu
+% implementiert}
+% \changes{v2.98c}{2008/02/15}{obsolete}
+% \changes{v3.01a}{2008/11/21}{standard statt obsolet}
+% Mit dieser Option kann eine alternative Darstellung der
+% Literatureinträge aktiviert werden. Dabei fügt \cs{newblock} keinen
+% horizontalen Abstand mehr ein, sondern beginnt einen neuen Absatz
+% (in Form einer neuen Zeile).
+% \begin{macrocode}
+\KOMA@DeclareStandardOption{openbib}{bibliography=openstyle}
+% \end{macrocode}
+% \end{option}
+%
+% \begin{option}{bibtotoc}
+% \changes{v2.3h}{1995/01/21}{neue Option}
+% \changes{v2.6b}{2000/05/26}{\cs{@mkboth} eingefügt}
+% \changes{v2.6c}{2000/06/10}{\cs{bibpreamble} eingefügt}
+% \changes{v2.7}{2001/01/03}{Klammerung korrigiert}
+% \changes{v2.7j}{2001/06/27}{Setzen der Präambel in die
+% thebibliography-Umgebung verschoben}
+% \changes{v2.98c}{2008/02/15}{obsolete}
+% \changes{v3.01a}{2008/11/20}{deprecated}
+% \begin{option}{bibtotocnumbered}
+% \changes{v2.3h}{1995/01/21}{neue Option}
+% \changes{v2.6b}{2000/05/26}{\cs{@mkboth} eingefügt}
+% \changes{v2.6c}{2000/06/10}{\cs{bibpreamble} eingefügt}
+% \changes{v2.7}{2001/01/03}{Klammerung korrigiert}
+% \changes{v2.7b}{2001/01/05}{\cs{setchapterpreamble} wird
+% verwendet}
+% \changes{v2.7i}{2001/05/17}{\cs{chapter} statt \cs{addchap}}
+% \changes{v2.7j}{2001/06/27}{Setzen der Präambel in die
+% thebibliography-Umgebung verschoben}
+% \changes{v2.9p}{2003/07/07}{Nummerierung im Kolumnentitel}
+% \changes{v2.98c}{2008/02/15}{obsolete}
+% \changes{v3.01a}{2008/11/20}{deprecated}
+% Die Option \texttt{bibtotoc} sorgt dafür, dass das
+% Literaturverzeichnis im Inhaltsverzeichnis aufgeführt wird.
+% Demgegenüber erweitert die Option \texttt{bibtotocnumbered} zu einem
+% normalen Kapitel einschließlich Nummerierung.
+% \begin{macrocode}
+\KOMA@DeclareDeprecatedOption{bibtotoc}{bibliography=totoc}
+\KOMA@DeclareDeprecatedOption{bibtotocnumbered}{bibliography=totocnumbered}
+% \end{macrocode}
+% \end{option}
+% \end{option}
+%
+%
+% \iffalse
+%</option>
+%<*body>
+% \fi
+%
+%
+% \subsection{Standardbezeichner}
+%
+% \begin{macro}{\refname}
+% \begin{macro}{\bibname}
+% Je nach Klasse wird \cs{refname} oder \cs{bibname} verwendet.
+% \begin{macrocode}
+%<article>\newcommand*\refname{References}
+%<book|report>\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}
+% \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)}
+% \changes{v2.6d}{2000/07/20}{Makro funktioniert nachdem \cs{let}
+% 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}
+% \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
+%</book|report>
+ \bib@heading
+%<*article>
+ \ifx\bibpreamble\relax\else\ifx\bibpreamble\@empty\else
+ \noindent\bibpreamble\par\nobreak
+ \fi\fi
+%</article>
+ \bib@beginhook
+ \bib@before@hook
+ \fi
+% \end{macrocode}
+% \begin{macro}{\BreakBibliography}
+% \changes{v2.98c}{2008/02/15}{Neu}
+% 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)}
+% \begin{macro}{\no@bib@break}
+% \changes{v2.98c}{2008/02/15}{Neu (intern)}
+% \begin{macro}{\@bib@break}
+% \changes{v2.98c}{2008/02/15}{Neu (intern)}
+% 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)}
+% \begin{macro}{\bib@after@hook}
+% \changes{v2.98c}{2008/02/15}{Neu (intern)}
+% \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}
+% 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}
+% \begin{macro}{\AtEndBibliography}
+% \changes{v2.98c}{2008/02/15}{Neu}
+% 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
+%</body>
+% \fi
+%
+% \iffalse
+%</!letter>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrkernel-bibliography.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End: