Un nouveau type d’entrée : @bookinarticle

vendredi 2 décembre 2011, mise à jour mercredi 5 septembre 2012, par Maïeul
Suivre la vie du site RSS 2.0 Forum

Cet article est obsolète. Soit qu’il existe une manière plus « moderne » de procéder, soit que j’ai trouvé une autre méthode plus appropriée.
Voyez plutôt la nouvelle version : Trois contributions distribuées sous forme de package.

Biblatex permet de créer facilement des nouveaux types d’entrées. Voici un nouveau type que je viens de me créer : @bookinarticle.

Le code est encore expérimental, mais j’ai bon espoir de trouver le temps de le stabiliser et de réfléchir à une normalisation.

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 !

Notes

[1Si quelqu’un connaît une édition plus récente, je suis preneur  !

[2Ou alors j’ai mal lu le manuel.

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