.png)
Я пытаюсь отобразить стиль цитирования apa в пакете biblatex с помощью authoryear-comp. Особый случай, который я использую, заключается в том, что при первом цитировании в тексте печатаются все имена авторов, но при последующих цитированиях все авторы, кроме первого, включаются в 'et al.' Проблема фрагмента кода, который я использую для настройки, заключается в том, что функциональность authoryear-comp прерывается, так что ссылки одного автора (например, MacDonald, 2011, 2015) больше не группируются (например, MacDonald 2011, MacDonald 2015).
Проблемный фрагмент кода выглядит следующим образом:
\AtEveryCitekey{%
\ifciteseen{}{\defcounter{maxnames}{99}\clearfield{namehash}}}
Может ли кто-нибудь помочь мне исправить это странное поведение? Вот весь код:
\documentclass[a4paper, 11pt]{article}
\usepackage[top=0.85in,left=1in, right=1in, footskip=0.75in]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[T1]{fontenc}
\usepackage[style=authoryear-comp,citetracker=true, mincitenames=1, maxcitenames=2, maxbibnames=6, uniquename=false, uniquelist=false, dashed=false, giveninits=true, doi=false, isbn=false, url=false]{biblatex}
%%% To make the all names visible at the first reference
\AtEveryCitekey{%
\ifciteseen{}{\defcounter{maxnames}{99}\clearfield{namehash}}}
%%% Use '&' instead of 'and' in parencite and bibliography list
\renewcommand*{\finalnamedelim}{%
\ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
\addspace\&\space}
%%% Use 'and' in textcite
\DeclareDelimFormat[textcite]{finalnamedelim}{\addspace{and}\space}
\AtEveryBibitem{\clearfield{month}}
\AtEveryBibitem{\clearfield{day}}
\AtEveryBibitem{\clearfield{eprint}}
\begin{filecontents}{\jobname.bib}
@article{macdonald2015,
title = {On Having a Farm},
volume = {42},
journaltitle = {Journal of Science and Stuff},
author = {MacDonald, O.},
date = {2015}
}
@article{macdonald2016,
title = {Noise reduction in livestock},
volume = {43},
journaltitle = {Journal of Science and Stuff},
author = {MacDonald, O.},
date = {2016}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\title{A document}
\begin{document}
\maketitle
In this text I cite \parencite{macdonald2015, macdonald2016} for the mwe.
And now i cite the same clever fellow \parencite{macdonald2015, macdonald2016} again.
\printbibliography
\end{document}
решение1
Если вам нужен (настоящий) стиль APA, то, вероятно, лучше всего просто использовать biblatex-apa
's style=apa,
(для стиля APA 7-го издания) или biblatex-apa6
's style=apa6,
(для стиля APA 6-го издания — в первой ссылке указаны все авторы, в последующих — только «First + et al.» — это особенность 6-го издания, в 7-м издании это всегда «et al.»). Стиль APA довольно сложен, и попытка воспроизвести все его тонкости style=authoryear-comp,
может занять некоторое время.
Используйте параметры стиля только в случае крайней необходимости. Все уже настроено для надлежащего соответствия APA, и дополнительные параметры, скорее всего, только все испортят. То же самое касается большей части дополнительного biblatex
кода в преамбуле к примеру документа.
\documentclass[a4paper, 11pt]{article}
\usepackage[top=0.85in,left=1in, right=1in, footskip=0.75in]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[T1]{fontenc}
\usepackage[backend=biber, style=apa]{biblatex}
\begin{filecontents}{\jobname.bib}
@article{macdonald2015,
title = {On Having a Farm},
volume = {42},
journaltitle = {Journal of Science and Stuff},
author = {MacDonald, O.},
date = {2015}
}
@article{macdonald2016,
title = {Noise reduction in livestock},
volume = {43},
journaltitle = {Journal of Science and Stuff},
author = {MacDonald, O.},
date = {2016}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
In this text I cite \parencite{macdonald2015, macdonald2016} for the mwe.
And now i cite the same clever fellow \parencite{macdonald2015, macdonald2016} again.
\printbibliography
\end{document}
Если вам не нужен настоящий стиль APA, а только что-то «похожее на APA», то от ваших конкретных требований будет зависеть, будет ли хорошей идеей основывать свой стиль на style=apa,
, style=apa6,
или на стиле универсального authoryear
семейства. (Вообще говоря, стили APA сложнее изменять, поскольку они были созданы специально для реализации сложных требований APA, тогда как универсальные стили должны изменяться конечными пользователями.)