Des vrais op. cit.

, par Maïeul

BibLaTeX propose des styles qui gèrent automatiquement les abréviations de styles op. cit. lorsqu’une référence bibliographique a déjà était citée. Il s’agit des styles verbose-trad1, verbose-trad2 et verbose-trad3.

Malheureusement, leur affichage par défaut est du style :

AUTEUR, titre, op. cit.

alors que je souhaiterais plutôt :

AUTEUR, op. cit.

pour les cas où il n’y aurait pas de doute sur l’œuvre ainsi citée, c’est à dire pour les cas où l’auteur n’a qu’une œuvre utilisée dans la bibliographie.

Après un certains temps, j’ai réussi à obtenir ce que je voulais.

Le problème

Soit l’entrée suivante :

@book{Saxer1980,
	Address = {Paris},
	Author = {Victor Saxer},
	Publisher = {Beauschene},
	Subtitle = {les témoignages de Tertullien, Cyprien et Augustin à la lumière de l'archéologie africaine},
	Title = {Morts, martyrs, reliques en Afrique chrétienne aux premier siècles},
	Year = {1980}}

Je la cite une première fois :

Victor SAXER, Morts, martyrs, reliques en Afrique Chrétienne aux premier siècles : les témoignages de Tertullien, Cyprien et Augustin à la lumière de l’archéologie africaine, Paris : Beauschene, 1980

Je cite plusieurs autres textes, puis je la cite une seconde fois, j’obtiens alors :

SAXER, Morts, martyrs, reliques en Afrique Chrétienne aux premier siècles, op. cit.

Alors qu’étant donnée qu’il s’agit de la seule œuvre de Saxer que je cite, je souhaiterais avoir simplement

SAXER, op. cit.

La solution

J’ai refouillé le manuel de BibLaTeX. Et j’ai trouvé : il existe une commande

\ifsingletitle{⟨true⟩}{⟨false⟩}

Voici ce que dit la documentation (la traduction est de votre serviteur) :

Renvoie à True s’il y a seulement un travail pour l’auteur / l’éditeur dans la bibliographie, et à False dans les autres cas. Notez que cette fonctionnalité nécessite d’être explicitement activée avec l’option de package singletitle.

Lors de mon appel au package, je passe donc l’option singletitle lors de l’appel au package BibLaTeX.

\usepackage[singletitle=true,...]{biblatex}

La documentation me précise que cela ne fonctionne qu’en utilisant Biber et non pas BibTeX. Tant mieux, je n’utilise plus que Biber [1].

Très bien, mais les styles par défauts n’utilise pas cette commande. Comment faire ?

J’ai repéré la macro qui se charge d’afficher les op. cit. le cas échéant : il s’agit de la macro cite:title que j’ai trouvé dans le fichier verbose-trad2.cbx

Son contenu par défaut est :

\newbibmacro*{cite:title}{%
  \printtext[bibhyperlink]{%
    \printfield[citetitle]{labeltitle}%
    \setunit{\nametitledelim}%
    \bibstring[\mkibid]{opcit}}}

C’est l’affichage du champs labeltitle que je veux conditionner [2].

Il faut donc que je le mette au sein du test conditionnel \ifsingletitle.

Ce qui donne

\renewbibmacro*{cite:title}{%
  \printtext[bibhyperlink]{%
   \ifsingletitle{}{\printfield[citetitle]{labeltitle}}%
    \setunit{\nametitledelim}%
    \bibstring[\mkibid]{opcit}}}

Et voilà, j’ai simplement

SAXER, op. cit.

Addenda : biblatex 3.4 et supérieur

À partir de la version 3.4 de biblatex, il est recommandé de remplacer :

\nametitledelim

par

\printdelim{nametitledelim}