5

I am using the biblatex-dw bibliography style for my thesis. As a requirement, I have to distinguish between two publications from the same author and year by adding a and b to the years. I already have a custom footnote citation command (\fzit, for a pre- and postnote). Using it (or a new one), I would like to write \fzit[see also][66]{A} and get (in the footnote) »see also Author 2001a, 66«. The bibliography should show

Author, Alex: Alpha. In: Journal of Journals, 11.08.2001a. http://www.url.org visited 12.04.2013.

MWE:

\documentclass{scrartcl}
\usepackage[style=authortitle-dw,idembib=false,backend=biber,sorting=nyt,isbn=false]{biblatex}

\DeclareCiteCommand{\fzit}[\mkbibfootnote]
{\usebibmacro{prenote}}
{
\setunit{\addnbspace}
\unspace\printnames{labelname}%
\space
\printfield{year}
}
{\addsemicolon\space}
{\addcomma\space #2\isdot}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@article{A,
author = {Author, Alex},
journaltitle = {Journal of Journals},
date = {2001-08-11},
title = {Alpha},
url = {http://www.url.org},
urldate = {2013-04-12}
}
@article{B,
author = {Author, Alex},
journaltitle = {Journal of Journals},
date = {2001-09-17},
title = {Beta},
url = {http://www.url.org},
urldate = {2013-04-12}
}
\end{filecontents}

\addbibresource{\jobname.bib}
5

authortitle-dw is an author-title style and thus not equipped to deal with author-year citations. That said, you can replace title labels with year labels in citations. This avoids having to define your own citation commands.

Printing of dates and years in the bibliography is scattered across many macros and drivers, so getting the extrayear label into each item is complicated. One easy way out is to redefine the \printdate macro and the year format. This of course assumes that labelyear is drawn from date or year and not any of the fallback fields such as eventdate or urldate, but the approach can be extended.

For an example of this approach, add the load-time option setting labelyear=true (or with biblatex 2.6+ labeldate=true) and the following to your preamble.

% Replace title labels with year labels
\renewbibmacro*{cite:title}{%
  \printtext[bibhyperref]{\printfield{labelyear}\printfield{extrayear}}}

% Delimit name and year by space
\renewcommand*{\nametitledelim}{\space}
% Restore original delimiter in bibliography
\AtBeginBibliography{%
  \renewcommand*{\nametitledelim}{\addcolon\space}}

% Print extrayear in bibliography
\makeatletter
\apptocmd{\blx@imc@printdate}{\printfield{extrayear}}{}{}
\makeatother
\DeclareFieldFormat{year}{%
  \ifbibstring{#1}{\bibstring{#1}}{\stripzeros{#1}}%
  \printfield{extrayear}}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.