书目作者列表截断为第一作者等,如果超过作者

书目作者列表截断为第一作者等,如果超过作者

这是我修改后的 .bst 中确定作者列表格式的相关部分:

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 #4
          > and
            { " et~al." * }
            'skip$
          if$
          s nameptr "{ll}" format.name$ 't :=
        }
        't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

在编译时,如果我有 4、5 个或更多作者,它就可以正常工作。然后它会编译为 F. Author et al。但是,如果列表中只有一两个作者,它只会打印 F. Author。所以,不是 et al。之后,打印第二个作者的名字也不是。如果有人可以修改代码的部分,如果只有一位作者,则只打印 F. Author,如果有多位作者(不止一位),则只打印 F. Author et al。我将不胜感激。谢谢。

相关内容