Sie sind hier

KOMA-Klassen + chapterbib = ToC als Section nur mit Gefrickel

Moin, erstmal Beispiel:

Hauptdatei

\documentclass{scrreprt}
 
\usepackage{chapterbib}
\usepackage[sectionbib,numbers,comma,sort&compress]{natbib}
 
\begin{document}
\include{test-bib}
\end{document}

test-bib

\chapter{Test}
 
test \cite{HB} und test \cite{Akhavan}
 
\begingroup
\let\chapter\section
\begin{thebibliography}{6}
\bibitem{HB} (a) M. C. Etter, J. C. MacDonald, J. Bernstein, \textsl{Acta Cryst.} \textbf{1990}, \textsl{B46}, 256--262; (b) J. Bernstein, R. E. Davis, L. Shimoni, N.-L. Chang, \textsl{Angew. Chem. Int. Ed. Engl.} \textbf{1995}, \textsl{34}, 1555--1573.
\bibitem{Akhavan} J. Akhavan, \textsl{The Chemistry of Explosives}, 2\textsuperscript{nd} edition, The Royal Society of Chemistry, Cambridge, \textbf{2004}.
\end{thebibliography}
\endgroup

So, die Frage ist nun: mit den klassischen Klassen (z.B. Report) funktioniert das Ganze wie es soll ohne das Codeanhängsel beim Bibliography. Bei KOMA-Klassen muss das da stehen da die Bib sonst als Kapitel gesetzt wird.

A: warum ist das so? :/
B: kann man das evtl. auch anders lösen (NEIN kein bibTeX)?

Danke

Bild von Markus Kohm

Bei natbib wird für die Definition von \bibsection erst geschaut, ob Option sectionbib gesetzt ist, und anschließend geschaut, ob eine der Klassen amsart oder amsbook oder eine Klasse, die \bib@heading definiert verwendet wird. Ggf. wird dann \bibsection noch einmal umdefiniert. Konkret:

\providecommand\bibsection{}
\@ifundefined{chapter}{%
  \renewcommand\bibsection{%
   \section*{\refname\@mkboth{\MakeUppercase{\refname}}{\MakeUppercase{\refname}
}}%
  }%
}{%
  \@ifxundefined\NAT@sectionbib{%
    \renewcommand\bibsection{%
      \chapter*{\bibname\@mkboth{\MakeUppercase{\bibname}}{\MakeUppercase{\bibname}}}%
    }%
  }{%
    \renewcommand\bibsection{%
      \section*{\bibname\ifx\@mkboth\@gobbletwo\else\markright{\MakeUppercase{\bibname}}\fi}%
    }%
  }%
}%
\@ifclassloaded{amsart}{\renewcommand\bibsection{\section*{\refname}}}{}%
\@ifclassloaded{amsbook}{\renewcommand\bibsection{\chapter*{\bibname}}}{}%
\@ifxundefined\bib@heading{}{\let\bibsection\bib@heading}%

Damit setzt natbib selbst bei amsbook, scrbook und scrreprt Option sectionbib außer Kraft. Es gibt nun vier Möglichkeiten für eine Änderung:

  1. Der natbib-Autor dreht die Geschichte so um, dass die Option sectionbib auch bei den genannten Klassen noch ihre Wirkung hat.
  2. Ich baue in KOMA-Script eine zusätzliche Option bibliography=leveldown analog zu listof=leveldown ein.
  3. Du definierst \bibsection in der Präambel selbst wie gewünscht um.
  4. Du definierst \bib@heading in der Präambel selbst wie gewünscht um.

Unabhängig davon gäbe es die Möglichkeit das Paket biblatex zu verwenden.

Die ersten beiden Möglichkeiten bedürfen der Zusammenarbeit mit den entsprechenden Paket-Autoren und werden erst nach einem Update einen Erfolg mit sich bringen. Die übrigens Möglichkeiten sollten unmittelbar umsetzbar sein.

Comments for "KOMA-Klassen + chapterbib = ToC als Section nur mit Gefrickel" abonnieren