mehrere Lit.Verz. getrennt nach Dokumentenbereiche

Erstellung eines Literaturverzeichnisses mit BibTeX, Biber, BibLaTeX und Co.


MoonKid
Forum-Meister
Forum-Meister
Beiträge: 689
Registriert: Sa 30. Jun 2012, 11:56

mehrere Lit.Verz. getrennt nach Dokumentenbereiche

Beitrag von MoonKid »

Im Beispiel unten werden zwei Literaturverzeichnisse angelegt. Deren Einträge, werden anhander keywords (so wie sie im bib-file stehen) festgelegt. Das ist derzeit mein Workaround.

Aber eigentlich würde ich mir wünschen, dass ich Bereiche im Dokument festlegen kann. Hier im Beispiel sind es nur zwei Bereiche (Dokument & Appendix). Würde ein bib-entry in beiden Bereichen zitiert werden, würde er auch in beiden Lit.Verz. auftauchen.

Mein Originaldokument hat 3 solcher Bereiche. Da kommt man mit den keywords auch schnell durcheinander und muss viel manuell gegenchecken. Daher suche ich eine automatisierte Lösung.
\begin{filecontents*}{mbib.bib}
    @ARTICLE{A,
    author = {Mr. A},
    title = {Foobar},
    year = {2010},
    keywords = {doc}
}

    @ARTICLE{B,
    author = {Mr. B},
    title = {Voobar},
    year = {1910},
    keywords = {app}
}
\end{filecontents*}

\documentclass{scrartcl}
\usepackage{mwe}
\RequirePackage[backend=biber,
                style=apa,
                sortlocale=de_DE,
                language=german
               ]{biblatex}
\DeclareLanguageMapping{german}{german-apa}
\addbibresource{mbib.bib}

%% Document %%
\begin{document}
\cite{A}
\printbibliography[keyword={doc}]
%% Appendix %%
\appendix
\cite{B}
\printbibliography[keyword={app}]
\end{document}
XeLaTeX, TeX Live, vim-latexsuite

markusv
Forum-Meister
Forum-Meister
Beiträge: 947
Registriert: Do 3. Sep 2015, 17:20
Wohnort: Leipzig

Beitrag von markusv »

Suchst du vielleicht nach der Option refsection, siehe [d]biblatex[/d]?

Die Bereiche selber festlegen kannst du mit dem Befehl \newrefsection.
Wäre Microsoft Word für das Schreiben von Büchern entwickelt worden,
würde es Microsoft Book heißen.

Unkomplizierte und schnelle LaTeX-Hilfe, bspw. Erstellung von Vorlagen und Bewerbungen:
Help-LaTeX@web.de

Gast

Beitrag von Gast »

Ja nach dem, ob die Literaturverzeichnisse voneinander getrennt und völlig unabhängig sein sollen oder ob sie prinzipiell zusammengehören sollen, solltest Du refsection und refsegment in der [d]biblatex[/d]-Doku genau vergleichen.

Die Unterschiede sieht man im direkten Vergleich ganz gut
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=apa]{biblatex}
\DeclareLanguageMapping{ngerman}{ngerman-apa}
\addbibresource{biblatex-examples.bib}

\begin{document}
\cite{sigfridsson,knuth:ct:c}
\printbibliography

\newrefsection
\cite{sigfridsson,knuth:ct:d}
\printbibliography
\end{document}
vs
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=apa]{biblatex}
\DeclareLanguageMapping{ngerman}{ngerman-apa}
\addbibresource{biblatex-examples.bib}

\begin{document}
\cite{sigfridsson,knuth:ct:c}
\printbibliography[segment=\therefsegment]

\newrefsegment
\cite{sigfridsson,knuth:ct:d}
\printbibliography[segment=\therefsegment]
\end{document}
Sowohl der Code als auch die Ausgabe unterscheiden sich in subtilen Details.

MoonKid
Forum-Meister
Forum-Meister
Beiträge: 689
Registriert: Sa 30. Jun 2012, 11:56

Beitrag von MoonKid »

Ah... hab ich völlig übersehen. Hab mir die Doku echt angeschaut.

Verstehe ich den Unterschied richtig: Bei refsegment kann ich die Einträge vermischen, d.h. ein Entry kann in mehreren Lit.Verz. auftauchen und Segmenten verwendet werden. Bei refsection geht das nicht.
XeLaTeX, TeX Live, vim-latexsuite

Gast

Beitrag von Gast »

Naja. Der Unterschied ist, dass ein Eintrag über alle refsegments hinweg dieselben label-Iegenschaften hat, über refsections hinweg können sich einige label-Felder jedoch unterscheiden.

Insbesondere kann es mit refsections passieren, dass dieselbe Quelle in unterschiedlichen refsections unterschiedlich zitiert wird. Umgekehrt kann es sein, dass dieselbe Zitat-Ausgabe sich in unterschiedlichen refsections auf unterschiedliche Quellen bezieht.

Man beachte, wie die Knuth-Quellen sich in dem Beispiel verhalten.

MoonKid
Forum-Meister
Forum-Meister
Beiträge: 689
Registriert: Sa 30. Jun 2012, 11:56

Beitrag von MoonKid »

Mit dem Begriff label kann ich in dem Kontext nicht viel Anfangen.
XeLaTeX, TeX Live, vim-latexsuite

Gast

Beitrag von Gast »

"Etikett" passt schon ganz gut, manche Leute würden vielleicht "Zitationsdaten"/"Zitationsausgabe" sagen, aber das klingt komisch. Gemeint sind die speziellen Felder mit label (und extra) im Namen, die automatisch von Biber erzeugt werden. Für Dich relevant sind labelyear, extrayear und labelname (aber auch labelnumber, labelalpha). Diese Felder bestimmen die exakte Ausgabe des \cite-Befehls. Das kannst Du aber alles im Beispiel gut sehen und in der [d]biblatex[/d]-Doku nachlesen (bes. §§3.7.4, 3.7.5).

MoonKid
Forum-Meister
Forum-Meister
Beiträge: 689
Registriert: Sa 30. Jun 2012, 11:56

Beitrag von MoonKid »

Tut mir Leid, ich verstehs nicht, auch wenn ich die Beispiele durchlaufen lasse.
Die (vorher schon gelesene) docu hilft hier auch nicht, weil sie sich auf die Technik/Maschine ("label") bezieht und nicht auf die Praxis.

Mit "refsegement" hat Knuth ein "a" oder "b" in der Jahreszahl. Mit "refsection" hat es das nicht.

Im Bib-file ist Knuth aber nur ein Eintrag. Bedeutet dies etwa, dass ich nur mit "refsection" einen Eintrag in mehrere Lit.Verz. haben kann?
Oder anders formliert: Mit "refsegment" wird (im obigen Beispiel) aus einem bib-Eintrag zwei gemacht (einer je segment)?

Was bedeutet das für die Praxis? In welchen Situationen würde man die beiden Varianten sinnvoll einsetzen?
XeLaTeX, TeX Live, vim-latexsuite

Gast

Beitrag von Gast »

OK, wenn Dich die internen Abläufe nicht interessieren, dann habe ich doch die praktischen Auswirkungen oben schon im zweiten Absatz klar beschrieben. Außerdem habe ich ein Beispiel geliefert, in dem unterschiedliche Quellen (knuth:ct:c und knuth:ct:d) mit refsections dieselbe Ausgabe bei \cite verursachen - bei refsegment sind die beiden Quellen auch über die Segmente hinweg unterscheidbar.
MoonKid hat geschrieben:Im Bib-file ist Knuth aber nur ein Eintrag.
Nein, es gibt in biblatex-examples.bib mehrere Knuth-Einträge und hier haben wir explizit zwei unterschiedliche Einträge (aus dem gleichen Jahr) zitiert, nämlich knuth:ct:c und knuth:ct:d.
MoonKid hat geschrieben:Bedeutet dies etwa, dass ich nur mit "refsection" einen Eintrag in mehrere Lit.Verz. haben kann?
Nein. Auch mit refsegment kannst Du einen Eintrag in beiden Verzeichnissen haben.
MoonKid hat geschrieben:Oder anders formliert: Mit "refsegment" wird (im obigen Beispiel) aus einem bib-Eintrag zwei gemacht (einer je segment)?
Nein. Dies ist absolut nicht der Fall. Man könnte das Verhalten von refsection so in etwa beschreiben.
MoonKid hat geschrieben:Was bedeutet das für die Praxis?
Hier nochmal ein etwas größeres Beispiel mit eigener .bib-Datei.
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=apa]{biblatex}
\DeclareLanguageMapping{ngerman}{ngerman-apa}

\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{elk:bronto,
  author = {Anne Elk},
  date = {1972},
  title = {Theory on Brontosauruses},
}
@book{elk:stega,
  author = {Anne Elk},
  date = {1972},
  title = {Theory on Stegosauruses},
}
@book{elk:diplo,
  author = {Anne Elk},
  date = {1973},
  title = {Theory on Diplodocuses},
}
@book{elk:ptero,
  author = {Anne Elk},
  date = {1973},
  title = {Theory on Pterodactyluses},
}
\end{filecontents*}

\addbibresource{\jobname.bib}

\begin{document}
\cite{elk:stega}
\cite{elk:diplo}
\cite{elk:ptero}
\printbibliography

\newrefsection
\cite{elk:bronto}
\cite{elk:diplo}
\printbibliography
\end{document}
vs
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=apa]{biblatex}
\DeclareLanguageMapping{ngerman}{ngerman-apa}

\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{elk:bronto,
  author = {Anne Elk},
  date = {1972},
  title = {Theory on Brontosauruses},
}
@book{elk:stega,
  author = {Anne Elk},
  date = {1972},
  title = {Theory on Stegosauruses},
}
@book{elk:diplo,
  author = {Anne Elk},
  date = {1973},
  title = {Theory on Diplodocuses},
}
@book{elk:ptero,
  author = {Anne Elk},
  date = {1973},
  title = {Theory on Pterodactyluses},
}
\end{filecontents*}

\addbibresource{\jobname.bib}

\begin{document}
\cite{elk:stega}
\cite{elk:diplo}
\cite{elk:ptero}
\printbibliography[segment=\therefsegment]

\newrefsegment
\cite{elk:bronto}
\cite{elk:diplo}
\printbibliography[segment=\therefsegment]
\end{document}
MoonKid hat geschrieben:In welchen Situationen würde man die beiden Varianten sinnvoll einsetzen?
OK, Du musst Dir die Frage stellen, ob die Verzeichnisse unabhängig voneinander sein sollen, oder ob sie zusammengehören. Sollen sie völlig unabhängig sein, ist refsection was Du suchst. In diesem Fall muss einem Leser klar sein, dass die unterschiedlichen Literaturverzeichnisse getrennt sind und unter Umständen dasselbe Werk unterschiedlich zitiert wird. Wenn Du die Verzeichnisse enger verzahnen willst, dann brauchst Du refsegment. Hier kann ein Zitat auch über die Grenzen der Segmente hinweg eindeutig identifiziert werden, es kann aber zu vermeintlichen "Lücken" in den einzelnen Verzeichnissen führen (huch, wo ist denn "Elk 1972a"?).

Wenn ich einen Sammelband mit Artikeln von unterschiedlichen Autorinnen herausgeben würde, dann würde ich jedem Artikel ein Literaturverzeichnis nachstellen, das in einer eigenen refsection lebt. Damit hat jedes Kapitel seine eigene von den anderen Kapiteln getrennte Bibliographie.

Wenn ich aber beschlossen habe in - sagen wir - meiner Masterarbeit jedem Kapitel ein eigenes Verzeichnis nachzustellen (ich würde das eigentlich nicht tun, aber gesetzt den Fall ich täte es), würde ich refsegments nutzen, denn dann verhindere ich, dass die Leserin die einzelnen Kapitel (oder zumindest ihre Zitate) getrennt voneinander lesen muss.

Technisch existieren Einträge in refsections mehrere Male, nämlich exakt in jeder refsection unabhängig voneinander. In den Segmenten existiert jeder Eintrag immer nur genau ein Mal, aber er kann durchaus mehrere Male im Verzeichnis auftauchen.

Um es pointiert zu sagen: Mit refsection bekommst Du den gleichen Eintrag und mit refsegment denselben.

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

MoonKid hat geschrieben: Was bedeutet das für die Praxis? In welchen Situationen würde man die beiden Varianten sinnvoll einsetzen?
Stell dir einen numerischen Stil vor. Zitiert wird Knuth.

Mit refsection hat Knuth in der einen refsection die Nummer [9], in der anderen refsection die Nummer [5].

Mit refsegment hat Knuth in beiden Segmenten die gleiche Nummer [6].

refsection verwendet man z.B. in Zeitschriften. Jeder Artikel ist da ja unabhängig vom anderen und hat seine eigene Bibliographie mit eigener Nummerierung.

Antworten