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$
}
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$
}