Le problème
Si on utilise ma méthode de gestion des divisions de sources primaires, une sous-entrée de gestion de division bibliographique doit être du même type que l’entrée mère.
Par exemple cette relation est correcte :
@bookinbook{AcPierretrad,
Address = {Paris},
Annotator = {Gérard Poupon},
Booktitle = {Écrits apocryphes chrétiens},
Date-Added = {2011-03-14 16:28:40 +0100},
Date-Modified = {2011-04-26 11:50:27 +0200},
Entrysubtype = {apocryphes},
Pages = {1054-1105},
Publisher = {Gallimard},
Series = {Bibliothèque de la Pléiade},
Sortname = {AAA},
Title = {Actes de l'apôtre Pierre et de Simon},
Translator = {Gérard Poupon},
Usera = {1},
Volume = {1},
Year = {1997}}
@bookinbook{AcPierretrad1-3,
Crossref = {AcPierretrad},
Date-Added = {2011-11-05 22:09:02 +0100},
Date-Modified = {2011-11-06 02:53:05 +0100},
Pages = {1054-1059},
Titleaddon = {1-3}}
En revanche cette relation n’est pas correcte et posera des problèmes d’affichage
@bookinbook{AcPierretrad,
Address = {Paris},
Annotator = {Gérard Poupon},
Booktitle = {Écrits apocryphes chrétiens},
Date-Added = {2011-03-14 16:28:40 +0100},
Date-Modified = {2011-04-26 11:50:27 +0200},
Entrysubtype = {apocryphes},
Pages = {1054-1105},
Publisher = {Gallimard},
Series = {Bibliothèque de la Pléiade},
Sortname = {AAA},
Title = {Actes de l'apôtre Pierre et de Simon},
Translator = {Gérard Poupon},
Usera = {1},
Volume = {1},
Year = {1997}}
@book{AcPierretrad1-3,
Crossref = {AcPierretrad},
Date-Added = {2011-11-05 22:09:02 +0100},
Date-Modified = {2011-11-06 02:53:05 +0100},
Pages = {1054-1059},
Titleaddon = {1-3}}
L’entrée mère est en effet de type @bookinbook
et l’entrée fille de type @book
.
Pour résoudre ce problème, il faudrait qu’un message s’affiche dans les logs à chaque fois qu’un tel type de relation existe.
La solution est assez simple : il faut redéfinir la macro begentry
qui est utilisée à chaque entrée bibliographique.
Dans cette macro, il faudra :
- tester si le champ
titleaddon
est utilisé. Pour cela, on utilise la commande\iffieldundef
. - Si tel est le cas, alors tester si le pseudo-champ
entrytype
est hérité de l’entrée mère. On utilise pour cela la commande\iffieldxref
, qui vérifie si un champ est égal au champ de l’entrée mère. - Si le le champ
entrytype
n’est pas égal au champ de l’entrée mère, alors on affiche un petit mot dans les messages de compilations, avec la commande\BibliographyWarning
.
Ce qui donne au final :
\renewbibmacro{begentry}{\iffieldundef{titleaddon}{}{% Vérifier la présence de titleaddon
\iffieldxref{entrytype}{}% Tester l'égalité de type entrée l'entrée fille et l'entrée mère
{\BibliographyWarning{Sous-entrée n'étant pas du même type que l'entrée mère}}% Afficher le cas échéant un message, si l'entrée mère n'est pas de même type que l'entrée fille.
%
}%
}
Et voilà, à chaque fois qu’une sous-entrée pour gestion de division de sources n’est pas du bon type, j’obtiendrais dans les messages de compilation quelquechose du genre :
Sous-entrée n’étant pas du même type que l’entrée mère (biblatex) at entry ’Andreconversante8’ on input line 44.