我在论文中使用了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}