Gérer les sous-collections

mardi 12 mai 2015, par Maïeul
Suivre la vie du site RSS 2.0 Forum

Certaines collections, un peu perverses, fonctionnent avec des sous-collections suivant un système de double numérotation :

  • une numérotation qui indique l’ordre de publication du volume dans l’ensemble de la collection.
  • une numérotation qui indique l’ordre du volume dans la sous-collection.

C’est le cas par exemple du Corpus Scriptorum Christianorum Orientalium, qui possède six sous-séries par langue, plus les subsidiae.

On souhaiterait dès lors indiquer d’abord la collection suivi du numéro au sein de la collection, puis le numéro au sein de la sous-collection.

Comment faire ?

Le problème

Par défaut, biblatex ne gère que les collections. Il faut dès lors déclarer des nouveaux champs. C’est le but du style biblatex-subseries, que je viens de déposer sur le CTAN.

L’utilisation de base

Le fichier .bib

Trois nouveaux champs sont proposés :

  • subseries, la sous-collection.
  • shorsubseries, une forme abrégée de la sous-collection.
  • subnumber, le numéro au sein de sous-collection.

Ce qui donnerait un fichier du type

@book{CSCO545,
	Number = {545},
	Series = {Corpus Scriptorum Christianorum Orientalium},
	Shortseries = {CSCO},
	Shortsubseries = {Copt},
	Subnumber = {48},
	Subseries = {Scriptores Coptici},
	Title = {Encomiastica from the Pierpont Morgan Library}
}

Le chargement du style

Deux solutions peuvent être utilisées pour charger le style biblatex-short-series :

  • comme option au chargement de biblatex : \usepackage[citestyle=verbose,bibstyle=subseries]{biblatex}. Dans ce cas le style bibliographique verbose sera automatiquement chargé.
  • si on ne souhaite pas utiliser le style bibliographique verbose ou si on souhaite charger d’autres styles qui définissent des nouveaux champs, on utilisera en plus le package biblatex-multipledm.
\usepackage[tools={realauthor,manuscripts,subseries},bibstyle=verbose]{biblatex-multiple-dm}
\usepackage[bibstyle=multiple-dm,…]{biblatex}

Résultat

L’exemple ci-dessus sera affiché de la manière suivante : Encomiastica from the Pierpont Morgan Library. Corpus Scriptorum Christianorum Orientalium 545 — Scriptores Coptici 48

On peut décider de changer le «  » en redéfinissant \subseriesseparator.

Compatibilité avec les collection abrégée

Dans un précédent article, j’expliquais comment gérer facilement les formes abrégés des collections. Si vous appliquez la technique que j’expose, vous constaterez que la sous-collection n’apparaît pas.

La raison est assez simple : mon exemple redéfinissait la macro bibliographique series+number, via

\renewbibmacro*{series+number}{%
  \iffieldundef{shortseries}{\printfield{series}}{\printfield{shortseries}}%
  \setunit*{\addspace}%
  \printfield{number}%
  \newunit}

Le problème est que le style subseries intègre du code dans series+number avant que nous le redéfinissions.

La solution est assez simple. Elle consiste à non pas redéfinir la macro bibliographique, mais à la patcher.

Remplacez donc les lignes précédentes par :

Commentaire :

  • l. 1 : nous utilisons la commande \xpatchbibmacro du package xpatch, lequel est chargé par le style subseries pour modifier la macro bibliographique series+number.
  • l. 2 : dans le code cette macro, nous remplaçons \printfield{series} par \iffieldundef{shortseries}{\printfield{series}}{\printfield{shortseries}}
  • l. 3 : \iffieldundef{shortseries}{\printfield{series}}{\printfield{shortseries}}, c’est à dire par un code qui affiche la collection abrégée si elle existe et la collection complète sinon.
  • l. 4-5 : deux derniers arguments de \xpatchbibmacro qui correspondent au code exécuté en cas d’échec ou de réussite du patch. Ici on ne fait rien.

Petit défi

Sachant que l’affichage de la sous-série se fait via la macro subseries+subnumber ainsi définie :

\newbibmacro{subseries+subnumber}{%A default subseries+subnumber style
  \setunit *{\subseriesseparator}%
  \printfield{subseries}%
  \setunit *{\addspace}%
  \printfield{subnumber}%
  \newunit%
}

trouver une manière d’afficher les sous-séries sous forme abrégée et d’afficher une table des sous-série.

P.-S.

Ceci est le premier projet dont j’ai décidé de versionner le code non plus sur github mais sur Framagit.

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