plk / biblatex-apa

APA style for BibLaTeX
90 stars 48 forks source link

Single executive producer incorrectly identified as "Executive Producers" #182

Closed ChristophSantel closed 2 years ago

ChristophSantel commented 2 years ago

When citing a @Video-entry with only one executive producer, the plural term "Executive Producers" is incorrectly printed in the references section. Please see the minimum working example attached.

Thank you, Christoph

P.S.: Feel free to reach out to christoph@santel.eu if additional clarification on the issue is needed.

MWE.pdf MWE.bib.txt MWE.tex.txt

plk commented 2 years ago

Will be fixed in next version. If you need this fix now, replace the mainvideo macro in apa.bbx with:

\newbibmacro*{mainvideo}{%
  \iffieldundef{maintitle}
    {}
    {\usebibmacro{in}%
     \printnames[apanames][-\value{listtotal}]{execproducer}%
     \setunit{\addspace}%
     \ifthenelse{\the\c@execproducer=1}%
       {\bibcplstring[\mkbibparens]{execproducer}}
       {\bibcplstring[\mkbibparens]{execproducers}}%
     \setunit{\addcomma\addspace}%
     \printfield{maintitle}}}
ChristophSantel commented 2 years ago

Hello, the bug fix works and provides the desired results. Thank you!

PsychicBirdy commented 2 years ago

I think this needs another fix as we have two ways to input this. From the APA examples 10.12:87a and b work fine, 10.12:86 not yet.

\documentclass{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[american]{babel}
\usepackage[backend=biber,style=apa]{biblatex}
\begin{filecontents}{\jobname.bib}
% (APA 10.12 Example 86)
% ENTRYSUBTYPE is a localisation string
@VIDEO{10.12:86,
    ENTRYSUBTYPE    = {tvseries},
    AUTHOR          = {D. Simon}, %  and R. F. Colesberry and Kostroff Noble, N.
    AUTHOR+an:role  = {=execproducers},
    TITLE           = {The Wire},
    PUBLISHER       = {Blown Deadline Productions and HBO},
    DATE            = {2002/2008}
}

% (APA 10.12 Example 87)
% ENTRYSUBTYPE is a localisation string
% Dual localisation string data annotation for the first AUTHOR
@VIDEO{10.12:87a,
    ENTRYSUBTYPE    = {tvepisode},
    AUTHOR          = {K. Barris},
    AUTHOR+an:role  = {1=director,writer},
    TITLE           = {Lemons ({Season}~3, {Episode}~12)},
    MAINTITLE       = {Black-ish},
    EXECPRODUCER    = {K. Barris}, %  and J. Groff and A. Anderson and E. B.  Dobbins and L. Fishburne and H. Sugland
    PUBLISHER       = {Wilmore Films and Artists First and Cinema Gypsy
        Productions and ABC Studios},
    DATE            = {2017-01-11}
}

% ENTRYSUBTYPE is a localisation string
% Three data annotations, one for each name in the AUTHOR list
@VIDEO{10.12:87b,
    ENTRYSUBTYPE    = {tvepisode},
    AUTHOR          = {B. Oakley and J. Weinstein and J. Lynch},
    AUTHOR+an:role  = {1=writer;2=writer;3=director},
    TITLE           = {Who Shot {Mr.} {Burns}? ({Part} {One}) ({Season}~6,
        {Episode}~25)},
    MAINTITLE       = {The Simpsons},
    EXECPRODUCER    = {D. Mirkin}, %  and J. L. Brooks and M. Groening and S. Simon
    PUBLISHER       = {Gracie Films and Twentieth Century Fox Film Corporation},
    DATE            = {1995-05-21}
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}

\textcite{10.12:86}

\textcite{10.12:87a}

\textcite{10.12:87b}

\printbibliography
\end{document}

With {=execproducers} I get "(Executive Producers)", with {=execproducer} I get "()".

plk commented 2 years ago

The annotation without a name index like =execproducers applies to the whole field and would naturally be plural but you can get what you want with 1=execproducer - note the singular as individual list item roles are singular in the code. I can put a comment in about this in the examples.

PsychicBirdy commented 2 years ago

I see. Yes, the comment on that is really helpful, I believe. Thanks a lot!