Como combinar entradas bibliográficas repetidas ao usar footcite?

Dec 10 2020

Se eu citar a mesma fonte várias vezes consecutivas, ela produz uma lista bibliográfica composta por itens idênticos:


  1. autor, título
  2. autor, título
\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}

Como faço para compactar a lista na nota de rodapé para ficar assim:


1,2 autor, título

Respostas

1 R.N Dec 18 2020 at 21:36

Sugiro uma solução que não comprima a lista de notas de rodapé, mas imprima a nota de rodapé apenas uma vez por página.

A ideia é redefinir um comando cite chamado \footcite. Então, a fim de mas aceito pela autociteopção do biblatex, coloco em um biblatex.cfgarquivo de acordo com esta pergunta e nomeio -o myfootnote.

E o \footcite, quando chamado, está sempre criando um \footnotemarkusando o número do rótulo da chave. Então, de acordo com essa pergunta , se o \footcitefor chamado pela primeira vez nesta página, ele também criará um \footnotetext.

Aqui está o MWE resultante:

\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}

Uma possível melhoria que eu não sei como fazer, seria tornar este hack compatível com outros estilos de bibstyles. De fato, se o estilo de alguém mude para alphabetic, por exemplo, iria receber erro de compilação: missing number; já que o footnotemarknão receberá um número, mas um texto fornecido por \thefield{labelnumber}.