summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/koma-script/source/scrkernel-bibliography.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/koma-script/source/scrkernel-bibliography.dtx')
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-bibliography.dtx661
1 files changed, 333 insertions, 328 deletions
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-bibliography.dtx b/macros/latex/contrib/koma-script/source/scrkernel-bibliography.dtx
index a00422db94..a2c58a9e4e 100644
--- a/macros/latex/contrib/koma-script/source/scrkernel-bibliography.dtx
+++ b/macros/latex/contrib/koma-script/source/scrkernel-bibliography.dtx
@@ -1,8 +1,7 @@
-% \CheckSum{421}
% \iffalse meta-comment
% ======================================================================
% scrkernel-bibliography.dtx
-% Copyright (c) Markus Kohm, 2002-2019
+% Copyright (c) Markus Kohm, 2002-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -18,54 +17,17 @@
% 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-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-bibliography.dtx 3390 2019-11-18 17:09:35Z kohm $
+%%% From File: $Id: scrkernel-bibliography.dtx 3773 2022-03-29 06:27:55Z 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) $
+ \filedate$Date: 2022-03-29 08:27:55 +0200 (Tue, 29 Mar 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 1872 $
+ \filerevision$Revision: 3773 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-bibliography.dtx}%
@@ -74,66 +36,95 @@
(bibliography)]%
}%
\reserved@a
-% \iffalse
-\documentclass[parskip=half-]{scrdoc}
-\usepackage[english,ngerman]{babel}
-\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}
-
+\documentclass[USenglish]{koma-script-source-doc}
+\usepackage{babel}
+\usepackage{hvlogos}
+\setcounter{StandardModuleDepth}{2}
\begin{document}
- \maketitle
- \tableofcontents
- \DocInput{\filename}
+\DocInput{scrkernel-bibliography.dtx}
\end{document}
%</dtx>
-% \fi
-% \selectlanguage{ngerman}
+% \fi^^A meta-comment
+%
+% \changes{v2.95}{2002/06/30}{new by splitting \file{scrclass.dtx}}
+% \changes{v3.36}{2022/02/21}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/02/21}{whole implementation documentation in English}
+%
+% \GetFileInfo{scrkernel-bibliography.dtx}
+% \title{Bibliography and References with
+% \href{https://komascript.de}{\KOMAScript} Classes and Packages}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% \file{scrkernel-bibliography.dtx} provides the usual functionality for the
+% bibliography or references. In comparison with the standard classes
+% several additions are available. Nevertheless it is fully compatible with
+% the known features of the standard classes.
+% \end{abstract}
+% \tableofcontents
+%
+% \section{User Manual}
+%
+% You can find the user documentation of the commands implemented in
+% \file{scrkernel-bibliography.dtx} in the \KOMAScript{} manual, either the
+% German \file{scrguide} or the English \file{scrguien}.
+%
%
-% \changes{v2.95}{2002/06/30}{%
-% erste Version aus der Aufteilung von \texttt{scrclass.dtx}}
+% \MaybeStop{\PrintIndex}
%
-% \section{Literaturverzeichnis}
+% \section{Implementation of Bibliography or References}
%
-% Das Literaturverzeichnis unterscheidet sich bei \KOMAScript{} nicht
-% wesentlich von den Standardklassen.
+% Bibliography or references are not available with the \KOMAScript{} letter
+% class.
+% \begin{macrocode}
+%<*!letter>
+% \end{macrocode}
%
-% Briefe haben kein Literaturverzeichnis.
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \subsection{Bibliography styles}
%
-% \iffalse
-%<*!letter>
-% \fi
+% \KOMAScript{} provides styles for the bibliography or references. This is
+% similar to the redefinition of \cs{@openbib@code} and \cs{newblock} with the
+% standard classes, but much more configurable.
%
-% \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}%^^A
-% \changes{v3.17}{2015/03/12}{interne Speicherung des Werts für Option
-% \texttt{bibliography}}%^^A
-% 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{command}{\newbibstyle}
+% \changes{v2.98c}{2008/02/15}{added}
+% \changes{v3.17}{2015/03/12}{using internal storage of options \opt{bibliography}}
+% Defining new bibliography style:
+% \begin{quote}
+% \cs{newbibstyle}\oarg{parent style}\marg{style name}\marg{style code}
+% \end{quote}
+% The command defines an internal command \cs{scr@bibstyle@\meta{style name}},
+% that can be used to activate a bibliography style. If the \meta{parent
+% style} is given, the code of the \meta{parent style} is executed before the
+% \meta{style code}.
+% \begin{macro}{\@openbib@code}
+% \changes{v2.3g}{1996/01/14}{added}
+% \changes{v2.98c}{2008/02/15}{earlier definition}
+% Typically the \meta{style code} redefines the macro \cs{@openbib@code} and
+% \cs{newblock}.
+% The \cs{@openbib@code} is executed at the very beginning of a
+% bibliography. Originally it has been used to implement the standard option
+% \opt{openbib}. \KOMAScript{} uses it for compatibility for all bibliography
+% styles.
+% \begin{command}{\newblock}
+% \changes{v2.3g}{1996/01/14}{initialization changed}
+% \changes{v2.98c}{2008/02/15}{earlier definition}
+% The command \cs{newblock} is used inside bibliography entries to mark a
+% \emph{new block}. Usually such new blocks are inserted after the author and
+% after the title. But the user or \BibTeX{} style is free to use it different.
+% Both are initialized empty (before the code of a parent
+% style is executed.
+% \begin{macro}{\bib@beginhook,\bib@endhook}
+% \changes{v2.98c}{2008/02/15}{added}
+% Also \cs{bib@beginhook} and \cs{bib@endhook} are initialized empty. So
+% activation of a new bibliography style always removes the hook
+% code. Redefining an already existing style is not supported and results in
+% an error.
% \begin{macrocode}
+%<*option>
\newcommand{\newbibstyle}[3][]{%
\scr@ifundefinedorrelax{scr@bibstyle@#2}{%
\scr@ifundefinedorrelax{scr@bibstyle@#1}{%
@@ -154,11 +145,12 @@
\let\bib@endhook\@empty
% \end{macrocode}
% \begin{macro}{\scr@current@bibstyle}
-% \changes{v3.17}{2015/03/12}{Neu (intern)}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% Das Makro \cs{scr@current@bibstyle} wird benötigt, um den aktuellen Wert von
-% Option \texttt{bibliography} korrigieren zu können. Es wird direkt vom Stil
-% definiert, der auch die Korrektur des Optionenwerts durchführt.
+% \changes{v3.17}{2015/03/12}{added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% \changes{v3.36}{2022/02/21}{add expanded name to list}
+% To be able to change the current value of option \opt{bibliography} we need
+% to know the current style and save it in \cs{scr@current@bibstyle}. We also
+% have to correct the value in the storage by activating a style.
% \begin{macrocode}
\@ifundefined{scr@current@bibstyle}{}{%
\Ifstr{\scr@current@bibstyle}{}{}{%
@@ -176,7 +168,11 @@
\csname scr@bibstyle@#1\endcsname
#3%
}%
- \g@addto@macro\scr@bibstylelist{, `#2'}%
+ \ifx\scr@bibstylelist\@empty
+ \edef\scr@bibstylelist{`#2'}%
+ \else
+ \edef\scr@bibstylelist{\scr@bibstylelist, `#2'}%
+ \fi
}%
}{%
\ClassError{\KOMAClassName}{bibliography style `#2' already exists}{%
@@ -189,54 +185,39 @@
}
% \end{macrocode}
% \begin{macro}{\scr@bibstyle@}
-% \changes{v2.98c}{2008/02/15}{Neu (intern)}%
-% Nur ein Dummy, wenn kein Elternstil existiert.
+% \changes{v2.98c}{2008/02/15}{added}
+% Dummy of the empty parent style.
% \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.
+% \end{macro}^^A \scr@bibstyle@
+% The hook macros are reserved.
% \begin{macrocode}
\newcommand*{\bib@beginhook}{}
\newcommand*{\bib@endhook}{}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \bib@beginhook,\bib@endhook
% \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)}%^^A
-% \changes{v2.98c}{2008/02/15}{wird nun früher definiert}%^^A
-% 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}%^^A
-% \changes{v2.98c}{2008/02/15}{wird nun früher definiert}%^^A
-% \begin{macrocode}
-\newcommand*{\scr@bibstylelist}{\@gobble}
+% \changes{v2.98c}{2008/02/15}{added}
+% \changes{v3.36}{2022/02/21}{\cs{@gobble} removed}
+% \cs{scr@bibstylelist} is a printable comma-separated list of all known
+% styles. Single quotes are used to quote the single styles. It is designated
+% to be used in messages.
+% \begin{macrocode}
+\newcommand*{\scr@bibstylelist}{}
+% \end{macrocode}
+% And also \cs{@openbib@code} and \cs{newblock} are reserved.
+% \begin{macrocode}
\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)}%^^A
-% Der Stil \texttt{oldstyle} entspricht hingegen der Voreinstellung.
+% \end{macro}^^A \scr@bibstylelist
+% \begin{macro}{\scr@bibstyle@openstyle,\scr@bibstyle@oldstyle}
+% \changes{v2.98c}{2008/02/15}{added}
+% The bibliography style \texttt{openstyle} corresponds to standard option
+% \opt{openbib}. The \cs{newblock} starts a new paragraph.
+% Style \texttt{oldstyle} is the default style where \cs{newblock} inserts a
+% small horizontal distance only.
% \begin{macrocode}
\newbibstyle{openstyle}{%
\renewcommand*{\@openbib@code}{%
@@ -252,31 +233,33 @@
}
\scr@bibstyle@oldstyle
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \scr@bibstyle@openstyle,\scr@bibstyle@oldstyle
+% \end{command}^^A \newblock
+% \end{macro}^^A \@openbib@code
+% \end{command}^^A \newbibstyle
%
%
-% \subsubsection{Überschrift des Literaturverzeichnisses}
+% \subsection{Bibliography heading}
%
% \begin{macro}{\bib@heading}
-% \changes{v2.3h}{1995/01/21}{neu (intern)}%^^A
-% \changes{v2.6c}{2000/06/10}{die Präambel wird gesetzt}%^^A
-% \changes{v2.7b}{2001/01/05}{\cs{setchapterpreamble} wird verwendet}%^^A
-% \changes{v2.7j}{2001/06/27}{Setzen der Präambel in die
-% \texttt{thebibliography}-Umgebung verschoben}%^^A
-% \changes{v2.98c}{2008/02/15}{wird nun früher definiert}%^^A
-% \changes{v3.10}{2011/08/31}{\cs{MakeMarkcase} wird beachtet}%^^A
-% \changes{v3.12}{2012/02/06}{\cs{ifbib@leveldown} wird beachtet}%^^A
-% \changes{v3.13b}{2014/10/10}{running head with \texttt{leveldown}%^^A
-% fixed}%^^A
-% \changes{v3.25}{2017/10/13}{use always \cs{@mkright} and \cs{@mkdouble}}%^^A
-% \changes{v3.25}{2017/10/13}{using \cs{bibliography@heading}}%^^A
+% \changes{v2.3h}{1995/01/21}{added}
+% \changes{v2.6c}{2000/06/10}{printing preamble}
+% \changes{v2.7b}{2001/01/05}{using \cs{setchapterpreamble}}
+% \changes{v2.7j}{2001/06/27}{printing preamble moved to \env{thebibliography}}
+% \changes{v2.98c}{2008/02/15}{defined ealier}
+% \changes{v3.10}{2011/08/31}{using \cs{MakeMarkcase}}
+% \changes{v3.12}{2012/02/06}{using \cs{ifbib@leveldown}}
+% \changes{v3.13b}{2014/10/10}{running head with \texttt{leveldown} fixed}
+% \changes{v3.25}{2017/10/13}{using always \cs{@mkright} and \cs{@mkdouble}}
+% \changes{v3.25}{2017/10/13}{using \cs{bibliography@heading}}
% \begin{macro}{\bibliography@heading}
-% \changes{v3.25}{2017/10/13}{neu (intern)}
-% \changes{v3.26}{2018/09/03}{Verwendung von \cs{addsecmark}
-% oder \cs{subsectionmark} statt \cs{@mkright}}%^^A
-% Befehl zum Setzen der Überschrift des Literaturverzeichnisses.
+% \changes{v3.25}{2017/10/13}{added}
+% \changes{v3.26}{2018/09/03}{using \cs{addsecmark} or \cs{subsectionmark}
+% instead of \cs{@mkright}}
+% \cs{bib@heading} runs the more generic \cs{bibliography@heading} with text
+% \cs{refname} resp. \cs{bibname}. This indirect approach has been
+% implemented, to that \pkg{biblatex} can simply call \cs{bibliography} with
+% different texts for multiple bibliographies.
% \begin{macrocode}
\newcommand*{\bib@heading}{%
%<article> \bibliography@heading{\refname}%
@@ -300,46 +283,78 @@
\fi
}%
% \end{macrocode}
-% \end{macro}
-% \end{macro}%
+% \end{macro}^^A \bibliography@heading
+% \end{macro}^^A \bib@heading
%
%
-% \subsection{Optionen für das Literaturverzeichnis}
+% \subsection{Options}
%
% \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}%^^A
-% 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
-% \changes{v3.17}{2015/03/12}{interne Speicherung der Werte}%^^A
-% \changes{v3.25}{2017/10/13}{use always \cs{@mkright} and
-% \cs{@mkdouble}}%^^A
-% \changes{v3.25}{2017/10/13}{redefines \cs{bibliography@heading} instead of
-% \cs{bib@heading}}%^^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)}%^^A
-% Für den ab Version~3.12 neuen Wert \texttt{leveldown} und dessen
-% Gegenstück \texttt{standardlevel} wird außerdem ein Schalter benötigt.
+% \changes{v2.98c}{2008/02/15}{added}
+% \changes{v3.10}{2011/08/31}{using \cs{MakeMarkcase}}
+% \changes{v3.12}{2013/02/06}{new value \opt{leveldown}}
+% \changes{v3.12}{2013/02/06}{new value \opt{standardlevel}}
+% \changes{v3.12}{2013/03/05}{adapted to changes of \pkg*{scrbase}}
+% \changes{v3.12}{2013/09/28}{using \cs{addxcontentsline} instead of
+% \cs{addcontentsline}}
+% \changes{v3.12}{2013/09/28}{do not write chapter entries to other directories}
+% \changes{v3.17}{2015/03/12}{using internal value storage}
+% \changes{v3.25}{2017/10/13}{using always \cs{@mkright} and \cs{@mkdouble}}
+% \changes{v3.25}{2017/10/13}{redefining \cs{bibliography@heading} instead of
+% \cs{bib@heading}}
+% \KOMAScript provides several configurations for the bibliography or
+% references using a single option.
+% \begin{macro}{\bib@leveldownfalse,\bib@leveldowntrue,\ifbib@leveldown}
+% \changes{v3.12}{2013/02/06}{added}
+% The boolean \cs{ifbib@leveldown} is used to allow the
+% bibliography/references have a lower heading level.
% \begin{macrocode}
\newif\ifbib@leveldown
+% \end{macrocode}
+% \end{macro}
+% The supported values for option \opt{bibliography} are:
+% \begin{macrocode}
\KOMA@key{bibliography}{%
\scr@ifundefinedorrelax{scr@bibstyle@#1}{%
\KOMA@set@ncmdkey{bibliography}{@tempa}{%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=notoc}:] (default) don't add the bibliography/references to the
+% table of contents.
+% \end{description}
+% \begin{macrocode}
{notoc}{0},{nottotoc}{0},{plainheading}{0},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=totoc}:] add the bibliography/references to the table of
+% contents, but do not number it.
+% \end{description}
+% \begin{macrocode}
{totoc}{1},{toc}{1},{notnumbered}{1},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=numbered}:] number the bibliography/references and so also add
+% it to the table of contents.
+% \end{description}
+% \begin{macrocode}
{numbered}{2},{totocnumbered}{2},{tocnumbered}{2},{numberedtotoc}{2},%
{numberedtoc}{2},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=leveldown}:] don't use the top heading level (chapters with
+% \cls*{scrbook} or \cls*{scrreprt}, sections with \cs*{scrartcl}) but one
+% level lower (sections with \cls*{scrbook} or \cls*{scrreprt}, subsection
+% with \cs*{scrartcl}) for the bibliography/references.
+% \end{description}
+% \begin{macrocode}
{leveldown}{3},%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=standardlevel}:] use the top heading level (chapters with
+% \cls*{scrbook} or \cls*{scrreprt}, sections with \cs*{scrartcl}) for the
+% bibliography/references.
+% \end{description}
+% \begin{macrocode}
{standardlevel}{4}%
}{#1}%
\ifcase \@tempa\relax % notoc
@@ -375,11 +390,11 @@
%<*article>
\ifbib@leveldown
% \end{macrocode}
-% \changes{v3.23}{2017/02/23}{Verwendung von \cs{ext@toc}}%^^A
-% \changes{v3.25}{2017/10/13}{Verwendung von \cs{addsubsectiontocentry} statt
-% \cs{addxcontentsline}}%^^A
-% Ab Version 3.23 wird das von \textsf{tocbasic} bereitgestellte
-% \cs{ext@toc} statt dem hart codierten \texttt{toc} verwendet.
+% \changes{v3.23}{2017/02/23}{using \cs{ext@toc}}
+% \changes{v3.25}{2017/10/13}{using \cs{addsubsectiontocentry} instead of
+% \cs{addxcontentsline}}
+% From version 3.23 \cs{ext@toc} of \pkg*{tocbasic} is used instead of hard
+% coded |toc|.
% \begin{macrocode}
\subsection*{%
\addsubsectiontocentry{}{##1}%
@@ -447,6 +462,15 @@
\bib@leveldownfalse
\fi
}{%
+% \end{macrocode}
+% \begin{description}
+% \item[\opt{=\meta{style}}:] all other values are names of styles.
+% \begin{description}
+% \item[ToDo:] Here we should test for valid style names and report an
+% unknown value for unknown styles.
+% \end{description}
+% \end{description}
+% \begin{macrocode}
\FamilyKeyStateProcessed
\edef\reserved@a{%
\noexpand\KOMA@kav@remove{.\KOMAClassFileName}{bibliography}%
@@ -456,131 +480,120 @@
}%
}
% \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}%^^A
-% \changes{v2.98c}{2008/02/15}{obsolete}%^^A
-% \changes{v3.01a}{2008/11/21}{standard statt obsolet}%^^A
-% 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{macro}{\@openbibfalse,\@openbibtrue,\if@openbib}
+% \changes{v2.3g}{1996/01/14}{removed}
+% \end{macro}
+% \changes{v2.3g}{1996/01/14}{re-implemented}
+% \changes{v2.98c}{2008/02/15}{obsolete}
+% \changes{v3.01a}{2008/11/21}{standard instead of obsolete}
+% The standard option \opt{openbib} is mapped to \opt{bibliography=openstyle}.
% \begin{macrocode}
\KOMA@DeclareStandardOption{openbib}{bibliography=openstyle}
% \end{macrocode}
% \end{option}
%
% \begin{option}{bibtotoc}
-% \changes{v2.3h}{1995/01/21}{neue Option}%^^A
-% \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}%^^A
-% \changes{v2.7j}{2001/06/27}{Setzen der Präambel in die
-% thebibliography-Umgebung verschoben}%^^A
-% \changes{v2.98c}{2008/02/15}{obsolete}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
+% \changes{v2.3h}{1995/01/21}{added}
+% \changes{v2.6b}{2000/05/26}{\cs{@mkboth} added}
+% \changes{v2.6c}{2000/06/10}{\cs{bibpreamble} added}
+% \changes{v2.7}{2001/01/03}{braces fixed}
+% \changes{v2.7j}{2001/06/27}{preamble printing moved to \env{thebibliography}}
+% \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}%^^A
-% \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}%^^A
-% \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}%^^A
-% \changes{v2.9p}{2003/07/07}{Nummerierung im Kolumnentitel}%^^A
-% \changes{v2.98c}{2008/02/15}{obsolete}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
-% 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.
+% \changes{v2.3h}{1995/01/21}{added}
+% \changes{v2.6b}{2000/05/26}{\cs{@mkboth} added}
+% \changes{v2.6c}{2000/06/10}{\cs{bibpreamble} added}
+% \changes{v2.7}{2001/01/03}{braces fixed}
+% \changes{v2.7b}{2001/01/05}{using \cs{setchapterpreamble}}
+% \changes{v2.7i}{2001/05/17}{\cs{chapter} instead of \cs{addchap}}
+% \changes{v2.7j}{2001/06/27}{preamble printing moved to \env{thebibliography}}
+% \changes{v2.9p}{2003/07/07}{number in running head}
+% \changes{v2.98c}{2008/02/15}{obsolete}
+% \changes{v3.01a}{2008/11/20}{deprecated}
+% Deprecated options \opt{bibtotoc} and \opt{bibtotocnumbered} are mapped to
+% \opt{bibliography=totoc} resp. \opt{bibliography=totocnumbered}.
% \begin{macrocode}
\KOMA@DeclareDeprecatedOption{bibtotoc}{bibliography=totoc}
\KOMA@DeclareDeprecatedOption{bibtotocnumbered}{bibliography=totocnumbered}
-% \end{macrocode}
-% \end{option}
-% \end{option}
-%
-%
-% \iffalse
%</option>
-%<*body>
-% \fi
+% \end{macrocode}
+% \end{option}^^A bibtotocnumbered
+% \end{option}^^A bibtotoc
%
%
-% \subsection{Standardbezeichner}
+% \subsection{Names}
%
-% \begin{macro}{\refname}
-% \begin{macro}{\bibname}
-% Je nach Klasse wird \cs{refname} oder \cs{bibname} verwendet.
+% \begin{command}{\refname,\bibname}
+% \changes{v3.36}{2022/02/15}{explicit definition for English languages}
+% Depending on the class either \cs{refname} or \cs{bibname} is used.
% \begin{macrocode}
-%<article>\newcommand*\refname{References}
-%<book|report>\newcommand*\bibname{Bibliography}
+%<*body>
+%<*article>
+\newcommand*\refname{References}
+\providecaptionname{american,australian,british,canadian,english,newzealand,%
+ UKenglish,ukenglish,USenglish,usenglish}\refname{References}
+%</article>
+%<*book|report>
+\newcommand*\bibname{Bibliography}
+\providecaptionname{american,australian,british,canadian,english,newzealand,%
+ UKenglish,ukenglish,USenglish,usenglish}\bibname{Bibliography}
+%</book|report>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{command}
%
%
-% \subsection{Definitionen für das Literaturverzeichnis}
+% \subsection{Printing the bibliography or references}
%
-% \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{command}{\setbibpreamble}
+% \changes{v2.6c}{2000/06/10}{added}
+% \changes{v2.7j}{2001/05/27}{\cs{renewcommand} replaced by \cs{def} for
+% better \pkg{natbib} compatibility}
% \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.
+% \changes{v2.6c}{2000/06/10}{neue (intern)}
+% \changes{v2.6d}{2000/07/20}{\cs{let} replaced by \cs{newcommand*}}
+% \changes{v2.8q}{2002/01/10}{\cs{newcommand*} replaced by \cs{let}}
+% \changes{v2.7j}{2001/05/27}{preamble printing moved to \env{thebibliography}}
+% \cs{bibpreamble} should be interpreted as an internal macro. The user
+% command name space has been used for compatibility with \pkg{natbib}
+% only. The official \KOMAScript{} user interface is using
+% \begin{quote}
+% \cs{setbibpreamble}\marg{preamble}
+% \end{quote}
+% Also for compatibility \cs{bibpreamble} is not set by \cs{bib@heading} but
+% inside environment \env{theenvironment}.
% \begin{macrocode}
\newcommand*{\bibpreamble}{\relax}
\let\bibpreamble\relax
\newcommand{\setbibpreamble}[1]{\def\bibpreamble{#1}}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \bibpreamble
+% \end{command}^^A \setbibpreamble
%
-% \begin{Length}{bibindent}
-% Der Einzug der Einträge bei \texttt{openbib}. Voreingestellt sind
-% 1,5\,em.
+% \begin{length}{bibindent}
+% The indent of entries with option \opt{bibliography=openstyle}. Default is 1.5\,em.
% \begin{macrocode}
\newdimen\bibindent
\bibindent=1.5em
% \end{macrocode}
-% \end{Length}
+% \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.
+% \changes{v2.2a}{1995/02/01}{for \cls*{scrartcl} \cs{bibname} replaced by
+% \cs{refname}}
+% \changes{v2.3h}{1995/01/21}{using \cs{bib@heading}}
+% \changes{v2.8q}{2002/01/10}{handling empty preamble}
+% \changes{v2.9o}{2003/03/06}{fix of comparing \cs{bibpreamble} with \cs{@empty}}
+% \changes{v2.98c}{2008/02/15}{new hooks \cs{bib@before@hook} and
+% \cs{bib@after@hook}}
+% This environment is used to print the bibliography or references. Note: This
+% environment is redefined by almost all bibliography packages like
+% \pkg{natbib} or \pkg{biblatex}. No one of these supports all features of
+% \KOMAScript{}. So if such a package is used, users should consult the
+% package manual instead of using a \KOMAScript{} feature.
% \begin{macrocode}
\newenvironment{thebibliography}[1]{%
\if@bib@break@
@@ -601,9 +614,10 @@
\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{command}{\BreakBibliography}
+% \changes{v2.98c}{2008/02/15}{added}
+% Redefining \cs{BreakBibliography} to work with our definition of
+% \env{thebibliography}.
% \begin{macrocode}
\renewcommand{\BreakBibliography}[1]{%
\@bib@break
@@ -612,9 +626,9 @@
\begin{thebibliography}{#1}
}%
% \end{macrocode}
-% \end{macro}
+% \end{command}
% \begin{macrocode}
-% Hier geht es jetzt mit \texttt{thebibliography} weiter.
+% Start the list for the entries.
\list{%
\@biblabel{\@arabic\c@enumiv}%
}{%
@@ -662,39 +676,31 @@
\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{macro}{\if@bib@break@,\no@bib@break,\@bib@break}
+% \changes{v2.98c}{2008/02/15}{added}
+% To be used as global switch.
+% \begin{description}
+% \item[ToDo:] Maybe redefine \cs{@bib@break@true} and \cs{@bib@break@false}.
+% \end{description}
% \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
+% \end{macro}^^A \if@bib@break@,\no@bib@break,\@bib@break
+% \begin{macro}{\bib@before@hook,\bib@after@hook}
+% \changes{v2.98c}{2008/02/15}{added}
% \begin{macrocode}
\newcommand*{\bib@before@hook}{}
\newcommand*{\bib@after@hook}{}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{environment}
+% \end{macro}^^A \bib@before@hook,\bib@after@hook
+% \end{environment}^^A thebibliography
%
-% \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{command}{\BreakBibliography}
+% \changes{v2.98c}{2008/02/15}{added}
+% The initial definition is a do nothing but warn, because the command makes
+% sense only inside \env{thebibliography}.
% \begin{macrocode}
\newcommand{\BreakBibliography}[1]{%
\ClassWarning{\KOMAClassName}{%
@@ -705,37 +711,36 @@
}%
}
% \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.
+% \end{command}^^A \BreakBibliography
+%
+% \begin{command}{\AfterBibliographyPreamble,\AtEndBibliography}
+% \changes{v2.98c}{2008/02/15}{added}
+% Add code to the two new hooks inside our definition of
+% \env{thebibliography}. So any bibliography package can break this
+% functionality.
+% Note: The hooks are always emptied by selecting a style using
+% \opt{bibliography=\meta{style name}}.
% \begin{macrocode}
\newcommand{\AfterBibliographyPreamble}{\g@addto@macro\bib@before@hook}
\newcommand{\AtEndBibliography}{\g@addto@macro\bib@after@hook}
+%</body>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{command}
%
-% \iffalse
-%</body>
-% \fi
%
-% \iffalse
+% \begin{macrocode}
%</!letter>
-% \fi
-%
+% \end{macrocode}
+%
% \Finale
-%
+% \PrintChanges
+%
\endinput
-%
-% end of file `scrkernel-bibliography.dtx'
-%%% Local Variables:
-%%% mode: doctex
-%%% TeX-master: t
-%%% End:
+% Local Variables:
+% mode: doctex
+% ispell-local-dictionary: "en_US"
+% eval: (flyspell-mode 1)
+% TeX-master: t
+% TeX-engine: luatex-dev
+% eval: (setcar (or (cl-member "Index" (setq-local TeX-command-list (copy-alist TeX-command-list)) :key #'car :test #'string-equal) (setq-local TeX-command-list (cons nil TeX-command-list))) '("Index" "mkindex %s" TeX-run-index nil t :help "makeindex for dtx"))
+% End: