我正在使用 apalike2 的修改版本。
目前,输出如下所示:
Oneal, John R.、Russett, Bruce 和 Berbaum, Michael L. (2003),《和平的事业:民主、相互依存和国际组织,1885-1992》,国际研究季刊,47(1),371–393。
然而,我想要的是这样的:
Oneal, John R.、Bruce Russett 和 Michael L. Berbaum (2003),《和平的事业:民主、相互依存和国际组织,1885-1992》,国际研究季刊,47(1),371–393。
在这种特殊情况下,我如何更改第二和第三(等等)作者的 vv/ll/jj/ff 的顺序?
这是 format.names 函数:
FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't := % last name first
nameptr #1 >
{ namesleft #1 >
{ ", " * t * }
{ numnames #2 >
{ "," * }
'skip$
if$
t "others" =
{ " et~al." * }
{ " \& " * t * } % changed from " and " for names -- BJR 10/5/89
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}
答案1
我建议您(i)复制一份apalike2.bst
,将副本命名为(比如说) ,以及(ii)用以下代码myapalike2.bst
替换整个函数:names.format
FUNCTION {format.names}
{ duplicate$ empty$ 'skip$ {
's :=
"" 't :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr
duplicate$ #1 >
{ "{ff~}{vv~}{ll}{, jj}" }
{ "{vv~}{ll}{, jj}{, ff}" }
if$
format.name$
't :=
nameptr #1 >
{
namesleft #1 >
{ ", " * t * }
{
numnames #2 >
{ "," * }
'skip$
if$
t "others" =
{ " et~al." * }
{ " \& " * t * }
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
} if$
}
新代码的全部细节很难解释,但主要的区别在于,一行
s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't :=
旧函数已被替换为
{ namesleft #0 > }
{ s nameptr
duplicate$ #1 >
{ "{ff~}{vv~}{ll}{, jj}" }
{ "{vv~}{ll}{, jj}{, ff}" }
if$
format.name$
't :=
结果是提供了两种不同的格式规则,具体取决于格式化的是第一个作者的姓名还是后来的作者的姓名。
将文件保存myapalike2.bst
在与主 tex 文件相同的目录中,或保存在 BibTeX 搜索的目录中。如果选择第二种方法,请确保适当更新 TeX 发行版的文件名数据库。
通过提供说明开始使用新的参考书目样式\bibliographystyle{myapalike2}
。请务必再运行 LaTeX、BibTeX 和 LaTeX 两次,以完全传播所有更改。
祝您 BibTeX 愉快!
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@article{oneal:2003,
author = "Oneal, John R. and Russett, Bruce and Berbaum, Michael L.",
year = 2003,
title = "Causes of Peace: {Democracy}, Interdependence, and International Organizations, 1885--1992",
journal = "International Studies Quarterly",
volume = 47,
number = 1,
pages = "371-393",
}
\end{filecontents*}
\usepackage{natbib} % citation management package
\begin{document}
\cite{oneal:2003}
\bibliographystyle{myapalike2} % the new bibliography style
\bibliography{\jobname}
\end{document}