von Gast » So 24. Sep 2017, 09:46
Man betrachte folgendes Beispiel (Achtung!
filecontents überschreibt eine eventuell vorhandene .bib-Datei desselben Namens ohne vorherige Warnung. Es ist wie immer angeraten, Beispiele in einem anderen Ordner als dem Arbeitsordner zu testen.)
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[numbers]{natbib}
\usepackage[ngerman]{babel}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@BOOK {eins,
author = "Mayr, Ernst",
title = "Grundlagen der Zoologischen Systematik -- Theoretische und praktische Voraussetzungen für Arbeiten auf systematischem Gebiet",
publisher = "Verlag Paul Parey",
year = "1975",
address = "Hamburg, Berlin",
}
@INPROCEEDINGS {zweia,
author = "Honomichl, Klaus",
title = "\textit{Systematik}",
booktitle = "Lehrbuch der Entomologie",
year = "1999",
editor = "Dettner, Konrad AND Peters, Werner",
pages = "733--746",
address = "Stuttgart, Jena, Lübeck, Ulm",
publisher = "Gustav Fischer",
crossref = "zweiges",
}
@INPROCEEDINGS {zweib,
author = "Dettner, gugu AND Peters, Werner",
title = "\textit{Übersicht über die Vielfalt der Insekten}",
booktitle = "Lehrbuch der Entomologie",
year = "1999",
editor = "Dettner, Konrad AND Peters, Werner",
pages = "763--903",
address = "Stuttgart, Jena, Lübeck, Ulm",
publisher = "Gustav Fischer",
crossref = "zweiges",
}
@PROCEEDINGS {zweiges,
title = "Lehrbuch der Entomologie",
year = "1999",
editor = "Dettner, Konrad AND Peters, Werner",
address = "Stuttgart, Jena, Lübeck, Ulm",
publisher = "Gustav Fischer",
}
@PROCEEDINGS {sechsges,
title = "Spezielle Zoologie -- Teil 1: Einzeller und Wirbellose Tiere",
year = "2007",
editor = "Westheide, Wilfried AND Rieger, Reinhard",
edition = "2. Auflage",
address = "München",
publisher = "Spektrum Akademischer Verlag",
}
@INPROCEEDINGS {sechs,
author = "Klausnitzer, Bernhard",
title = "\textit{Insecta (Hexapoda), Insekten}",
booktitle = "Spezielle Zoologie -- Teil 1: Einzeller und Wirbellose Tiere",
year = "2007",
editor = "Westheide, Wilfried AND Rieger, Reinhard",
edition = "2. Auflage",
pages = "638--724",
address = "München",
publisher = "Spektrum Akademischer Verlag",
crossref = "sechsges",
}
\end{filecontents}
\begin{document}
\cite{eins,zweia,zweib,sechs}
\bibliographystyle{natdin}
\bibliography{\jobname}
\end{document}
Nach Durchlauf von pdfLaTeX und BibTeX beschwert sich BibTeX
Database file #1: tfgnatbib.bib
A bad cross reference---entry "sechs"
refers to entry "sechsges", which doesn't exist
Warning--I didn't find a database entry for "sechsges"
Auch weitere pdfLaTeX- oder BibTeX-Läufe brachten hier keine Verbesserung.
Es scheint also so, als würden Einträge, auf die mit crossref verwiesen wird, nur gefunden, wenn sie hinter dem Eintrag stehen, der auf sie verweist. Das ist im Beispiel bei den zwei-Einträgen der Fall, wo alles wunderbar funktioniert. Bei den seschs-Einträgen habe ich sechsges extra vor sechsa gestellt und schon wird es nicht mehr gefunden.
Ich habe nach einer etwas längeren Suche zu diesem Thema
https://tex.stackexchange.com/a/148978/35864 http://www.mrunix.de/forums/archive/ind ... 41832.html http://newton.ex.ac.uk/tex/pack/bibtex/ ... node3.html finden können und tatsächlich steht in
http://mirrors.ctan.org/biblio/bibtex/base/btxdoc.pdf auch explizit
Oren Patashnik: BibTeXing, Seite 3 hat geschrieben:To guarantee that this scheme works, however, a cross-referenced entry must occur later in the database files than every entry that cross-references it. Thus, putting all cross-referenced entries at the end makes sense.
Mit
biblatex und
biber hast Du das Problem nicht (gut, da werden die crossrefs standardmäßig auch anders behandelt, man kann das BibTeX-Verhalten aber
mit etwas Arbeit auch hinbekommen). Wenn Du nicht unbedingt auf einen bestimmten .bst-Stil festgenagelt bist, solltest Du ernsthaft über einen Umstieg nachdenken. Die Tatsache, dass Du die title vollständig in \textit einwickelst ist eigentlich ein Symptom dafür, dass natdin nicht der richtige Stil für Dich ist (außerdem sieht er nicht schön aus; in Frankreich macht man etwas Leerraum vor ein Semikolon, aber in Deutschland nie).
Man betrachte folgendes Beispiel (Achtung! [p]filecontents[/p] überschreibt eine eventuell vorhandene [tt].bib[/tt]-Datei desselben Namens ohne vorherige Warnung. Es ist wie immer angeraten, Beispiele in einem anderen Ordner als dem Arbeitsordner zu testen.)[code]\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[numbers]{natbib}
\usepackage[ngerman]{babel}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@BOOK {eins,
author = "Mayr, Ernst",
title = "Grundlagen der Zoologischen Systematik -- Theoretische und praktische Voraussetzungen für Arbeiten auf systematischem Gebiet",
publisher = "Verlag Paul Parey",
year = "1975",
address = "Hamburg, Berlin",
}
@INPROCEEDINGS {zweia,
author = "Honomichl, Klaus",
title = "\textit{Systematik}",
booktitle = "Lehrbuch der Entomologie",
year = "1999",
editor = "Dettner, Konrad AND Peters, Werner",
pages = "733--746",
address = "Stuttgart, Jena, Lübeck, Ulm",
publisher = "Gustav Fischer",
crossref = "zweiges",
}
@INPROCEEDINGS {zweib,
author = "Dettner, gugu AND Peters, Werner",
title = "\textit{Übersicht über die Vielfalt der Insekten}",
booktitle = "Lehrbuch der Entomologie",
year = "1999",
editor = "Dettner, Konrad AND Peters, Werner",
pages = "763--903",
address = "Stuttgart, Jena, Lübeck, Ulm",
publisher = "Gustav Fischer",
crossref = "zweiges",
}
@PROCEEDINGS {zweiges,
title = "Lehrbuch der Entomologie",
year = "1999",
editor = "Dettner, Konrad AND Peters, Werner",
address = "Stuttgart, Jena, Lübeck, Ulm",
publisher = "Gustav Fischer",
}
@PROCEEDINGS {sechsges,
title = "Spezielle Zoologie -- Teil 1: Einzeller und Wirbellose Tiere",
year = "2007",
editor = "Westheide, Wilfried AND Rieger, Reinhard",
edition = "2. Auflage",
address = "München",
publisher = "Spektrum Akademischer Verlag",
}
@INPROCEEDINGS {sechs,
author = "Klausnitzer, Bernhard",
title = "\textit{Insecta (Hexapoda), Insekten}",
booktitle = "Spezielle Zoologie -- Teil 1: Einzeller und Wirbellose Tiere",
year = "2007",
editor = "Westheide, Wilfried AND Rieger, Reinhard",
edition = "2. Auflage",
pages = "638--724",
address = "München",
publisher = "Spektrum Akademischer Verlag",
crossref = "sechsges",
}
\end{filecontents}
\begin{document}
\cite{eins,zweia,zweib,sechs}
\bibliographystyle{natdin}
\bibliography{\jobname}
\end{document}[/code]
Nach Durchlauf von pdfLaTeX und BibTeX beschwert sich BibTeX
[code]Database file #1: tfgnatbib.bib
A bad cross reference---entry "sechs"
refers to entry "sechsges", which doesn't exist
Warning--I didn't find a database entry for "sechsges"[/code]
Auch weitere pdfLaTeX- oder BibTeX-Läufe brachten hier keine Verbesserung.
Es scheint also so, als würden Einträge, auf die mit [tt]crossref[/tt] verwiesen wird, nur gefunden, wenn sie hinter dem Eintrag stehen, der auf sie verweist. Das ist im Beispiel bei den [tt]zwei[/tt]-Einträgen der Fall, wo alles wunderbar funktioniert. Bei den [tt]seschs[/tt]-Einträgen habe ich [tt]sechsges[/tt] extra vor [tt]sechsa[/tt] gestellt und schon wird es nicht mehr gefunden.
Ich habe nach einer etwas längeren Suche zu diesem Thema https://tex.stackexchange.com/a/148978/35864 http://www.mrunix.de/forums/archive/index.php/t-41832.html http://newton.ex.ac.uk/tex/pack/bibtex/btxdoc/node3.html finden können und tatsächlich steht in http://mirrors.ctan.org/biblio/bibtex/base/btxdoc.pdf auch explizit [quote="Oren Patashnik: BibTeXing, Seite 3"]To guarantee that this scheme works, however, a cross-referenced entry must occur later in the database files than every entry that cross-references it. Thus, putting all cross-referenced entries at the end makes sense.[/quote]
Mit [p]biblatex[/p] und [p]biber[/p] hast Du das Problem nicht (gut, da werden die [tt]crossref[/tt]s standardmäßig auch anders behandelt, man kann das BibTeX-Verhalten aber [url=https://tex.stackexchange.com/q/267297/35864]mit etwas Arbeit[/url] auch hinbekommen). Wenn Du nicht unbedingt auf einen bestimmten [tt].bst[/tt]-Stil festgenagelt bist, solltest Du ernsthaft über einen Umstieg nachdenken. Die Tatsache, dass Du die [tt]title[/tt] vollständig in [tt]\textit[/tt] einwickelst ist eigentlich ein Symptom dafür, dass [tt]natdin[/tt] nicht der richtige Stil für Dich ist (außerdem sieht er nicht schön aus; in Frankreich macht man etwas Leerraum vor ein Semikolon, aber in Deutschland nie).