PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bibtex Autoren Problem (Vorname - Nachname Reihenfolge)



Mr_Blonde
07-02-2008, 11:09
Hallo,

ich bastel gerade an meiner Diplomarbeit und habe ein Problem mit Bibtex. Im Literaturverzeichnis werden die Namen der Autoren unterschiedlich angegeben. D.h., wenn ich zwei Autoren angegeben habe, wird der Erste mit NACHMANE, VORNAME und der zweite mit VORNAME, NACHNAME gesetzt. Die Reihenfolge (ob zuerst Vorname oder Nachname) wäre mir eigentlich egal, solange es einheitlich ist. Wenn ich mehr als 2 Autoren angebe wird immer nur der erste in der Reihenfolge N, V und alle anderen V, N gesetzt.

Hier ein Beispiel:

(Bibtex Eintrag)


@article{DiHe76,
author = {W. Diffie and M. Hellman},
title = {{New Directions in Cryptography}},
year = {1976},
journal = {IEEE Transactions on Information Theory},
volume = {IT-22},
number = {6},
pages = {644--654},
language = {ngerman}
}


(gesetztes Literaturverzeichnis)


[DH76] Diffie, W. und M. Hellman: New Directions in Cryptography. IEEE Transactions
on Information Theory, IT-22(6):644–654, 1976.


Zum Setzten benutze ich:


\bibliographystyle{babalpha}
\bibliography{quellen}


Weiß jemand, an welcher Stelle man etwas umstellen muß, damit die Namenreihenfolge einheitlich wird?

Vielen Dank schonmal!

Julialei
07-02-2008, 18:10
Hi Mr_Blonde,

in der babalpha.bst wird definiert, wie die Autoren später im Literaturverzeichnis dargestellt werden. Für deine Zwecke musst du in die BST-Programmierung einsteigen.

VG
Julia

Mr_Blonde
15-02-2008, 14:38
Hier ist die (unschöne) Lösung, falls jemand das gleiche Problem hat.

In der Datei babalpha.bst, folgende Zeilen ändern:


Original:


FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ nameptr #1 >
{
s nameptr "{ff{\btxfnamespacelong } }{vv~}" format.name$
s nameptr "{ll}" format.name$ lastnamefont *
s nameptr "{, jj}" format.name$ *
't :=
namesleft #1 >
{ ", " * t namefont * }
{ numnames #2 >
{ "\btxandcomma {}" * }
'skip$
if$
s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ "others" =
{ " " "\btxetalshort {.}" etalfont * * }
{ " \btxandlong {}\ " * t namefont * }
if$
}
if$
}
{
s nameptr "{ll}" format.name$ lastnamefont
s nameptr "{,~jj}{, ff{\btxfnamespacelong }}{~vv}"
format.name$ * namefont
}
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}


Geändert: (Vorname Nachname)


FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ nameptr #1 >
{
s nameptr "{ff{\btxfnamespacelong } }{vv~}" format.name$
s nameptr "{ll}" format.name$ lastnamefont *
s nameptr "{, jj}" format.name$ *
't :=
namesleft #1 >
{ ", " * t namefont * }
{ numnames #2 >
{ "\btxandcomma {}" * }
'skip$
if$
s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ "others" =
{ " " "\btxetalshort {.}" etalfont * * }
{ " \btxandlong {}\ " * t namefont * }
if$
}
if$
}
{
s nameptr "{ff{\btxfnamespacelong } }{vv~}" format.name$
s nameptr "{ll}" format.name$ lastnamefont *
s nameptr "{, jj}" format.name$ *
}
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}


Garantie, dass es in allen Fällen funktioniert, gibt es natürlich keine. :-)

vizechecker
18-07-2008, 11:00
Hallo,

bei mir ist es umgekehrt, ich hätte das Literaturverzeichnis gerne so, wie im ersten Post beschrieben. Allerdings weiß ich nicht genau, was dieses babalpha.bst macht, ich habe mir eine solche Datei gegoogelt und als bibliographystyle eingebunden, aber dann bekomme ich eine Fehlermeldung, weil der Befehl providebibliographyfont nicht definiert ist. Muss ich davor noch ein Paket einbinden, damit ich babalpha nutzen kann?

Danke + Gruß,
Alex