4

I'd like BibLaTeX to not display any first names or initials when citing in text. But I would like to have full first names in the Bibliography. From what I read, this can be achieved by giveninits=false. But this command does not affect the citation style at all.

I set up BibLaTeX like this:

\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[
backend=biber,
style=apa,
maxcitenames = 2,
mincitenames = 1,
uniquename = false,
uniquelist = false,
maxbibnames = 99,
apamaxprtauth=99,
giveninits=false
]{biblatex}
\DeclareLanguageMapping{english}{english-apa}
\usepackage{filecontents}

\begin{filecontents*}{test.bib}
@article{marquard1975,
    author = {Donald W.   Marquardt  and  Ronald D.   Snee},
    title = {Ridge Regression in Practice},
    journal = {American Statistician},
    volume = {29},
    number = {1},
    pages = {3-20},
    year  = {1975},
    publisher = {Taylor & Francis},
}
}
\end{filecontents*}

\addbibresource{test.bib}

\begin{document}
\title{asdf}
\author{myself}
\date{\today}
\maketitle

TEST \cite{marquard1975}


\printbibliography
\end{document}

What I get is (in text citation is fine, bibliography not)

TEST Marquardt and Snee, 1975

References

Marquardt, D. W., & Snee, R. D. (1975). Ridge regression in practice. American Statistician, 29(1), 3–20.

What I would like to get:

TEST Marquardt and Snee, 1975

References

Marquardt, Donald W., & Snee, Ronald D. (1975). Ridge regression in practice. American Statistician, 29(1), 3–20.

  • 2
    biblatex-apa specifically implements APA guidelines. The APA style only wants full first names (in brackets) in case initials would be ambiguous. Since this is quite a tricky requirement biblatex-apa has to jump though some hoops to get there and has to disable the normal working of the giveninits option along the way. (Similarly to how (max|min)(bib|cite)?names do not quite work as expected) This should be doable, but I strongly advise either following APA guidelines properly or choosing a different style altogether if you don't want APA. – moewe Mar 6 at 8:44
  • thanks @moewe, I have strict formating guidlines, which require that I follow APA with some modifications. I need to use full first names in the bibliography. Is there any way I can mimic the apa style but still use full first names? – Phil Mar 6 at 8:53
1

As mentioned in the comments the APA style requires that first names be abbreviated to initials and that the full name only be added in (square brackets) in case initials would be ambiguous. biblatex-apa implements this requirement as far as possible. Since this is quite tricky, the normal option giveninits does not work as expected with biblatex-apa. This is similar to how the (max|min)(bib|cite)?names options don't quite work as expected.

You have to redefine two name bibmacros to get full names, one for names in given-family order and one for family-given. The original definitions can be found in apa.bbx, we only removed the \ifthenelse{\value{uniquename}>1} test and make sure to print the full given name with \mkbibnamegiven{#2} instead of \mkbibnamegiven{#3}.

\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[
  backend=biber,
  style=apa,
  uniquename = false,
  uniquelist = false,
  apamaxprtauth=99,
  giveninits=false,
]{biblatex}


% argument meanings from apa.bbx
% #1 = family name
% #2 = given name
% #3 = given name (initials)
% #4 = name prefix
% #5 = name suffix

\renewbibmacro*{name:apa:family-given}[5]{%
  \ifuseprefix
    {\usebibmacro{name:delim:apa:family-given}{#4#1}%
     \usebibmacro{name:hook}{#4#1}%
     \ifdefvoid{#4}{}{%
       \mkbibnameprefix{#4}\isdot%
       \ifprefchar{}{\bibnamedelimc}}%
     \mkbibnamefamily{#1}\isdot%
     \ifdefvoid{#2}{}{\revsdnamepunct\bibnamedelimd\mkbibnamegiven{#2}\isdot}%
     \ifdefvoid{#5}{}{\addcomma\bibnamedelimd\mkbibnamesuffix{#5}\isdot}}
    {\usebibmacro{name:delim:apa:family-given}{#1}%
     \usebibmacro{name:hook}{#1}%
     \mkbibnamefamily{#1}\isdot
     \ifboolexpe{%
       test {\ifdefvoid{#2}}
       and
       test {\ifdefvoid{#4}}}
       {}
       {\revsdnamepunct}%
     \ifdefvoid{#2}{}{\bibnamedelimd\mkbibnamegiven{#2}\isdot}%
     \ifdefvoid{#4}{}{%
       \bibnamedelimc\mkbibnameprefix{#4}%
       \ifprefchar{}{\bibnamedelimc}}%
\ifdefvoid{#5}{}{\addcomma\bibnamedelimd\mkbibnamesuffix{#5}\isdot}}}

\renewbibmacro*{name:apa:given-family}[5]{%
  \usebibmacro{name:delim}{#2#4#1#5}%
  \usebibmacro{name:hook}{#2#4#1#5}%
  \ifdefvoid{#2}{}{\mkbibnamegiven{#2}\isdot%
                   \bibnamedelimd}%
  \ifdefvoid{#4}{}{%
    \mkbibnameprefix{#4}\isdot
    \ifprefchar{}{\bibnamedelimc}}%
  \mkbibnamefamily{#1}\isdot%
  \ifdefvoid{#5}{}{\bibnamedelimd\mkbibnamesuffix{#5}\isdot}}


\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@article{marquard1975,
  author  = {Donald W. Marquardt and Ronald D. Snee},
  title   = {Ridge Regression in Practice},
  journal = {American Statistician},
  volume  = {29},
  number  = {1},
  pages   = {3-20},
  year    = {1975},
}
\end{filecontents*}

\addbibresource{\jobname.bib}

\begin{document}
TEST \cite{marquard1975}

\printbibliography
\end{document}

Marquardt, Donald W., & Snee, Ronald D. (1975). Ridge regression in practice. American Statistician, 29(1), 3–20.

Note that the & in publisher = {Taylor & Francis}, should be escaped to \&. There was no error here, because biblatex does not print the publisher field for @articles, but it is good to remember to treat & correctly.

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.