Le problème
Il arrive que certains textes anciens soient d’abord édités dans des articles, et ne soient publiés sous forme de livre que plus tard.
Je suis alors dans une double contrainte :
- signaler que mon texte se trouve dans une revue
- signaler que ce n’est pas l’article en soi qui m’intéresse, mais l’édition critique du texte.
Du coup il me faudrait une syntaxe du type :
Auteur ancien, titre du texte, dans Editeur Moderne, « titre de l’article », dans Revue xxx (année), p. xxx-yyy
Typiquement, voici un exemple que j’ai dans mon travail [1]
CHRYSOSTOME LATIN, De Ioseph ubi ab uxore patroni apud eum accusatur, dans François LEROY, « Les 22 inédits de la catéchèse donatiste de Vienne : Une édition provisoire », dans Recherches Augustiniennes 31 (1999), p. 161–164
L’entrée dans le fichier .bib
Si biblatex permet de créer des nouveaux types d’entrées, il ne permet pas encore de créer des nouveaux champs [2] !
Par conséquent, je suis obligé de ruser avec les champs existants. C’est pourquoi j’ai choisis de mettre l’auteur de l’article dans booktitle
, même s’il ne s’agit pas du livre et le titre de l’article dans mainttitle
et mainsubtitle
.
Ce qui donne :
@bookinarticle{DeIoseph,
Author = {{Chrysostome Latin}},
Bookauthor = {François Leroy},
Entrysubtype = {sermon},
Journal = {Recherches Augustiniennes},
Number = {31},
Maintitle = {Les 22 inédits de la catéchèse donatiste de Vienne},
Mainsubtitle = {Une édition provisoire},
Pages = {161-164},
Title = {De Ioseph ubi ab uxore patroni apud eum accusatur},
Year = {1999}}
L’entrée
Un type d’entrée bibliographique se déclare avec un driver bibliographique.
J’ai donc pioché dans le fichier standard.bbx pour trouver les différents macro bibliographiques pour constituer mon texte. En l’occurence, j’ai fait une forme de mélange entre @bookinbook
et @article
.
De plus, comme je suis dit qu’une entrée de type @inarticle
pouvait peut être servir un jour, j’ai préféré créer une entrée @inarticle
et dire que @bookinarticle
est un alias de @inarticle
.
Je déclare donc mon entrée via \DeclareBibliographyDriver
, et l’alias via \DeclareBibliographyAlias
.
Ce qui donne
\DeclareBibliographyDriver{inarticle}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{in:}%
\usebibmacro{bybookauthor}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{maintitle}%
\newunit\newblock
\usebibmacro{in:}%
\usebibmacro{journal+issuetitle}%
\newunit
\usebibmacro{byeditor+others}%
\newunit
\usebibmacro{note+pages}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{issn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\usebibmacro{finentry}}
\DeclareBibliographyAlias{bookinarticle}{inarticle}
Peaufinage
Si je procède un test, j’obtiens :
CHRYSOSTOME LATIN, De Ioseph ubi ab uxore patroni apud eum accusatur, dans François LEROY, Les 22 inédits de la catéchèse donatiste de Vienne : Une édition provisoire, dans Recherches Augustiniennes 31 (1999), p. 161–164
Pour déclarer que, dans le cas d’une entrée de type @bookinarticle
ou @inarticle
, le champ maintitle
soit entre guillemet, il me faut utiliser la commande \DeclareFieldFormat
.
Celle-ci prend trois arguments :
- Le premier, optionnel, reçoit les types d’entrées dans lesquelles le formatage s’appliquent. Si plusieurs types, les séparer par une virgule.
- Le second, obligatoire, est le champ dont on défini le formatage.
- Le troisième, obligatoire, est le formatage. On peut y mettre des commandes LaTeX, et le symbole
#1
correspond à la valeur du champ.
Pour gérer les guillemets, on utilise la commande propre à biblatex \mkbibquote
, qui se charge de choisir les bons guillemets. Il est également conseiller d’utiliser la commande isdot
, qui remplace un éventuel point en point d’abréviation. C’est en tout cas comme cela qu’est déclaré le formatage des titre d’articles et autres entrées :
\DeclareFieldFormat
[article,inbook,incollection,inproceedings,patent,thesis,unpublished]
{title}{\mkbibquote{#1\isdot}}
Pour mon cas, à savoir le champ maintitle
des entrées @bookinarticle
et @inarticle
, cela donne :
\DeclareFieldFormat[inarticle,bookinarticle]{maintitle}{\mkbibquote{#1\isdot}}
Et j’ai donc bien
CHRYSOSTOME LATIN, De Ioseph ubi ab uxore patroni apud eum accusatur, dans François LEROY, Les 22 inédits de la catéchèse donatiste de Vienne : Une édition provisoire, dans Recherches Augustiniennes 31 (1999), p. 161–164
Bon, et puis tant que j’y suis, autant ne pas faire les choses à moitié, et afficher correctement le champ title
des entrées @inarticle
:
\DeclareFieldFormat[inarticle]{title}{\mkbibquote{#1\isdot}}
Voilà, le système d’inventer son propre type d’entrée n’est pas forcément idéal, mais faute de mieux !