我想通过在参考文献列表中一定数量的作者(例如 3 位)后添加 et al. 来缩短我的参考书目,使用 unsrt 样式。
在我的序言中,我添加了上标选项的 cite 包:
\usepackage[superscript,biblabel]{cite}
在我的文件中,参考书目是由
\bibliographystyle{unsrt}
这种方法很好,但是参考书目太长了,因为无论有多少作者,所有作者都是列表者。
我尝试按照 Mico 的回答进行操作(这个问题),但不幸的是完全失败了。我的 unsrt.bst 文件中的原始 format.name 函数如下所示:
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 >
{ 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 {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 #1
> and
{ "et al." 't :=
#1 'namesleft := }
'skip$
if$
namesleft #1 >
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}
它 a) 不起作用,并且 b) 参考连接不再起作用。
我知道,我对此没有那么多的了解,这就是我询问如何解决这个问题的原因。
先感谢您!
答案1
在您的副本中替换以下内容并尝试:
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
#5 > and
{ "others" 't :=
#1
'namesleft := }
'skip$
if$
namesleft #1 >
{ ", " * t * }
{ numnames #2 >
{ "," * }
'skip$
if$
t "others" =
{ " et~al." * }
{ " and " * t * }
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}