这是我修改后的 .bst 中确定作者列表格式的相关部分:
FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
nameptr #1 >
{
nameptr #3
#1 + =
numnames #4
> and
{ " et~al." * }
'skip$
if$
s nameptr "{ll}" format.name$ 't :=
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}
在编译时,如果我有 4、5 个或更多作者,它就可以正常工作。然后它会编译为 F. Author et al。但是,如果列表中只有一两个作者,它只会打印 F. Author。所以,不是 et al。之后,打印第二个作者的名字也不是。如果有人可以修改代码的部分,如果只有一位作者,则只打印 F. Author,如果有多位作者(不止一位),则只打印 F. Author et al。我将不胜感激。谢谢。