3

Some publishers prefer the APA citation style in a modified way and do not want any initials for authors' and editors' names in the bibliography. According to the biblatex-apa handbook, this is made possible by using the firstinits=false option. Unfortunately this does not work for me:

\documentclass[ngerman]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{csquotes}
\usepackage[style=apa,natbib=true,firstinits=false]{biblatex}
\DeclareLanguageMapping{ngerman}{ngerman-apa}
\usepackage{filecontents}

\begin{filecontents*}{Test.bib}
  @Article{Andrews1990,
  Title = {{D}oes correctional treatment work? {A} clinically relevant and psychologically informed meta-analysis},
  Author = {Andrews, Don A. and Zinger, Ivan and Hoge, Robert D. and Bonta, James and Gendreau, Paul and Cullen, Francis T.},
  Journal = {Criminology},
  Pages = {369-404},
  Volume = {28},
  Year = {1990},
  }
\end{filecontents*}

\addbibresource{Test.bib}
\usepackage{babel}
\begin{document}
\selectlanguage{ngerman}
\nocite{Andrews1990}
\printbibliography
\end{document}

This produces the standard APA formatting:

Bibliography

  • Please help us to help you and add a minimal working example (MWE) that illustrates your problem. It will be much easier for us to reproduce your situation and find out what the issue is when we see compilable code, starting with \documentclass{...} and ending with \end{document}. – user31729 Jul 11 '14 at 16:31
  • MWE added above. – Axel Dessecker Jul 11 '14 at 21:28
  • I'm afraid this is by design. APA style only uses initials and so there is no conditional code in the style to respond to the full name options. This would also require passing different options to biber for disambiguation etc. – PLK Jul 16 '14 at 15:52
  • @PLK: I agree APA style only uses initials. But if I got that right, according to its manual biblatex-apa does not completely stick to the original APA style, which is said to be "not entirely consistent", in each and every case. So what is the purpose of the firstinits=false option? – Axel Dessecker Jul 17 '14 at 12:41
4

This isn't possible in the biblatex-apa style. firstinits is a generic biblatex option which doesn't really fit into the APA style and so APA specific things have to be done in the style itself. For example, full names are sometimes given in a very APA-specific format, see APA examples in section 6.27 of the APA manual. Supporting these means it is very hard if not impossible to support a generic firstinits option. I often get requests to make the APA style support other options but it's meant to be an APA style and this means the code has to do specific APA things which make genericity impossible in some areas. You can always override style code to make it do what you want - that's the nice thing about biblatex.

1

Looking at the apa.bbx file, the section that seems responsible for this is:

% #1 = last name
% #2 = first name
% #3 = first name (initials)
% #4 = name prefix, a.k.a. 'von part'
% #5 = name affix, a.k.a. 'junior part'

\newbibmacro*{name:apa:family-given}[5]{%
  \ifuseprefix
    {\usebibmacro{name:delim}{#4#1}%
     \usebibmacro{name:hook}{#4#1}%
     \ifempty{#4}{}{%
       \mkbibnameprefix{#4}%
       \ifpunctmark{'}{}{\addhighpenspace}}%
     \mkbibnamelast{#1\isdot}%
     \ifempty{#2}{}{\addcomma\addlowpenspace\mkbibnamefirst{#3}\isdot%
                    \ifthenelse{\value{uniquename}>1}
                      {\addspace\mkbibbrackets{#2}}
                      {}}%
     \ifempty{#5}{}{\addcomma\addlowpenspace\mkbibnameaffix{#5}\isdot}}
    {\usebibmacro{name:delim}{#1}%
     \usebibmacro{name:hook}{#1}%
     \mkbibnamelast{#1}\isdot
     \ifempty{#2#4}{}{\addcomma}%
     \ifempty{#2}{}{\addlowpenspace\mkbibnamefirst{#3}%
                    \ifthenelse{\value{uniquename}>1}
                      {\addspace\mkbibbrackets{#2}}
                      {}}%
     \ifempty{#4}{}{%
       \addhighpenspace\mkbibnameprefix{#4}%
       \ifpunctmark{'}{}{\addhighpenspace}}%
     \ifempty{#5}{}{\addcomma\addlowpenspace\mkbibnameaffix{#5}\isdot}}}

So, the result wanted can be achieved by replacing #3 with #2 and putting this code in the preamble of your TEX file:

\renewbibmacro*{name:apa:family-given}[5]{%
    \ifuseprefix
    {\usebibmacro{name:delim}{#4#1}%
        \usebibmacro{name:hook}{#4#1}%
        \ifempty{#4}{}{%
            \mkbibnameprefix{#4}%
            \ifpunctmark{'}{}{\addhighpenspace}}%
        \mkbibnamelast{#1\isdot}%
        \ifempty{#2}{}{\addcomma\addlowpenspace\mkbibnamefirst{#2}\isdot%
            \ifthenelse{\value{uniquename}>1}
            {\addspace\mkbibbrackets{#2}}
            {}}%
        \ifempty{#5}{}{\addcomma\addlowpenspace\mkbibnameaffix{#5}\isdot}}
    {\usebibmacro{name:delim}{#1}%
        \usebibmacro{name:hook}{#1}%
        \mkbibnamelast{#1}\isdot
        \ifempty{#2#4}{}{\addcomma}%
        \ifempty{#2}{}{\addlowpenspace\mkbibnamefirst{#2}%
            \ifthenelse{\value{uniquename}>1}
            {\addspace\mkbibbrackets{#2}}
            {}}%
        \ifempty{#4}{}{%
            \addhighpenspace\mkbibnameprefix{#4}%
            \ifpunctmark{'}{}{\addhighpenspace}}%
        \ifempty{#5}{}{\addcomma\addlowpenspace\mkbibnameaffix{#5}\isdot}}}

This seems to work in my case, where I needed exactly the same thing.

EDIT: If this doesn't work, it's probably because of a different version of biblatex-apa. Try this in your preamble:

\renewbibmacro*{name:apa:last-first}[5]{%
    \ifuseprefix
    {\usebibmacro{name:delim}{#4#1}%
        \usebibmacro{name:hook}{#4#1}%
        \ifblank{#4}{}{%
            \mkbibnameprefix{#4}%
            \ifpunctmark{'}{}{\addhighpenspace}}%
        \mkbibnamelast{#1\isdot}%
        \ifblank{#2}{}{\addcomma\addlowpenspace\mkbibnamefirst{#2}\isdot%
            \ifthenelse{\value{uniquename}>1}
            {\addspace\mkbibbrackets{#2}}
            {}}%
        \ifblank{#5}{}{\addcomma\addlowpenspace\mkbibnameaffix{#5}\isdot}}
    {\usebibmacro{name:delim}{#1}%
        \usebibmacro{name:hook}{#1}%
        \mkbibnamelast{#1}\isdot
        \ifblank{#2#4}{}{\addcomma}%
        \ifblank{#2}{}{\addlowpenspace\mkbibnamefirst{#2}%
            \ifthenelse{\value{uniquename}>1}
            {\addspace\mkbibbrackets{#2}}
            {}}%
        \ifblank{#4}{}{%
            \addhighpenspace\mkbibnameprefix{#4}%
            \ifpunctmark{'}{}{\addhighpenspace}}%
        \ifblank{#5}{}{\addcomma\addlowpenspace\mkbibnameaffix{#5}\isdot}}}
  • Still wondering why this does not seem to work for me. – Axel Dessecker Apr 6 '16 at 11:31
  • Does it give you an error or does it simply not produce the result you want? – Mario Saraceni Apr 7 '16 at 21:30
  • No error messages at all, just a bibliography following APA standards. – Axel Dessecker Apr 8 '16 at 8:42
  • Hi Alex, I tried the solution on a different computer with a different version of biblatex-apa, and I found that a different solution was needed. I've updated my answer above. – Mario Saraceni Apr 9 '16 at 13:14
  • Your second solution works with biblatex-apa 6.7. Note that the author list will be closed by a dot in every case. – Axel Dessecker Apr 11 '16 at 11:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.