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 packagesingletitle
.
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}
Vos commentaires
# Le 21 janvier 2015 à 23:09, par ZF En réponse à : Des vrais op. cit.
Bonjour,
Merci pour ce post très utile. J’adore LaTeX mais j’ai du mal à le rendre conforme aux souhaits des professeurs, surtout que dans les styles américains op. cit. est en désuétude. Je pense avoir bien besoin de ce blog dans les mois et les années à venir. Merci encore.