biblatex APA 样式在参考文献列表中将“et al.”缩短为“...”

biblatex APA 样式在参考文献列表中将“et al.”缩短为“...”

我正在撰写我的(德语)论文biblatex-apa并遇到了这个问题。

我引用的一篇文章有​​ 13 位作者。引用时,它会显示在参考文献列表中,其中包含所有姓名。我想将其缩短为 6 个姓名,并在第六个姓名后添加“et al.”

所以我知道我可以使用来操纵参考列表中显示的名称数量,apamaxprtauth = 6但不幸的是,这只是在第六位和最后一位作者之间填写“...”,而没有等人(这对我来说似乎有点奇怪?):

带有点的不需要的输出图片

我想要的是这样的输出:

一,A.,二,A.,三,A.,四,A.,五,A.,六,A. 等。(2020 年)。重要文章的重要标题。重要期刊,44,1-16。

.tex从我的文件中提取

\documentclass[fontsize=12pt]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[autostyle, german=quotes]{csquotes}
\usepackage[style=apa, backend=biber,
   apamaxprtauth=6, 
   natbib=true, 
   language=ngerman, 
   doi=true,            
   uniquename=init
   ]{biblatex}
\DeclareLanguageMapping{ngerman}{ngerman-apa}
\DefineBibliographyStrings{ngerman}{andothers={et\ al\adddot}}  
\addbibresource{../literature.bib}


\begin{document}
      bla bla bla \textcite{lit1}
\printbibliography
\end{document}

我的.bib文件条目

  @article{lit1,
   author = {Author One and Author Two and Author Three and Author Four and Author    
     Five and Author Six and Author Seven and Author Eight and Author Nine and Author
     Ten and Author Eleven and Author Twelve and Author Thirteen},
   journal = {Important Journal},
   pages = {1--16},
   title = {Important title of important article},
   volume = {44},
   year = {2020}}

答案1

您所展示的输出的一般形式符合 APA 风格(且受其要求)。

当前第 7 版 APA 格式手册显示最多 19 个名称,然后才开始用 替换名称...,请参阅https://apastyle.apa.org/blog/more-than-20-authorshttps://apastyle.apa.org/style-grammar-guidelines/references/elements-list-entry#author。APA 格式第 6 版最多可显示 6 个名称,之后才开始用 替换名称...

由于和biblatex-apabiblatex-apa6严格遵循 APA 准则编写的,因此改变这种行为非常棘手(因为biblatex-apa首先需要做大量工作来实现不寻常的 APA 样式行为)。特别是,更改参考书目中显示的名称数量的标准方法(maxbibnamesminbibnames和朋友)在中不会按预期工作biblatex-apa

使用当前版本biblatex-apa(从 2020-08-28 开始使用 v9.14 进行测试),以下内容应该可以正常工作。想法是将两个主要biblatex-apa名称格式从它们的原始定义在apa.bbx(第 9.14 版第 529-574 行)只打印名字后面\maxprtauth可能跟有“et al.”的部分内容。代码apa:andothers已改编摘自name:andothersbiblatex.defv3.15a 中的第 1128-1138 行)

\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[autostyle, german=quotes]{csquotes}
\usepackage[backend=biber,
  style=apa,
  apamaxprtauth=6,
  doi=true,
]{biblatex}

\DefineBibliographyStrings{ngerman}{andothers={et\ al\adddot}}

\makeatletter
\DeclareNameFormat{apaauthor}{%
  \ifnumgreater{\value{listcount}}{\maxprtauth}
    {}
    {\usebibmacro{name:apa:family-given}%
       {\namepartfamily}%
       {\namepartgiven}%
       {\namepartgiveni}%
       {\namepartprefix}%
      {\namepartsuffix}%
     \usebibmacro{role}{\addspace}{\mkbibparens}%
     \hasitemannotation[\currentname][username]
       {\addspace\mkbibbrackets{\getitemannotation[\currentname][username]}}
       {}}%
  \usebibmacro{apa:andothers}}

\DeclareNameFormat{apanames}{%
  \ifnumgreater{\value{listcount}}{\maxprtauth}
    {}
    {\usebibmacro{name:apa:given-family}%
       {\namepartfamily}%
       {\namepartgiven}%
       {\namepartgiveni}%
       {\namepartprefix}%
       {\namepartsuffix}%
     \usebibmacro{role}{\addcomma\space}{\@firstofone}}%
  \usebibmacro{apa:andothers}}
\makeatother

\newbibmacro*{apa:andothers}{%
  \ifboolexpr{
    test {\ifnumequal{\value{listcount}}{\maxprtauth}}
    and
    (
       test \ifmorenames
       or
       test {\ifnumgreater{\value{listtotal}}{\maxprtauth}}
     )
  }
    {\ifnumgreater{\value{liststop}}{1}
       {\finalandcomma}
       {}%
     \printdelim{andothersdelim}\bibstring{andothers}}
    {}}

\begin{filecontents}{\jobname.bib}
@article{lit1,
  author  = {Author One and Author Two and Author Three and Author Four
             and Author Five and Author Six and Author Seven
             and Author Eight and Author Nine and Author Ten
             and Author Eleven and Author Twelve and Author Thirteen},
  journal = {Important Journal},
  pages   = {1--16},
  title   = {Important title of important article},
  volume  = {44},
  year    = {2020},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}


\begin{document}
  bla bla bla \textcite{lit1,sigfridsson,worman,aksin,companion}
  \printbibliography
\end{document}

一,A.,二,A.,三,A.,四,A.,五,A.,六,A. 等。(2020 年)。重要文章的重要标题。重要期刊,44,1-16。

请注意,我清理了一些选项和其他biblatex提到的相关代码在我的评论中在 MWE 中。

与您的实际问题无关,但除非您的版本biblatex-apa确实过时,否则您不需要。调用中的\DeclareLanguageMapping{ngerman}{ngerman-apa}选项在这里也是多余的,通常不会按照人们的期望执行,除非还激活了其他选项。我会删除它。如果您使用,该选项已经预设,所以我也会删除它。language=ngerman,biblatexuniquename=initstyle=apa,

相关内容