我正在使用biblatex
并且想用apa6
样式减少作者姓名列表。
我使用minbibnames
和maxbibnames
配置,但biblatex
withapa6
样式提供了“...”后面跟最后一个作者姓名。我想将“...”和最后一个作者姓名更改为 et al。
这是我的示例代码。
\documentclass[a4paper,12pt]{article}
\usepackage{csquotes}
\usepackage{filecontents}
\usepackage[
backend=biber,
style=apa6,
citestyle=numeric-comp,
natbib=true,
date=year,
uniquelist=false,
defernumbers=true,
minbibnames=4,
maxbibnames=6,
eprint=false
]{biblatex}
\makeatletter
\RequireBibliographyStyle{numeric}
\makeatother
\begin{filecontents*}{aa.bib}
@book{ipcc_tech_2013,
author = {T.F. Stocker and D. Qin and G.-K. Plattner and L.V. Alexander
and S.K. Allen and N.L. Bindoff and F.-M. Bréon and J.A. Church
and U. Cubasch and S. Emori and P. Forster and P. Friedlingstein
and N. Gillett and J.M. Gregory and D.L. Hartmann and E. Jansen
and B. Kirtman and R. Knutti and K. Krishna Kumar and P. Lemke
and J. Marotzke and V. Masson-Delmotte and G.A. Meehl and I.I. Mokhov
and S. Piao and V. Ramaswamy and D. Randall and M. Rhein and M. Rojas
and C. Sabine and D. Shindell and L.D. Talley and D.G. Vaughan
and S.-P. Xie},
year = {2020},
title = {{Technical Summary. I Climate Change 2013: The Physical
Science Basis. Contribution of Working Group I to the Fifth Assessment
Report of the Intergovernmental Panel on Climate Change}},
editor = {T.F. Stocker and D. Qin and G.-K. Plattner and M. Tignor
and S.K. Allen and J. Boschung and A. Nauels and Y. Xia and V. Bex
and P.M. Midgley},
publisher = {Cambridge University Press},
address = {Cambridge, United Kingdom and New York, NY, USA},
}
\end{filecontents*}
\addbibresource{aa.bib}
\begin{document}
A citation: \cite{ipcc_tech_2013}
\printbibliography
\end{document}
答案1
这种apa6
风格以其不寻常的(古怪的??)排版规则而闻名,该规则用于排版 8 位或更多作者的条目。正如您(重新)发现的那样,对于这种情况,它要求显示前 6 位作者,然后是排版省略号,然后是最后一位作者。完全biblatex
实现了这一apa6
要求——因此故意忽略了您对minbibname
和 的设置maxbibname
。
如果您无法忍受这种格式设置,最好的选择可能是切换到不同的 bib 样式。不幸的是,APA7(通过将选项更改apa6
为apa
)不会给您带来太多帮助,因为它的设置是显示前 19 位 [!!] 作者,然后是...
,最后一位作者...
这个讨论实际上忽略了一个非常重要的观点。具体来说,你不应该把精力集中在“修复”字段的显示方式上author
,而应该花更多的精力去真正正确地获取书目条目的内容。当然,@book
条目类型是不适当对于手头的条目;我相信您应该使用@incollection
条目类型。此外,出版年份是2014
,而不是2020
。
一定要学会适应apa6
、apa
或您最终选择的任何样式的格式要求。我敢肯定,您作品的读者不会关心该author
字段的显示方式。不过,他们很可能会关心是否能获得有关该作品出版年份的正确信息。
\documentclass[a4paper,12pt]{article}
\usepackage{csquotes}
\usepackage[style=apa6,
citestyle=numeric-comp
]{biblatex}
\begin{filecontents*}[overwrite]{aa.bib}
@incollection{ipcc_tech_2013,
author = {T.F. Stocker and D. Qin and G.-K. Plattner and L.V. Alexander
and S.K. Allen and N.L. Bindoff and F.-M. Bréon and J.A. Church
and U. Cubasch and S. Emori and P. Forster and P. Friedlingstein
and N. Gillett and J.M. Gregory and D.L. Hartmann and E. Jansen
and B. Kirtman and R. Knutti and K. Krishna Kumar and P. Lemke
and J. Marotzke and V. Masson-Delmotte and G.A. Meehl and I.I. Mokhov
and S. Piao and V. Ramaswamy and D. Randall and M. Rhein and M. Rojas
and C. Sabine and D. Shindell and L.D. Talley and D.G. Vaughan
and S.-P. Xie},
year = {2014},
title = {{Technical Summary}},
booktitle = {{Climate Change 2013 --- The Physical Science Basis:
Working Group~I Contribution to the Fifth Assessment Report of the
Intergovernmental Panel on Climate Change}},
editor = {T.F. Stocker and D. Qin and G.-K. Plattner and M. Tignor
and S.K. Allen and J. Boschung and A. Nauels and Y. Xia and V. Bex
and P.M. Midgley},
publisher = {Cambridge University Press},
address = {Cambridge, United Kingdom and New York, NY, USA},
pages = {31--116},
}
\end{filecontents*}
\addbibresource{aa.bib}
\begin{document}
A citation: \cite{ipcc_tech_2013}
\printbibliography
\end{document}
答案2
我应用了 \DeclareNameFormat{apaauthor}。它有效。请注意,我使用“\renewcommand{\maxprtauth}{6}”来限制作者数量。在我的例子中,maxprtauth 是 6。这意味着我想在参考部分显示 6 个名字。如果某篇文章有超过 6 位作者。它将在最后一个位置替换为“et al”。
\documentclass[a4paper,12pt]{article}
\usepackage{csquotes}
\usepackage{filecontents}
\usepackage[
backend=biber,
style=apa6,
citestyle=numeric-comp,
natbib=true,
date=year,
uniquelist=false,
defernumbers=true,
minbibnames=4,
maxbibnames=6,
eprint=false
]{biblatex}
\makeatletter
\RequireBibliographyStyle{numeric}
\makeatother
\renewcommand{\maxprtauth}{6}
\DeclareNameFormat{apaauthor}{%
\ifthenelse{\value{listcount}=\maxprtauth\AND\value{listcount}<\value{listtotal}}
{\addcomma\space et al.\space}
{\ifthenelse{\value{listcount}>\maxprtauth}
{}
{\usebibmacro{name:apa:family-given}%
{\namepartfamily}%
{\namepartgiven}%
{\namepartgiveni}%
{\namepartprefix}%
{\namepartsuffix}%
\let\bibstring\bibcplstring
%\usebibmacro{role}{}{}%
\hasitemannotation[\currentname][username]
{\addspace\mkbibbrackets{\getitemannotation[\currentname][username]}}
{}}}%
\ifthenelse{\value{listcount}=\value{listtotal}}%
{\ifmorenames
{\printdelim{andothersdelim}%
\biblcstring{andothers}}
{}%
\let\bibstring\bibcplstring
%\usebibmacro{roles}{}{}
}
{}}
\begin{filecontents*}{aa.bib}
@incollection{ipcc_tech_2013,
author = {T.F. Stocker and D. Qin and G.-K. Plattner and L.V. Alexander
and S.K. Allen and N.L. Bindoff and F.-M. Bréon and J.A. Church
and U. Cubasch and S. Emori and P. Forster and P. Friedlingstein
and N. Gillett and J.M. Gregory and D.L. Hartmann and E. Jansen
and B. Kirtman and R. Knutti and K. Krishna Kumar and P. Lemke
and J. Marotzke and V. Masson-Delmotte and G.A. Meehl and I.I. Mokhov
and S. Piao and V. Ramaswamy and D. Randall and M. Rhein and M. Rojas
and C. Sabine and D. Shindell and L.D. Talley and D.G. Vaughan
and S.-P. Xie},
year = {2014},
title = {{Technical Summary}},
booktitle = {{Climate Change 2013 --- The Physical Science Basis:
Working Group~I Contribution to the Fifth Assessment Report of the
Intergovernmental Panel on Climate Change}},
editor = {T.F. Stocker and D. Qin and G.-K. Plattner and M. Tignor
and S.K. Allen and J. Boschung and A. Nauels and Y. Xia and V. Bex
and P.M. Midgley},
publisher = {Cambridge University Press},
address = {Cambridge, United Kingdom and New York, NY, USA},
pages = {31--116},
}
\end{filecontents*}
\addbibresource{aa.bib}
\begin{document}
A citation: \cite{ipcc_tech_2013}
\printbibliography
\end{document}