IOP 出版期刊要求,如果有两位以上的作者,则只应显示名字,后跟“et al.”(\etal
在iopart.cls
)。但是,如果加载了引文管理包dcu
,则参考书目格式(推荐的iopart
)会在第一次引用时包含文本中的所有作者harvard
。有什么方法可以解决此冲突吗?我想使用哈佛格式,文本中的作者不超过两位。
更具体地说,我正在创建一个iopart
文档并使用哈佛字母表样式作为参考文献。我正在从 bib 文件中读取,并\citeasnoun{ref}
在文本中使用。我还使用dcu.bst
在参考文献中包含文章标题。
答案1
对于有 3 个或更多作者的出版物,如果harvard
加载了引文管理包,则dcu
参考书目样式旨在在第一次引用该出版物时包含该出版物所有作者的姓名;从第二次引用开始,firstauthor et al
使用缩写形式进行引文调用。
该软件包的用户指南harvard
提到,可以覆盖默认设置,即可以通过发出指令,从文章第一次被引用开始生成缩写的引文标注
\citationmode{abbr}
harvard
在序言中加载包之后。
完整的 MWE (最小工作示例):
\RequirePackage{filecontents}
\begin{filecontents}{mybib.bib}
@misc{abc, author="Author and Buthor and Cuthor", title="Title", year=3001}
\end{filecontents}
\documentclass{iopart}
\usepackage{harvard}
\bibliographystyle{dcu}
\citationmode{abbr} % <-- new
\begin{document}
\noindent
\citeasnoun{abc} argue that \dots
\section*{References}
\bibliography{mybib}
\end{document}
另一种解决方案是harvard
根本不加载包,而是加载natbib
包,同时仍使用dcu
参考书目样式。使用此解决方案,实际上最好加载har2nat
包,这样可以natbib
自动加载包,同时保留包的一些特殊功能harvard
。
完整的 MWE(没有提供屏幕截图,因为它与上面显示的基本上相同):
\RequirePackage{filecontents}
\begin{filecontents}{mybib.bib}
@misc{abc, author="Author and Buthor and Cuthor", title="Title", year=3001}
\end{filecontents}
\documentclass{iopart}
\usepackage{har2nat} % loads 'natbib' automatically
\bibliographystyle{dcu}
\providecommand\newblock{} % suppress some meaningless warnings
\begin{document}
\noindent
\citet{abc} argue that \dots
\bibliography{mybib}
\end{document}
答案2
该biblatex
包 (http://linorg.usp.br/CTAN/macros/latex/contrib/biblatex/doc/biblatex.pdf)有一个maxnames
变量
\usepackage[style=authoryear-ibid,backend=biber, maxnames=2]{biblatex}