Collection abrégée avec shortseries : simplification

, par Maïeul

J’avais publié, il y a près de deux ans, un tutoriel sur la manière de gérer les versions abrégée des collections. La version 2.9 de BibLaTeX permet de gérer cela de manière plus simple.

Principe

Le champ series contient la collection dans laquelle un livre est publié. Le champ shortseries contient une version abrégée de la collection.

Par défaut, c’est le champ series qui est imprimé. Ce tutoriel propose :

  • d’expliquer comment afficher le champ shortseries à la place de series.
  • d’expliquer comment ajouter un tableau de correspondance entre forme abrégée et forme longue.

Exemples

Notre base de donnée d’exemple contient quatre entrées. Trois avec collection, une sans [1] :

Ce qui s’affiche ainsi, par défaut :

Concilia Africae. Corpus Christianorum Series Latina 140.
De Nativitate Mariae. Corpus Christianorum Series Apocryphorum 10.
La forme la plus ancienne du Protvangile de Jacques. Bruxelles, 1961.
Pseudo-Matthaei Evangelium. Corpus Christianorum Series Apocryphorum 9.

Afficher la version abrégée de la collection

Nous allons modifier les styles pour afficher la version abrégée de la collection, si elle existe, à la place de la version longue.

Par défaut, le macro qui affiche la collection est la suivante [2] :

Nous allons la modifier, en la redéfinissant ainsi :

.

La seule modification est ligne 2 : nous testons le champ shortseries. S’il n’existe pas, nous affichons le champ series. Sinon, nous affichons le champ shortseries.

Affichage d’une table de correspondance

Principe de base

Dans la précédente version, j’expliquais comment afficher une table de correspondance entre les versions abrégées et les versions longues.
C’est ici que la nouvelle version de BibLaTeX permet de simplifier la gestion.

Elle propose une nouvelle commande, \printbiblist qui permet de produire rapidement une liste avec :

  • un champ en label.
  • un ou plusieurs champ en contenu.

Pour pouvoir utiliser cette commande, il suffit de créer une nouveau type de liste bibliographique, avec la commande \DeclareBibliographyDriver. Cette commande reçoit :

  • comme premier argument le nom du champ à imprimer en Label.
  • comme second argument, des commandes BibLaTeX à exécuter. Par exemple, pour imprimer un champ.

Dans le cas présent, nous allons donc imprimer le champ shortseries en label, donc en premier argument, et le champ series en contenu. Le second argument contiendra donc une commande d’impression du champ.

Il suffit désormais d’utiliser la commande \printbiblist, pour imprimer notre tableau de correspondance. Le premier, et unique, argument de la commande est le nom du champ en label.

Ce qui imprime la liste suivante :

CCSL Corpus Christianorum Series Latina
CCSA Corpus Christianorum Series Apocryphorum
CCSA Corpus Christianorum Series Apocryphorum

Par défaut, le titre de la liste, en français, est « Sigle ». Mais il est possible de préciser à partir d’un argument facultatif.

Affinage

Vous pouvez constatez deux problèmes :

  1. Le tri n’est pas correct.
  2. Si une shortseries est définie plusieurs fois, elle apparaît plusieurs fois.

Il faut donc définir :

  1. Un système de tri.
  2. Un système de filtrage, via \defbibcheck.

Système de tri

Si on définit un schéma de tri du nom du champ de label, il sera automatiquement appliqué à la liste bibliographique. Un tel système de tri est très aisé à définir :

  • L. 1 : définition du schéma de tri.
  • L. 2 : définition du premier (et unique) critère de classement :
    • L. 3 : on trie selon le champ shortseries et c’est tout.

Ce qui donne, après nouvelle compilation Biber :

CCSA Corpus Christianorum Series Apocryphorum
CCSA Corpus Christianorum Series Apocryphorum
CCSL Corpus Christianorum Series Latina

Filtrage

Pour filtrer la liste, il suffit de déclarer un « bibcheck » du nom de la liste. Le filtrage sera automatiquement effectué, à partir de BibLaTeX 3.0. Pour la version 2.9, il faut spécifier ce bibcheck explicitement :

Voici donc une manière de définir :

  • L. 1 : définition du bibcheck.
  • L. 2 : si une entrée n’a pas de champ shortseries défini, on ne l’affiche pas dans la liste (logique !)
  • L. 3 : de même si pas de champ series défini.
  • L. 4 : en revanche si ces deux champs sont définis, on teste l’existence d’une commande dont le nom est composé du champ shortseries et du champ series :
    • L. 5 : si cette commande est déjà définie, cela veut dire que le couple shortseries/series a déjà été affiché. Dans ce cas, on ne l’affiche pas une nouvelle fois.
    • L. 6 : si cette commande n’est pas définie, cela veut dire que le couple shortseries/series n’a pas encore été affiché. Dans ce cas on défini la commande ad hoc.

Par rapport à la précédente version, ce nouveau bibcheck est beaucoup plus sûr : il vérifie aussi qu’une même abréviation n’a pas été utilisée deux fois pour deux collections différentes.

On obtient ainsi une version correcte de notre liste d’abréviations :

CCSA Corpus Christianorum Series Apocryphorum
CCSL Corpus Christianorum Series Latina

Notes

[1On me pardonnera, pour l’exemple minimum, de ne pas avoir rempli tous les champs.

[2Dans le fichier standard.bbx.