Cite original year using biblatex

Just a brief note for those who want to include the original year of publication in a citation when using biblatex (e.g. “Weber (1922/1978)” instead of “Weber (1978)”) .

If you are using one of the author-year styles (or author-year-icomp-tt) and biblatex version 0.8 you could easliy do this by including the following in your biblatex.cfg file:

\renewbibmacro*{cite:year+labelyear}{%
\printtext[bibhyperref]{%
\iffieldundef{origyear}{}{\printfield{origyear}\addslash}%   <--- added
\printfield{year}%
\printfield{labelyear}}}

\renewbibmacro*{year+labelyear}{%
\iffieldundef{year}
{}
{\printtext[parens]{%
\iffieldundef{origyear}{}{\printfield{origyear}\addslash}%   <--- added
\printfield{year}%
\printfield{labelyear}}}}

But things have changed with biblatex 0.9 so that this no longer works. It took me a while to figure out why and so I publish my solution here since I could not find it anywhere on the net.

The reason is that the macros which print the year (in the citation and in the bibliography) have changed. So the additional line that inserts the original year (see above) has to be inserted into two different macros:


\renewbibmacro*{cite:labelyear+extrayear}{%
\iffieldundef{labelyear}
{}
{\printtext[bibhyperref]{%
\iffieldundef{origyear}{}{\printfield{origyear}\addslash}%   <--- added
\printfield{labelyear}%
\printfield{extrayear}}}}

\renewbibmacro*{date+extrayear}{%
\iffieldundef{year}
{}
{\printtext[parens]{%
\iffieldundef{origyear}{}{\printfield{origyear}\addslash}%  <--- added
\printdateextra}}}

Just add this into your biblatex.cfg file and look at the results. – If the original year still doesn’t show up, then you probably have to update your bib-file: the field origyear is no longer supported by biblatex (though it is still used internally). It is now called origdate (see release notes).  So what you have to do is simply replace all instances of “origyear” by “origdate”. Now it should work fine!

P.S. If you want to sort the titles in the bibliography according to the original year rather than the year of the used edition, just add sortyear = {1922} to each entry in your bib-file which has an origdate entry (of course “1922” stands for whatever the original year is).

Advertisements