当我引用一篇有 2 位以上作者的论文时,正文中的引用是“Author1 et al.”。是否可以将此默认数字从 2 更改为 3,以便引用有 3 位作者的论文为“Author1 and Author2 and Author3”?
我使用 bibtex 和 natbib。我查看了natbib 参考但没有找到这个选项。
答案1
您已表明您使用apa
书目样式。我建议您按以下步骤操作以实现您的格式化目标:
在你的 TeX 发行版中找到该文件
apa.bst
。复制此文件并将副本命名为apa-erel.bst
。在文本编辑器中打开文件
apa-erel.bst
。(用于主 tex 文件的编辑器就可以了。)在文件中
apa-erel.bst
找到函数format.lab.names
。(在我的此文件副本中,该函数从第 866 行开始。)删除(或注释掉)该函数的所有 17 行左右的代码并将其替换为以下代码:
FUNCTION {bbl.and} { "and"} FUNCTION {space.word} { " " swap$ * " " * } 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" = { " et~al." * } { numnames #2 > { "," * } 'skip$ if$ bbl.and space.word * t * } if$ } if$ } 't if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ }
将文件保存
apa-erel.bst
在 BibTeX 搜索的目录中,或保存在主 tex 文件所在的目录中。如果选择前一种方法,请确保适当更新 TeX 发行版的文件名数据库。在您的主 tex 文件中,将指令更改
\bibliographystyle{apa}
为\bibliographystyle{apa-erel}
并执行完整的重新编译循环 - latex、bibtex、latex、latex - 以完全传播所有更改。
祝您 BibTeX 愉快!
完整的 MWE:
\RequirePackage{filecontents}
\begin{filecontents}{mybib.bib}
@misc{ab, author = "A and B", title = "X", year = 3001, }
@misc{abc, author = "A and B and C", title = "Y", year = 3002, }
@misc{abcd, author = "A and B and C and D", title = "Z", year = 3003, }
\end{filecontents}
\documentclass{article}
\usepackage[authoryear,round]{natbib}
\bibliographystyle{apa-erel}
\begin{document}
\cite{ab}
\cite{abc}
\cite{abcd}
\bibliography{mybib}
\end{document}