PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : bst: welcher eintrag definiert, ob "et al" ab 4.Autor?



epfel
10-06-2008, 11:01
Wertes Forum,

wie muss ich bspw. vancouver.bst modifizieren, damit 4 Autoren vollständig genannt, ggf. weitere jedoch als "et al." im Lit-Verzeichnis gelistet werden?

Die Forensuche hat mich leider nicht recht weiter gebracht. Ich wäre erfreut über eine schnelle Lösung und ebenfalls über einen Literaturtip, der mir das Verständnis der .bst ermöglicht.

Anbei noch der nach meiner novizenhaften Einschätzung wesentliche Abschnitt des vancouver.bst :

STRINGS { bibinfo}
INTEGERS { nameptr namesleft numnames }

FUNCTION {format.names}
{ 'bibinfo :=
duplicate$ empty$ 'skip$ {
"." ". " find.replace 's :=
"" 't :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr
"{vv~}{ll}{ f{}}{ jj}"
format.name$
remove.dots
bibinfo bibinfo.check
't :=
nameptr #1 >
{
nameptr #6
#1 + =
numnames #6
> and
{ "others" 't :=
#1 'namesleft := }
'skip$
if$
namesleft #1 >
{ ", " * t * }
{
"," *
s nameptr "{ll}" format.name$ duplicate$ "others" =
{ 't := }
{ pop$ }
if$
t "others" =
{
" " * bbl.etal *
}
{ " " * t * }
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
} if$
}

rais
10-06-2008, 22:33
Moin moin,


wie muss ich bspw. vancouver.bst modifizieren, damit 4 Autoren vollständig genannt, ggf. weitere jedoch als "et al." im Lit-Verzeichnis gelistet werden?

vllt genügt es, die beiden #6 durch #4 und den darauffolgenden "others" durch "et al." zu ersetzen? Aber nenne Deine geänderte Version auf jeden Fall _anders_, z. B. `myvancouver.bst', dann hast Du es leichter, wenn Du mit Deinem Projekt mal auf einen anderen Rechner umziehen solltest.;)

Infos zum bst-Aufbau findest Du z. B. mit `texdoc btxhak'

MfG

epfel
11-06-2008, 09:41
Danke für Deine Antwort! So funktioniert es. Allerdings schreibt der .bst (egal ob modifiziert oder nicht) immer ein Komma vor dem et al. Zum Beispiel:

Ersterautor EA, [...], Letzterautor LA, et al


Das sieht unglücklich aus. Bislang suche ich noch nach einer Möglichkeit, das zu unterdrücken.

rais
11-06-2008, 11:31
hmm, lass mal die Ersetzung "others" mit "et al." weg, damit wird nur t zugewiesen, was später auf "others" abgefragt wird und entsprechend bbl.etal aufgerufen werden soll -- da hatte ich wohl Tomaten auf den Augen;-)

MfG