As Alan Munn says in the comments: biblatex-apa
is supposed to implement APA style as closely as possible with biblatex
. It was not designed with (easy) customisability in mind.
Case in point: Usually you could get rid of the comma between name and year as easily as saying \DeclareDelimFormat[bib]{nameyeardelim}{\addspace}
. But biblatex-apa
doesn't use this delimiter and uses \newunit\newblock
instead, so we need to make it use namyeardelim
before we can use it to change the comma.
You can get rid of the italics by redefining the ...title
field formats. See for some background Remove Quotation Marks from Style.
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=apa, backend=biber]{biblatex}
\renewcommand*{\newunitpunct}{\addcomma\space}
\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}
\DeclareDelimFormat{nameyeardelim}{\addspace}
\DeclareDelimFormat[bib]{nameyeardelim}{\addspace}
\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{\printdelim{nameyeardelim}}%
\usebibmacro{labelyear+extradate}}
\DeclareFieldFormat{title}{#1\isdot}
\makeatletter
\DeclareFieldFormat{origtitle}{\bbx@colon@search\MakeSentenceCase*{#1}\isdot}
\makeatother
\DeclareFieldFormat{journaltitle}{#1\isdot}
\DeclareFieldFormat{issuetitle}{#1}
\DeclareFieldFormat{maintitle}{#1}
\DeclareFieldFormat{booktitle}{#1}
\addbibresource{biblatex-examples.bib}
\begin{document}
\cite{sigfridsson,cicero,worman,westfahl:space,gaonkar:in}
\printbibliography
\end{document}
biblatex-apa
style isn't really designed to be modified because it implements the exact APA styel; you might be better of adapting theauthoryear
style. But the comma is due to your redefinition ofnewunitpunct
, so you need to explain what you thought you were doing when you added that. You can make titles italic using\DeclareFieldFormat*{title}{\mkbibemph{#1}\isdot}
.\DeclareFieldFormat*{title}{#1\isdot}
to remove the italics from titles.