[Tex/LaTex] biblatex repeated citations in footnotes that point back to earlier footnotes

biblatexcitingfootnotes

I am using biblatex as follows:

\usepackage[style=verbose-note,backend=bibtex]{biblatex}
\renewcommand{\cite}{\autocite} % citations in footnotes

This works almost as I want it. What I still would like is that a repeated citation (say I \cite{A} in p. 1, and then I \cite{A} again in p. 2) should point back to the earlier citation. So, in this case, only one footnote should be generated, and both p. 1 and p. 2 should have a link to that footnote (which is on p. 1 only). Is this possible?

Best Answer

A rather simple version that (obviously) cannot deal with pre- or postnotes is this

\makeatletter
\DeclareCiteCommand{\myfootcite}
  {}
  {\usebibmacro{citeindex}%
   \usebibmacro{myfootcite}}
  {}
  {}

\newbibmacro*{myfootcite}{%
  \ifciteseen
    {\usebibmacro{myfootcite:note}}
    {\mkbibfootnote{\usebibmacro{footcite:full}%
     \usebibmacro{footcite:save}}}}

\newbibmacro*{myfootcite:note}{\footref{cbx@\csuse{cbx@f@\thefield{entrykey}}}}
\makeatother

We define a new command \myfootcite which does not print post- or pre-notes. The macro myfootcite it calls just issues \footref on the proper footnote (if the work has been cited before and already has a footnote) or creates a new footnote.

The command is based on the sets of macros defined in verbose-note.

We need in implementation of \footref so we can use this, see Reference different places to the same footnote. In the MWE below, I used scrextend i.e. the KOMA version to get \footref (if you use any of the KOMA document classes, you won't have to load scrextend manually; the memoir class also provides \footref out of the box; footmisc also has an implementation; see also Footnotes whose texts are identical).

MWE

\documentclass{article}
\usepackage{scrextend}
\usepackage[british]{babel}
\usepackage{csquotes}
\usepackage[style=verbose-note]{biblatex}
\usepackage[colorlinks=true]{hyperref}

\addbibresource{biblatex-examples.bib}

\makeatletter
\DeclareCiteCommand{\myfootcite}
  {}
  {\usebibmacro{citeindex}%
   \usebibmacro{myfootcite}}
  {}
  {}

\newbibmacro*{myfootcite}{%
  \ifciteseen
    {\usebibmacro{myfootcite:note}}
    {\mkbibfootnote{\usebibmacro{footcite:full}%
     \usebibmacro{footcite:save}}}}

\newbibmacro*{myfootcite:note}{\footref{cbx@\csuse{cbx@f@\thefield{entrykey}}}}
\makeatother

\begin{document}
First citation.\myfootcite{cicero}
First citation.\myfootcite{knuth:ct:a}
Lorem\footnote{ipsum} dolor\myfootcite{wilde} sit\footnote{amet} and something\myfootcite{wilde}
Second citation.\myfootcite{cicero}
\printbibliography
\end{document}

enter image description here

Related Question