使用 \cite 时在姓氏上方引用名字

使用 \cite 时在姓氏上方引用名字

我使用 natbib 进行引用。我想在正文中引用时显示作者的全名

\citep{smith1990}        

通常只给出姓氏(Smith,1990)。

我想要一个可以显示完整名称的选项,例如:(John Smith,1990)。这似乎是一个显而易见的问题,但我找不到正确的技巧。

答案1

引用标注中使用的名称的格式不受natbib包的控制,而是受所使用的参考书目样式的控制。

我假设您希望显示所有作者的名字,而不仅仅是选定作者的名字。同时,我还假设您希望显示任何“次要”姓名组成部分(如果存在)。最后,您希望条目仍然按作者姓氏而不是按名字排序,对吗?

由于您使用的是plainnat参考书目样式,我建议您按以下步骤操作:

  • 在您的 TeX 发行版中找到该文件plainnat.bst并复制一份。将副本命名为 。plainnat-full.bst(不要直接编辑或修改 TeX 发行版中的文件。)

  • 在文本编辑器中打开文件plainnat-full.bst。你用于 tex 文件的编辑器就可以了。

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

  • 在此函数中,将行替换为

    s #1 "{vv~}{ll}" format.name$
    

    s #1 "{ff }{vv~}{ll}{, jj}" format.name$
    
  • 仍然在同一个函数中,将以下行替换

                { " and " * s #2 "{vv~}{ll}" format.name$ * }
    

                { " and " * s #2 "{ff }{vv~}{ll}{, jj}" format.name$ * }
    
  • 如果您不想显示“初级”组件,请省略{, jj}前面两个步骤中的子字符串。

  • 保存文件plainnat-full.bst,并将其存储在包含主 .tex 文件的目录中或 BibTeX 搜索的目录中。如果选择后者,请确保也更新 TeX 发行版的文件名数据库。

  • 在您的主 tex 文件中,将指令更改\bibliographystyle{plainnat}\bibliographystyle{plainnat-full}并通过重新运行 LaTeX、BibTeX 和 LaTeX 两次以上来重新编译文档,以完全传播所有更改。

祝您 BibTeX 愉快!


在此处输入图片描述

\RequirePackage{filecontents}
\begin{filecontents}{bibx.bib}
@misc{smith:3001,
  author = "Smith, Jr., John and Smythe, III, Anna",
  title  = "Thoughts",
  year   = 3001,
}
\end{filecontents}

\documentclass{article}
\usepackage{natbib}
\bibliographystyle{plainnat-full}

\begin{document}
\citet{smith:3001}

\citep{smith:3001}
\bibliography{bibx}
\end{document}

相关内容