
Я использую модифицированную версию apalike2.
На данный момент вывод выглядит так:
Онил, Джон Р., Рассетт, Брюс и Бербаум, Майкл Л. (2003), Причины мира: демократия, взаимозависимость и международные организации, 1885-1992,Международные исследования ежеквартально, 47(1), 371–393.
Однако я хочу, чтобы было так:
Онил, Джон Р., Брюс Рассетт и Майкл Л. Бербаум (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
, назвав ее (например) myapalike2.bst
, и (ii) заменить всю 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}