PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bibliography als Section, nicht als Chapter



fuzzi
27-02-2009, 21:34
hi,
habe folgendes problem:
in einem chapter "References & Bibliography" sollen als sections "References" und "Bibliography" auftauchen, chapter und sections sollen unnummeriert am ende des inhaltsverzeichnisses stehen. das problem ist: ich schaffe es nicht, die bibliography als section einzubauen, sie erscheint immmer als chapter.
hier ein auszug aus dem code:


\chapter*{References \& Bibliography}
\addcontentsline{toc}{chapter}{References \& Bibliography}
\markboth{References \& Bibliography}{References \& Bibliography}
\section*{References}
\addcontentsline{toc}{section}{References}
\input{./bibliography/references}

\newpage
\section*{Bibliography}
\addcontentsline{toc}{section}{Bibliography}
\renewcommand\bibname{Bibliography}
\nocite{*}
\bibliographystyle{./bibliography/plainnat}
\bibliography{./bibliography/bibliography}

wäre euch dehr dankbar, wenn ihr mir helfen könntet!

fuzzi
27-02-2009, 23:52
bin jetzt einen schritt weiter: habe am anfang der tex-datei folgendes eingefügt:


\makeatletter
\renewenvironment{thebibliography}[1]
{\list{\@biblabel{\@arabic\c@enumiv}}%
{\settowidth\labelwidth{\@biblabel{#1}}%
\leftmargin\labelwidth
\advance\leftmargin\labelsep
\@openbib@code
\usecounter{enumiv}%
\let\p@enumiv\@empty
\renewcommand\theenumiv{\@arabic\c@enumiv}}%
\sloppy
\clubpenalty4000
\@clubpenalty \clubpenalty
\widowpenalty4000%
\sfcode`\.\@m}
{\def\@noitemerr
{\@latex@warning{Empty `thebibliography' environment}}%
\endlist}
\makeatother

die bib ist jetzt wie gewünscht eingebunden, allerdings sind die einträge jetzt etwas anders formatiert als vorher (einrückungen, zeilenabstand und so).

der komplette bibliography-teil der scrbook.cls, die ich verwende, sieht so aus:


\newcommand*\bibname{Bibliography}
\newcommand*{\bibpreamble}{\relax}
\let\bibpreamble\relax
\newcommand{\setbibpreamble}[1]{\def\bibpreamble{#1}}
\newcommand*\bib@heading{%
\chapter*{\bibname}%
\@mkboth{\bibname}{\bibname}%
}
\newdimen\bibindent
\bibindent=1.5em
\newenvironment{thebibliography}[1]{%
\ifx\bibpreamble\relax\else\ifx\bibpreamble\@empty \else
\setchapterpreamble{\bibpreamble}%
\fi\fi
\bib@heading
\list{%
\@biblabel{\@arabic\c@enumiv}%
}{%
\settowidth\labelwidth{\@biblabel{#1}}%
\leftmargin\labelwidth
\advance\leftmargin\labelsep
\@openbib@code
\usecounter{enumiv}%
\let\p@enumiv\@empty
\renewcommand*\theenumiv{\@arabic\c@enumiv}%
}%
\sloppy\clubpenalty4000 \widowpenalty4000
\sfcode`\.=\@m
}{%
\def\@noitemerr{%
\@latex@warning{Empty `thebibliography' environment}%
}%
\endlist
}
\newcommand*\newblock{\hskip .11em\@plus.33em\@minus.07em}
\let\@openbib@code\@empty

was müsste ich machen, um die ursprüngliche formatierung der bib wieder zu bekommen? danke für eure hilfe!

Stefan_K
28-02-2009, 00:49
Hallo,

Du hättest \bib@heading redefinieren können und darin \chapter* durch \section* ersetzen können.

Grüße,

Stefan

fuzzi
28-02-2009, 11:05
hallo stefan,

vielen dank für deine antwort!
leider hat das, was ich probiert habe, nicht funktioniert: habe den renewenvironment-abschnitt durch


\makeatletter
\renewcommand*\bib@heading{%
\section*{\bibname}%
\@mkboth{\bibname}{\bibname}%
}
\makeatother

ersetzt, bekomme jetzt aber wieder eine bib. als chapter.
wäre super, wenn du mir erklären könntest, wie ich \bib@heading redefinieren muss. danke dir!

Stefan_K
28-02-2009, 14:21
Hallo,

diese Weise der Redefinition ist richtig. In diesem Minimalbeispiel funktioniert es wie beabsichtigt:

\documentclass{scrbook}
\makeatletter
\renewcommand*\bib@heading{%
\section*{\bibname}%
\@mkboth{\bibname}{\bibname}%
}
\makeatother
\begin{document}
\tableofcontents
\section{Test}
\begin{thebibliography}{0}
\item Test
\end{thebibliography}
\end{document}

Evtl. poste ein Minimalbeispiel, das zeigt, wie es in Deinem Fall nicht klappt.

Möglicherweise hilft es, die Redefinition erst nach \begin{document} vorzunehmen, obwohl ich solche Einstellungen normalerweise in die Präambel packen würde.

Viele Grüße,

Stefan

fuzzi
28-02-2009, 17:55
ich glaube, das problem bei mir ist, dass die bib folgendermaßen erstellt wird (also anders als in deinem beispiel):


\bibliographystyle{./bibliography/plainnat}
\bibliography{./bibliography/bibliography}

Redefinition nach \begin{document} hat auch nicht geholfen.

das problem ist, dass ich das tex-file gar nicht selber erstellt hab, sondern nur entsprechend verändern soll (meine latex-kenntnisse sind eher beschränkt). hast du noch eine idee, warum das renewcommand bei mir ohne wirkung bleibt?

(in der Präambel steht noch \usepackage{natbib}, falls das hilft)

danke für Deine hilfe!!

fuzzi
28-02-2009, 19:52
es funktioniert! :)
habe die redefiniton von bib@heading jetzt ganz an den anfang der präambel gestellt, und jetzt klappts!

danke dir nochmal für deine hilfe!

usc12
17-05-2011, 08:22
Ich habe die o.g. Definition im Dokument (also erst nach \begin{document}) eingefügt. Ich benutze das für mit bibunits eingefügte Teilverzeichnisse. Funktioniert, außerdem habe ich folgendes verändert, um die laufenden Header/Footer beizubehalten:



\makeatletter
\renewcommand*\bib@heading{%
\section*{\bibname}%
\@mkboth{\leftmark}{\rightmark}%
}
\makeatother


Wenn man am Ende noch eine übergreifende Chapter-Bibliograhy hat, kann man das ganze einfach wieder zurück definieren (vor \bibliograhy{xxx}):



\makeatletter
\renewcommand*\bib@heading{%
\chapter*{\bibname}%
\@mkboth{\bibname}{\bibname}%
}
\makeatother


Vielen Dank an Stefan für den Code!