Soit les entrées suivantes :
Crossref = {ConciliaAfricae},
Entrysubtype = {concile},
Pages = {30-46},
Title = {Breviarum Hipponense}}
@bookinbook{Ferrand,
Author = {{Ferrand de Carthage}},
Crossref = {ConciliaAfricae},
Entrysubtype = {concile},
Pages = {287-306},
Title = {Breviatio Canonum}}
@book{ConciliaAfricae,
Editor = {Charles Munier},
Number = {149},
Series = {CCSL},
Title = {Concilia Africae}}
Si j’appelle ma bibliographie finale avec :
J’obtiens le tri suivant :
Ferrand de Carthage, Breviatio Canonum, dans Concilia Africae, dir. Charles Munier, CCSL 149, p. 287–306.
Breviarum Hipponense, dans Concilia Africae, dir. Charles Munier, CCSL 149, p. 30–46.
Or j’aimerais que les sources anonymes soient positionnée en tout début. Comment faire ?
La mauvaise méthode
La mauvaise méthode consiste à utiliser le champ sortname, en modifiant ainsi les entrées anonymes :
Crossref = {ConciliaAfricae},
Entrysubtype = {concile},
Pages = {30-46},
Title = {Breviarum Hipponense}}
Cette méthode est mauvaise pour (au moins) deux raisons :
- Elle suppose de ne pas oublier de renseigner le champ
sortnameet demande une vérification finale manuelle (ou l’utilisation de tests) - Elle implique qu’on insère dans la base de donnée le tri final. Or il peut arriver de vouloir avoir un autre tri, par exemple en gardant le tri standard.
La bonne méthode
Elle suppose de passer par Biber. Il s’agit de créer un ordre de tri personalisé (le manuel de BibLaTeX explique plus en détails).
Si je fouille le fichier biblatex.def, je trouve la définition du tri nyt, qui est le tri standard, triant par nom, puis par titre, puis par année.
- \DeclareSortingScheme{nty}{
- \sort{
- \field{presort}
- }
- \sort[final]{
- \field{sortkey}
- }
- \sort{
- \field{sortname}
- \field{author}
- \field{editor}
- \field{translator}
- \field{sorttitle}
- \field{title}
- }
- \sort{
- \field{sorttitle}
- \field{title}
- }
- \sort{
- \field{sortyear}
- \field{year}
- }
- \sort{
- \field[padside=left,padwidth=4,padchar=0]{volume}
- \literal{0000}
- }
- }
Je commente rapidement le code :
- La première ligne indique que nous déclarons un schéma de tri (
\DeclareSortingScheme) intitulénty. Ce schéma est décrit dans les lignes qui suivent. - Chaque commande
\sortindique un ordre de tri, les champs déclarés par\fieldà l’intérieur de ces commandes étant les champs servant au tri. Le système de tri test chaque champ : si un champ existe, il tri selon ce champ, puis passe au\sortsuivant. Sinon, il teste avant le champ suivant. Ainsi, on voit que le tri se fait d’abord suivant le champpresort, puis suivant le champsortkey. Si ce champ est défini, on arrête là le tri (comme le montre l’option[final]). Dans le cas contraire, on continue le tri : champsortname, si ce champ est défini, alors on tri ensuite parsorttitle, sinon on test un tri parauthor -
\field[padside=left,padwidth=4,padchar=0]{volume}signifie que pour le tri, le champvolumereçoit des zéros sur sa gauche, de manière à former au plus 4 caractères. Ainsi1devient0001,10devient0010et 100 devient100. Ceci permet de procéder à un tri par ordre numérique, et non par ordre alphabétique [1]. - La commande
\literalsignifie que Biber fait « comme si » un champ ayant la valeur passé en argument est pris en compte. Cette commande va nous être très utile.
Nous allons en effet déclarer un nouveau schéma de tri, anonyme.
Nous allons d’abord remplacer :
\field{editor}
\field{translator}
Par :
Ceci permettra de trier suivant le pseudo-champ labelname. Par défaut ce pseudo champ vaut la valeur du premier champ existant dans l’ordre suivant : shortauthor,author,shorteditor,editor,translator. Cependant, pour les entrées de type @book, @bookinbook et @inbook nous allons le modifier, en faisant qu’il ne puisse être qu’égal à author, via :
Nous allons remplacer le premier :
\field{title}
par
Ainsi en l’absence de champ labelname, donc pour les œuvres anonymes, notre entrée sera située en tête de tri.
Au final, cela donne ceci :
\DeclareSortingScheme{anonyme}{
\sort{
\field{presort}
}
\sort[final]{
\field{sortkey}
}
\sort{
\field{sortname}
\field{labelname}
\literal{0000}
}
\sort{
\field{sorttitle}
\field{title}
}
\sort{
\field{sortyear}
\field{year}
}
\sort{
\field[padside=left,padwidth=4,padchar=0]{volume}
\literal{0000}
}
}
Lors du chargement de biblatex, nous passons l’option sorting=anonyme pour dire de prendre ce tri.
Ce qui nous donne correctement au final :
Breviarum Hipponense, dans Concilia Africae, dir. Charles Munier, CCSL 149, p. 30–46.
Ferrand de Carthage, Breviatio Canonum, dans Concilia Africae, dir. Charles Munier, CCSL 149, p. 287–306.
Tri des œuvres anonymes
