I am using biblatex
with apa style
. More or less everything works fine. However, LaTeX
produces the following warnings
Package biblatex Warning: Bibliography string 'retrieved' undefined
(biblatex) at entry 'eraut2012' on input line 90.Package biblatex Warning: Bibliography string 'from' undefined
(biblatex) at entry 'eraut2012' on input line 90.
Moreover, BibLaTeX
prints the "retrieved from" string in small letters and bold type face:
My question therefore is:
How do I fix this problem? Instead of "retrieved from" I need "Retrieved from" to occur in the bibliography.
I already found those discussions: [1] and [2]. However, they did not help.
Ps.: Using \DeclareLanguageMapping{american}{american-apa}
produced the same problem. The \DefineBibliographyExtras{english}{...
is necessary because otherwise I do not get a publication year in brackets after the author in the bibliography.
PPs.: I know that this reference would not need a URL in an APA-style bibliography. However, it was the first in my list that had one…
MWE:
\documentclass[a4paper]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{csquotes}
\usepackage[style=apa, sortcites=true, backend=biber]{biblatex}
\DeclareLanguageMapping{british}{british-apa}
\AtEveryBibitem{%
\clearfield{day}%
\clearfield{month}%
\clearfield{endday}%
\clearfield{endmonth}%
}
\DefineBibliographyExtras{english}{%
\protected\def\mkbibdateapalong#1#2#3{%
\iffieldundef{#1}%
{}%
{\thefield{#1}}%
\iffieldundef{#2}%
{}%
{\iffieldundef{#1}%
{}%
{\addcomma\addspace}%
\mkbibmonth{\thefield{#2}}}%
\iffieldundef{#3}%
{}%
{\ifthenelse{\iffieldundef{#2}\OR\iffieldundef{#1}}%
{}%
{\addspace}%
\stripzeros{\thefield{#3}}}}%
\protected\def\mkbibdateapalongextra#1#2#3{%
\iffieldundef{#1}%
{}%
{\thefield{#1}\printfield{extrayear}}%
\iffieldundef{#2}%
{}%
{\iffieldundef{#1}%
{}%
{\addcomma\addspace}%
\mkbibmonth{\thefield{#2}}}%
\iffieldundef{#3}%
{}%
{\ifthenelse{\iffieldundef{#2}\OR\iffieldundef{#1}}%
{}%
{\addspace}%
\stripzeros{\thefield{#3}}}}%
\protected\def\mkbibdateapalongdmy#1#2#3{%
\iffieldundef{#3}%
{}%
{\stripzeros{\thefield{#3}}}%
\iffieldundef{#2}%
{}%
{\iffieldundef{#3}%
{}%
{\addspace}%
\mkbibmonth{\thefield{#2}}}%
\iffieldundef{#1}%
{}%
{\ifthenelse{\iffieldundef{#2}\OR\iffieldundef{#3}}%
{}%
{\addspace}%
\thefield{#1}}}}
\begin{filecontents}{apa-test-bib.bib}
@incollection{eraut2012,
location = {Dordrecht},
title = {Developing a broader approach to professional learning},
isbn = {978-94-007-1723-7 978-94-007-1724-4},
url = {http://www.springerlink.com/index/10.1007/978-94-007-1724-4_2},
pages = {21--45},
booktitle = {Learning trajectories, innovation and identity for professional development},
publisher = {Springer Netherlands},
author = {Eraut, Michael},
editor = {Mc Kee, Anne and Eraut, Michael},
date = {2012},
langid = {english}
}
\end{filecontents}
\addbibresource{apa-test-bib.bib}
\begin{document}
This is some text. \cite{eraut2012}
\printbibliography
\end{document}
Best Answer
The languages you request for
babel
and the language mappings need to match.Either use
for British English, or use
for American English (without US punctuation).
In your MWE your document is in
english
, and you toldbiblatex
to requestbritish-apa
instead ofbritish
, effectively changing nothing for you since you didn't requestbritish
in the first place.Another symptom of this was that you needed the
\DefineBibliographyExtras{english}
block for the dates. With matching languages that is no longer necessary.