Tri des œuvres anonymes

mardi 17 juillet 2012, mise à jour mercredi 12 août 2015, par Maïeul
Suivre la vie du site RSS 2.0 Forum

Cet article est obsolète. Soit qu’il existe une manière plus « moderne » de procéder, soit que j’ai trouvé une autre méthode plus appropriée.
Voyez plutôt la nouvelle version : Gestions des œuvres anonymes : méthode encore plus simple.

Lorsqu’une bibliographie contient des œuvres anonymes, on peut souhaiter qu’elles soient toutes regroupées au même endroit. Voici comment faire.

Avant de lire cet article, il vous faut lire l’article sur la gestion des œuvres anonymes, pour avoir un affichage correct.

Soit les entrées suivantes :

@bookinbook{BreveHippone,
	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 :

\printbibliography[subtype=concile]

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 :

@bookinbook{BreveHippone,
	Crossref = {ConciliaAfricae},
	Entrysubtype = {concile},
	Pages = {30-46},
	Title = {Breviarum Hipponense}}

Cette méthode est mauvaise pour (au moins) deux raisons :

  1. Elle suppose de ne pas oublier de renseigner le champ sortname et demande une vérification finale manuelle (ou l’utilisation de tests)
  2. 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.

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 \sort indique 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 teste chaque champ :
    • Si un champ existe, biber note sa valeur dans sa mémoire pour le tri, sinon, il teste l’existence du champ suivant.
    • Une fois que tous les champs d’un \sort ont été analysés et leurs valeurs mises dans la mémoire pour tri, biber procéde au tri.
      • Ainsi, on voit que le tri se fait d’abord suivant le champ presort, puis suivant le champ sortkey.
      • Si le champ sortkey est défini, on arrête là le tri (comme le montre l’option [final]).
      • Dans le cas contraire, on continue le tri on prenant pour clef de tri : le champ sortname, sinon author, sinon editor, sinon translator, sinon sortitle, sinon title.
      • Après avoir fait ce tri, on sous-trie chaque auteur par sorttitle ou par title.
  • \field[padside=left,padwidth=4,padchar=0]{volume} signifie que pour le tri, le champ volume reçoit des zéros sur sa gauche, de manière à former au plus 4 caractères. Ainsi 1 devient 0001, 10 devient 0010 et 100 devient 100. Ceci permet de procéder à un tri par ordre numérique, et non par ordre alphabétique [1].
  • La commande \literal signifie 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{author}
    \field{editor}
    \field{translator}

Par :

\field{labelname}

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 :

\DeclareLabelname[book, inbook,bookinbook]{author}

ou pour les versions plus récentes de BibLaTeX

\DeclareLabelname[book, inbook,bookinbook]{
  \field{author}
}

Nous allons remplacer le premier :

 \field{sorttitle}
 \field{title}

par \literal{0000}

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 :

\DeclareLabelname[book, inbook,bookinbook]{author}
\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.

\usepackage[mincrossrefs=0,bibstyle=verbose,citestyle=verbose-trad2,backend=biber,sorting=anonyme]

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.

Notes

[1Voir à ce sujet mon article sur les champs de tri, où j’explique le problème des tris numériques.

Vos commentaires

  • Le 18 décembre 2013 à 20:55, par Olivier En réponse à : Tri des œuvres anonymes

    Comment faire pour mettre les sources anonymes à la fin de ma bibliographie ? Merci d’avance et d’ores et déjà pour toutes ces explications !

  • Le 18 décembre 2013 à 22:15, par Maïeul En réponse à : Tri des œuvres anonymes

    Dans l’exemple précédent,

      \sort{
        \field{sortname}
        \field{labelname}
        \literal{0000}
      }

    signifie "trier selon le champ sortname, ou à défaut labelname, ou à défaut selon un champ qui aurait une valeur égale à 0000, c’est à dire un champ avec une valeur située tout en début de tri.« Il suffit donc de dire à la place »sortname, ou à défaut labelname, ou à défaut selon un champ qui aurait une valeur égale à ZZZZ, c’est à dire un champ avec une valeur située tout en fin de tri". (En supposant que vous n’ayez pas de nom d’auteur dans un autre alphabet que l’alphabet. Sinon il faut trouver la valeur la plus ultime dans le classement alphabétique unicode).

    Soit donc :

     \sort{
        \field{sortname}
        \field{labelname}
        \literal{ZZZZ}
      }
  • Le 19 décembre 2013 à 22:18, par Olivier En réponse à : Tri des œuvres anonymes

    Merci beaucoup ! Vous m’avez été d’une aide précieuse !

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Acheter XeLaTeX appliqué aux sciences humaines

À propos

Titulaire d’un doctorat en théologie et d’un doctorat en histoire, sous la direction conjointe de Frédéric Amsler et d’Élisabeth_Malamut, je commence à partir du 1er août 2017 un travail d’édition critique des Actes de Barnabé.

Dans le cadre de la rédaction de mon mémoire de master puis de ma thèse de doctorat, j’ai été emmené à utiliser LaTeX, et j’ai donc décider de partager mes techniques. En effet, au cours de mes premiers apprentissages, j’ai découvert que les ressources indiquant les outils pour l’utilisation de LaTeX en sciences humaines étaient rares. Ceci m’a conduit à maintenir ou créer plusieurs packages LaTeX et à donner plusieurs formations.

J’ai reçu en 2018 le prix DANTE e.V pour mon travail autour de LaTeX, en particulier autour de reledmac et reledpar.

Par ailleurs, je suis membre actif de la communauté SPIP, au sein de laquelle j’administre le site Spip-Contrib. Je propose sur ce site quelques notes sur SPIP, en général à destination de webmestre.

Il m’arrive également de faire un petit peu de Python, de temps en temps.

Enfin, je tiens un blog de réflexions politiques et religieuses.

Maïeul