# Biblatex footnote citation: reference same citation previous footnote number

I've been getting into LaTeX for a thesis and I'm overall pretty satisfied with my setup. There's however an issue I can't wrap my head around, and can't find a solution for. Using Biber and biblatex, with verbose-trad1 as an option, I'd like that whenever opcit is called, instead of the output being

{Author} op. cit.

it be

{Author} op. cit. #REF

where #REF refers to the footnote number where the citation first appeared.

Here's a M(n)WE:

%!TEX program = xelatex
\documentclass[12pt]{article}
\usepackage[english,main=french]{babel}
\usepackage{fontspec}
\usepackage[autostyle=true]{csquotes}
\usepackage{hyperref}

% Citation settings
\DefineBibliographyStrings{french}{opcit = {\textit{supra}, note \ref{}},} %<= I guess it'd go there?

% Test proper
\begin{document}
Some text string\autocite{A}, some other\autocite{B}, some more\autocite{A}.
\end{document}


Where I'd like the footnote output to be:

1. Author A, full reference
2. Author B, full reference
3. Author A, supra, note 1.

This answer would work but it'd be incredibly tedious and could only be done at the end, once citations are set in stone, which defeats the purpose of a language like LaTeX. In any case, I'm in over my head.

If you just a want a verbose style with references to the first footnote and 'ibidem' you can use (ext-)verbose-inote.

\documentclass[12pt]{article}
\usepackage[english,main=french]{babel}
\usepackage[autostyle=true]{csquotes}
\usepackage{fontspec}
\usepackage[style=ext-verbose-inote, articlein=false]{biblatex}
\usepackage{hyperref}

\DefineBibliographyStrings{french}{
seenote = {supra, note},
}

\begin{document}
Some text string\autocite{sigfridsson},
some other\autocite{worman},
some more\autocite{sigfridsson}.
\end{document}


If you want to retain all the other scholarly abbreviations of verbose-trad1, some more work is needed. In this example I only replace op cit. not loc. cit. or any other abbreviation.

\documentclass[12pt]{article}
\usepackage[english,main=french]{babel}
\usepackage[autostyle=true]{csquotes}
\usepackage{fontspec}
\usepackage{hyperref}

\DefineBibliographyStrings{french}{
seenote = {supra, note},
}

\newtoggle{cbx:pageref}

\DeclareBibliographyOption[boolean]{pageref}[true]{%
\settoggle{cbx:pageref}{#1}%
\iftoggle{cbx:pageref}
{\ExecuteBibliographyOptions{pagetracker}}
{}}

\thefield{entrykey}:\csuse{cbx@\iffootnote{f}{t}@\thefield{entrykey}}}{#1}}
\DeclareFieldFormat{bibhypertarget}{%
\bibhypertarget{\thefield{entrykey}:\the\value{instcount}}{#1}}

\providecommand*{\mkibid}[1]{#1}

\renewbibmacro*{cite:save}{%
\csxdef{cbx@lastcite@\thefield{entrykey}}{\the\value{instcount}}%
\iffootnote
{\csxdef{cbx@f@\thefield{entrykey}}{\the\value{instcount}}%
\label{cbx@\the\value{instcount}}}
{}%
\global\boolfalse{cbx:noidem}}

\newbibmacro{seenote}{%
\printtext{%
\ref{cbx@\csuse{cbx@f@\thefield{entrykey}}}%
\iftoggle{cbx:pageref}
{\ifsamepage{\the\value{instcount}}
{\csuse{cbx@f@\thefield{entrykey}}}
{}
\pageref{cbx@\csuse{cbx@f@\thefield{entrykey}}}}}
{}}}

\renewbibmacro*{cite:opcit}{%
\iffootnote
{\usebibmacro{seenote}}


• @fairytalq The style examples in ctan.org/tex-archive/macros/latex/contrib/biblatex/doc/examples (30-style-... up to 82-style-...) should hopefully make it slightly clearer what each style does: The short description in the biblatex documentation does not always explain all details. For more complex issues like this usually the only way to figure out which bits to change is by looking at the code. – moewe Apr 28 at 5:08
• Thanks for the link! I found those linked on the right margin in the general biblatex documentation. Being new to LaTeX and possessing only limited programming (scripting, really) skills, the code is still fairly hard for me to parse. I'm trying though ( I managed to put together this command, for instance \togglefalse{abx@bool@giveninits}, to change the initials settings in the References but not in the body). – fairytalq Apr 30 at 4:54
• @fairytalq To be fair verbose-trad1.cbx (and the code from the second example above) is probably one of the more complex styles implementation wise (especially the stuff that does the linking: cite:save and seenote). standard.bbx (which defines the bibliography setup) is a bit easier on the eye. There are several ways to get initials only in citations, of which \togglefalse{abx@bool@giveninits} is probably the quickest, but by no means the easiest to understand. – moewe Apr 30 at 5:38
• The main reason I went with \togglefalse{abx@bool@giveninits} is that searching through the repo for giveninits lead me to few results and, while, tracking one of those results, I managed to end up at that result. After seeing that it worked, I didn't bother trying another way to implement it. – fairytalq Apr 30 at 5:42