一位作者的特例,多年(biblatex 中的 APA 風格)

一位作者的特例,多年(biblatex 中的 APA 風格)

我正在嘗試使用authoryear-comp 在 biblatex 套件中呈現 apa 引用樣式。我使用的特殊情況是,在第一次文本引用時,所有作者姓名都會被打印出來,但在下次引用時,除第一個之外的所有作者都被納入“等人”中。我使用來自定義的程式碼片段的問題是,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,(對於第 7 版 APA 風格)或biblatex-apa6's style=apa6,(對於第 6 版 APA 風格 - 第一個引文顯示所有作者,後續僅“第一 + 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 要求而構建的,而通用樣式應該由最終用戶修改。)

相關內容