使用下面的代码,我的参考书目如下所示
。
如何强制 LateX:
- 按姓氏字母顺序排列作者(例如 Basdevant 然后是 Hall)
将第一作者的姓氏放在前面(例如 Basdevant,Oliver)
\documentclass{article} \usepackage[round]{natbib} \begin{document} According to \citet{hall2003} ... \bibliographystyle{plainnat} \bibliography{/Users/joedangerstox/Documents/library} \end{document}
答案1
解决了。我会把这个留在这里,以防其他人需要解决方案。这将使引用如下:
1 位作者的情况:姓氏,名字
2 位作者的情况:姓氏、名字和名字姓氏
3 位作者的情况:姓氏、名字、名字姓氏和名字姓氏
(1) 我决定尝试查看 plainnat.bst 文件,但发现我没有。我不知道它是否内置,但我决定从这里
(2)将此文件保存为其他文件,以免覆盖原始的 plainnat.bst(无论其在何处)并打开它。
(3)搜索此代码块:
FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
nameptr #1 >
{ namesleft #1 >
{ ", " * t * }
{ numnames #2 >
{ "," * }
'skip$
if$
t "others" =
{ " et~al." * }
{ " and " * t * }
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}
并将其替换为:
FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr "{ll,~}{ff}{vv~}{, jj}" format.name$ 't :=
nameptr #1 >
{ namesleft #1 >
{ ", " * s nameptr "{ff~}{ll}{vv~}{, jj}" format.name$ * }
{ numnames #2 >
{ "," * }
'skip$
if$
t "others" =
{ " et~al." * }
{ " and " * s nameptr "{ff~}{ll}{vv~}{, jj}" format.name$ *}
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}
(4)更换
\bibliographystyle{plainnat}
使用您需要的任何路径和文件名来查找文件(无论您将其保存在何处)
\bibliographystyle{/Users/joedanger/Documents/my_plainnat.bst}