biblatex-apa 缺少逗号

biblatex-apa 缺少逗号

biblatex-apa 样式似乎在两种情况下缺少逗号。

  • 当参考文献开头只有两位作者时,& 符号前的逗号会缺失。以下 MWE 应为:Herbst-Damm, KL& 库里克 ...
  • 当仅给出年份​​和月份时,德语 APA 版本缺少括号中的逗号。与英语版本一样,它应为:Clay, R. (2008b朱尼)。 ...

以下是 MWE(使用 lualatex 和 biber 编译):

\documentclass[]{scrbook}
\usepackage[ngerman,american]{babel}
\usepackage{csquotes}

\begin{filecontents*}{\jobname.bib} 
@ARTICLE{7.01:1,
    AUTHOR         = {K. L. Herbst-Damm and J. A. Kulik},
    TITLE          = {Volunteer Support, Marital Status, and the Survival Times of Terminally Ill Patients},
    JOURNALTITLE   = {Health Psychology},
    VOLUME         = {24},
    PAGES          = {225--229},
    DATE           = {2005},
    DOI            = {10.1037/0278-6133.24.2.225},
    URL            = {http://some.url},
    langid         = {american},
}
@ARTICLE{7.01:8,
    AUTHOR         = {Richard Clay},
    TITLE          = {Science vs. Ideology},
    SUBTITLE       = {Psychologists Fight Back About the Misuse of Research},
    JOURNALTITLE   = {Monitor on Psychology},
    VOLUME         = {39},
    NUMBER         = {6},
    DATE           = {2008-06},
    URL            = {http://www.apa.org/monitor/},
    langid         = {american},
}
@ARTICLE{7.01:8de,
    AUTHOR         = {Richard Clay},
    TITLE          = {Science vs. Ideology},
    SUBTITLE       = {Psychologists Fight Back About the Misuse of Research},
    JOURNALTITLE   = {Monitor on Psychology},
    VOLUME         = {39},
    NUMBER         = {6},
    DATE           = {2008-06},
    URL            = {http://www.apa.org/monitor/},
    langid         = {ngerman},
}

@INBOOK{7.02:25,
  AUTHOR         = {D. M. Haybron},
  EDITOR         = {M. Eid and R. J. Larsen},
  TITLE          = {Philosophy and the Science of Subjective Well-Being},
  BOOKTITLE      = {The Science of Subjective Well-Being},
  LOCATION       = {New York, NY},
  PUBLISHER      = {Guildford Press},
  PAGES          = {17-43},
  DATE           = {2008},
  langid         = {american},
}
\end{filecontents*}

\usepackage[backend=biber,style=apa,autolang=other]{biblatex}
\DeclareLanguageMapping{ngerman}{ngerman-apa}
\DeclareLanguageMapping{american}{american-apa}
\addbibresource{\jobname.bib} 

\begin{document}
\textcite{7.01:1}
\textcite{7.01:8}
\textcite{7.01:8de}
\textcite{7.02:25}
\printbibliography
\end{document}

如何修复此问题?

答案1

您已在 中发现了与 APA 出版手册有两处偏差biblatex-apa。这两个“错误”都已按照您在此处提出的问题报告给开发人员(https://github.com/plk/biblatex-apa/issues/48https://github.com/plk/biblatex-apa/issues/31)并且都已经修复(https://github.com/plk/biblatex-apa/pull/49https://github.com/plk/biblatex-apa/pull/50)。

(v7.6)的更新版本与3.11 和 Biber 2.11biblatex-apa一起发布。biblatex

牛津逗号问题有点棘手,因为逗号只应出现在按家庭顺序排列的姓名列表中,而按家庭顺序排列的姓名列表应遵循“正常”牛津逗号规则(只有当列表中有三个或更多姓名时,逗号才会出现在“and”之前)。该包中使用的解决方案是为finalnamedelim:apa:family-given按家庭顺序排列的姓名定义一个新的逗号,该逗号始终出现在“and”之前。

正如 gusbrs 所解释的那样,德国日期确实只缺少了\addcomma。但是,德国紧凑日期范围还存在一些其他问题,因为德国日期格式的顺序与美国日期不同,因此修复也解决了这个问题。

答案2

对于双作者引用中的“&”符号前的逗号,您可以finalnamedelim在上下文中重新定义bib

\DeclareDelimFormat[bib]{finalnamedelim}{%
  \ifthenelse{\value{listcount}>\maxprtauth}
    {}
    {\finalandcomma\addspace\&\space}}

但是,我必须补充一点,这个逗号并不是“缺失的”。牛津逗号通常用于列出三个或更多项。您会注意到,此定义不会改变引用命令,但一致性会建议您也这样做。但在我看来,\textcite将 a 渲染为“Herbst-Damm 和 Kulik (2005)”会很奇怪。

对于条目日期中的逗号ngerman,您可以使用以下命令重新定义日期格式\DefineBibliographyExtras

\DefineBibliographyExtras{ngerman}{%
  \protected\def\mkbibdateapalong#1#2#3{%
    \iffieldundef{#1}%
      {}%
      {\iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\thefield{#1}}}%
    \iffieldundef{#3}%
      {}%
      {\iffieldundef{#1}%
        {}
        {\addcomma\addspace}%
       \stripzeros{\thefield{#3}}}%
    \iffieldundef{#2}%
      {}%
      {\iffieldundef{#3}
        {\iffieldundef{#1}
          {}
          {\addcomma\space}}%  <- change here
        {\adddot\addspace}%
       \mkbibmonth{\thefield{#2}}}}%
  \protected\def\mkbibdateapalongextra#1#2#3{%
    \iffieldundef{#1}%
      {}%
      {\iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\thefield{#1}}\printfield{extradate}}%
    \iffieldundef{#3}%
      {}%
      {\iffieldundef{#1}%
        {}
        {\addcomma\addspace}%
       \stripzeros{\thefield{#3}}}%
    \iffieldundef{#2}%
      {}%
      {\iffieldundef{#3}
        {\iffieldundef{#1}
          {}
          {\addcomma\space}}%  <- change here
        {\adddot\addspace}%
       \mkbibmonth{\thefield{#2}}}}}

但是,如果您担心参考书目中不同语言之间的格式一致性,您可能需要考虑使用autolang=hyphenautolang=other不是像这样设置和重新定义日期格式。

完整的 MWE:

\documentclass[]{scrbook}
\usepackage[ngerman,american]{babel}
\usepackage{csquotes}

\begin{filecontents*}{\jobname.bib} 
@ARTICLE{7.01:1,
    AUTHOR         = {K. L. Herbst-Damm and J. A. Kulik},
    TITLE          = {Volunteer Support, Marital Status, and the Survival Times of Terminally Ill Patients},
    JOURNALTITLE   = {Health Psychology},
    VOLUME         = {24},
    PAGES          = {225--229},
    DATE           = {2005},
    DOI            = {10.1037/0278-6133.24.2.225},
    URL            = {http://some.url},
    langid         = {american},
}
@ARTICLE{7.01:8,
    AUTHOR         = {Richard Clay},
    TITLE          = {Science vs. Ideology},
    SUBTITLE       = {Psychologists Fight Back About the Misuse of Research},
    JOURNALTITLE   = {Monitor on Psychology},
    VOLUME         = {39},
    NUMBER         = {6},
    DATE           = {2008-06},
    URL            = {http://www.apa.org/monitor/},
    langid         = {american},
}
@ARTICLE{7.01:8de,
    AUTHOR         = {Richard Clay},
    TITLE          = {Science vs. Ideology},
    SUBTITLE       = {Psychologists Fight Back About the Misuse of Research},
    JOURNALTITLE   = {Monitor on Psychology},
    VOLUME         = {39},
    NUMBER         = {6},
    DATE           = {2008-06},
    URL            = {http://www.apa.org/monitor/},
    langid         = {ngerman},
}
\end{filecontents*}

\usepackage[backend=biber,style=apa,autolang=other]{biblatex}
\DeclareLanguageMapping{ngerman}{ngerman-apa}
\DeclareLanguageMapping{american}{american-apa}
\addbibresource{\jobname.bib} 

\DeclareDelimFormat[bib]{finalnamedelim}{%
  \ifthenelse{\value{listcount}>\maxprtauth}
    {}
    {\finalandcomma\addspace\&\space}}

\DefineBibliographyExtras{ngerman}{%
  \protected\def\mkbibdateapalong#1#2#3{%
    \iffieldundef{#1}%
      {}%
      {\iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\thefield{#1}}}%
    \iffieldundef{#3}%
      {}%
      {\iffieldundef{#1}%
        {}
        {\addcomma\addspace}%
       \stripzeros{\thefield{#3}}}%
    \iffieldundef{#2}%
      {}%
      {\iffieldundef{#3}
        {\iffieldundef{#1}
          {}
          {\addcomma\space}}%  <- change here
        {\adddot\addspace}%
       \mkbibmonth{\thefield{#2}}}}%
  \protected\def\mkbibdateapalongextra#1#2#3{%
    \iffieldundef{#1}%
      {}%
      {\iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\thefield{#1}}\printfield{extradate}}%
    \iffieldundef{#3}%
      {}%
      {\iffieldundef{#1}%
        {}
        {\addcomma\addspace}%
       \stripzeros{\thefield{#3}}}%
    \iffieldundef{#2}%
      {}%
      {\iffieldundef{#3}
        {\iffieldundef{#1}
          {}
          {\addcomma\space}}%  <- change here
        {\adddot\addspace}%
       \mkbibmonth{\thefield{#2}}}}}

\begin{document}
\textcite{7.01:1}
\textcite{7.01:8}
\textcite{7.01:8de}
\printbibliography
\end{document}

在此处输入图片描述

相关内容