我目前正在修改 natbib 引用样式,但现在遇到一个问题,即如果有 2 位作者,则第一个作者姓名和“and”之间缺少一个空格。超过 2 位作者是可以的。
我想我需要为 numnames = 2 指定一个案例,但我尝试的编辑没有效果。
这是我的代码:
FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr "{vv~}{ll }{f{.}.}{, 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$
}
我还有一个部分抑制了作者姓名首字母后的句号,我不认为这会造成干扰但会添加它以供参考:
FUNCTION {no.bib.dots}
{ duplicate$ empty$
{ pop$ "" }
{ "\catcode`.=\active\NoBibDots{" swap$ * "}\catcode`.=12" * }
if$
}
FUNCTION {format.authors}
{ author empty$
{ "" }
{ author format.names no.bib.dots ~"." * }
if$
}
非常感谢!