如何在 Chicago.bst 中为两位以上的作者添加牛津逗号?

如何在 Chicago.bst 中为两位以上的作者添加牛津逗号?
FUNCTION {format.lab.names}
  { 's :=
s num.names$ 'numnames :=
numnames #4 >    % change number to number of others allowed before
       % forcing "et al".
{ s #1 "{vv~}{ll}" format.name$ " et~al." * }
{
  numnames #1 - 'namesleft :=
  #2 'nameptr :=
  s #1 "{vv~}{ll}" format.name$
{ namesleft #0 > }
{ nameptr numnames =
    { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" =
    { " et~al." * }
    { " and " * s nameptr "{vv~}{ll}" format.name$ * }
      if$
    }
    { ", " * s nameptr "{vv~}{ll}" format.name$ * }
  if$
  nameptr #1 + 'nameptr :=
  namesleft #1 - 'namesleft :=
}
  while$
}
 if$
}

答案1

(评论太长,因此作为答案发布)

您的查询有点令人困惑。根据查询的标题(其中包括“chicago.bst”)以及您设置标签的事实natbib,我假设您正在使用 BibTeX 和natbib引文管理包。现在,BibTeX 书目样式称为chicago——顺便说一句,它相当古老,因此不是实施格式指南当前的芝加哥大学格式手册 (又名“芝加哥”) 的版本确实使用了“牛津逗号”。这对于参考书目中的格式化条目以及(如果natbib加载了该longnamesfirst选项)引文标注都是如此。

如果您不使用chicago.bstand natbib,而是使用biblatex-chicagoand biber,则默认情况下您仍会得到“牛津逗号”。 (要获取截断的名字和中间名,您必须使用biblatex-chicago选项加载包firstinits,即\usepackage[firstinits]{biblatex-chicago}。)

因此,请明确说明您想要实现的目标。


以下是一个简短的示例文档,它验证了我上面针对chicago/natbib情况所做的断言。(它对biblatex-chicagoandbiber也成立。)我已突出显示“牛津逗号”的所有四个实例 — — 两个在引文标注中,两个在参考书目中。

在此处输入图片描述

\documentclass{article}
\begin{filecontents}[overwrite]{mybib.bib}
@misc{a:3001,
  author={Adam Alan Alonzo},
  title ={What?},
  year  =3001,
}
@misc{ab:3002,
  author={Adam Alan Alonzo and Brenda Bettina Black},
  title ={When?},
  year  =3002,
}
@misc{abc:3003,
  author={Adam Alan Alonzo and Brenda Bettina Black and Carla Christina Color},
  title ={Who?},
  year  =3003,
}
@misc{abcw:3004,
  author={Adam Alan Alonzo and Brenda Bettina Black and Carla Christina Color and William Walter White},
  title ={Why?},
  year  =3004,
}
\end{filecontents}

\usepackage[authoryear,round,longnamesfirst]{natbib}
\bibliographystyle{chicago}

\begin{document}
\citep{a:3001,ab:3002,abc:3003,abcw:3004}, \citet{abcw:3004}.
\bibliography{mybib}
\end{document}

相关内容