PDA

View Full Version : Frage zu [minnames] (biblatex)



Scirty
06-03-2010, 22:09
Hallo zusammen!

Ich erstelle mein Literaturverzeichnis mittels Biblatex. Jetzt ist mir folgendes "Problem" aufgefallen:
Habe ich z.B. 6 Autoren, und lasse das Literaturverzeichnis mit \printbibliography[minnames=6] ausgeben, so wird es wie gewünscht dargestellt.
Gebe ich jedoch eine Zahl größer als die Autorenzahl an, so fehlt das "und" zwischen vorletztem und letztem Autor.
Ich könnte jetzt natürlich einfach in meiner Semesterarbeit das Buch mit den meisten Autoren "x" suchen und dann \printbibliography[minnames=x] ausgeben lassen.
Allerdings frage ich mich ob es da nicht eine "bessere" Lösung gibt?

Minimalbeispiel:


\documentclass{scrartcl}

\usepackage[ngerman]{babel}
\usepackage[babel]{csquotes}
\usepackage{filecontents}

\begin{filecontents}{reference.bib}
@Article{Muster,
author = {Muster, M. and Author, A. and Buthor, B. and Cuthor, C. and Duthor, D. and Euther, E.},
title ={Titel},
year = {1998},
journaltitle= {Bsp},
volume = {14},
pages= {4--15},
issue = {2}
}
\end{filecontents}

\usepackage[style=numeric-comp]{biblatex}
\bibliography{reference}

\begin{document}
Hier steht Text. \cite{Muster}
\printbibliography[minnames=6] %"Richtige Ausgabe"
\printbibliography[minnames=7] %Ausgabe ohne "und" falls minnames > 6

\end{document}

Vielen Danke im Voraus!

lockstep
06-03-2010, 22:31
Die Option minnames gibt die Autorenzahl an, auf die gekürzt werden soll, wenn die Zahl maxnames überschritten wird. Das macht vor allem im Text Sinn - bei der Standardeinstellung (maxnames=3,minnames=1) wiird ein Werk mit vier Autoren als "ErsterAutor u.a." zitiert. Ich nehme an, du möchtest im Literaturverzeichnis immer alle Autoren aufgelistet haben; das erreicht man mit



\printbibliography[maxnames=99]% oder sonst eine unverschämt hohe Zahl

Ich gebe allerdings zu, dass das Verhalten von biblatex in deinem Beispiel auch mich überrascht hat.

lockstep

Scirty
07-03-2010, 03:48
Danke! So klappt es.

Ich vermute, dass Biblatex "verwirrt" ist wenn minnames ( > Anzahlautoren) > maxnames (hab mal ein bisschen damit rumgespielt) und es so zu dieser falschen Ausgabe kommt.

Allerdings finde ich dass eine Warnung ala "minnames > maxnames" ausgegeben werden sollte :)

tral
07-03-2010, 08:49
Ich denke die Warnung braucht es nicht. Das ist einfach ein Bug. Eigentlich sollte folgendes gelten (Pseudocode):



for i=1 to names.length
if i==names.length OR i==minnames
print('und')
print(names[i]


Es scheint so, als würde nur die zweite Bedingung getestet und dann endet die Schleife, ohne das jemals 'und' ausgegeben wird...

Machst du bitte eine Meldung an die biblatex-Macher?

Christian.

lockstep
07-03-2010, 10:51
Ich habe einen Bug-Report (https://sourceforge.net/tracker/index.php?func=detail&aid=2964988&group_id=244752&atid=1126005) samt (etwas gekürztem) Minimalbeispiel auf der biblatex-Projektseite abgesetzt.

lockstep

voss
07-03-2010, 12:52
Ich habe einen Bug-Report (https://sourceforge.net/tracker/index.php?func=detail&aid=2964988&group_id=244752&atid=1126005) samt (etwas gekürztem) Minimalbeispiel auf der biblatex-Projektseite abgesetzt.


setzt man zusätzlich maxnames auf beispielsweise 6, damit
minnames kleiner maxnames ist, stimmt es wieder.

Herbert

lockstep
08-03-2010, 18:12
Der Bug-Status wurde vom biblatex-Autor Philipp Lehman auf "anhängig" gesetzt. Mit ein bisschen Glück ist der Bug in v0.9a beseitigt.

lockstep

lockstep
19-03-2010, 20:19
biblatex v0.9a ist vor einer Stunde herausgekommen, und der Bug ist beseitigt. Konkret: Auch im optionalen Argument von \printbibliography kann die Option minnames nun nicht auf einen höheren Wert gesetzt werden als maxnames, ein diesbezüglicher Versuch erzeugt eine Fehlermeldung.

lockstep