我正在使用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}