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 bibliographiqueverbose
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 :
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 packagexpatch
, lequel est chargé par le stylesubseries
pour modifier la macro bibliographiqueseries+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.