如何使生态学书目样式不使用 et al. 截断作者列表,除非作者超过 3 位?

如何使生态学书目样式不使用 et al. 截断作者列表,除非作者超过 3 位?

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

相关内容