Проблема с natbibapa и \shortcite

Проблема с natbibapa и \shortcite
\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} 

Автор и др. (3009) что-то говорят.//Автор и др. (3009) что-то говорят.


Если вы ищете ответ на ту же проблему, но без опции 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

Связанный контент