![参考书目,两位作者用逗号,三位作者用分号](https://linux22.com/image/335085/%E5%8F%82%E8%80%83%E4%B9%A6%E7%9B%AE%EF%BC%8C%E4%B8%A4%E4%BD%8D%E4%BD%9C%E8%80%85%E7%94%A8%E9%80%97%E5%8F%B7%EF%BC%8C%E4%B8%89%E4%BD%8D%E4%BD%9C%E8%80%85%E7%94%A8%E5%88%86%E5%8F%B7%20.png)
我想要向其提交文章的期刊对参考书目有以下要求:当有两位作者时,他们之间应该用逗号和“and”一词隔开。
Mayers,J. 和 Nichols,B.
当它有三个或更多时,它应该是所有作者之间和“and”之前的分冒号。
布朗,A.;考威尔,P.;和弗林特,P.
我已经用过makebst
并且我能得到的只有 Mayers, J. 和 Nichols, B.(没有逗号)以及 Brown, A., Cowell, P. 和 Flint, P.(有逗号,但没有分号)。
我怀疑我必须在这里更改 bst 文件:
FUNCTION {format.names}
{ 'bibinfo :=
duplicate$ empty$ 'skip$ {
's :=
"" 't :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr
"{vv~}{ll}{, f.}{, jj}"
format.name$
bibinfo bibinfo.check
't :=
nameptr #1 >
{
namesleft #1 >
{ ", " * t * }
{
s nameptr "{ll}" format.name$ duplicate$ "others" =
{ 't := }
{ pop$ }
if$
numnames #2 >
{ "," * }
'skip$
if$
t "others" =
{
" " * bbl.etal *
}
{
bbl.and
space.word * t *
}
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
} if$
}
但我不知道该怎么做。有什么想法吗?