Comment combiner des entrées de bibliographie répétées lors de l'utilisation de footcite?

Dec 10 2020

Si je cite la même source plusieurs fois de suite, cela produit une liste bibliographique composée d'éléments identiques:


  1. auteur, titre
  2. auteur, titre
\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}

Comment compresser la liste dans la note de bas de page pour qu'elle ressemble à ceci:


1,2 auteur, titre

Réponses

1 R.N Dec 18 2020 at 21:36

Je suggère une solution qui ne compresse pas la liste des notes de bas de page mais n'imprime la note de bas de page qu'une seule fois par page.

L'idée est de redéfinir une commande cite appelée \footcite. Ensuite, afin de mais accepté par l' autociteoption de biblatex, je le mets dans un biblatex.cfgfichier en fonction de cette question et le nomme myfootnote.

Et le \footcite, lorsqu'il est appelé, crée toujours un en \footnotemarkutilisant le numéro d'étiquette de la clé. Ensuite, selon cette question , si le \footciteest appelé pour la première fois sur cette page, il crée également un fichier \footnotetext.

Voici le MWE résultant:

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

Une amélioration possible que je ne sais pas faire, serait de rendre ce hack compatible avec d'autres styles de bib. En effet, si le style de commutateur quelqu'un alphabeticpar exemple, obtiendrait erreur de compilation: missing number; puisque le footnotemarkne recevra pas un numéro mais un texte donné par \thefield{labelnumber}.