[Tex/LaTex] Problems with BibLaTeX and origyear in bibliography

biblatexbibliographiescitingdatetime

This is my first time posting a question here so please excuse some mistakes. What I want to do is to cite something with its original publication year and have it appear as such in my bibliography. I am using BibLaTeX with the following options:

\usepackage[style=authoryear-icomp, bibstyle=authoryear-comp]{biblatex}

To get my citation label to show the origyear I was happy to find the following solution:

\DeclareLabelyear{\field{origyear}\field{year}}

This gives me the original publication date in citations, if available. Sadly, the bibliography does not include this label, but the year field, so that I cite "lastname (1891) and my bibliography has an entry much like

lastname, first (2002): titel...

for example. To accommodate for this I did the following:

\AtEveryBibitem{%
\iffieldundef{origyear}{%
  \printnames{author} (\printdate)\addcolon\addspace
  }{%
    \setunit*{\addspace}%
    \printtext[]{\printnames{author} (\printorigdate)\addcolon\addspace}%
  }%
\clearname{author}%
\clearfield{year}}

So, now I have the right label, meaning my bibliography entry is

lastname, firstname (1981): titel...

but the actual publication date is lost. I would like something like

lastname, firstname (1981): titel... published in booktitel (or whatever) 2002..."

Two questions come to mind here:

  • is there an easier way to get to where I am at, that is why does the \DeclareLabelyear not change the label in my bibliography, too?
  • how do I include the actual publication date in my bibliography as well, and where?

(Perhaps a third question would also make sense at this point:

  • does the citation style I have in mind make any sense in the first place, or should I just go with something like the APA suggests and have a (1981/2002) label in citations and my bibliography?)

EDIT: I was told to include a minimum working example, so here it comes (hopefully sufficient):

\documentclass[]{scrartcl}

\usepackage{csquotes}

\usepackage[backend=biber,
    style=authoryear-icomp,
    bibstyle=authoryear-comp,
     ]{biblatex}

\addbibresource{bibliography.bib}

\defbibenvironment{bibliography}
  {\list
     {}
     {\setlength{\leftmargin}{\bibhang}%
      \setlength{\itemindent}{-\leftmargin}%
      \setlength{\itemsep}{\bibitemsep}%
      \setlength{\parsep}{\bibparsep}}}
  {\endlist}
  {\item}

\DeclareNameFormat{author}{%
\ifthenelse{\value{listcount}=1}
{\textsc{#1}%
\ifblank{#3}{}{\addcomma\space \textsc{#3}}}
{\ifblank{#3}{}{\textsc{#3}\space}%
\textsc{#1}}%
\ifthenelse{\value{listcount}<\value{liststop}}
{\addcomma\space}
{}}

\AtEveryBibitem{%
\iffieldundef{origyear}{%
  \printnames{author} (\printdate)\addcolon\addspace
  }{%
    \setunit*{\addspace}%
    \printtext[]{\printnames{author} (\printorigdate)\addcolon\addspace}%
  }%
\clearname{author}%
\clearfield{year}}

\DeclareLabelyear{\field{origyear}\field{year}}

\begin{document}

 Some text \cite{Frege.2002a}, some text \cite{Frege.2002b}.

\printbibliography
\end{document}

This is everything (as far as I see) that may have to do with my problem. Of course, here is my .bib entry:

@incollection{Frege.2002c,
 author = {Frege, Gottlob},
 title = {{\"U}ber Sinn und Bedeutung},
 pages = {23--46},
 bookpaginationtype = {page},
 volume = {4},
 publisher = {Vandenhoeck {\&} Ruprecht},
 isbn = {978-3-525-30603-1},
 series = {Sammlung Philosophie},
 editor = {Textor, Mark},
 booktitle = {Funktion - Begriff - Bedeutung},
 year = {2002},
 origdate = {1892},
 location = {G{\"o}ttingen},
 number = {4}
}


@incollection{Frege.2002b,
 author = {Frege, Gottlob},
 title = {Funktion und Begriff},
 pages = {2--22},
 bookpaginationtype = {page},
 volume = {4},
 publisher = {Vandenhoeck {\&} Ruprecht},
 isbn = {978-3-525-30603-1},
 series = {Sammlung Philosophie},
 editor = {Textor, Mark},
 booktitle = {Funktion - Begriff - Bedeutung},
 year = {2002},
 origdate = {1891},
 location = {G{\"o}ttingen},
 number = {4}
} 

Additionally you can see from this that this problem concerns an @incollectionentry, but I would like to fix it generally.

Best Answer

All of the standard author-year styles use the authoryear bibliography style, which has an additional option called mergedate. Its various settings are explained in example 50 of the biblatex documentation. To use labelyear in place of year in the bibliography ditch your \AtEveryBibitem hook and just load biblatex with one of the following:

\usepackage[backend=biber,style=authoryear-icomp,mergedate=basic]{biblatex}
\usepackage[backend=biber,style=authoryear-icomp,mergedate=minimum]{biblatex}
\usepackage[backend=biber,style=authoryear-icomp,mergedate=false]{biblatex}

Alternatively you can redefine the date+extrayear bibliography macro:

\renewbibmacro*{date+extrayear}{%
  \iffieldundef{labelyear}
    {}
    {\printtext[parens]{%
       \printfield{labelyear}%
       \printfield{extrayear}}}}

The next release will include some improvements to mergedate so that the author-year styles make consistent use of labelyear and year labels can be defined with greater flexibility via \DeclareLabeldate.

Related Question