0

I searched for an answer online but have not been able to find any. I am trying to customize the biblatex-apa standard style so that I get the following.

When using \parencite I would like to get

(Schmidt and Wesson, 2015)

and not

(Schmidt & Wesson, 2015)

And in the bibliography, I would like to have names listed as

Schmidt, S., Wesson, R., 2015. Early 21st century movements in society.

not

Schmidt, S., & Wesson, R. (2015). Early 21st century movements in society.

A summary of my related code in the main.tex

\documentclass[12pt,twoside]{report}
\usepackage[style=apa]{biblatex}
\addbibresource{references.bib}
\begin{document}
I refer to \parencite{schmidt2015early} to highlight my point.
\printbibliography
\end{document}

And in the references.bib I have:

@article{schmidt2015early,
title={Early 21st century movements in society},
author={Schmidt, S and Wesson, R},
year={2015}
}

Does anyone have any idea how I can obtain the desired results?

1 Answer 1

0

biblatex-apa was written specifically to implement all requirements of the APA citation and reference/bibliography style as closely as possible with biblatex. The style is not supposed to be customised and it was not written with customisability in mind. Its sole purpose is to produce APA-compliant output.

That does not mean that no customisations are possible at all, but that even seemingly minute things can be tricky. If you want to write your own style, I strongly suggest you base it on one of the standard styles. The standard styles are supposed to be customisable and are supposed to be a basis for further modifications.

Anyway, here is what you can do to biblatex-apa to get what you want. It is not as straightforward as it would be with standard biblatex styles like authoryear (think nameyeardelim, biblatex-ext's biblabeldate format, no need for finalnamedelim:apa:family-given etc.).

\documentclass[12pt]{article}
\usepackage[style=apa]{biblatex}

\DeclareDelimFormat*{finalnamedelim}{%
  \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
  \addspace\bibstring{and}\space}
\DeclareDelimAlias[bib]{finalnamedelim}{multinamedelim}
\DeclareDelimAlias[bib]{finalnamedelim:apa:family-given}{finalnamedelim}

\DeclareFieldFormat{apadate}{%
  \ifboolexpr{ test {\ifdatecirca} or test {\ifdateuncertain} }
    {\mkbibbrackets{#1}}
    {#1}}

\renewbibmacro*{author/editor}{%
  \ifthenelse{\ifnameundef{author}\AND\ifnameundef{groupauthor}}
    {\ifnameundef{editor}
      {\usebibmacro{title}%
        % need to clear all title fields so we don't get them again later
        \clearfield{title}%
       \clearfield{subtitle}%
       \clearfield{titleaddon}}
      {\usebibmacro{editorinauthpos}}}
    {\usebibmacro{author}}%
  \setunit{\addcomma\space}\newblock%
  \usebibmacro{labelyear+extradate}}

\addbibresource{biblatex-examples.bib}
\begin{document}
Lorem \parencite{sigfridsson}

\printbibliography
\end{document}

Lorem (Sigfridsson and Ryde, 1998)//Sigfridsson, E., Ryde, U., 1998. Comparison of methods for deriving atomic charges from the electrostatic potential and moments. Journal of Computational Chemistry, 19(4), 377–395. https://doi.org/10.1002/(SICI)
1096-987X(199803)19:4⟨377::AID-JCC1⟩3.0.CO;2-P

3
  • Awesome answer! I am using Overleaf with XeLaTeX and using your example I am unfortunately getting an error at line 7 (\DeclareDelimAlias[bib]{finalnamedelim}{multinamedelim}: LaTeX Error: Missing \begin{document}. Also, on the top of the page I get: ib]{finalnamedelim}{multinamedelim}ib]{finalnamedelim:apa:family-given}{finalnamedelim and then below that: Lorem(Sigfridson and Ryde, 1998). Lastly the Reference doesn't show as your one, but still has the &: Sigfridsson, E., & Ryde, U., 1998.
    – henkth
    Jul 29, 2021 at 12:19
  • @henkth Overleaf has an older version of TeX Live where you need to use \DeclareDelimAlias*[bib] instead of \DeclareDelimAlias[bib] in the two lines of the code above that start with \DeclareDelimAlias[bib].
    – moewe
    Jul 29, 2021 at 13:13
  • Great, that did the job!
    – henkth
    Jul 30, 2021 at 6:31

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .