PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit natbib und abbrvnat bei mehr als zwei Autoren



ichbrauchehilfe
15-01-2010, 20:10
Hallo zusammen,

ich habe mit dem Usepackage natbib und dort mit Style abbrvnat folgendes Problem.

Bei mehr als zwei Autoren steht zwischen dem vorletzten Autor und dem "und" vor dem letzten Autor ein Komma. Das ist meiner Meinung nach überflüssig.
Beispiel:
Autor1, Autor2, und Autor3

Ich habe das Usepackage so eingebunden.
\usepackage[square,numbers]{natbib}
\bibliographystyle{abbrvnat}

Ich denke, dass das Verhalten mit diesem Teil der Styledefinition zu tun hat.


FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
nameptr #1 >
{ namesleft #1 >
{ ", " * t * }
{ numnames #2 >
{ "," * }
'skip$
if$
t "others" =
{ " u.\,a." * }
{ " und " * t * }
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}


Da ich aber keine Ahnung habe wie man die Styles definiert, komme ich nicht weiter.
Mir ist das Verhalten auch bei anderen Styles aufgefallen. Da muss es doch eine Lösung geben.

Schon mal vielen Dank

rais
15-01-2010, 20:25
Moin moin,


Da ich aber keine Ahnung habe wie man die Styles definiert, komme ich nicht weiter.

und doch hast Du diesen Style bereits geändert ... aus abbrevnat.bst, wie es TL'09 beiliegt:


FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
nameptr #1 >
{ namesleft #1 >
{ ", " * t * }
{ numnames #2 >
{ "," * }
'skip$
if$
t "others" =
{ " et~al." * }
{ " and " * t * }
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}

Benenne Deine geänderten Dateien wenigstens anders als deren Originale ...

MfG

ichbrauchehilfe
15-01-2010, 20:45
Hi,



und doch hast Du diesen Style bereits geändert

Ja, dass hätte ich dabei schreiben sollen. Der Style passt am besten, muss aber eben ans deutsche angepasst werden. Das habe ich soweit hinbekommen :o



Benenne Deine geänderten Dateien wenigstens anders als deren Originale ...

Werde ich machen. Wie binde ich dann ein?
\usepackage{natbib}
\bibliographystyle{neuername}?

Hast du eine Idee, wie ich das Komma weg bekomme?

Danke

john_doe
15-01-2010, 23:10
Ersetze doch mal die Klammer


{ numnames #2 >
{ "," * }
'skip$
if$
t "others" =
{ " u.\,a." * }
{ " und " * t * }
if$
}
durch


{ t "others" =
{ " u.\,a." * }
{ " und " * t * }
if$
}
Wenn mich nicht alles täuscht, dann ist der gelöschte Abschnitt für das Komma bei insgesamt mehr als zwei Autoren verantwortlich.

ichbrauchehilfe
16-01-2010, 00:11
Danke! Der Tipp die Zeilen zu löschen hat geholfen.

Jetzt bleibt noch die Frage, wie ich meinen umbenannten bst einbinde.
\bibliographystyle{neuername} funktioniert nicht

Danke schon mal

rais
17-01-2010, 19:02
Moin moin,


Jetzt bleibt noch die Frage, wie ich meinen umbenannten bst einbinde.
\bibliographystyle{neuername} funktioniert nicht

Scenario 1: neuername.bst existiert nicht unter diesem Namen
Scenario 2: Du hast neuername.bst dort angelegt, wo Du auch dessen Original stehen hast: in dem Fall hlft
Scenario 2.1: texhash (siehe vllt auch Stichwort ``Refresh FNDB'') oder
Scenario 2.2: neuername.bst in Dein Arbeitsverzeichnis zu legen (da es sich um einen von Dir angepassten Stil handelt, ist es imho sinnvoller, so einen Stil im eigenen Arbeitsverzeichnis zu lassen ... es sei denn, Du willst mehrere Projekte mit diesem Stil versehen.

Es mögen noch mehr Scenarien denkbar sein, warum beschreibst Du nicht *genau*, was Du eigentlich wie wo anelegt hast?

MfG

ichbrauchehilfe
20-01-2010, 11:08
Hi,

sorry, war die letzten Tagen außer Gefecht gesetzt.



Scenario 2: Du hast neuername.bst dort angelegt, wo Du auch dessen Original stehen hast: in dem Fall hlft

Scenario 2.2: neuername.bst in Dein Arbeitsverzeichnis zu legen


Die beiden Hinweise haben geholfen.

Dankeschön