[Tex/LaTex] Biblatex – Verbose style : adding (year) to the author-title format

biblatex

I'm using the verbose-trad1 style for my bibliography. This style (and all verbose style I think) use a shorter author-title format when an item is cited a second time, like this :

  1. Johnny (1992). My life.
  2. Nathan (2015). Not my life.
  3. Johnny, op. cit.

There are 115 pages in my work and no one will remember what book I am talking about with just the author and this miserable "op cit". So I need the second citation to be with the date, like this :

  1. Johnny (1992), op. cit.

Thank you for reading.. please help a poor student with her master's thesis

Here a minimal example

 \documentclass[12pt,a4paper]{book}

 \usepackage[bibstyle=authoryear,citestyle=verbose-trad1,indexing=cite,firstinits=true,dashed=true,citepages=omit]{biblatex}
 \bibliography{example.bib}


 \begin{document}

 This is just filler text\footcite{john_2010}. This is just filler
 text\footcite{nathan_2015}. This is just filler
 text\footcite{john_2010}.

 \end{document}

And the example.bbl file :

 @book{nathan_2015,     
 Author = {Nathan},     
 Title= {Not my life},  
 Year = {2015}}

 @book{john_2010,   
 Author = {Johnny},
 Title= {My life},  
 Year = {1992}}

Best Answer

Normally the verbose-trad styles go together with a authortitle style and thus use titles to disambiguate references. So "Johnny, op. cit." will only appear if you cite exactly one work by Johnny, as soon as there are more, the title field is added to avoid confusion.

Anyway, we can make sure the year is always added.

We first borrow a authoryear macro

\newbibmacro*{cite:labeldate+extradate}{%
  \iffieldundef{labelyear}
    {}
    {\printtext[parens]{%
       \printtext[bibhyperref]{%
         \printlabeldateextra}}}}

And then inject this macro into the relevant places to print the year after the name

\renewbibmacro*{cite:name}{%
  \printnames{labelname}%
  \setunit{\printdelim{nameyeardelim}}%
  \usebibmacro{cite:labeldate+extradate}%
  \setunit*{\printdelim{nametitledelim}}}

\renewbibmacro*{cite:idem}{%
  \bibstring[\mkibid]{idem\thefield{gender}}%
  \setunit{\printdelim{nameyeardelim}}%
  \usebibmacro{cite:labeldate+extradate}%
  \setunit{\printdelim{nametitledelim}}}

MWE

\documentclass[12pt,a4paper]{book}

\usepackage[bibstyle=authoryear, citestyle=verbose-trad1, indexing=cite, giveninits=true, citepages=omit]{biblatex}
\addbibresource{biblatex-examples.bib}

\newbibmacro*{cite:labeldate+extradate}{%
  \iffieldundef{labelyear}
    {}
    {\printtext[parens]{%
       \printtext[bibhyperref]{%
         \printlabeldateextra}}}}

\renewbibmacro*{cite:name}{%
  \printnames{labelname}%
  \setunit{\printdelim{nameyeardelim}}%
  \usebibmacro{cite:labeldate+extradate}%
  \setunit*{\printdelim{nametitledelim}}}

\renewbibmacro*{cite:idem}{%
  \bibstring[\mkibid]{idem\thefield{gender}}%
  \setunit{\printdelim{nameyeardelim}}%
  \usebibmacro{cite:labeldate+extradate}%
  \setunit{\printdelim{nametitledelim}}}

\begin{document}
This is just filler text\footcite{geer}. This is just filler
text\footcite{worman}. This is just filler
text\footcite{geer}.

Text \footcite{knuth:ct:a} an \footcite{knuth:ct:b} again \footcite{knuth:ct:a}.
\end{document}

enter image description here

Related Question