使用 natbib 限制参考书目中的作者数量

使用 natbib 限制参考书目中的作者数量

我正在使用natbib它来管理我的参考文献,但我遇到了一个问题:我想将参考书目中显示的作者数量限制为 5 位作者“et al”,但我的参考文献列表始终显示文章的所有作者姓名。

natbib我可以选择以下选项:

\usepackage[square,sort&compress,sectionbib]{natbib}

biblatex可以使用:

\usepackage[maxnames=5]{biblatex}

但似乎与不兼容natbib

是否有类似的选项natlib?提前感谢您的帮助。

EDIT1 我正在使用Overleaf,所以我不认为我可以更改硬编码值。参考书目栏是\bibliographystyle{francaissc}

编辑2

我看到了natbib:如何在参考文献中显示部分作者,但我不太喜欢这个解决方案(最后手动删除作者)。这会很麻烦,因为我的bibtex文件中有数百条引文,而且我不确定最后要显示多少作者。

知道怎样做吗?

EDIT3 我的消息被标记为可能重复 natbib:如何在参考文献中显示部分作者但此消息中没有提供解决方案。

答案1

我建议像在答案中那样更改样式文件natbib:如何在参考文献中显示部分作者但是如果您只想更改 TeX 文件,您可以使用以下命令et collab在五位作者之后打印(如果有更多作者):

\documentclass{article}
\usepackage[square,sort&compress,sectionbib]{natbib}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@Book{Batty:2007,
  author    = {Michael Batty and Max Musti and Someone Else and Another One and Still exists and Who Else},
title     = {Cities and Complexity},
publisher = {MIT Press},
year      = 2007}
@Book{atty:2007,
author    = {Michael Atty and Max Musti and Someone Else and Another One},
title     = {Cities and Complexity},
publisher = {MIT Press},
year      = 2007}
\end{filecontents*}

\let\oldthebibliography\thebibliography
\renewcommand{\thebibliography}[1]{%
  \oldthebibliography{#1}
  \let\oldbibitem\bibitem
  \let\oldtextsc\textsc
  \def\oldbbland{et}
  \newcounter{authorcount}
  \def\bibitem[##1]##2{%
    \let\textsc\oldtextsc
    \let\bbland\oldbbland
    \oldbibitem[##1]{##2}%
    \let\textsc\mytextsc%
    \let\bbland\mybbland
    \setcounter{authorcount}{0}
  }
  \def\mybbland{\setcounter{authorcount}{0}\oldbbland}
  \def\dropetal##1.{ \bbletal}
  \def\mytextsc##1{%
    \oldtextsc{##1}%
    \stepcounter{authorcount}%
    \ifnum\value{authorcount}=5\relax%
      \expandafter\dropetal%
    \fi%
  }%
}
\begin{document}

This a citation \cite{Batty:2007}\ and \cite{atty:2007}

\bibliographystyle{francaissc}
\bibliography{\jobname}

\end{document} 

在此处输入图片描述

相关内容