
\RequirePackage{filecontents}
\begin{filecontents}{mybib.bib}
@article{c,
author = "Anne Author and Bert Buthor and Carla Cuthor",
title = "Final Thoughts",
journal = "Circularity Today",
year = 3009,
volume = 9,
number = 10,
pages = "11--12",
}
\end{filecontents}
\documentclass{article}
\usepackage[natbibapa]{apacite}
\begin{document}
\citet{c} says something.
\bibliographystyle{apacite}
\bibliography{mybib}
\end{document}
В моей диссертации мне нужно указать имя и год авторов, поэтому я использую natbib. Но для более чем двух авторов я хотел бы, чтобы отображалось только имя, а затем et.al. Однако, поскольку я использую natbib, \shortcite использовать нельзя. Есть ли другие способы обойти эту проблему?
решение1
Заявление,
Мне нужно указать имя и год автора, поэтому я использую [опцию natbibapa]
содержитнелогично: Можно легко создать ссылки на цитаты в стиле authoryearбезуказание natbibapa
опции. Просто используйте \citeA
вместо \citet
и \cite
вместо . Дополнительную информацию \citep
см. в разделе 4.1 «Команды „классического“ apacite» руководства пользователя пакета .apacite
При такой настройке использование \shortciteA
и \shortcite
для создания ссылок на цитаты в текстовом и скобочном стиле с сокращенными списками авторов не представляет никакой проблемы.
\documentclass{article}
\begin{filecontents}[overwrite]{mybib.bib}
@article{c,
author = "Anne Author and Bert Buthor and Carla Cuthor",
title = "Final Thoughts",
journal = "Circularity Today",
year = 3009,
volume = 9,
number = 10,
pages = "11--12",
}
\end{filecontents}
\usepackage{apacite}
\bibliographystyle{apacite}
\begin{document}
\shortciteA{c} says something.
\bibliography{mybib}
\end{document}
решение2
Особенностью стиля APA (6-е издание, которое apacite
реализует его) является то, что списки из трех-пяти авторов приводятся полностью при первой ссылке и только как первый автор + «et al.» при последующих ссылках.
Для единичных случаев apacite
определяет команды для переопределения, например \shortcite
.
Если вы используете apacite
с natbibapa
вы говорите apacite
передать некоторый контроль над командами цитирования в natbib
, это означает, что некоторые из специальных команд цитирования, apacite
которые обычно определяются, больше не доступны. Одна из них — \shortcite
.
Theapacite
документацияговорит (§4.2)Использование natbib
для цитирования, стр. 15)
Полный список авторов получается добавлением звездочки после команды, например,
\citet*{key}
. Для краткого списка авторов отдельной команды нет, но его можно получить с помощью конструкции\shortcites{key}\citet{key}
.
Так что одним из вариантов было бы сказать:
\shortcites{c}\citet{c}
первый раз, когда вы цитируете c
. Последующие цитаты будут сокращены до первого автора + "et al." в любом случае. Но, конечно, это крайне утомительно, подвержено ошибкам и в целом не кажется правильным.
Но раздел из apacite
руководства, который мы процитировали выше, содержит больше информации.
С
natbibapa
опцией,apacite
загружаетсяnatbib
с опциямиlongnamesfirst
иsort
.
Итак, natbibapa
мы получаем длинный список авторов на первой ссылке благодаря опции longnamesfirst
. Если мы можем отключить эту опцию, мы снова в деле.
К сожалению, natbib
не предлагает интерфейса для отключения этой опции. После natbib
загрузки longnamesfirst
нет возможности отключить ее обратно. Поэтому нам приходится прибегать к внутренним командам. Опция устанавливает внутреннюю булеву переменную, вызываемую NAT@longnames
как true, поэтому мы устанавливаем ее как false.
\documentclass{article}
\usepackage[natbibapa]{apacite}
\makeatletter
\NAT@longnamesfalse
\makeatother
\begin{filecontents}{\jobname.bib}
@article{c,
author = {Anne Author and Bert Buthor and Carla Cuthor},
title = {Final Thoughts},
journal = {Circularity Today},
year = 3009,
volume = 9,
number = 10,
pages = {11--12},
}
\end{filecontents}
\begin{document}
\citet{c} says something.
\citet{c} says something.
\bibliographystyle{apacite}
\bibliography{\jobname}
\end{document}
Если вы ищете ответ на ту же проблему, но без опции natbibapa
(т.е. с apaciteclassic
), самый простой ответ, который я смог найти, это сказать
\let\cite\shortcite
\let\citeA\shortciteA
\let\citeNP\shortciteNP
\let\citeauthor\shortciteauthor
\let\citeauthorNP\shortciteauthorNP
\let\maskcite\maskshortcite
\let\maskciteA\maskshortciteA
\let\maskciteNP\maskshortciteNP
\let\maskciteauthor\maskshortciteauthor
\let\maskciteauthorNP\maskshortciteauthorNP