Gestions des œuvres anonymes : méthode encore plus simple

lundi 27 octobre 2014, mise à jour mercredi 10 juin 2015, par Maïeul
Suivre la vie du site RSS 2.0 Forum

J’avais proposé dans un article comment gérer des œuvres anonymes. J’avais également indiqué dans un autre article comment procéder à un tri des œuvres anonymes. Les deux contributions avaient été fusionnées en un package.

En voulant améliorer ce package, je me suis aperçu qu’il y avait une méthode beaucoup plus simple. Explication.

Préambule : à quoi répond cet article

Cet article est une documentation technique du package biblatex-anonymous. Il permet de montrer comment il fonctionne. Il peut vous être utile pour créer vos propre personnalisation. Cependant si vous souhaitez simplement gérer les œuvres anonymes, utilisez plutôt le package, directement.

Nos besoins

Nous voulons que pour certains types d’entrées seul le champ author soit utilisé :

  • Comme référent pour le classement bibliographique.
  • Comment auteur dans la version longue de la référence bibliographique.
  • Comme label pour les versions courtes de la référence bibliographique.

Autrement dit, nous ne voulons pas que dans les trois cas sus-mentionné, l’éditeur ou le traducteur soit utilisé si l’auteur est absent.

Des options bien utiles

Mes précédents contributions consistaient à modifier chacun de ces points. Or il se trouve que BibLaTeX, que je ne connaît décidément pas assez, propose nativement un outil pour gérer ces cas.

Il s’agit des options :

  • useeditor
  • usetranslator

Ces options peuvent être définie :

  • Au niveau du chargement de biblatex, comme options de package.
  • Au niveau de chaque entrée, via le champ spécifique options.
  • Par type d’entrée, via \ExecuteBibliographyOptions.

Les types d’entrées susceptibles de nous intéressées sont celles qui se référent à des œuvres anciennes, autrement où l’editor est un éditeur et pas un directeur de publication.

Il s’agit donc des entrées de type :

  • book
  • bookinbook
  • bookinarticle
  • bookinincollection
  • mvbook
  • inbook

On va donc régler ces options à false pour ces deux entrées :

\ExecuteBibliographyOptions[book, bookinbook, bookinarticle, bookinincollection, mvbook,inbook]{useeditor=false,usetranslator=false}

Un tri simplifié

Cette contribution ne rend pas obsolète la nécessité de définir un schéma de tri spécifique pour classer les sources anonymes avant les sources non anonymes. Cependant cela simplifie le problème, en évitant de s’éloigner trop du modèle classique nty.

Rappelons que ce schéma de tri est ainsi défini dans le fichier biblatex.def :

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

Cela indique qu’on trie d’abord le champ presort, puis le champ sortkey. Si ce dernier champ est défini, on arrête là le tri.

Puis on tri le champ suivant : sortname, ou à défaut author, ou à défaut editor, ou à défaut translator, ou à défaut sorttitle, ou à défaut title.

Ensuite on tri le champ sorttitle, ou à défaut, title. Vient après le tri de sortyear ou à défaut de year. Finalement on tri le champ volume, completé à gauche par des 0, ou à défaut de ce champ, on prend la valeur 0000. Ce qui signifie qu’un ouvrage avec un volume sera classé après un ouvrage sans volume, toutes choses égales par ailleurs [1]

Dans le cas qui nous intéresse le fait d’avoir désactiver, pour certain types d’entrées, les champs editor et translator amène à ce que pour ces entrées on trie sortname ou à défaut par author ou à défaut sorttitle, ou à défaut title. Autrement dit, pour ces types d’entrées, nous n’avons pas :

\sort{
    \field{sortname}
    \field{author}
    \field{editor}
    \field{translator}
    \field{sorttitle}
    \field{title}
  }

mais

\sort{
    \field{sortname}
    \field{author}
    \field{sorttitle}
    \field{title}
  }

Pour notre schéma de tri anonymous, nous souhaitons qu’en l’absence de sortname ou de author ou de editor ou de translator, ce ne soit ni la valeur de sorttitle ni celle de title, mais une valeur égale à 0000, ce qui nous assure d’avoir les œuvres anonymes avant celles ayant un auteur.

Il nous faut donc remplacer

\sort{
    \field{sortname}
    \field{author}
    \field{editor}
    \field{translator}
    \field{sorttitle}
    \field{title}
  }

par

\sort{
    \field{sortname}
    \field{author}
    \field{editor}
    \field{translator}
    \literal{0000}
  }

Ainsi notre tri anonyme se définit ainsi :

\DeclareSortingScheme{anonymous}{
  \sort{
    \field{presort}
  }
  \sort[final]{
    \field{sortkey}
  }
  \sort{
    \field{sortname}
    \field{author}
    \field{editor}
    \field{translator}
    \literal{0000}
  }
  \sort{
    \field{sorttitle}
    \field{title}
  }
  \sort{
    \field{sortyear}
    \field{year}
  }
  \sort{
    \field[padside=left,padwidth=4,padchar=0]{volume}
    \literal{0000}
  }
}

Il nous reste plus qu’à passer l’option sorting=anonyme lors du chargement de biblatex ou à notre commande \printbibliography, la première option étant recommandée si on ne désire pas avoir des bibliographies triées selon des schémas différents.

Éditeur ou directeur

Bien que cela ne directement lié à notre problème, on peut modifier les chaînes pour indiquer éditeur ou directeur selon le cas. Mais plutôt que d’utiliser des test booléens compliqués, il suffit de faire :

\DefineBibliographyStrings{french}{%
	  byeditor = %
                {\ifuseeditor{dir\adddotspace}{éd\adddot}},
}

Ces deux morceaux de codes se retrouvent tels quels dans la version 2.0.0 du package biblatex-anonymous.

Des vrais op. cit.

En revanche si j’utilise la contribution pour avoir des vrais op. cit., j’ai un problème : puisqu’il n’y a pas de LabelName aux œuvres anonymes, toutes les œuvres anonymes sont considérées comme du même auteur, et donc la commande \ifsingletitle renvoie invariablement true, ce qui fait que l’on ne peut distinguer les œuvres anonymes, puisqu’elles sont toutes résumées en op. cit. sans que le titre soit affichés.

C’est pourquoi, on lieu de redéfinir la macro cite:title

On va pour cela utiliser le package xpatch

\xpatchbibmacro%
	{cite:title}%
	{\printfield[citetitle]{labeltitle}}%
	{\ifboolexpr{test{\ifsingletitle} and not test {\ifnameundef{labelname}}}{}{\printfield[citetitle]{labeltitle}}}%
	{}%
	{}%

P.-S.

D’un point de vue technique, ces réglages influent sur le résultat renvoyé par \ifuseeditor{<oui>}{<non>} et \ifusetranslator{<oui>}{<non>}.

Les styles standards de BibLaTeX appellent ces commandes dans les macros de type author/editor mais pas dans celles de types byauthor/byeditor.

Ces réglages changent aussi le fonctionnement de biber.

Notes

[1Ce «  toutes choses égales par ailleurs  » n’arrive en réalité pas dans la pratique.

Vos commentaires

  • Le 10 juin 2015 à 11:27, par Stéphane P. En réponse à : Gestions des œuvres anonymes : méthode encore plus simple

    Bonjour Maïeul,

    Je suis en train de tenter d’appliquer les consignes données par cet article mais :

    1) Je ne parviens pas à trouver sur mon disque le fichier biblatex.def. Quel est le moyen le plus simple pour y accéder ? 2) N’y a-t-il pas un risque de perdre le tri ainsi enregistré en cas de mise à jour de biblatex ?

    Merci d’avance pour tes lumières !

  • Le 10 juin 2015 à 11:34, par Maïeul En réponse à : Gestions des œuvres anonymes : méthode encore plus simple

    1. lire Trouver les fichiers par défaut
    2. il ne faut pas modifier le fichier mais surcharger les commandes dans son préambule. Pour faire les choses encore mieux, on peut même ne pas surcharger les commandes et juste les patcher (avec etoolbox/xpatch).

    Cependant dans le cas présent, l’article est juste un doc technique d’un package près à l’emploi

  • Le 10 juin 2015 à 11:51, par Stéphane P. En réponse à : Gestions des œuvres anonymes : méthode encore plus simple

    Ok ! Effectivement, je vais juste utiliser le package.

  • Le 28 juin 2017 à 12:33, par Hel17 En réponse à : Gestions des œuvres anonymes : méthode encore plus simple

    Bonjour Maïeul, j’ai bien réussi à appliquer les règles fournies dans cet article très utile. Je fais face toutefois à un problème : je voudrais avoir dans ma biblio finale mes sources anonymes triées alphabétiquement par titre, puis ,directement à la suite, mes sources non anonymes, triées donc par nom d’auteur. Pour ces dernières, je voudrais que lorsqu’un auteur a publié plusieurs oeuvres,celles-ci soient triées chronologiquement. Pour cela, je dois donc définir le tri ainsi : sorting=nyt. Or, si je fais cela, mes sources anonymes elles aussi sont triées chronologiquement... Comment faire ? J’imagine qu’il faudait indiquer que lorsqu’il n’y a pas de nom d’auteur, le tri se fait en « nty », et que lorsqu’il y a un nom d’auteur, il doit se faire en « nyt ». Mais je ne suis pas une experte en code du tout... Auriez-vous une idée ? Merci vivement à l’avance de votre aide !

  • Le 28 juin 2017 à 15:56, par Maïeul En réponse à : Gestions des œuvres anonymes : méthode encore plus simple

    Je dirais qu’il faut créer le tri correspondant. Normalement toute la doc est là. Pas le tps ici de rentrer dans les détails. Je vous suggère d’ouvrir une demande d’amélioration de biblatex-anonymous, et dès que j’aurais un nouvel ordinateur je m’occupe de cela, si vous n’êtes pas pressée.

    https://github.com/maieul/biblatex-anonymous/issues pour ouvrir la demande

  • Le 1er avril 2018 à 19:24, par Loïc En réponse à : Gestions des œuvres anonymes : méthode encore plus simple

    Merci pour ce package et votre travail en général.

    Débutant avec les bibliographies et encore plus avec les bibliographies avec Latex, j’ai nagé un moment avant de comprendre que ce package était la cause d’un affichage inattendu des éditeurs et directeurs , soit :

    Deremble, Colette, « Arbre », in : Dictionnaire encyclopédique du Moyen Âge, éd. Vauchez, André, t. 1, Paris : Éditions du Cerf, 1997, p. 109.

    au lieu de

    Deremble, Colette, « Arbre », in : Dictionnaire encyclopédique du Moyen Âge, sous la dir. de Vauchez, André, t. 1, Paris : Éditions du Cerf, 1997, p. 109.

    J’ai donc repris le tout sans la section problématique et ça marche.

  • Le 1er avril 2018 à 19:38, par Maïeul En réponse à : Gestions des œuvres anonymes : méthode encore plus simple

    cela peut se réglger avec le package en question. Si vous me fournissez un exemple complet minimum, je peux vous expliquer comment utiliser mon package tout en ayant cet affichage.

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