冒着之前已经问过的风险,我会再问一次,因为常见的解决方案似乎不起作用:
我的书目总是固执地把名字放在前面,但我希望反过来。
我按照建议更改了 .bst 文件,现在具有以下名称格式功能:
FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr "{vv~}{ll}{, f.}{, 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 :=
}
以下是参考书目条目的示例
@article{ghysels2007midas,
title={MIDAS regressions: Further results and new directions},
author={Ghysels, Eric and Sinko, Arthur and Valkanov, Rossen},
journal={Econometric Reviews},
volume={26},
number={1},
pages={53--90},
year={2007},
publisher={Taylor \& Francis}
}
打印此
Eric Ghysels、Arthur Sinko 和 Rossen Valkanov。Midas 回归:进一步的结果和新方向。计量经济学评论,26(1):53–90,2007 年。
如您所见,我们首先得到了名字,这对我来说有点神秘。任何帮助解决这个问题的帮助都将不胜感激!
答案1
我将其复制plainnat.bst
到工作目录中plainnat-swapnames.bst
,并根据建议对该format.names
函数进行编辑。
然后我编写了以下最小示例:
\begin{filecontents*}{\jobname.bib}
@article{ghysels2007midas,
title={MIDAS regressions: Further results and new directions},
author={Ghysels, Eric and Sinko, Arthur and Valkanov, Rossen},
journal={Econometric Reviews},
volume={26},
number={1},
pages={53--90},
year={2007},
publisher={Taylor \& Francis}
}
\end{filecontents*}
\documentclass{article}
\usepackage[authoryear]{natbib}
\begin{document}
\cite{ghysels2007midas}
\bibliographystyle{plainnat-swapnames}
\bibliography{\jobname}
\end{document}
使用filecontents*
只是为了使示例自成一体,您可以使用任何bib
您想要的文件。
运行 LaTeX、BibTeX、LaTeX 产生以下结果。