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 Answer 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 Dec 22, 2020 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, 2020 at 14:28

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .