如何在 natbib 中将名字缩写并列为姓氏、名字?

如何在 natbib 中将名字缩写并列为姓氏、名字?

我在论文中使用了natbib引文管理软件包和unsrtnat参考书目格式。我在引文标注中使用了上标编号。

在参考书目中,列出了完整的名字,全名列为FullFirstname Surname。我如何将其更改为Surname, FirstNameInitial.

例如,一个参考文献是 David B. Burr 等,但我希望将其列为 Burr, DB

这是我的序言:

\usepackage[square,super,sort&compress]{natbib}
\bibliographystyle{unsrtnat}

非常感谢!

答案1

我认为您希望显示缩写的名字无空间首字母之间;例如,D.B.,不是D. B.

如果这个假设正确,我建议您按如下方式进行:

  • 在您的 TeX 发行版中找到该文件unsrtnat.bst。复制此文件并将副本命名为 。unsrtnat-initials.bst(请执行不是直接编辑未修改且未重命名的 TeX 发行版文件。

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

  • 在文件中unsrtnat-initials.bst,找到名为的函数format.names。(在我的文件副本中,该函数从第 216 行开始。)

  • format.names函数中,找到以下行:

        { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
    

    将其更改为

        { s nameptr "{vv~}{ll}{, f{.}.}{, jj}" format.name$ 't :=
    

    我相信您可以大概了解这种变化实现了什么:{fullfirstname[s]}{von component}{lastname}{, junior component}BibTeX 现在将全名写成 ,而不是{von component}{lastname}{, abbreviatedfirstname[s] without space between abbreviated initials}{, junior component}

    当然,如果你希望将“次要部分”(如果有)放在姓氏后面,而不是最后,你应该使用

       { s nameptr "{vv~}{ll}{, jj}{, f{.}.}" format.name$ 't :=
    

    例如,此设置将显示小罗伯特·埃默森·卢卡斯Lucas, Jr., R.E.不是Lucas, R.E., Jr.。只需选择您喜欢的排版惯例即可。(顺便说一句,您必须像author={Lucas, Jr., Robert Emerson}在 bib 文件中一样输入此人的姓名 - 请注意两个逗号。)

  • 将文件保存unsrtnat-initials.bst在主 tex 文件所在的目录中或 BibTeX 搜索的目录中。如果选择第二个选项,请确保还更新 TeX 发行版的文件名数据库。如果您不知道前面这句话是什么意思,我建议您选择第一个选项。

  • 在您的主 tex 文件中,将指令更改\bibliographystyle{unsrtnat}\bibliographystyle{unsrtnat-initials}并执行完整的重新编译循环 - latex、bibtex 和 latex 两次 - 以完全传播所有更改。

祝您 BibTeX 愉快!

完整的 MWE:

在此处输入图片描述

\documentclass{article} 

\begin{filecontents}[overwrite]{mybib.bib}
@misc{x, author={David B. Burr}, title={Thoughts}, year=3001}
\end{filecontents}

\usepackage[square,super,sort&compress]{natbib}
\bibliographystyle{unsrtnat-initials}

\begin{document} 
\nocite{*}
\bibliography{mybib}
\end{document}

相关内容