我正在使用在 zotero 中创建的文件ecology
的参考书目样式。.bib
如何设置作者年份式引文标注中显示的作者数量限制?例如,如果作者不超过 3 位,则参考文献应为 (A, B and C, 2015) 而不是 (A et al. 2015 );如果作者超过 3 位,则引文标注应为 (D et al. 2010) 而不是 (D,E,F,G,H,I and J, 2015)。
答案1
ecology.bst
假设你从以下网站获取该文件https://schneider.ncifcrf.gov/ftp/ecology.bst,我建议您按如下方式进行:
复制该文件
ecology.bst
并将副本命名为ecology3.bst
。在文本编辑器中打开该文件
ecology3.bst
。(您用来编辑 tex 文件的编辑器就可以了。)找到函数
format.lab.names
。在我的文件副本中,该函数从第 1185 行开始。删除整个函数(约 23 行),并插入以下代码:
FUNCTION {format.lab.names} {'s := "" 't := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { s nameptr "{vv~}{ll}" format.name$ 't := nameptr #1 > { nameptr #2 = numnames #3 > and { "others" 't := #1 'namesleft := } 'skip$ if$ namesleft #1 > { ", " * t * } { s nameptr "{ll}" format.name$ duplicate$ "others" = { 't := } { pop$ } if$ t "others" = { " " * bbl.etal * } { bbl.and space.word * t * } if$ } if$ } 't if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ }
将文件保存
ecology3.bst
在主 tex 文件所在的目录中,或保存在 BibTeX 搜索的目录中。如果选择后者,请确保适当更新 TeX 发行版的文件名数据库。在您的主 tex 文件中,将指令更改
\bibliographystyle{ecology}
为\bibliographystyle{ecology3}
并执行完整的重新编译(LaTeX、BibTeX、LaTeX、LaTeX)以完全传播所有更改。
祝您 BibTeX 愉快!
完整的 MWE:
\RequirePackage{filecontents}
\begin{filecontents}{sample.bib}
@misc{ab,author="Anne Author and Brenda Buthor", year=3001}
@misc{abc,author="Anne Author and Brenda Buthor and Carla Cuthor", year=3002}
@misc{defg,author="Doris Duthor and Eudora Euthor and Francine Futhor and Greta Guthor", year=3003}
\end{filecontents}
\documentclass{article}
\usepackage{natbib}
\bibliographystyle{ecology3}
\begin{document}
\citet{ab}
\citet{abc}
\citet{defg}
\bibliography{sample}
\end{document}