仅显示引文标注中文章的第一作者

仅显示引文标注中文章的第一作者

natbib使用该软件包时,如何仅在引用标注中显示第一作者?

有一个与我类似的问题,但从未收到过可接受的答案: BibTeX:芝加哥风格引用,第一作者相同

以下是我的序言:

\usepackage[square,authoryear]{natbib}
\bibliographystyle{plainnat}
%...
\bibliography{references}

我使用natbib,因为它是 LaTeX 维基百科中提到的那个:

https://en.wikibooks.org/wiki/LaTeX/More_Bibliographies

https://en.wikibooks.org/wiki/LaTeX/Bibliography_Management

但我觉得我也许应该使用biblatex,但我现在无法让它工作,所以natbib如果可能的话我愿意坚持使用。

我尝试biblatex使用这个序言,但失败了,因为我的文件在某些​​摘要和作者列表中references.bib包含字符@%<>×,并且日期格式不正确,并且它不喜欢如下条目:çbiblatexM3 = {...}

\usepackage[natbib,sorting=none,defernumbers=true,uniquelist=false,
            backend=biber]{biblatex}
\addbibresource{references.bib}
\printbibliography

答案1

我建议您按如下方式进行:

  • 在您的 TeX 发行版中找到该文件plainnat.bst。复制此文件并将副本命名为 。plainnatsingle.bst(不要直接编辑 TeX 发行版的原始文件。)

  • 在文本编辑器中打开文件plainnatsingle.bst。你用来编辑 tex 文件的程序就可以了。

  • 在 bst 文件中,找到函数format.lab.names。(在我的文件副本中,该函数从第 1101 行开始。)

  • 在此函数中,替换块

      #2 >
        { pop$ " et~al." * }
        { #2 <
            'skip$
            { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
                { " et~al." * }
                { " and " * s #2 "{vv~}{ll}" format.name$ * }
              if$
            }  
          if$
        }
      if$
    

      #1 >
        { pop$ " et~al." * }
        { pop$ "" * }
      if$
    

    如果你好奇发生了什么:该函数的后半部分format.lab.names已被大大简化,如果作者数量超过 1,则输出“et~al.” - 否则不输出任何内容。

  • 将文件保存plainnatsingle.bst在主 tex 文件所在的目录中或 BibTeX 搜索的目录中。如果选择后者,请确保也适当更新 TeX 发行版的文件名数据库。

  • 在主 tex 文件中,将指令更改\bibliographystyle{plainnat}\bibliographystyle{plainnatsingle}。然后,再重新运行 LaTeX、BibTeX 和 LaTeX 两次,以完全传播所有更改。

祝您 BibTeX 愉快!

完整的 MWE:

在此处输入图片描述

\RequirePackage{filecontents}
\begin{filecontents}{mybib.bib}
@misc{a,
  author = "Annie Author", 
  title = "Thoughts", year = 3001 }
@misc{ab,
  author = "Annie Author and Brenda Buthor", 
  title = "Further Thoughts", year = 3002 }
@misc{abc,
  author = "Annie Author and Brenda Buthor and Carla Cuthor", 
  title = "Final Thoughts", year = 3003 }
\end{filecontents}

\documentclass{article}
\usepackage[authoryear,round]{natbib}
\bibliographystyle{plainnatsingle}

\begin{document}
\noindent
\citet{a}, \citet{ab}, \cite{abc}
\bibliography{mybib}
\end{document} 

相关内容