한 명의 저자의 특수한 경우, 다년간(biblatex의 APA 스타일)

한 명의 저자의 특수한 경우, 다년간(biblatex의 APA 스타일)

저자연도-comp를 사용하여 biblatex 패키지에서 apa 인용 스타일을 렌더링하려고 합니다. 내가 사용하는 특수한 경우는 텍스트 내에서 처음 인용할 때 모든 저자 이름이 인쇄되지만 다음 번 인용에서는 첫 번째를 제외한 모든 저자가 'et al.'에 포함된다는 것입니다. 이것을 사용자 정의하는 데 사용하는 코드 조각의 문제는 단일 저자(예: MacDonald, 2011, 2015)의 참조가 더 이상 그룹화되지 않도록(예: MacDonald 2011, MacDonald) Authoryear-comp의 기능이 중단된다는 것입니다. 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' style=apa,(7판 APA 스타일) 또는 biblatex-apa6' style=apa6,(6판 APA 스타일)을 사용하는 것이 가장 좋습니다. 첫 번째 인용에는 모든 저자가 표시되고 이후에는 "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,여부 는 정확한 요구 사항에 따라 달라집니다 . (일반적으로 APA 스타일은 복잡한 APA 요구 사항을 구현하기 위해 특별히 제작되었기 때문에 수정하기가 더 어려운 반면, 일반 스타일은 최종 사용자가 수정해야 합니다.)style=apa6,authoryear

관련 정보