![如何在 Chicago.bst 中为两位以上的作者添加牛津逗号?](https://linux22.com/image/447248/%E5%A6%82%E4%BD%95%E5%9C%A8%20Chicago.bst%20%E4%B8%AD%E4%B8%BA%E4%B8%A4%E4%BD%8D%E4%BB%A5%E4%B8%8A%E7%9A%84%E4%BD%9C%E8%80%85%E6%B7%BB%E5%8A%A0%E7%89%9B%E6%B4%A5%E9%80%97%E5%8F%B7%EF%BC%9F.png)
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.bst
and natbib
,而是使用biblatex-chicago
and biber
,则默认情况下您仍会得到“牛津逗号”。 (要获取截断的名字和中间名,您必须使用biblatex-chicago
选项加载包firstinits
,即\usepackage[firstinits]{biblatex-chicago}
。)
因此,请明确说明您想要实现的目标。
以下是一个简短的示例文档,它验证了我上面针对chicago
/natbib
情况所做的断言。(它对biblatex-chicago
andbiber
也成立。)我已突出显示“牛津逗号”的所有四个实例 — — 两个在引文标注中,两个在参考书目中。
\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}