Literaturverzeichnis nicht korrekt angezeigt + Fehlermeldung

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


texbacke
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: So 16. Sep 2018, 00:53

Literaturverzeichnis nicht korrekt angezeigt + Fehlermeldung

Beitrag von texbacke »

Hallo,

ich habe Probleme mit dem Literaturverzeichnis und hoffe hier auf Hilfe.
Für das Dokument benutze ich eine Vorlage der Uni, die in dutzende Einzeldateien unterteilt ist, die sich alle gegenseitig einbinden, daher ist es nicht so leicht, hier einen Code bereitzustellen. Aber ich hoffe, ich habe es ungefähr zusammenbekommen.

Und zwar geht es darum, dass bei mir einerseits das Literaturverzeichnis nicht vollständig angezeigt wird (Masterarbeiten und Dissertationen werden nur unter "Sonstiges" angezeigt oder fehlen), unabhängig davon, ob die Literaturstellen im Text bereits referenziert wurden oder nicht. Und andererseits, dass ich auch immer eine Fehlermeldung beim Kompilieren bekomme. "Undefined control sequence. title={Artikel}]" mit Verweis auf den Bereich, wo die Artikel gezeigt werden sollten. Das liegt aber eher daran, dass "title={Artikel}" in der letzten Zeile des \printbibliography[} Eintrags steht. Wenn ich "heading= subbibliography" in die letzte Zeile schreibe, dann kommt eine entsprechend andere Fehlermeldung.

Ich hab jetzt mehrere Stunden probiert, das ans Laufen zu kriegen und diverse Foren durchforstet, allerdings hat leider nichts geholfen.

Vielen Dank im Voraus für Hilfe!

\documentclass{scrartcl}
\usepackage[backend      = bibtex, 
      sortcites   = true % Mehrfachzitate sortieren
]{biblatex}
\usepackage[babel,german=quotes]{csquotes}
\DeclareFieldFormat{url}{\newline \textsc{url}: \small \url{#1}}
\nocite{*}

\begin{filecontents}{lit.bib}

@Article{1,
   author    = {Eins, Eins},
   title     = {Artikel 1},
   journal   = {Zeitschrift 1},
   year      = {2001},
   publisher = {Verlag 1},
}

@MastersThesis{2,
   author = {Zwei, Zwei},
   title  = {Masterarbeit 2},
   school = {Uni 2},
   year   = {2002},
}

@PhdThesis{3,
   author = {Drei, Drei},
   title  = {Dissertation 3},
   school = {Uni 3},
   year   = {2003},
}

@Book{4,
   title     = {Buch4},
   publisher = {Verlag 4},
   year      = {2004},
   author    = {Vier, Vier},
}

\end{filecontents}

\addbibresource{lit.bib}
\begin{document}


\printbibheading

\printbibliography[
heading=subbibliography,
type=book,
title={Bücher}]


\printbibliography[
heading=subbibliography,
type=article,
title={Artikel}]


\printbibliography[
heading=subbibliography,
type=MastersThesis,
type=PhdThesis,
title={Abschlussarbeiten und Dissertationen}]


\printbibliography[
nottype=manual,
nottype=book,
nottype=artikel,
nottype=MastersThesis,
nottype=PhdThesis,
nottype=article,
title={Sonstige}]

\end{document}


Gast

Beitrag von Gast »

Im Datenmodell von biblatex gibt es die Typen @MastersThesis und PhdThesis nicht als eigenständige Typen, stattdessen sind sie ein Alias für @thesis. Die biblatex-Dokumentation sagt dazu in §2.1.2 (meine Hervorhebung)
2.1.2 Type Aliases hat geschrieben:The entry types listed in this section are provided for backwards compatibility with traditional BibTeX styles. These aliases are resolved by the backend as the data is processed. Bibliography styles will see the entry type the alias points to, not the alias name. All unknown entry types are generally exported as @misc.
Das heißt, dass die beiden Typen in den Tests type und nottype einfach nur @thesis sind. Daher funktioniert
\documentclass{scrartcl}
\usepackage[backend      = bibtex,
      sortcites   = true % Mehrfachzitate sortieren
]{biblatex}
\usepackage[babel,german=quotes]{csquotes}
\DeclareFieldFormat{url}{\newline \textsc{url}: \small \url{#1}}
\nocite{*}

\begin{filecontents}{lit.bib}
@Article{1,
  author    = {Eins, Eins},
  title     = {Artikel 1},
  journal   = {Zeitschrift 1},
  year      = {2001},
  publisher = {Verlag 1},
}
@MastersThesis{2,
  author = {Zwei, Zwei},
  title  = {Masterarbeit 2},
  school = {Uni 2},
  year   = {2002},
}
@PhdThesis{3,
  author = {Drei, Drei},
  title  = {Dissertation 3},
  school = {Uni 3},
  year   = {2003},
}
@Book{4,
  title     = {Buch4},
  publisher = {Verlag 4},
  year      = {2004},
  author    = {Vier, Vier},
}
\end{filecontents}

\addbibresource{lit.bib}
\begin{document}
\printbibheading

\printbibliography[
heading=subbibliography,
type=book,
title={Bücher}]

\printbibliography[
heading=subbibliography,
type=article,
title={Artikel}]

\printbibliography[
heading=subbibliography,
type=thesis,
title={Abschlussarbeiten und Dissertationen}]

\printbibliography[
nottype=manual,
nottype=book,
nottype=artikel,
nottype=thesis,
nottype=article,
title={Sonstige}]
\end{document}
Wenn Du dann doch nach Master- oder Doktorarbeit unterscheiden möchtest, dann musst Du das anders tun. Auf die Schnelle fallen mir da nur bibchecks ein. In der Präambel
\defbibcheck{phdthesis}{
  \iffieldundef{type}
    {\skipentry}
    {\iffieldequalstr{type}{phdthesis}
       {}
       {\skipentry}}
}
\defbibcheck{mathesis}{
  \iffieldundef{type}
    {\skipentry}
    {\iffieldequalstr{type}{mathesis}
       {}
       {\skipentry}}
}
und dann im Dokument
\printbibliography[
heading=subbibliography,
type=thesis,
check=phdthesis,
title={Dissertationen}]

\printbibliography[
heading=subbibliography,
type=thesis,
check=mathesis,
title={Abschlussarbeiten}]
Ich würde Dir übrigens dazu raten wollen, von BibTeX zu Biber umzusteigen. Dazu musst Du backend=bibtex zu backend=biber ändern und Biebr laufen lassen: https://texwelt.de/wissen/fragen/1909/w ... nem-editor bzw. https://tex.stackexchange.com/q/154751/35864

Den Fehler mit der undefined control sequence kann ich so nicht nachvollziehen. Ich bekomme mit dem (sehr guten) Minimalbeispiel aus Deinem Eingangspost keinen solchen Fehler und ich sehe auch nichts, was das erklären könnte.

texbacke
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: So 16. Sep 2018, 00:53

Beitrag von texbacke »

Vielen Dank für die schnelle Hilfe!

Das mit der getrennten Darstellung klappt jetzt.

Zwischen Master- und Doktorarbeit muss nicht unterschieden werden. Das könnte wohl auch über Keywords gehen.

Sobald ich den Teil des Literaturverzeichnisses, der die eingebundenen Artikel darstellen soll, entferne, läuft es problemlos. Ich denke daher, dass ggf. beim Export aus JapRef ein Fehler mit dem Format der Artikel passiert ist. Da einige Artikel über die DOI bzw. direkt über den BibTeX Code eingebunden wurden, können sich da Formatfehler eingeschlichen haben, das werde ich überprüfen und hier dann Rückmeldung geben.

Nochmals Danke!

texbacke
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: So 16. Sep 2018, 00:53

Beitrag von texbacke »

Hah, Tatsache!

Eine Literaturstelle war fehlerhaft. Das lag nicht an JabRef, sondern an dem vom Verlag zur Verfügung gestellten BibTeX Code.

Probleme sind damit geklärt, vielen Dank und noch einen schönen Tag!

Gast

Beitrag von Gast »

Fein, dann setzte ich den Status hier mal auf "beantwortet".

Ja man könnte Master- und Doktorarbeiten auch mit keywords auseinanderhalten, allerdings halte ich das für unnötig. Wenn man den @thesis-Typen richtig verwendet, dann gibt man im type-Feld immer die Art der Arbeit an (bathesis, mathesis, phdthesis oder Freitext), danach filtern die bibchecks dann auch. keywords würden den Aufwand nur duplizieren, da man dann das keywords-Feld ebenfalls noch befüllen muss (das könnte man natürlich mit Biber sourcemaps automatisieren, aber auch das bedeutet Arbeit). @mastersthesis und @phdthesis werden übrigens mit passend befüllten type-Feld in @thesis umgewandelt, da ist es also meist nicht notwendig, type explizit anzugeben.

Zu Deinem fehlerhaften Eintrag: Leider ist es immer wieder zu beobachten, dass die vielen Dienste, die .bib-Einträge im Internet bereitstellen teils grobe Schnitzer begehen. Selbst die, die das nicht tun, sind (besonders für biblatex) häufig nicht das non plus ultra, da sie eine Balance zwischen den unterschiedlichen BibTeX-Stilen und den dort unterstützten Feldern finden müssen. So unterstützen einige sehr alte, aber noch häufig genutzte, Stile kein eigenes url-Feld, dort wird die URL dann häufig in note geschrieben, neuere Stile und auch biblatex haben aber in Feld für die URL, das stattdessen genutzt werden sollte. Bei TeX.SX gibt es eine ganze Sammlung häufig auftretender Probleme: https://tex.stackexchange.com/q/386053/35864 und ich bin mir sicher, es gibt noch mehr gruselige Dinge dieser Art. Nach meiner Erfahrung ist es unerlässlich, von solchen Diensten importierte Einträge vor der Nutzung einzeln manuell zu überprüfen und anzupassen. Selbst auf die Korrektheit der Daten kann man sich nicht immer verlassen.

texbacke
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: So 16. Sep 2018, 00:53

Beitrag von texbacke »

Das ist gut zu wissen! In meinem Fall lag es daran, dass der Authorenname mit komischen Zeichen versehen war, die nicht unterstützt wurden. Das Format an sich hat schon gepasst, nur das Feld war nicht als reiner Text ausgefüllt.

Bzgl. des Literaturverzeichnisses hätte ich doch noch eine Frage:
Im Minimalbeispiel ist zu sehen, dass die Einträge alle alphabetisch geordnet und die Nummern entsprechend durcheinander angezeigt werden. Vor allem bei viel Literatur wird das dann ziemlich wild.
Ich hätte aber lieber, dass das Literaturverzeichnis nach Nummern sortiert ist, nicht nach dem Alphabet. Bzw. die Literatur darf ruhig nach Alphabet sortiert sein, allerdings soll diese von oben nach unten fortlaufend nummeriert sein. Wie lässt sich das erreichen?
Ich hab bereits einige Styles in \usepackage[style = ...] ausprobiert, allerdings zeigt es entweder keine Wirkung oder eine Fehlermeldung wird ausgespuckt.

Nochmals vielen Dank im Voraus!

Gast

Beitrag von Gast »

Sieh Dir mal die Option defernumbers an, die möchtest Du wahrscheinlich auf true setzen. Dann werden die einzelnen Verzeichnisse noch immer alphabetisch sortiert, aber die Nummerierung ist fortlaufend, da sie einzeln für die Verzeichnisse erstellt wird und nicht bezogen auf die (virtuelle) Liste aller Werke. Wenn Du nach dem Auftreten der Zitate im Text sortieren möchtest, dann brauchst Du außerdem sorting=none.

texbacke
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: So 16. Sep 2018, 00:53

Beitrag von texbacke »

Wieder vielen vielen Dank für die schnelle und kompetente Antwort! Hat genau geklappt!

Antworten