我想要当.bib文件中有超过三位作者时,latex可以自动截断作者。
Tang, J. and Scellato, S. and Musolesi, M. and Mascolo, C. and Latora, V.
在 .bib 文件中应该在论文中显示为Tang, J., Scellato, S. and Musolesi, M. et al.
预期格式第一作者,第二作者和第三作者等
我得到了 apsrev4-1.bst。截断作者的解决方案当有 5 位或更多作者时。
当有 5 位或更多作者时,如何获取截断的参考文献,例如“Ann Author et al.”?
REVTeX 4.1 中发布的 BibTeX 样式文件不再截断参考文献的作者列表(如果作者超过 10 位,REVTeX 4 的 .bst 文件会截断列表)。APS 编辑更喜欢对作者不超过 15 位的参考文献使用完整的作者列表。对于较长的列表,请使用短语“和其他”代替要省略的作者。
但是需要在 .bib 文件中添加“and others”。如何自动格式化作者而不按照我期望的格式修改 .bib 文件?
@Article{2010Tang.J,
Title = {Small-world behavior in time-varying graphs},
Author = {Tang, J. and Scellato, S. and Musolesi, M. and Mascolo, C. and Latora, V.},
Journal = {Phys. Rev. E},
Year = {2010},
Month = {May},
Pages = {055101},
Volume = {81},
Doi = {10.1103/PhysRevE.81.055101},
File = {:..\\pdfs\\Small-worldbehaviorintime-varyinggraphs\\Small-worldbehaviorintime-varyinggraphs.pdf:PDF},
Issue = {5},
Numpages = {4},
Publisher = {American Physical Society},
Url = {http://link.aps.org/doi/10.1103/PhysRevE.81.055101}
}
format.names
apsrev4-1.bst 中的
FUNCTION {format.names}
{ 'bibinfo :=
duplicate$ empty$ { pop$ "" } {
duplicate$ num.names$
duplicate$ 'numnames :=
'namesleft :=
's :=
#1 'nameptr :=
""
{ namesleft #0 > }
{
format.names.morfont
bibinfo bibinfo.check
type$ "presentation" =
'check.speaker
'skip$
if$
't :=
nameptr #1 > not
{
t *
} {
namesleft #1 >
{
names.punctuate
t *
} {
s nameptr "{ll}" format.name$ duplicate$ "others" =
{ 't := }
{ pop$ }
if$
numnames #2 >
'names.punctuate
'skip$
if$
t "others" =
{
" " *
bbl.etal
emphasize
*
} {
bbl.and
space.word *
t *
}
if$
}
if$
}
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
} if$
}