我必须使用自定义 .bst 文件来处理一篇论文。当我的参考文献恰好有两位作者时,这些作者会被分开在文本中用“ , ”表示。
例如 (Simonyan , Zisserman, 2014)。我希望它是 (Simonyan and Zisserman, 2014)。
在我的参考书目中,这种风格是正确的。那么,是否有必要更改 .bst 文件?
我认为以下是相关行:
INTEGERS { nameptr namesleft numnames }
FUNCTION {format.names}
{ 's :=
'f :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr f format.name$ 't :=
nameptr #1 >
{ namesleft #1 >
{ ", " * t * }
{ t "others" =
{ " et~al." * }
{ ", " * t * }
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}
FUNCTION {format.authors}
{ author empty$
{ "" }
{ "{vv~}{ll}{, jj}{, f.}" author format.names }
if$
}
答案1
相关的宏是format.lab.names.abbr
。对于“and”,它必须读取
FUNCTION {format.lab.names.abbr}
{ 's :=
s num.names$ 'numnames :=
numnames #1 >
{ numnames #2 >
{ s #1 "{vv~}{ll}" format.name$ " et al." * }
{ s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
{ s #1 "{vv~}{ll}" format.name$ " et al." * }
{ s #1 "{vv~}{ll}" format.name$ " and " *
s #2 "{vv~}{ll}" format.name$ *
}
if$
}
if$
}
{ s #1 "{vv~}{ll}" format.name$ }
if$
}
更改位于最内层条件的第二个分支中。isprs.bst
当前可用的版本为http://www.isprs.org/documents/orangebook/app5.aspx有
s #1 "{vv~}{ll}" format.name$ " , " * % replaced and with ,
在那里我们让它读
s #1 "{vv~}{ll}" format.name$ " and " *
再次。请注意他们的评论和逗号前的虚假空格。
当然,您仍应将此问题报告给模板的维护者,并且不应.bst
直接修改文件。只需修改并重命名副本isprs-and.bst
,然后记录更改。