如何显示任何书目条目最多三位作者

如何显示任何书目条目最多三位作者

如果书目条目有超过三作者,我只想写出前三位作者的名字,加上“et. al”。

我发现要实现这一点,我必须更改 .bst 文件及其中的“format.names”函数。我发现了另一个地点基本上我的问题已经得到解答。但是我不知道为什么这个解决方案对我的情况不起作用,因此我发布了以下帖子:

更准确地说,我原来的 format.names 函数如下所示:

FUNCTION {format.names}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
      nameptr #1 >
    { namesleft #1 >
        { ", " * t * }
        { numnames #2 >
        { "," * }
        'skip$
          if$
          t "others" =
        { " {\em et~al.}" * }
        { string.and * t * }
          if$
        }
      if$
    }
    't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

新的是

FUNCTION {format.names}
{ 
  nameptr #1 >
     {
      nameptr #3
      #1 + =
      numnames #5
      > and
        { "\bibinfo{person}{\bibinfo{person}{others}}" 't :=
          #1 'namesleft := }
        'skip$
      if$
      namesleft #1 >
}

使用新的 format.names 函数时我应用 BibTeX 时出现许多错误:

The top-level auxiliary file: thesis_main.aux
The style file: utphys_custom_threeAuthors.bst
function is an unknown function---line 415 of file utphys_custom_threeAuthors.bst
format.authors is an unknown function---line 415 of file utphys_custom_threeAuthors.bst
Curse you, wizard, before you recurse me:
function format.names is illegal in its own definition
---line 418 of file utphys_custom_threeAuthors.bst

不幸的是,我不懂 .bst 文件的编写语言,我可能会犯一个愚蠢的错误。如果你能帮助我,那就太好了。

相关内容