Problem in biber-Bibliographie mit Proceedings

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


ReFleXxiv
Forum-Anfänger
Forum-Anfänger
Beiträge: 11
Registriert: Do 28. Mär 2019, 11:16

Problem in biber-Bibliographie mit Proceedings

Beitrag von ReFleXxiv »

Moin zusammen,
ich schreibe gerade an meiner Bachelorarbeit in den letzten Feinschliff-Zügen. Bei den meisten Fragen konnte mir goLatex oder stackexchange in Kombination mit Google oder Pckage Anleitungen o.ä. weiterhelfen, aber jetzt gerade verzweifel ich ein bisschen, weil ich nichts finde.

Es geht um ein Literaturverzeichnis mit biber. Ich führe dabei mehrere Artikel aus Konferenzen als Quellen an. Bei einem funktioniert das tadellos und sieht richtig aus.
Bei Zwei Artikeln aus einer Konferenz treten mehrere Probleme auf, trotz gleicher Syntax:
Die Konferenz selbst wird nochmal im Verzeichnis aufgeführt und die Darstellung mit " In: " unterscheidet sich bei beiden Einträgen.

Ich nutze MikTex und TexMaker, beides frisch aktualisiert.
Ich baue mit: (shellescape weil ich im Hauptdokument gnuplottex nutze)
pdflatex -synctex=1 -interaction=nonstopmode --shell-escape %.tex|biber %|pdflatex -synctex=1 -interaction=nonstopmode --shell-escape %.tex|pdflatex -synctex=1 -interaction=nonstopmode --shell-escape %.tex
Minimalbeispiel:
\documentclass[a4paper,pdftex,listof=totoc, ngerman]{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[english, main=ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{ae} 
\usepackage{calc}

\usepackage[backend=biber,style=iso-authoryear, sortlocale=de_DE,autolang=other,bibencoding=UTF8, hyperref=true, maxcitenames=2]{biblatex} 

\addbibresource{test.bib}

\usepackage{filecontents}

\begin{filecontents}{test.bib}
@inproceedings{mg91,
  author =   {Müller-Graf, B.},
  title =    {The Effect of an Advanced Spray Rail System on Resistance and Development of Spray of Semi-Displacement Round Bilge Hulls},
  crossref={FAST91},
  langid      =   {english},
}
@proceedings{FAST91,
	booktitle  = {First International Conference on Fast Sea Transportation (FAST)},
	editor = {Holden, Kjell O.},
	address = {Trondheim},
	publisher = {Tapir Publ.},
	year = {1991},
	isbn = { 8251909627 9788251909624 },
	langid      =   {english},
}
%--------------------------------------------------------
@inproceedings{ITTC2017Resistance,	
	author = {Hansen, Peter},
	title = {Recommended Procedures and Guidelines: Resistance Test},
	crossref={Towing17},
	langid      =   {english},
}
@inproceedings{ITTC2017HVResistance,
	author = {Hansen, Peter},
	title = {Recommended Procedures and Guidelines: High Speed Marine Vehicles Resistance Test},
	crossref={Towing17},
	langid      =   {english},
}
@proceedings{Towing17,
	booktitle  = {28th International Towing Tank Conference},
	editor = {Karl Lagerfeld},
	address = {Wuxi, China},
	publisher = {hanswurst verlag},
	year = {2017},
	isbn = {},
	langid      =   {english},
}
\end{filecontents}

\begin{document}

\section{Einleitung}
\ldots gewinnen hierbei in letzter Zeit zunehmend an Bedeutung \cite{ITTC2017HVResistance} \ldots
\ldots gewinnen hierbei in letzter Zeit zunehmend an Bedeutung \cite{ITTC2017Resistance} \ldots
\ldots gewinnen hierbei in letzter Zeit zunehmend an Bedeutung \cite{mg91} \ldots

\printbibliography
\end{document}
Wie das ganze aussieht ist im Screenshot im Anhang zu sehen.

Peter Hansen/ Karl Lagerfeld / hanswurst sind nur Platzhalter, Eigentlich müssten diese felder leer sein, aber um die Syntax zum anderen Eintrag gleich zu halten, dachte ich ich probiers mal so... verändert nur leider nichts :D
Auch den style zu "style=alphabetic" zu verändern hat nichts gebracht.

Weiß jemand was da passiert und wie ich es verhindern kann?

Beste Grüße
ReFleXxiv
Dateianhänge
biber-problem.PNG
biber-problem.PNG (98.06 KiB) 3056 mal betrachtet

Gast

Beitrag von Gast »

Der Konferenzband selbst wird zum Literaturverzeichnis hinzugefügt, da er zwei mal gecrossreft wird. biblatex kennt die Option mincrossrefs. mincrossrefs=n sorgt dafür, dass ein Eintrag, der mindestens n mal von anderen Quellen im Literaturverzeichnis mit crossref referenziert wurde, von sich aus im Verzeichnis auftaucht, auch wenn er selbst nicht explizit zitiert wurde. Mit mincrossrefs=999 kannst Du das praktisch unterdrücken. Die Standardeinstellung ist mincrossrefs=2, was Deine Ausgabe erklären sollte.

Die Sache mit dem Strich ist ein Bug im biblatex-iso-Stil: https://github.com/michal-h21/biblatex-iso690/issues/57 Der ist zwar auf GitHub inzwischen behoben, aber die aktualisierte Version ist noch nicht bei CTAN (und damit in MikTeX oder TeX live). Die Entwicklungsversion, die man bei https://github.com/michal-h21/biblatex-iso690 bekommt, hat den Fehler nicht mehr. Am einfachsten ist es wohl, unter dem Link bei "Clone or download" die .zip herunterzuladen: https://github.com/michal-h21/biblatex- ... master.zip und die dort enthaltenden Dateien einfach in das Dokumentenverzeichnis zu legen.

Ich würde aber von biblatex-iso abraten. Zum einen, da ich die genutzte Interpretation von ISO 690 nicht sehr hübsch finde (sie basiert vor allem auf strengeren Auslegungen der tschechischen und slowakischen Übersetzung der Norm) und die englische Originalnorm viel mehr Spielraum lässt, typographisch fragwürdige Entscheidungen zu vermeiden (ich meine: ALL CAPS ... ich bin ja ein Fan von sᴍᴀʟʟ ᴄᴀᴘs und das wird schon von einigen merkwürdig, altmodisch oder prätentiös gefunden, aber ALL CAPS geht mir zu weit). Und zum Anderen, da die Codebasis inzwischen teilweise recht veraltet ist und die Entwicklung etwas zum Erliegen gekommen ist (Der Hauptentwickler ist eigentlich kein biblatex-Mensch und hat mit anderen TeX-Projekten schon genug zu tun. Von den anderen Beitragenden hat sich keiner das Herz fassen können, das Projekt etwas mehr an sich zu reißen, sodass es jetzt so ein bisschen dahindümpelt.). Ein großer Teil des Codes ist schon recht alt und wurde nur peu à peu modernisiert, wenn es nötig war. Um 2016/17 herum wurde im Rahmen einer Bachelorarbeit von einem Studenten einige Codeverbesserungen vorgenommen, es fühlt sich aber immer noch recht inhomogen an.

Ich würde bei den Standardstilen bleiben, z.B. style=authoryear, und dann Anpassungen vornehmen. \begin{werbung}Etwas mehr Spielraum und Anpassungsmöglichkeiten hat man mit den Stilen von biblatex-ext.\end{werbung}

Zum Thema ISO 690 findet man auch hier im Forum einige Beiträge, in denen ich ähnliches geäußert habe: literaturverzeichnis-nach-din-iso-690-t20648.html Oder bei TeX.SX: https://tex.stackexchange.com/q/438515/35864

Es macht mich ein bisschen stutzig, dass Du schreibst, dass die Felder mit "Peter Hansen", "Karl Lagerfeld" und "hanswurst" leer sein müssten. Das wäre dann vielleicht zu viel der Leere. Einen author sollte eine @inproceedings schon haben. Und eigentlich sollte ein @proceedings auch einen editor haben. Der Verlag soll uns geschenkt sein, da geht es auch ohne ganz gut.

ReFleXxiv
Forum-Anfänger
Forum-Anfänger
Beiträge: 11
Registriert: Do 28. Mär 2019, 11:16

Beitrag von ReFleXxiv »

Alles klar, danke schon mal für deine Antwort!

mincrossrefs löst schonmal mein eines Problem.

Das mit Autor und Editor ist tatsöchlich etwas schwierig... Vom Prinzip her könnte ich die ITTC für beides angeben. Aber eigentlich ist das mehr eine Organisation. (bei Interesse siehe: https://www.ittc.info/media/8001/75-02-02-01.pdf )

Da jetzt die Grundfehler ausgemerzt sind kann ich natürlich mal schauen wie mir das Ergebnis dann gefällt.

Zum Stil an sich: Ich hatte eigentlich keine große Lust mich mit der Bibliographie richtig auseinanderzusetzen und hatte ursprünglich meine 13 Quellen einfach per Hand gelabelt und referenziert. Aber mein Betreuer hätte es gerne mit bibtex/biblatex bzw meinte es kann auch nicht schaden, dass für spätere Arbeiten schonmal verwendet zu haben. Un dann hatte er eben gesagt halte dich beim Stil und die DIN Norm und ich dachte das einfachste wäre es da ein entprechendes Stil Paket zu nehmen... Ich werde mal über einen anderen Stil nachdenken... dein biblatex-ext Vorschlag sieht garnicht mal so schlecht aus :D

Gast

Beitrag von Gast »

Es spricht im Allgemeinen nichts dagegen, eine Organisation (oder andere juristischen Personen im Gegensatz zu natürlichen Personen) in das author- oder editor-Feld zu schreiben. Was zählt ist die Autorenschaft (siehe z.B. auch https://tex.stackexchange.com/q/480431/35864 bei TeX.SX). Häufig ist es schöner, einen corporate author anzugeben, als das Feld leer zu lassen. Du könntest hier z.B. author = {{Resistance Committee of the 28th ITTC}}, probieren (beachte die doppelten Klammern: https://tex.stackexchange.com/q/10808/35864). Aber manchmal geht es nicht anders. Wenn die @proceedings allein nicht im Verzeichnis auftaucht, kann man da eventuell auch besser auf den editor verzichten, als wenn man den Band zitieren wollte.

Die Frage ist, wie genau Dein Betreuer es mit der Norm nimmt. Hat er das nur gesagt, damit Du eine Richtung hast und damit er Dir keine eigenen Vorgaben machen muss? Oder ist er ein DIN-Fetischist und sitzt dann nachher mit der Norm und nem Maßband da und misst alles nach? Zumindest die englische ISO 690 ist an einigen Stellen recht flexibel, sodass es gar nicht notwendig ist, biblatex-iso zu nehmen. Mit ein paar kleinen Anpassungen wird biblatex-ext den Vorgaben schon weitgehend gerecht und mit etwas mehr Spielraum sind auch die Standardstile von biblatex fast ISO-690-konform.

ReFleXxiv
Forum-Anfänger
Forum-Anfänger
Beiträge: 11
Registriert: Do 28. Mär 2019, 11:16

Beitrag von ReFleXxiv »

Mein Betreuer ist eher kein Norm-Fetischist glaube ich :D

Also benutze ich denke ich nun (zumindest erstmal):

\usepackage[
backend=biber,
style=ext-authoryear, 
sortlocale=de_DE,
autolang=other,
bibencoding=UTF8, 
hyperref=true, 
maxcitenames=2,
mincrossrefs=999, 
dashed= false
]{biblatex} 
\DeclareDelimFormat[parencite]{nameyeardelim}{\addcomma\space}

Gast

Beitrag von Gast »

ReFleXxiv hat geschrieben:Mein Betreuer ist eher kein Norm-Fetischist glaube ich :D
Das ist gut. Man hört hier ja so einiges von drakonisch durchgesetzten Vorgaben.

Wenn die Dokumentensprache Deutsch ist, dann brauchst Du sortlocale=de_DE, nicht. Ebenso wird bibencoding=UTF8, wegen \usepackage[utf8]{inputenc} automatisch erkannt. Die Optionen können also wegfallen. hyperref=true, bringt eigentlich auch nichts und kann weggelassen werde. Die Voreinstellung hyperref=auto, sorgt für das gleiche Verhalten im Dokument: Beide Einstellungen produzieren Links dann und nur dann, wenn das hyperref-Paket geladen wurde. Sie unterscheiden sich nur in einer Warnung, die hyperref=true ausgibt, wenn das Paket hyperref nicht geladen wurde.

Statt \DeclareDelimFormat[parencite]{nameyeardelim}{\addcomma\space} ist
\DeclareDelimFormat{nameyeardelim}{\addcomma\space}
ein Ticken allgemeiner und würde dafür sorgen, dass auch bei \cite und \footcite ein Komma zwischen Autor und Jahr erscheint.

ReFleXxiv
Forum-Anfänger
Forum-Anfänger
Beiträge: 11
Registriert: Do 28. Mär 2019, 11:16

Beitrag von ReFleXxiv »

Danke für die weiteren Tips!

Jetzt habe ich in meinem Hauptdokument noch das Problem, dass ein Eintrag eine Overfull box produziert und dadurch eine Leerzeile ensteht. Zumindest hab ich schon durch vorheriges rumprobieren vermutet, dass es die overfull box ist.
Hast du dafür zufällig auch eine schnelle Lösung parat?

Gast

Beitrag von Gast »

Das ist leider ohne konkretes Beispiel schwer. Overfull boxes werden meist dadurch verursacht, dass TeX daran scheitert, einen guten Zeilenumbruch zu finden. Im Literaturverzeichnis hat man meist nicht so viele Möglichkeiten manuell gegenzusteuern. Wenn es nur daran liegt, dass TeX ein bestimmtes Wort nicht trennen kann, dann hilft die richtige Spracheinstellung oder \hyphenation: https://texfaq.org/FAQ-hyphexcept

Eine kleine Übersicht über andere Tricks findest Du bei https://tex.stackexchange.com/q/442308/35864

Für konkrete Hilfe müsste ich ein Minimalbeispiel mit dem relevanten Eintrag sehen.

Ganze Leerzeilen hätte ich wegen overfull boxes aber nicht erwartet ...

ReFleXxiv
Forum-Anfänger
Forum-Anfänger
Beiträge: 11
Registriert: Do 28. Mär 2019, 11:16

Beitrag von ReFleXxiv »

Hm okay... In meinem Minimalbeispiel krieg ich den Fehler nur reproduziert indem ich meine vollständige Präambel benutze... Ich probier also mal paar packages durch..

Gast

Beitrag von Gast »

Interessant wären wohl vor allem Pakete oder Einstellungen, die die Randeinstellungen ändern (geometry) oder die Schriftart/-größe/-.... Wenn Dein Minimalbeispiel mit der gesamten Präambel das Problem reproduziert, dann sollte sich das Problem durch Auskommentieren größerer Blöcke recht schnell eingrenzen lassen. Wenn die Präambel nicht zu massiv ist, dann ist es auch kein Problem, wenn das Beispiel nicht zu 100% minimal ist.

Wenn Du das Problem isoliert hast, ist es vielleicht sinnvoll, eine neues Thema aufzumachen, damit man hier den Überblick nicht verliert. Die Eingangsfrage ist ja mehr oder weniger gelöst.

Antworten