Division de sources et op. cit. (2)

mardi 29 novembre 2011, mise à jour mercredi 8 août 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 : Division de sources et abréviations.

Cet article est essentiellement une correction du précédent article portant le même nom [1].

J’avais expliqué dans un précédent article, la manière dont je gère les divisions de sources. Ce système pose cependant un problème : la gestion standards des op. cit. n’est pas idéal.

Cet article est une archive : consultez plutôt son remplaçant : Division de sources et abréviations.

Les exemples

Pour cet article, je me base sur les entrées suivantes :

@bookinbook{ActaPetriPauli,
	Address = {Hildesheim and New York},
	Booktitle = {Acta apostolorum apocrypha},
	Editor = {Richard Aldebert Lipsius},
	Entrysubtype = {apocryphes},
	Pages = {178-222},
	Publisher = {Georg Olms Verlag},
	Title = {Acta Petri et Pauli},
	Usera = {1},
	Volume = {I},
	Year = {1972 (rééd. de 1891)}}

@bookinbook{ActaPetriPauli80,
	Crossref = {ActaPetriPauli},
	Pages = {213-214},
	Title = {Acta Petri et Pauli},
	Titleaddon = {80},
	Usera = {1}}

@bookinbook{ActaPetriPauli81,
	Crossref = {ActaPetriPauli},
	Pages = {214-215},
	Title = {Acta Petri et Pauli},
	Titleaddon = {81},
	Usera = {1}}

Premier problème : perte de la division de source

Soit le code suivant :

\cite{ActaPetriPauli81}

…

\cite{ActaPetriPauli81}

J’obtiens par défaut :

Acta Petri et Pauli, 81, dans Acta apostolorum apocrypha, t. I, éd. Richard Aldebert Lipsius, Hildesheim et New York : Georg Olms Verlag, 1972 (rééd. de 1891), p. 214–215

Acta Petri et Pauli, op. cit.

Pour rétablir la division de source, il me faut modifier la manière dont sont affichées les versions abrégées. Cela se passe via la macro cite:name, qui par défaut est définie ainsi, dans le style verbose-trad-2 :

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

Il suffit de la modifier pour lui indique d’imprimer le champ titleaddon et le champ pages :

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

J’obtiens alors :

Acta Petri et Pauli, 81, dans Acta apostolorum apocrypha, t. I, éd. Richard Aldebert Lipsius, Hildesheim et New York : Georg Olms Verlag, 1972 (rééd. de 1891), p. 214–215

Acta Petri et Pauli, op. cit., 81, p. 214-215

Second problème : pas de op. cit. si je ne cite pas le même passage

J’essaie maintenant :

\cite{ActaPetriPauli}

…

\cite{ActaPetriPauli81}

J’obtiens alors

Acta Petri et Pauli, dans Acta apostolorum apocrypha, t. I, éd. Richard Aldebert LIPSIUS, Hildesheim et New York : Georg Olms Verlag, 1972 (rééd. de 1891), p. 178–222

Acta Petri et Pauli, 81, dans Acta apostolorum apocrypha, t. I, éd. Richard Aldebert LIPSIUS, Hildesheim et New York : Georg Olms Verlag, 1972 (rééd. de 1891), p. 214–215

Pas très joli, joli ! Et puis cela prend de la place, ce n’est pas très écolo, donc pas non plus Joly.

Regardons la macro cite, toujours dans le style verbose-trad-2.

\newbibmacro*{cite}{%
  \usebibmacro{cite:citepages}%
  \global\togglefalse{cbx:fullcite}%
  \global\togglefalse{cbx:loccit}%
  \bibhypertarget{cite\the\value{instcount}}{%
    \ifciteseen
      {\iffieldundef{shorthand}
         {\ifciteibid
            {\usebibmacro{cite:ibid}}
            {\ifthenelse{\ifciteidem\AND\NOT\boolean{cbx:noidem}}
               {\usebibmacro{cite:idem}}
               {\usebibmacro{cite:name}}%
             \usebibmacro{cite:title}}%
	  \usebibmacro{cite:save}}
         {\usebibmacro{cite:shorthand}}}
      {\usebibmacro{cite:full}%
       \usebibmacro{cite:save}}}}

La solution va consister à regarder si l’élèment parent a déjà été cité. Pour ce faire, je me sert de la commande \ifentryseen{clef}{sioui}{sinon}.

Pour tester si l’élèment parent a été cité, j’utilise \thefield{crossref}

\ifentryseen{\thefield{crossref}}{sioui}{sinon}

J’intègre tout cela dans la macro. Pour éviter de répeter deux fois le code, je met la parti suivante dans une macro, que j’appelle cite:manage :

\ifciteseen
      {\iffieldundef{shorthand}
         {\ifciteibid
            {\usebibmacro{cite:ibid}}
            {\ifthenelse{\ifciteidem\AND\NOT\boolean{cbx:noidem}}
               {\usebibmacro{cite:idem}}
               {\usebibmacro{cite:name}}%
             \usebibmacro{cite:title}}%
	  \usebibmacro{cite:save}}
         {\usebibmacro{cite:shorthand}}}
      {\usebibmacro{cite:full}%
       \usebibmacro{cite:save}}

Comme je ne veux appliquer le test de l’entrée parente que pour les entrées avec un champ titleaddon, je me sert aussi de la commande \iffieldundef{champ}{si champ vide}{si champ pas vide}. Je dois aussi tester si le champ crossref est défini, sinon biblatex considère que l’entrée vide a déjà été citée.

Je procède à ce test de la manière suivante :

\iffieldundef{crossref}{si champ vide}{si champ non vide}

Au final, cela donne :

\renewbibmacro*{cite}{%
  \usebibmacro{cite:citepages}%
  \global\togglefalse{cbx:fullcite}%
  \global\togglefalse{cbx:loccit}%
  \bibhypertarget{cite\the\value{instcount}}{%
    \iffieldundef{titleaddon}{\usebibmacro{cite:manage}}%
		      {\iffieldundef{crossref}{\usebibmacro{cite:manage}}%
		      {\ifentryseen{\thefield{crossref}}{\usebibmacro{cite:name}\usebibmacro{cite:title}}{\usebibmacro{cite:manage}}%
	       }}}}%


\newbibmacro{cite:manage}{%
\ifciteseen
      {\iffieldundef{shorthand}
         {\ifciteibid
            {\usebibmacro{cite:ibid}}
            {\ifthenelse{\ifciteidem\AND\NOT\boolean{cbx:noidem}}
               {\usebibmacro{cite:idem}}
               {\usebibmacro{cite:name}}%
             \usebibmacro{cite:title}}%
	  \usebibmacro{cite:save}}
         {\usebibmacro{cite:shorthand}}}
      {\usebibmacro{cite:full}%
       \usebibmacro{cite:save}}}

Et j’obtiens :

Acta Petri et Pauli, dans Acta apostolorum apocrypha, t. I, éd. Richard Aldebert LIPSIUS, Hildesheim et New York : Georg Olms Verlag, 1972 (rééd. de 1891), p. 178–222

Acta Petri et Pauli, op. cit., 81, p. 214–215

Troisième problème : si on ne cite pas l’entrée parente

Oui, mais supposons que je ne cite pas d’abord l’entrée mère :

\cite{ActaPetriPauli81}

…

\cite{ActaPetriPauli80}

Je perd à nouveau mes op. cit. :

Acta Petri et Pauli, 81, dans Acta apostolorum apocrypha, t. I, éd. Richard Aldebert LIPSIUS, Hildesheim et New York : Georg Olms Verlag, 1972 (rééd. de 1891), p. 214–215, (Version longue du Ps. Marcellus, CANT 193.2)

Acta Petri et Pauli, 80, dans Acta apostolorum apocrypha, t. I, éd. Richard Aldebert LIPSIUS, Hildesheim et New York : Georg Olms Verlag, 1972 (rééd. de 1891), p. 213–214, (Version longue du Ps. Marcellus, CANT 193.2)

Et oui, c’est logique, vu que l’entrée mère n’a jamais été citée, le \ifciteseen{\thefield{crossref}} passe toujours sur la partie fausse.

Pour le moment je n’ai pas trouvé de manière pour éviter cela.

citepages = omit

Si j’utilise l’option citepages=omit pour éviter la duplication des pages entre le le champ pages et l’option postnote, j’obtiens avec le code suivant :

\cite{ActaPetriPauli81}

...

\cite[214]{ActaPetriPauli8}

Acta Petri et Pauli, 81, dans Acta apostolorum apocrypha, t. I, éd. Richard Aldebert LIPSIUS, Hildesheim et New York : Georg Olms Verlag, 1972 (rééd. de 1891), p. 214-215

Acta Petri et Pauli, op. cit., 81, p. 214–215, p. 214

Le citepages=omit n’est pris en compte. Il faut savoir que citepages=omit définit une macro cite:full:citepages qui se charge de gérer la suppression du champ pages le cas échéant.

La solution est donc d’introduire un appel à cette macro, au début de la macro cite:title.

Ce qui donne

\renewbibmacro*{cite:title}{%
\usebibmacro{cite:full:citepages}%
  \ifpunct{\addspace}{}%
  \printtext[bibhyperlink]{%
    \ifboolexpr{test{\ifsingletitle} and not (test {\iffieldundef{author}} and test{\iffieldequalstr{usera}{1}})}{}{\printfield[citetitle]{labeltitle}}%
    \setunit{\nametitledelim}%
    \bibstring[\mkibid]{opcit}}%
  \iffieldequalstr{usera}{1}{%
  	\setunit{\bibpagespunct}%
  	\printfield{titleaddon}%
  	\iffieldundef{titleaddon}{}{\setunit{\bibpagespunct}%
  	\printfield{pages}}%
	\newunit%
	\printfield{addendum}%
	}{}%
}

Et j’obtiens bien à la fin :

Acta Petri et Pauli, 81, dans Acta apostolorum apocrypha, t. I, éd. Richard Aldebert LIPSIUS, Hildesheim et New York : Georg Olms Verlag, 1972 (rééd. de 1891), p. 214-215

Acta Petri et Pauli, op. cit., 81, p. 214

Notes

[1Les corrections sont mineures, mais les intégrer à l’ancien article aurait été compliqué. Je vous laisse jouer au jeux de sept différences, qui ne sont que deux, et dont une est explicite.

Vos commentaires

  • Le 5 mars 2012 à 11:00, par Ratatouille En réponse à : Division de sources et op. cit. (2)

    Merci pour les postes sur biblatex, ils sont en train de me rendre bien des services...

    Pour la résolution du troisième problème de division de source, j’ai une ébauche de solution, beaucoup trop bidouillage pour être totalement satisfaisante... C’est de procéder avec phantom. L’idée est de mettre la commande suivante juste après la première citation : \phantom{\cite{ActaPetriPauli}\hspace{-0.4cm}}

    Cela pose plusieurs problèmes : le fait de qu’il faille l’insérer pour chaque première référence croisée, et le problème des ibid, étant donné que biblatex va considérer comme dernière citation celle qui n’est pas affichée.

    Je réfléchis en ce moment sur la mise en forme des citations pour une série d’ouvrages en plusieurs volumes. J’aimerais une gestion des citations sensiblement identique à \fvolcite mais en rajoutant la date du volume (voire son éditeur) à la première occurence de celui-ci. Je bloque un peu pour plusieurs raisons mais je pense qu’il faut utiliser la division de sources. Je suis preneuse de toute idée pour résoudre ce problème...

    Merci pour ce site.

  • Le 5 mars 2012 à 11:10, par Maïeul En réponse à : Division de sources et op. cit. (2)

    Pour l’insertion automatique de la commande \phantom{\cite{ActaPetriPauli}…, c’est relativement aisée en utilisant la macro begentry (voir par ex Vérification des filiations avec biblatex (1) : vérifier avec les messages de compilations). Outre le problème des ibidems, j’ai peur d’avoir des ruptures dans la mise en page (j’avais déjà essayé une technique de ce type).

    Pour votre problème : vous devriez modifier le style utilisé par \fvolcite pour afficher la date / le volume. Pour conditionner son affichage, utiliser plutôt ifciteseen

  • Le 5 mars 2012 à 11:12, par Maïeul En réponse à : Division de sources et op. cit. (2)

    Pour le problème, il serait plus propre d’ajouter l’entrée mère à la liste des entrées vues, mais je n’ai pas encore compris comment.

  • Le 5 mars 2012 à 11:19, par Ratatouille En réponse à : Division de sources et op. cit. (2)

    Bonne idée que l’utilisation de begentry, je vais essayer. Il est clair que ce serait mieux d’ajouter l’entrée mère à la liste des entrées vues, mais, même si j’y avais bien pensé, je n’ai pas la moindre idée de comment faire. A vrai dire, je ne sais même pas où sont enregistrées les entrées vues ! Merci pour la rapidité des réponses.

  • Le 5 mars 2012 à 11:24, par Maïeul En réponse à : Division de sources et op. cit. (2)

    de ce que je comprend, les entrées vues sont enregistrées dans une sorte de « tableau ». Mais je n’ai pas encore compris comment y intégrer les nouvelles entrées, car il n’y a pas d’API pour cela (voir mon ticket http://sourceforge.net/tracker/index.php?func=detail&aid=3462001&group_id=244752&atid=1126005)

    Par ailleurs l’insertion d’une entrée peut poser des soucis de disparition de blanc http://sourceforge.net/tracker/index.php?func=detail&aid=3462000&group_id=244752&atid=1126005

  • Le 5 mars 2012 à 12:00, par Ratatouille En réponse à : Division de sources et op. cit. (2)

    Je viens d’essayer la modification de begentry, ça ne fait rien d’autre que changer la mise en page (j’utilise des footcite) et si je mets avec cite, c’est pire encore ! Je continue à y réfléchir...

  • Le 5 mars 2012 à 12:02, par Ratatouille En réponse à : Division de sources et op. cit. (2)

    Pour mon problème multi-volume, la question est bien d’indiqué la date du volume concerné (6 tomes => 6 dates, et parfois 6 éditeurs) ! je ne vois pas comment entrer toutes les dates dans la seule entrée générale de mon ouvrage... C’est pour cela que je m’intéresse à la division des sources.

  • Le 5 mars 2012 à 12:17, par Maïeul En réponse à : Division de sources et op. cit. (2)

    pour le pb multivolume, la solution la plus simple ne serait-elle pas de faire une entrée principal de type @mvbook pour l’ensemble de l’ouvrage et des sous-entrée de type book (crossref) pour chaque volume ? Regardez le manuel de biblatex pour savoir les héritages entre ces deux types d’entrées.

    Qu’avez vous mis pour begentry (entourez le code avec les balises <cadre> et </cadre>)

  • Le 5 mars 2012 à 13:19, par Ratatouille En réponse à : Division de sources et op. cit. (2)

  • Le 5 mars 2012 à 16:23, par Maïeul En réponse à : Division de sources et op. cit. (2)

    Peut être devriez conditionner à la présence du crossref...

    ne pas mettre de footcite, mais plutôt cite.

  • Le 5 mars 2012 à 17:41, par Ratatouille En réponse à : Division de sources et op. cit. (2)

    Dans les deux cas, ça me donne quelque chose de trop bizarre. Je crois que je vais gérer les premières entrées manuellement (en précisant la date des volumes) En ce qui concerne mvbook, je ne vois pas tellement ce que ça change par rapport à book, mais c’est peut-être simplement que je ne sais pas l’utiliser. Merci pour les conseils.

  • Le 5 mars 2012 à 17:57, par Maïeul En réponse à : Division de sources et op. cit. (2)

    Je pense avoir trouver une solution qui résoudrait tout nos problèmes à la sources. Je teste, et si cela est ok, je fais un article.

  • Le 5 mars 2012 à 18:14, par Ratatouille En réponse à : Division de sources et op. cit. (2)

    Ce serait génial. J’attends l’article avec impatience ! Merci.

  • Le 5 mars 2012 à 18:26, par Maïeul En réponse à : Division de sources et op. cit. (2)

    la solution est tellement simple que je m’étonne de ne pas l’avoir trouvée plus tôt.

  • Le 5 mars 2012 à 18:35, par Ratatouille En réponse à : Division de sources et op. cit. (2)

    voilà un commentaire qui me rend d’autant plus impatiente !

  • Le 12 septembre 2012 à 17:44, par Plumber Palmerston North En réponse à : Division de sources et op. cit. (2)

    This post is very well written, also has a lot of informations.Thank you.

  • Le 4 mai 2014 à 13:11, par Loïs En réponse à : Division de sources et op. cit. (2)

    Bonjour, Je rencontre un problème dont je ne trouve pas la solution, je voudrais que lorsque je cite des passages différents d’un même livre sans utiliser le champ titleaddon, le livre référé ne soit pas mentionner avec toutes ses informations des sa deuxième mention, mais qu’il utilise les mentions idem, ibid ... Quelqu’un a une idée ? Merci

  • Le 4 mai 2014 à 14:02, par Maïeul En réponse à : Division de sources et op. cit. (2)

    pour Loïs : normalement c’est le cas si vous utilisez un style de la famille verbose-trad. Rien à faire de votre côté.

  • Le 4 mai 2014 à 20:08, par Loïs En réponse à : Division de sources et op. cit. (2)

    J’utilise pourtant verbose-trad2 et après divers essais, le résultat est le même. Les termes sont utilisés correctement seulement si je cite le même extrait du livre, toutes les informations du livre sont toujours données quand je change d’extrait. J’utilise les classes @book (correspondant au livre) et @inbook (correspondant aux différents extraits, reliés au livre par crossref).

  • Le 5 mai 2014 à 09:58, par Maïeul En réponse à : Division de sources et op. cit. (2)

    quand tu parle d’extrait, tu veux dire que tu cite des @inbook dans un @book ?

    Peux tu me donner :

    • un exemple minimum de ce que tu cite
    • un exemple de ce que tu veux obtenir ?
  • Le 5 mai 2014 à 23:13, par Loïs En réponse à : Division de sources et op. cit. (2)

    Oui, je donne un exemple précis alors : Les références :

    @book{genetteesthtetique,
    	editor = "Gérard Genette",
    	entrysubtype = "source",
    	location = "Paris",
    	pagetotal = "245",
    	publisher = "Seuil",
    	booktitle = "{Esthétique et poétique}",
    	year = "1992"
    }
    @inbook{genetteesthetique1,
            crossref = "genetteesthetique",
            title = "Définir l'art",
            titleaddon = "1973",
            author = "George Dickie",
            pages = "9-32"
    }

    Avec un code simple :

    \cite{genetteesthetique}
    \cite[23]{genetteesthetique1}

    Résultat :

    Gérard Genette (ed.), Esthétique et poétique, Paris, Seuil, 1992, 245p. George Dickie, « Définir l’art », 1973, dans : Gérard Genette (ed.), Esthétique et poétique, Paris, Seuil, 1992, p.23

    Résultat escompté pour la deuxième citation :

    George Dickie, « Définir l’art », 1973, dans : Ibid, p.23

    Ce serait tellement plus simple s’il y avait un truc pour que ça marche. Merci déjà pour votre intérêt !

  • Le 6 mai 2014 à 10:09, par Maïeul En réponse à : Division de sources et op. cit. (2)

    ouais, en fait c’est relativement complexe, car formellement une entrée de type @inbook, lors de l’affichage, ne prend pas en compte l’entrée @book correspondante.

    Il va falloir pas mal modifier les drivers. Je fais des tests demain dans le train/bus, et je pond un article à ce sujet.

  • Le 8 mai 2014 à 15:19, par Maïeul En réponse à : Division de sources et op. cit. (2)

    hop, pour Loïs, la solution est affichée ici Entrées @inbook, crossref et formes abrégées.

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