我对 biblatex-apa 版本遇到了问题。
这是我的标题的相关部分:
\documentclass[
a4paper,
12pt,
headings=normal
bibtotoc,
pointlessnumbers
]{scrartcl}
\usepackage[babel=true]{csquotes}
\usepackage[style=apa,backend=biber,minbibnames=5, maxbibnames=5]{biblatex}
\bibliography{literatur}
\DeclareLanguageMapping{ngerman}{ngerman-apa}
\DefineBibliographyStrings{ngerman}{andothers={et\ addabbrvspace al\adddot}}
\newcommand*{\mcite}[1]{\citeauthor{#1} (\citeyear{#1})}
\renewcommand\finalandcomma{\addcomma}
\begin{document}
\mcite{Brodbeck2000}
\printbibliography
\end{document}
通过这篇期刊文章
@article{Brodbeck2000,
author = {Brodbeck, Felix C and Frese, Michael and Akerblom, S and Audia, G and
Bakacsi, G and Bendova, H and Bodega, D and Bodur, Muzaffer and Booth, S and Brenk, K
and Castel, P},
journal = {Journal of Occupational and Organizational Psychology},
pages = {1--29},
title = {{Cultural variation of leadership prototypes across 22 European countries}},
volume = {73},
year = {2000}
}
问题是 biblatex 无法处理如此多的作者。biblatex 不会在 6 位作者之后停止,而是在最后一位作者之后加上“et al”,而是写道:
Brodbeck, FC、Frese, M.、Akerblom, S.、Audia, G.、Bakacsi, G.、Bendova, H.、...Castel, P. (2000)。22 个欧洲国家领导原型的文化差异。《职业与组织心理学杂志》,73,1-29。
有人知道如何修复它,以便 biblatex 仅在参考书目中放入 6 位作者(apa 样式),然后再放入“et al.”吗?
答案1
您必须重新定义作者宏:
\RequirePackage{filecontents}
\begin{filecontents*}{latex6.bib}
@article{Brodbeck2000,
author = {Brodbeck, Felix C and Frese, Michael and Akerblom, S and Audia, G and
Bakacsi, G and Bendova, H and Bodega, D and Bodur, Muzaffer and Booth, S and Brenk, K and Castel, P},
journal = {Journal of Occupational and Organizational Psychology},
pages = {1--29},
title = {Cultural variation of leadership prototypes across 22 European countries},
volume = {73},
year = {2000}
}
\end{filecontents*}
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[babel=true]{csquotes}
\usepackage[style=apa,backend=biber,minbibnames=5, maxbibnames=5]{biblatex}
\bibliography{latex6}
\DeclareLanguageMapping{ngerman}{ngerman-apa}
\DefineBibliographyStrings{ngerman}{andothers={et\ \addabbrvspace al\adddot}}
\newcommand*\mcite[1]{\citeauthor{#1} (\citeyear{#1})}
\renewcommand\maxprtauth{7}
\DeclareNameFormat{apaauthor}{%
\ifthenelse{\value{listcount}=\maxprtauth \AND\value{listcount}<\value{listtotal}}
{~et.~al.\addspace\setcounter{listcount}{\thelisttotal}}
{\ifthenelse{\value{listcount}>\maxprtauth\AND\value{listcount}<\value{listtotal}}
{}%
{\ifthenelse{\iffieldequalstr{usere}{unkauth}\OR\iffieldequalstr{usere}{unkauthdate}}%
{\iffirstinits
{\mkbibbrackets{\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}?}}%
{\mkbibbrackets{\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}?}}}%
{\iffirstinits
{\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}}%
{\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}}}}}%
\ifmorenames{\andothersdelim\bibstring{andothers}}{}}
\renewcommand\finalandcomma{\addcomma}
\begin{document}
\mcite{Brodbeck2000}
\printbibliography
\end{document}
答案2
这是正确的 APA 第 6 版样式,请参阅第 7.01 节,示例 2。