Chemin principal : Accueil > LaTeX > BibLaTeX > Collection abrégée avec shortseries : simplification

Collection abrégée avec shortseries : simplification

mardi 8 juillet 2014, mise à jour samedi 1er avril 2017, par Maïeul
Suivre la vie du site RSS 2.0 Forum

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] :

  1. @book{PtJc,
  2. Address = {Bruxelles},
  3. Title = {La forme la plus ancienne du Protévangile de Jacques},
  4. Year = {1961}}
  5. @book{CCSL149,
  6. Number = {140},
  7. Series = {Corpus Christianorum Series Latina},
  8. Shortseries = {CCSL},
  9. Title = {Concilia Africae}}
  10. @book{CCSA9,
  11. Number = {9},
  12. Series = {Corpus Christianorum Series Apocryphorum},
  13. Shortseries = {CCSA},
  14. Title = {Pseudo-Matthaei Evangelium}}
  15. @book{CCSA10,
  16. Number = {10},
  17. Series = {Corpus Christianorum Series Apocryphorum},
  18. Shortseries = {CCSA},
  19. Title = {De Nativitate Mariae}}

Télécharger

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] :

  1. \newbibmacro*{series+number}{%
  2. \printfield{series}%
  3. \setunit*{\addspace}%
  4. \printfield{number}%
  5. \newunit}

Télécharger

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

  1. \renewbibmacro*{series+number}{%
  2. \iffieldundef{shortseries}{\printfield{series}}{\printfield{shortseries}}%
  3. \setunit*{\addspace}%
  4. \printfield{number}%
  5. \newunit}

Télécharger

.

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.

  1. \DeclareBibliographyDriver{shortseries}{\printfield{series}}

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.

  1. \printbiblist{shortseries}

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.

  1. \printbiblist[title=Sigle des collections]{shortseries}

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 :

  1. \DeclareSortingScheme{shortseries}{
  2. \sort{
  3. \field{shortseries}
  4. }
  5. }

Télécharger

  • 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 :

  1. \printbiblist[check=shortseries]{shortseries}

Voici donc une manière de définir :

  1. \defbibcheck{shortseries}{%
  2. \iffieldundef{shortseries}{\skipentry}{%
  3. \iffieldundef{series}{\skipentry}{%
  4. \ifcsdef{\strfield{series}=\strfield{shortseries}}
  5. {\skipentry}
  6. {\savefieldcs{series}{\strfield{series}=\strfield{shortseries}}}%
  7. }
  8. }
  9. }

Télécharger

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

Vos commentaires

  • Le 31 mars à 06:21, par Wiener En réponse à : Collection abrégée avec shortseries : simplification

    Bonjour,

    Merci pour ce tutoriel ! Après bien des recherches sur internet, c’est évidemment encore une fois chez vous que j’ai trouvé la solution :-)

    Mais j’aimerais encore faire davantage. J’aimerais une liste qui combine abréviations des journaux, des collections et des ouvrages encyclopédique (pour les articles, que l’abréviation apparaisse, par exemple TDNT pour le Kittel et que, dans la liste d’abréviation apparaisse la référence du Kittel).

    J’ai de nouveau, bien sûr, fouiné un peu partout (je crois) sur internet, sans succès.

    Une piste ? Merci d’avance...

    Bien à vous,

    Hélène.

  • Le 31 mars à 10:11, par Maïeul En réponse à : Collection abrégée avec shortseries : simplification

    Malheureusement ce n’est pas possible en natif. Il me semble que j’avais posé la question aux responsable de biblatex, qui ne voulait pas implanter une telle option.

    Vous pouvez tenter de le relancer. Sinon, la solution est de partir de mon ancienne astuce, en affichant une bibliographie qu’on filtre. Il faut juste l’adapter un peu.

  • Le 31 mars à 16:03, par Wiener En réponse à : Collection abrégée avec shortseries : simplification

    Merci, je vais me pencher sur votre ancienne solution qui consiste, si je comprends bien, à tout regrouper sous shortseries. À moins que je ne finisse par faire deux listes d’abréviations (collections et articles). Merci en tout cas !

  • Le 31 mars à 16:25, par Maïeul En réponse à : Collection abrégée avec shortseries : simplification

    non, ce n’est pas de regrouper tous sous shortseries. Je peux essayer de faire un article à ce sujet ce week-end, dès que j’ai envoyé ma thèse au jury.

  • Le 31 mars à 17:28, par Wiener En réponse à : Collection abrégée avec shortseries : simplification

    BRA-VO pour la thèse !!!!!! :-)

  • Le 1er avril à 16:13, par Maïeul En réponse à : Collection abrégée avec shortseries : simplification

    Merci.

    Je pense que je vais faire un package spécifique.

    Par contre je suis pas certain de comprendre ce que tu entends par TDNT pour Kittel. Est-ce que par hasard tu n’aurais pas besoin de quelque chose comme ce qui est proposé dans l’article Gérer les claves avec biblatex. ? Afficher le titre d’un ouvrage de référence sur forme abrégé pour le lier à une notice ?

  • Le 3 avril à 03:50, par Wiener En réponse à : Collection abrégée avec shortseries : simplification

    OK, j’ai finalement réussi à faire une liste abrégée de titres d’ouvrages tels que le TDNT, grâce à biblatex-claves et quelques adaptations dans la bibliographie.

    J’ai donc maintenant trois listes : celle obtenue par biblatex-claves pour le TDNT, et celles obtenues, l’une pour les shortjournal (titres de journaux/revues) et l’autre pour les shortseries (collections), par \printlistbib (commande de biblatex) en utlisant \DeclareBibliographyDriver, \DeclareSortingScheme et \defbibcheck.

    Pour moi, l’idéal serait d’obtenir une fusion des trois listes (merge ?), avec classement alphabétique de toutes les abréviations (sinon où serait l’intérêt) et aussi, ce serait encore mieux, maintien des italiques pour les titres abrégés d’articles et des caractères droits pour les titres abrégés de collection. Je n’ai absolument AUCUNE idée de ce qui pourrait permettre d’arriver à un tel résultat... Mais je sais aussi que c’est comme ça qu’on avance, en imaginant un possible et en le réalisant finalement (plutôt que de se coincer dans ce que l’on sait réalisable)...

    Voilà, je vous ai décrit mon idéal en la matière, mais c’est déjà une belle avancée pour moi que d’avoir obtenu ces trois listes...

    En tout cas, grand merci pour toute l’aide déjà apportée !

    Meilleures salutations, H.W.

  • Le 3 avril à 09:47, par Maïeul En réponse à : Collection abrégée avec shortseries : simplification

    J’ai commencé un package, qui gère pour le moment la fusion journal / collection. Il reste à brancher les claves, mais c’est plus complexe car c’est en réalité une exception. Mais je peux envisager cela. Peut être ce week-end si j’ai du temps.

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.

À 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