I use LuaTeX, BibLaTeX and biber with APA bibliography style. The German version has the origyear
field wrong.
The original english APA version wants it like this:
Author (Year). Title. Location: Publisher. (Original work published original year)
The German version is the same, just "Original work published is replaced by "Original erschienen" which is fine. But according to the adjusted version by the German DGP the rest should look like this:
Author (Year). Title. Location: Publisher. (Original erschienen original year: original title)
But we can't even use the origtitle
field and just move it around. Because the origtitle
field is a field for the title when the title
field is already used for a self-made translation of the title. Imagine the following case:
Smith, A. (1990). L'amour [Die Liebe]. Paris: Alfons. (Original erschienen 1988: Love).
So we have a French translation of an originally English book and we give a German translation so everybody understands it. title
field is for our translation "Die Liebe", origtitle
is for the title of the translated work "L'amour" so we need another field for the title of the original work "Love". This can't be appended to origyear
because we need origyear
seperately when we cite it like this: Smith (1988/1990).
We would need something like a origwork
field which is appended to the origyear
and also very flexible because if the original work has slightly different authors (what the heck??) DGP turns it into:
Zimbardo, P. G. & Gerrig, R. J. (2004). ... (Original erschienen 2002 als Gerrig, R. J. & Zimbardo, P. G., Psychology and life)
And DGP is also a little inconsistent. There can be found:
(Original erschienen 1988: Love)
and
(Original erschienen 1988, Love)
Anyway, does anybody know how to implement this in the german-apa.lbx? I wouldn't even know where to start ...
EDIT:
Thanks alot Guido, that's almost what I need.
It's a little bit messed up though. This shifts everything around. There is no need for that. title
, subtitle
and origtitle
should stay in place. We just need an additional field. We can't use titleaddon
for that because this is put in square brackets (we couldn't use title/subtitle either because it's in italics but shouldn't be if used as title of an original work). We would just need another field origwork
.
Here is what I got so far:
\documentclass{scrbook}
\usepackage[american,english,ngerman]{babel}
\usepackage[style=apa,backend=biber,bibencoding=utf8,babel=other]{biblatex}
\usepackage[autopunct=true,autostyle=true,german=guillemets,english=american]{csquotes}
\bibliography{test.bib}
\DeclareLanguageMapping{american}{american-apa}
\DeclareLanguageMapping{ngerman}{ngerman-apa}
\begin{filecontents}{biblatex-dm.cfg}
\DeclareDatamodelFields[type=list, datatype=name,skipout=false]{origauthor}
\DeclareDatamodelEntryfields{origauthor}
\DeclareDatamodelFields[type=field, datatype=literal,skipout=false]{origwork}
\DeclareDatamodelEntryfields{origwork}
\end{filecontents}
\DeclareFieldFormat{origyear}{%
\mkbibparens{\bibcpstring{origyear}~\thefield{origyear}%
\ifnameundef{origauthor}
{}
{\addspace als \printnames[author]{origauthor}}%
\iffieldundef{origwork}
{}%
{\ifnameundef{origauthor}
{\setunit{\addcolon\addspace}}
{\setunit{\addcomma\addspace}}%
\printfield{origwork}}}%
}
\renewbibmacro*{origyear}{%
\ifthenelse{
\NOT\iffieldsequal{labelyear}{origdateyear}
\OR
\NOT\iffieldsequal{title}{origwork}
\OR
\NOT\ifnamesequal{author}{origauthor}
}
{\printfield{origyear}}
{}%
}
\begin{document}
\textcite{testentry}
\printbibliography
\end{document}
test.bib:
@BOOK{testentry,
author = {Adam Smith},
title = {Die Liebe},
origtitle = {L'amour},
location = {Paris},
publisher = {Alfons},
date = {1994},
origdate = {1988},
origauthor = {Adam Smith-Degen},
origwork = {Love},
hyphenation = {ngerman},
}
EDIT 2:
I see now, you have turned everything upside down so it fits its semantic purpose. And biblatex-apa is a little inconsistent using title
for title but using origtitle
for title if there is a selfmade translation which is filled in as title
. Anyway this is what everyone is using right now. We can just add up missing pieces using unused fields. Here is my try with reprinttitle
:
\documentclass{scrbook}
\usepackage[american,english,ngerman]{babel}
\usepackage[style=apa,backend=biber,bibencoding=utf8,babel=other]{biblatex}
\usepackage[autopunct=true,autostyle=true,german=guillemets,english=american]{csquotes}
\bibliography{test.bib}
\DeclareLanguageMapping{american}{american-apa}
\DeclareLanguageMapping{ngerman}{ngerman-apa}
\DeclareFieldFormat{origyear}{%
\mkbibparens{\bibcpstring{origyear}~\thefield{origyear}%
\ifnameundef{origauthor}
{}
{\addspace als \printnames[author]{origauthor}}%
\iffieldundef{reprinttitle}
{}%
{\ifnameundef{origauthor}
{\setunit{\addcolon\addspace}}
{\setunit{\addcomma\addspace}}%
\printfield{reprinttitle}}}%
}
\renewbibmacro*{origyear}{%
\ifthenelse{
\NOT\iffieldsequal{labelyear}{origdateyear}
\OR
\NOT\iffieldsequal{title}{reprinttitle}
\OR
\NOT\ifnamesequal{author}{origauthor}
}
{\printfield{origyear}}
{}%
}
\begin{document}
\textcite{testentry}
\printbibliography
\end{document}
test.bib:
@BOOK{testentry,
author = {Adam Smith},
title = {Die Liebe},
subtitle = {in all ihren Formen},
origtitle = {L'amour},
location = {Paris},
publisher = {Alfons},
date = {1994},
origdate = {1988},
origauthor = {Adam Smith},
titleaddon = {Special issue},
reprinttitle = {Love},
hyphenation = {ngerman},
}
Now it looks like:
Smith, A. (1994). L'amour [Die Liebe: in all ihren Formen] [Special issue]. Paris: Alfons. (Original erschienen 1988 als Smith, A., Love).
Things to do: "als" would also need to be a key that is "als" in a German bibliography and "as" in an English bibliography. The author's name is Surname, F. but should be F. Surname. I would be glad if you could elaborate on that.
titleaddon
is not appropriate. According to the specs you gave, what you calledorigintitle
(Die Liebe) was enclosed in brackets. Also the schema you are using is confusing. If you use the.bib
with another style, you will get wrong information. In addition it is very easy to change howtitleaddon
is rendered. i.e.,\DeclareFieldFormat{titleaddon}{\MakeSentenceCase*{#1}}
.titleaddon
can't be used because it's already in use in apa style for declaring additional information concerning the medium (special issue, brochure, CD, monograph, editorial, abstract). E.g. it could be filled with "Special issue" in case we are dealing with a French translation of an English journal article published in a special issue of a French journal. I've seen this rarely but it exists.titleaddon
though I still think that what you want is part of such information (and as far as I can see, the original spa style handles original only for books). Part of my problem is, if I have understood properly your narrative, that in your.bib
,title
is not the title but the translation of it. I would useauthor
,title
for the main entry,origauthor
,origtitle
and introduce a new field for the extra information, e.g.,extratitleinfo
. The next issue is how to render it and its position.title
is not just used for the translation of the title in my .bib but in anyone's .bib if using biblatex-apa. - But only if there is a need for a selfmade translation. In this case title moves from thetitle
field to theorigtitle
field. See e.g. in biblatex-apa-test.pdf 7.01:4 and corresponding entry in file biblatex-apa-test-references.bib which are part of the doc. Soorigtitle
andtitleaddon
are both already in use by apa style - I would be fine with a new fieldextratitleinfo
but also with a reused fieldreprinttitle
which isn't used yet by that style.