Chemin principal : Accueil > LaTeX > BibLaTeX > Gestions des sources anonymes avec biblatex

Autre chemin : (Aller directement au contenu de l'article)

Gestions des sources anonymes avec biblatex

mercredi 9 novembre 2011, mise à jour mercredi 8 août 2012, 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 : Gestion des sources anonymes avec BibLaTeX : méthodes plus simples.

La gestion des sources anonymes avec biblatex nécéssitent parfois des adaptations des styles standards. Voici celles que j’ai faites pour mon usages personnels.

Toutes mes sources primaires sont indiquées en donnant au champ usera la valeur 1.

Affichage de l’éditeur au bon endroit

Soit cette œuvre-ci :

  1. @book{MartyHier,
  2. Address = {Bruxelles},
  3. Editor = {Duchesne, Louis and Jean-Baptiste de Rossi},
  4. Entrysubtype = {calendrier},
  5. Number = {Nov. II, 2},
  6. Publisher = {Société des Bollandistes},
  7. Read = {1},
  8. Series = {Acta Sanctorum},
  9. Title = {Martyrologe Hiéronymien},
  10. Usera = {1},
  11. Year = {1894}}

Télécharger

Par défaut elle s’affiche ainsi (avec le style verbose-trad2 :

Louis Duchesne et Jean-Baptiste de Rossi, éds. Martyrologe Hiéronymien. Acta Sanctorum Nov. II, 2. Bruxelles : Société des Bollandistes, 1894

Ce n’est pas très satisfaisant, car Louis Duchesne et Jean-Baptiste de Rossi ne sont pas des directeurs. Je préférerais avoir leurs noms après le titre de l’œuvre, pour bien marquer que celle-ci est anonyme.

J’ai donc fouillé le fichier qui définit l’affichage des entrées de types @book, c’est à dire le fichier standard.bbx.

Et j’ai vu que l’entrée était affichée ainsi [1] :

  1. \DeclareBibliographyDriver{book}{%
  2. \usebibmacro{bibindex}%
  3. \usebibmacro{begentry}%
  4. \usebibmacro{author/editor+others/translator+others}%
  5. \setunit{\labelnamepunct}\newblock
  6. \usebibmacro{maintitle+title}%
  7. \newunit
  8. \printlist{language}%
  9. \newunit\newblock
  10. \usebibmacro{byauthor}%
  11. \newunit\newblock
  12. \usebibmacro{byeditor+others}%
  13. \newunit\newblock
  14. \printfield{edition}%
  15. \newunit
  16. \iffieldundef{maintitle}
  17. {\printfield{volume}%
  18. \printfield{part}}
  19. {}%
  20. \newunit
  21. \printfield{volumes}%
  22. \newunit\newblock
  23. \usebibmacro{series+number}%
  24. \newunit\newblock
  25. \printfield{note}%
  26. \newunit\newblock
  27. \usebibmacro{publisher+location+date}%
  28. \newunit\newblock
  29. \usebibmacro{chapter+pages}%
  30. \newunit
  31. \printfield{pagetotal}%
  32. \newunit\newblock
  33. \iftoggle{bbx:isbn}
  34. {\printfield{isbn}}
  35. {}%
  36. \newunit\newblock
  37. \usebibmacro{doi+eprint+url}%
  38. \newunit\newblock
  39. \usebibmacro{addendum+pubstate}%
  40. \setunit{\bibpagerefpunct}\newblock
  41. \usebibmacro{pageref}%
  42. \usebibmacro{finentry}}

Télécharger

Dans mon préambule, je copie-colle ce code et modifie la ligne 4. J’y effectue un test avec la commande \iffieldequalstr pour appeler, si jamais l’entrée est une source primaire, la macro author.

Ce qui donne :

  1. \iffieldequalstr{usera}{1}{\usebibmacro{author}}{\usebibmacro{author/editor+others/translator+others}}

J’obtiens alors :

Martyrologe Hiéronymien. Sous la dir. de Louis Duchesne et Jean-Baptiste de Rossi. Acta Sanctorum Nov. II, 2. Bruxelles : Société des Bollandistes, 1894

Bonne chaîne de langues

A oui, mais Duchesne et de Rossi ne sont pas les directeurs de publications. Qu’à cela ne tienne : je modifie la chaîne de langue byeditor en y insérant un test [2] :

  1. \DefineBibliographyStrings{french}{%
  2. byeditor = \iffieldequalstr{usera}{1}{{éd\adddot}}{{dir\adddotspace}}`
  3. }

Télécharger

ce qui me donne ceci :

Martyrologe Hiéronymien. éd. Louis Duchesne et Jean-Baptiste de Rossi. Acta Sanctorum Nov. II, 2. Bruxelles : Société des Bollandistes, 1894

Ce qui est nettement mieux !

op. cit., encore et toujours

Par contre là deuxième fois que je cite mon œuvre, j’obtiens :

Duchesne et Rossi, Martyrologe Hiéronymien, op. cit.

Le problème se situe au niveau de la macro cite:name dans le fichier verbose-trad2.cbx

Elle est définie ainsi :

  1. \newbibmacro*{cite:name}{%
  2. \printnames{labelname}%
  3. \setunit*{\nametitledelim}}

Télécharger

Or labelname s’appuie sur l’auteur et à défaut sur l’éditeur. Si pour les études secondaires cela peut être utile, ce n’est pas le cas pour les sources anciennes.

Il me suffit de redéclarer la macro, en insérant un test conditionnel sur le champ usera :

  1. \renewbibmacro*{cite:name}{%
  2. \iffieldequalstr{usera}{1}{\printnames{author}}{\printnames{labelname}}%
  3. \setunit*{\nametitledelim}}

Télécharger

Ce qui me donne :

Martyrologe Hiéronymien, op. cit.

Ce qui est bien !

Oui mais \ifsingletitle

Oui mais voilà, je me suis arrangé pour avoir des véritables op. cit. [3].

Ce qui fait que j’obtiens :

op. cit.

lorsque je cite le martyrologe la deuxième fois. Pourquoi ? Parce que ifsingletitle considère les éditeurs comme des auteurs. C’est à dire que si les éditeurs n’ont édité qu’un seul ouvrage, il renvoie vrai. Par conséquent, suivant mon précédent article, le titre n’est pas affiché. Mais comme l’auteur n’est pas non plus affiché (et pour cause, il est anonyme !), j’obtiens un simple op. cit.. Or j’ai d’autres œuvres anonymes qui pourraient être dans le cas.

Il faut donc que dans ma redéfinition de la macro cite:title je modifie à nouveau ma ligne

  1. \ifsingletitle{}{\printfield[citetitle]{labeltitle}}%

Pour choisir de ne pas afficher le titre :

  • si le couple auteur/titre est unique
  • ET si je ne suis pas dans le cas où j’ai un source primaire (champ usera égal à 1) ET que cette source n’a pas d’auteur (champ author indéfini).

Je pourrais bien sûr faire des imbrications de test. Ceci dit il est plus simple de regrouper tout cela dans un test unique, via la commande \ifboolexpr qui permet de tester la valeur d’une expression booléenne. Donc ici, combiner les tests que je viens de lister.

Ce qui donne cela [4] :

  1. \ifboolexpr{test{\ifsingletitle} and not (test {\iffieldundef{author}} and test{\iffieldequalstr{usera}{1}})}{}{\printfield[citetitle]{labeltitle}}%

Télécharger

En mettant cela à la place de mon précédent test sur ifsingletitle, j’obtiens correctement, lors de ma deuxième citation :

Martyrologe Hiéronymien, op. cit.

Et voilà … un petit tour du problème des œuvres anonymes [5].

Notes

[1Sur la notion de driver bibliographique, je renvoie à l’article sur la bibliographie commentée.

[2Sur les chaînes de langues, voir mon article de présentation.

[3Pour ce qui est de les avoir en italique, je renvoie à mon article qui explique comment faire.

[4Pour la syntaxe exacte de la commande \ifbbolexpr je renvoie au manuel de biblatex.

[5Encore un renvoi ! pour leur classement dans la bibliographie finale, il faut définir son propre système de tri.

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 formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

À 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.

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