我\bibliographystyle{abbrvnat}
在 LaTeX 中使用参考书目样式\documentclass{book}
。
一切都很好,只是我希望书目按作者姓氏的字母顺序排列,而不是按作者姓名的首字母排序。有人遇到过这种情况吗?任何帮助我都非常感谢。
答案1
刚刚才注意到您的帖子;我希望以下答案对您仍然有用。
如果我正确理解了您的目的,您希望将姓氏列在参考文献中的名字(如果有的话,还有中间名)的首字母之前,并用逗号将姓氏与名字和中间名分开。
从书目样式文件开始abbrvnat.bst
,您的目标可以通过以下方式实现:
在您的 TeX 发行版中找到该文件
abbrvnat.bst
。复制此文件,并将副本命名为myabbrvnat.bst
。(不要直接修改 TeX 发行版中的文件。)在您最喜欢的文本编辑器中打开该文件
myabbrvnat.bst
。(您用来编辑文件的那个.tex
就可以了。)搜索以下行:{ s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
(它将位于调用的函数中
format.names
)并将其更改为{ s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't :=
您可能猜到“vv”代表姓名的“von 部分”,“ll”代表“姓氏”,等等。上面建议的顺序符合美国用法,即把“von 部分”放在姓氏前面,例如“von der Vogelweide, W”。如果您希望“von 部分”放在姓氏前面,则后名字的首字母,即,如果您希望将名字排版为“Vogelweide,W. von der”,则应将上面的行更改为
{ s nameptr "{ll}{, jj}{, f. }{, vv}" format.name$ 't :=
将文件保存
myabbrvnat.bst
在主文件所在的目录中.tex
,或保存在 TeX 发行版搜索的目录中。如果选择后者,请确保以适合您的 TeX 发行版的方式更新 TeX 文件名数据库。通过发出命令开始使用新的样式文件
\bibliographystyle{myabbrvnat}
。请务必使用此新设置再运行 LaTeX、BibTeX 和 LaTeX 两次,以便所有更改都能完全传播。
例如,假设您在对另一个答案的评论中提供了 bib 条目,即,
@ARTICLE{KoBaTr00,
author = {D. Komatitsch and C. Barnes and J. Tromp},
title = {Wave propagation near a fluid-solid interface:
a spectral element approach},
journal = geophysics,
year = {2000},
volume = {65},
pages = {623-631},
number = {2},
doi = {10.1190/1.1444758},
}
存储在名为 的文件中temp.bib
。然后,以下 MWE
\documentclass{article}
\usepackage{natbib,url}
\bibliographystyle{myabbrvnat}
\begin{document}
\nocite{*}
\bibliography{temp}
\end{document}
将产生以下输出:
答案2
我怀疑你以错误的方式存储了作者姓名,导致编译器认为首字母是姓氏的一部分。描述作者的正确方法(来源维基百科)http://en.wikipedia.org/wiki/BibTeX#Author_formatting
姓氏前缀(例如 von、van 和 der)会自动处理,前提是这些前缀是小写的,以便与中间名区分开来。多词姓氏与名字和中间名的区别在于,将姓氏放在第一位,然后是逗号,然后是名字和中间名。姓名后缀(例如 Jr.、Sr. 和 III)通常使用两个逗号分隔符来处理,如下例所示:
@Book{hicks2001,
author = "von Hicks, III, Michael",
title = "Design of a Carbon Fiber Composite Grid Structure for the GLAST
Spacecraft Using a Novel Manufacturing Technique",
publisher = "Stanford Press",
year = 2001,
address = "Palo Alto",
edition = "1st",
isbn = "0-69-697269-4"
}
如果作者不使用逗号将名字后缀与姓氏分隔,则可以使用花括号{Hicks III} 代替。
多位作者之间应该用“and”分隔,而不是用逗号:
@Book{Torre2008,
author = "Joe Torre and Tom Verducci",
publisher = "Doubleday",
title = "The Yankee Years",
year = 2008,
isbn = "0385527403"
}
作者在参考书目中的显示方式取决于参考书目样式。样式概述如下:
要按字母顺序排序并将作者显示为姓氏,例如首字母,请选择“ametsoc”作为样式。