我找到了很多有类似问题的帖子,但我没能解决我的,因为问题略有不同。我希望参考书目显示如下:
Doniger, W.。《Splitting the Difference》。芝加哥:芝加哥大学出版社,1999 年。
相反,我有:
W. Doniger,《Splitting the Difference》。芝加哥:芝加哥大学出版社,1999 年。
我的代码是:
\documentclass[12pt,a4paper,openany]{report}
\usepackage{natbib}
\bibliographystyle{abbrvnat}
\setcitestyle{authoryear,open={(},close={)}}
...
\printbibliography
\bibliography{bib}
\end{document}
基本上我只需要反转名字和姓氏,而无需更改其他任何内容,因为它已经按字母顺序排列,并且具有我需要的引用样式。我使用的是在线版本的 latex,所以我不知道是否可以更改软件包(而且我不知道如何操作)。有什么想法吗?
答案1
我建议您按如下方式进行。
在你的 TeX 发行版中找到该文件
abbrvnat.bst
。如果你使用在线 LaTeX 编译器,我建议你从以下位置获取该文件:https://www.ctan.org/tex-archive/macros/latex/contrib/natbib/。复制此文件并将副本命名为
abbrvnat-reverse.bst
。不要直接编辑 TeX 发行版的原始文件。在文本编辑器中打开文件
abbrvnat-reverse.bst
。你用来编辑 tex 文件的编辑器就可以了。在文件中
abbrvnat-reverse.bst
找到函数format.names
。在我的文件副本中,该format.names
函数从第 216 行开始。在此函数中,找到以下行:
{ s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
将此行更改为
{ s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't :=
将文件保存
abbrvnat-reverse.bst
在主 tex 文件所在的目录中(如果您使用在线 LaTeX 编译器,则此说明适用)或 BibTeX 搜索的目录中。如果您选择后一种方法,请同时适当更新 TeX 发行版的文件名数据库。在你的主 TeX 文件中,更改
\bibliographystyle{abbrvnat}
到
\bibliographystyle{abbrvnat-reverse}
最后,执行完整的重新编译循环(LaTeX、BibTeX,再进行两次 LaTeX),以完全传播所有更改。
祝您 BibTeX 愉快!