6

If I cite the same source several times consecutively, it produces a bibliography list consisting of identical items:


  1. author, title
  2. author, title
\begin{filecontents}{database.bib}
@Misc{key,
    author      = {author},
    title       = {title},
}
\end{filecontents}

\documentclass{article}
\usepackage[autocite=footnote,style=authortitle]{biblatex}
\bibliography{database.bib}
\begin{document}
\begin{itemize}
\item one point\autocite{key}
\item another one\autocite{key}
\end{itemize}
\end{document}

How do I compress the list in the footnote to look like this:


1,2 author, title

1
1
+50

I suggest a solution that does not compress the list of footnote but prints the footnote only once per page.

The idea is to redefine a cite command called \footcite. Then, in order to but accepted by the autocite option of biblatex, I put it into a biblatex.cfg file according to this question and name it myfootnote.

And the \footcite, when called, is always creating a \footnotemark using the label number of the key. Then, according to this question, if the \footcite is called for the first time on this page, it also create a \footnotetext.

Here is the resulting MWE:

\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{biblatex.cfg}
    \ProvidesFile{biblatex.cfg}
    \DeclareCiteCommand{\footcite}%
    {\usebibmacro{prenote}}% 
    {%
        %   \renewcommand{\thefootnote}{\arabic{footnote}}% Switch to footnote with numbers
        \footnotemark[\thefield{labelnumber}]% Add the mark corresponding to the number entry% 
        \iffirstonpage{
            \footnotetext[\thefield{labelnumber}]{% Add the footnote text with same number entry.
                %\printfield{labelnumber}
                \printnames{labelname}% The name 
                \setunit{\printdelim{nametitledelim}}% separator
                \printfield[citetitle]{labeltitle}% The title
                \setunit{\addperiod\space}% separator
                \printfield{year}% The year
        }
        }{}% if not first on page
        %   \renewcommand{\thefootnote}{\alph{footnote}}% Switch back to footnote with letters.
    }%
    {\multicitedelim}
    {\usebibmacro{postnote}}
    \DeclareAutoCiteCommand{myfootnote}{\footcite}{\footcite}
    \endinput
\end{filecontents}

\begin{filecontents}{database.bib}
    @Misc{key,
        author      = {author},
        title       = {title},
    }
\end{filecontents}

\usepackage[autocite=myfootnote, style=numeric, pagetracker=true, backend=biber]{biblatex}
\bibliography{database.bib}
\begin{document}
\begin{itemize}
    \item one point\autocite{key}
    \item another one\autocite{key}
\end{itemize}
\newpage
\begin{itemize}
    \item one point\autocite{key}
    \item another one\autocite{key}
\end{itemize}
\end{document}

One possible improvement that I don't know how to do, would be the make this hack compatible with other bibstyles. Indeed, if someone switch style to alphabetic for example, would get compilation error: missing number; since the footnotemark will not received a number but a text given by \thefield{labelnumber}.

2
  • And I was hoping that I simply missed some package option to do this – homocomputeris Dec 22 '20 at 14:25
  • 1
    A simplier option is to define your command (like myfootcite) and use it instead of \autocite. Otherwise, I don't know how to compress the footnote. – R. N Dec 22 '20 at 14:28

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.