Accueil > LaTeX > BibLaTeX > Afficher le nombre d’entrées dans une bibliographie
Afficher le nombre d’entrées dans une bibliographie
dimanche 12 août 2012, par
J’ai récemment répondu à une question d’une personne qui souhaitait afficher le nombre d’entrée d’une bibliographie, mais sans afficher cette bibliogaphie.
Le problème
La personne avait une base de donnée bibliographique avec le champ keyword
rempli, pour distinguer plusieurs projets. Il souhaitait ensuite afficher le nombre d’entrées pour chaque projets, mais ne pas afficher la bibliographie du projet, ou en tout cas, pas tout de suite. Cependant, il voulait pouvoir utiliser les options de sélections d’entrée, par exemple :
\nocite{*}
\printbibliography[keyword=projetx]
\printbibliography[keyword=projety]
Ceci afficher les entrées ayant (respectivement) le mot clef projetx
et le mot clef projet2
. La personne souhaitait compter simplement le nombre d’entrées pour chacun des mots.
Principe de solution
Le principe de la solution est le suivant :
– avoir un compteur \refs
qui enregistrerait le nombre d’entrée par catégorie.
– avoir un nouveau type de bibliographie finale qui se contenterait d’incrémenter le compteur à chaque entrée, puis d’afficher le valeur du compteur, sans pour autant afficher les entrées.
Mise en place
Dans le préambule, mettre :
- L. 1 : création du compteur
refs
. - L. 2 : nous allons utiliser des commandes avec des
@
dans le nom : nous avons besoin de\makeatletter
. - L. 3 : définition d’un nouveau type de bibliographie finale, appelée
counter
:- Au début de cette bibliographie :
- L. 4 : réinitialisation du compteur
refs
. - L. 5 : modification de la commande appelée pour afficher l’entrée : nous ne voulons pas afficher d’entrée.
- L. 4 : réinitialisation du compteur
- L. 7 : à la fin de la bibliographie, affichage du compteur.
- L. 8 : à chaque entrée, incrémentation du compteur.
- Au début de cette bibliographie :
- L. 9 : plus besoin d’utiliser
@
dans les noms de commandes.
On consultera le manuel de biblatex pour plus de détails sur l’utilisation de \defbibenvironment
.
Il faut également permettre de ne pas avoir de titre à la bibliographie :
\defbibheading{counter}{}
Utilisation
Pour afficher le nombre d’entrées liées au mot projetx
, il suffit d’utiliser :
Nous avons \printbibliography[env=counter,heading=counter] entrées pour le mot projetx.
Et si notre mot projetx
à 2 entrées, cela donne :
Nous avons 2 entrées pour le mot projetx.
Quelqu’un a suggéré d’utiliser \AtDataInput
. Je pense effectivement que cela pourrait être mieux, mais peut poser des problèmes si on utiliser des sous-entrées bibliographiques que l’on ne veut pas avoir dans le total des bibliographies. À tester donc.
Le problème notamment est si l’on a beaucoup de test à faire : il faut les répéter selon deux syntaxes différentes : dans la bibliographie finale et dans le AtDataInput
.
Pour ceux qui souhaite afficher le totale directement après la bibliographie, utilisez la contribution "Compter le nombre d’entrées dans une bibliographie".
Messages
18 novembre 2019, 18:21, par RaeNye
\defbibheader doit etre \defbibheading
Merci.
18 novembre 2019, 18:46, par Maïeul
Effectivement. Corigé. Merci du signalement.