PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Globales Literaturverzeichnis trotz refsection



Festus
31-07-2013, 10:44
Und das nächste BibLaTeX Problem

ich habe nun separate Literaturverzeichnisse für jeden einzelnen Aufsatz in der Diss., so weit so gut. Trotzdem hätte ich gerne noch ein globales, NICHT UNTERTEILTES Literaturverzeichnis am Ende. Was das BibLaTeX manual vorschlägt wäre folgendes



\documentclass[a4paper]{scrreprt}
\usepackage[latin9]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{csquotes}
\usepackage[style=authoryear, natbib=true, backend=biber]{biblatex}
\addbibresource{Prom.bib}

\begin{document}
\chapter{Drumherum}
Ein Text \citep{Mann:2012}.

\chapter{Artikel 1}
\newrefsection

\vspace{1cm}

Und nach dem Titel oben folgt dann der Flie\ss text des jeweiligen Aufsatzes mit Zitaten, usw. Gleiche Ergebnisse erzielte auch \citet{Anders:1998}.

\printbibliography[title=Literatur Artikel 1]

\chapter{Artikel 2}
\newrefsection

\vspace{1cm}

Und nach dem Titel und oben folgt dann der Flie\ss text des jeweiligen Aufsatzes mit Zitaten \citep{Mann:2013}, usw. Es kann selbstverst\"{a}ndlich vorkommen, dass man ein eigenes fr\"{u}heres Werk in einem sp\"{a}teren Artikel zitiert hat \citep{Anders:1998}.

\printbibliography[title=Literatur Artikel 2]

%Zusammenfassendes Gesamtverzeichnis am Ende
\endrefsection
\printbibliography[section=0]
\printbibliography[section=1]
\printbibliography[section=2]

\end{document}




@ARTICLE{Anders:1998,
author = {Martin Anders},
title = {Ein echtes Literaturzitat},
journal = {Irgendeine Zeitschrift},
year = {1998},
volume = {4},
pages = {35--67}
}

@ARTICLE{Mann:2013,
author = {Thomas Mann},
title = {Ein weiterer Artikel},
journal = {National Geographic},
year = {2013},
volume = {535},
pages = {234--245}
}

@ARTICLE{Mann:2012,
author = {Thomas Mann},
title = {Budenbrooks},
journal = {Zeitschrift der Literatur},
year = {2012},
volume = {1},
pages = {1--15}
}


Das führt aber zu zwei von mir nicht gewollten Erscheinungen: Das globale Verzeichnis am Ende ist in Einzelverzeichnisse unterteilt, und wenn ich ein Werk in mehr als einer refsection zitiert habe, erscheint es logischerweise in mehreren dieser Unterverzeichnisse.

Was ich gerne hätte ist ein Befehl, der alle Werke zusammen, die in der ganzen Arbeit zitiert wurden, zusammen in ein Verzeichnis packt, unabhängig von der Refsection, in der sie auftreten. Jedes Werk soll dabei nur einmal vorkommen, unabhängig davon in wie vielen refsections es zitiert wurde. Also quasi ein Verzeichnis, so als hätte ich ganz normal nur ein globales Verzeichnis im Dokument.

Was ich schon probiert habe ist zum ersten das: \printbibliography[section={0,1,2}]---das gibt Fehler

Desweiteren habe ich das versucht: \printbibliography[section=0, section=1, section=2]---das läuft zwar, aber BibLaTeX benutzt nur den letzten Eintrag und ignoriert den Rest, druckt hier also nur Zitate, die in refsection 2 erscheinen.

Letztlich, das hier:

\defbibfilter{All}{section=0 and section=1 and section=2}
\printbibliography[filter=All]

Damit bekomme ich "Package biblatex Error: Invalid filter expression"

Jetzt habe ich keine Idee mehr, und das Internet gibt auch nichts mehr her. Weiß jemand, ob man überhaupt machen kann, was ich möchte, und wenn ja wie?

Danke schon mal

Festus
31-07-2013, 13:33
OK, mithilfe dieses (http://compgroups.net/comp.text.tex/-biblatex-problems-understanding-refsections/198970) Beitrags habe ich nun eine hoffentlich funktionierende Lösung ausgearbeitet.



\documentclass[a4paper]{scrreprt}
\usepackage[latin9]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{csquotes}
\usepackage[style=authoryear, natbib=true, backend=biber]{biblatex}
\addbibresource{Prom.bib}

\begin{document}
\chapter{Drumherum}
Ein Text \citep{Mann:2012}.

\chapter{Artikel 1}
\newrefsegment

\vspace{1cm}

Und nach dem Titel oben folgt dann der Flie\ss text des jeweiligen Aufsatzes mit Zitaten \citep{Irgendwas:1999}, usw. Gleiche Ergebnisse erzielte auch \citet{Anders:1998}.

\printbibliography[segment=\therefsegment, title=Literatur Artikel 1]

\chapter{Artikel 2}
\newrefsegment

\vspace{1cm}

Und nach dem Titel und oben folgt dann der Flie\ss text des jeweiligen Aufsatzes mit Zitaten \citep{Mann:2013}, usw. Es kann selbstverst\"{a}ndlich vorkommen, dass man ein eigenes fr\"{u}heres Werk in einem sp\"{a}teren Artikel zitiert hat \citep{Anders:1998}.

\printbibliography[segment=\therefsegment, title=Literatur Artikel 2]

\endrefsegment
\printbibliography[title=Volle Liste]

\end{document}




@ARTICLE{Anders:1998,
author = {Martin Anders},
title = {Ein echtes Literaturzitat},
journal = {Irgendeine Zeitschrift},
year = {1998},
volume = {4},
pages = {35--67}
}

@ARTICLE{Irgendwas:1999,
author = {Joachim Irgendwas},
title = {Wasauchimmer},
journal = {Halodria},
year = {1999},
volume = {45},
pages = {233--245}
}

@ARTICLE{Mann:2013,
author = {Thomas Mann},
title = {Ein weiterer Artikel},
journal = {National Geographic},
year = {2013},
volume = {535},
pages = {234--245}
}

@ARTICLE{Mann:2012,
author = {Thomas Mann},
title = {Budenbrooks},
journal = {Zeitschrift der Literatur},
year = {2012},
volume = {1},
pages = {1--15}
}


Hoffentlich, weil ich nicht ganz genau weiß, ob das wirklich immer klappt (im Bsp. geht es), und hoffe, dass mir jemand was dazu schreiben kann.

Der Teil mit \newrefsegment und \printbibliography[segment=\therefsegment, title=Literatur Artikel 2] ist klar. Äquivalent zu section bewirkt das, dass ein neues refsegment gestartet und dann nur aus diesem zietiert wird.

Aber, ich bin mir bei \endrefsegment\printbibliography[title=Volle Liste] nicht ganz sicher. Da ich bei diesem \printbibliography kein segment angebe sollte es doch per default (laut manual) segment=0 setzen. Ebenfalls laut BibLaTeX manual: "All citations given outside a refsegment environment are assigned to segment 0".

In meinem Beispiel steht nur das erste Zitat außerhalb eines refsegment, mein Befehl sollte also einem \printbibliography[section=0, title=Volle Liste] aus meinem ursprünglichen Bsp. äquivalent sein, und dementsprechend nur \citep{Mann:2012} in die Literaturliste aufnehmen. Wieso ist das nicht so?

Ich finde es natürlich schön, dass es so funktioniert. Aber sollte das jetzt ein Zufall sein, oder womöglich sogar ein Bug der demnächst behoben wird, werde ich das bei dem fertigen Dokument mit massenhaft Zitaten vermutlich gar nicht bemerken. Ich würde daher gerne wissen, ob der code so jetzt wirklich richtig ist. Ich würde mich freuen, wenn jemand kurz was dazu schreiben könnte.