3

Using BibLatex with the apa style I try to cite some references in the following way:

... slightly adapted Biggs’ (1987, 1999; see for a similar model Marsick, Watkins, & O’Conner, 2011) model of ...

I tried to get the result as following (MWE)

\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[style=apa, backend=biber, sortcites=true]{biblatex}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@book{biggs1987,
    location = {Melbourne},
    title = {Student approaches to learning and studying},
    publisher = {Australian Council for Educational Research},
    author = {Biggs, J.},
    date = {1987}
}

@book{biggs1999,
    location = {Buckingham},
    title = {Teaching for quality learning at university. What the student does},
    publisher = {Society for Research into Higher Education},
    author = {Biggs, J.},
    date = {1999}
}

@incollection{marsick2011,
    location = {London},
    title = {Researching workplace learning in the United States},
    pages = {198--209},
    booktitle = {The international handbook of workplace learning},
    publisher = {Sage},
    author = {Marsick, Victoria and Watkins, Karen and O'Conner, Bridget N.},
    editor = {Malloch, M. and Cairns, L. and Evans, K. and O'Conner, Bridget N.},
    date = {2011}
}

\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}

\ldots slightly adapted Biggs' (\citeyear{biggs1987, biggs1999}; see for a similar model \citeauthor{marsick2011}, \citeyear{marsick2011}) model of  \ldots

\end{document}

However, the output is only:

... slightly adapted Biggs’ (1987, 1999; see for a similar model Marsick, Watkins, and O’Conner, 2011) model of ...

As you see BibLatex prints an "and" instead of an "&". It seems as \citeauthor is only thought to be used as in-text citation (there the "and" is correct).

I guess I could make my life a little bit easier by using the natbib option (see here). However, that changes some formations that I don't want to have changed.

My question therefore is: How do I get the ampersand (&) into the my citation without globally changing the and for in-text citations?

  • Maybe I'm missing something, but why don't you just go with Biggs' (\citeyear{biggs1987, biggs1999}; see for a similar model \cite{marsick2011})? You will get an "and" as well, but that is how the APA want it. – moewe Aug 12 '15 at 16:25
  • @moewe You are correct. I could use \cite{}. However, I do not think that the and is correct here. APA wants to have an ampersand within brackets. So the problem is still the same. – phx Aug 12 '15 at 16:29
  • 1
    Aha, then add this monster before the \cite command: \AtNextCite{\renewcommand*{\finalnamedelim}{% \ifthenelse{\value{listcount}>\maxprtauth} {} {\ifthenelse{\value{liststop}>2} {\finalandcomma\addspace\&\space} {\addspace\&\space}}}}. (Modulo line breaks!) – moewe Aug 12 '15 at 16:29
  • @moewe Are you sure the "%" belongs in there? Without it seems to work. Thank you. However, this is a really ugly hack indeed. Anyway, if nobody comes up with a more elegant solution I'd like to accept your answer. – phx Aug 12 '15 at 16:34
  • Well, that is why I said modulo line breaks, normally this kind of code is formatted with line breaks and then the % makes perfect sense (and is actually necessary). I will write up an answer so you can see the whole thing in its entire glory. – moewe Aug 12 '15 at 16:37
3

We need to temporary influence \finalnamedelim here.

The obvious solution is to have

\AtNextCite{%
  \renewcommand{\finalnamedelim}{%
    \ifnum\value{liststop}>2
       \finalandcomma
    \fi
    \addspace\&\space}}

before the offending citation.

Since this is quite long and looks odd in the document body you might want to define a new command for that.

\newcommand{\switchtoparencite}{%
  \AtNextCite{%
    \renewcommand{\finalnamedelim}{%
      \ifnum\value{liststop}>2
        \finalandcomma
      \fi
      \addspace\&\space}}}

Then simply use \switchtoparencite\cite{marsick2011} and you are good to go.

You can of course also define a new citation command \nparencite that behaves as if it were a parenthetical citation, but misses the parentheses.

\DeclareCiteCommand{\nparencite}
  {\renewcommand{\finalnamedelim}{\ifnum\value{liststop}>2 \finalandcomma\fi\addspace\&\space}%
   \usebibmacro{cite:init}%
   \usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite}}
  {}
  {\usebibmacro{postnote}%
   \usebibmacro{cite:post}}

You would then say \nparencite{marsick2011}

Which of the two solutions you prefer depends on the context, I guess; I for one think the second solution quite slick.

MWE (displaying both solutions)

\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[style=apa, backend=biber, sortcites=true]{biblatex}

\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{biggs1987,
    location = {Melbourne},
    title = {Student approaches to learning and studying},
    publisher = {Australian Council for Educational Research},
    author = {Biggs, J.},
    date = {1987}
}

@book{biggs1999,
    location = {Buckingham},
    title = {Teaching for quality learning at university. What the student does},
    publisher = {Society for Research into Higher Education},
    author = {Biggs, J.},
    date = {1999}
}

@incollection{marsick2011,
    location = {London},
    title = {Researching workplace learning in the United States},
    pages = {198--209},
    booktitle = {The international handbook of workplace learning},
    publisher = {Sage},
    author = {Marsick, Victoria and Watkins, Karen and O'Conner, Bridget N.},
    editor = {Malloch, M. and Cairns, L. and Evans, K. and O'Conner, Bridget N.},
    date = {2011}
}

\end{filecontents*}
\addbibresource{\jobname.bib}

\newcommand{\switchtoparencite}{%
  \AtNextCite{%
    \renewcommand{\finalnamedelim}{%
      \ifnum\value{liststop}>2
        \finalandcomma
      \fi
      \addspace\&\space}}}

\DeclareCiteCommand{\nparencite}
  {\renewcommand{\finalnamedelim}{\ifnum\value{liststop}>2 \finalandcomma\fi\addspace\&\space}%
   \usebibmacro{cite:init}%
   \usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite}}
  {}
  {\usebibmacro{postnote}%
   \usebibmacro{cite:post}}

\begin{document}
\ldots slightly adapted Biggs' (\citeyear{biggs1987, biggs1999}; see for a similar model \switchtoparencite\cite{marsick2011}) model of \ldots

\citereset

\ldots slightly adapted Biggs' (\citeyear{biggs1987, biggs1999}; see for a similar model \nparencite{marsick2011}) model of \ldots

\end{document}

enter image description here

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.