ConTeXt/Références bibliographiques

Références bibliographiques

modifier

Comment insérer dans un document composé avec ConTeXt des références bibliographiques qui obéissent aux divers standards de l'édition professionnelle ? Sachant tout d'abord que ConTeXt ne dispose pas de ses propres routines en matière de gestion des données bibliographiques, il se contente des méthodes existantes élaborées avec Modèle:BibTeX, et les gère très bien. Il s'agit dans ce chapitre d'indiquer les diverses méthodes d'appel à des références bibliographiques.

La base de données *.bib & la commande \cite

modifier

Comment indiquer à ConTeXt la source de la référence

modifier

Introduire une référence dans un texte (dans la page ou dans une note de bas de page) est une chose. Désirer que cette référence soit prise en charge afin qu'elle soit inscrite dans les annexes sous la forme de backmatter, c'est-à-dire d'un chapitre qui donne tous les auteurs donnés en références et ces références elles-mêmes dans un chapitre à part, en est une autre. Comme je l'ai déjà montré ici ou là dans les pages précédentes, il existe plusieurs méthodes pour gérer les références. Une méthode qui consiste à écrire un fichier contenant toutes les références bibliographiques (compilées grâce à Zotero ou JabRef) et auquel on fait appel au fur et à mesure de la rédaction de notre texte. Une autre méthode, qui donne des résultats plus complexes, consiste à écrire les références au moyen de :

\cite[...][...]

Example : Ce code \cite[alternative=entry][littérature::Orwell1945]

donne la sortie suivante : Orwell, G. (1945) Animal Farm. London: Secken & Warburg. 92 pages.

Conditions : Deux choses doivent impérativement être agrégées. D'une part une base de données sous format *.bib, contenant les entrées bibliographiques. Cette base est contenu dans un fichier du type mabibliographie.bib. D'autre part, le préambule de votre fichier ConTeXt (monfichier.tex) doit contenir la manière dont ConTeXT va appeler ce fichier *.bib.

S'agissant de notre exemple, notre fichier monfichier.tex va utiliser le fichier de données bibliographiques mabibliographie.bib. Dans le préambule, je vais écrire la ligne suivante :

\usebtxdataset[littérature][mabibliographie.bib]

\usebtxdataset est la commande qui donne à ConTeXt l'ordre d'utiliser le fichier mabibliographie.bib. La mention entre crochets [littérature] est une mention interne qui indique à ConTeXt qu'on pourra ventiler les références bibliographiques dans la rubrique littérature.

Si vous souhaitez plusieurs rubriques, il faudra les indiquer dans le préambule :

\usebtxdataset[littérature][mabibliographie.bib]
\usebtxdataset[littérature ancienne][mabibliographie.bib]
\usebtxdataset[littérature médiévale][mabibliographie.bib]

Ensuite, lors de la rédaction de votre texte/essai, à vous d'indiquer à quelle rubrique appartient votre référence (littérature ancienne, moderne, médiévale, etc.). La catégorisation dépend de votre seule initiative.

  • IMPORTANT ! : le fichier de base de données bibliographiques de type *.bib doit impérativement se trouver dans le même répertoire que les fichiers sur lesquels vous travaillez. Sans cela, ConTeXt ne trouvera pas tout seul l'endroit où se trouve votre ficher de données bibliographiques. Le résultat le plus courant sera comme ceci :

1 <philosophie ancienne::Aristote2008>

2 Cicéron, M. T. (2011). Tusculanes: Marcus Tullius (G. Fohlen, Ed.) (J. Humbert, Trans.) (Vol.1, 7e tirage ed.). Paris: Les Belles Lettres. isbn:9782251010830

Au lieu de ceci :

1 Aristote (2008). Les Politiques (P. Pellegrin, Ed.) (P. Pellegrin, Trans.). Paris, France: GarnierFlammarion. isbn:978-2-08-121816-1

2 Cicéron, M. T. (2011). Tusculanes (G. Fohlen, Ed.) (J. Humbert, Trans.) (Vol. 1, 7e tirage ed.). Paris: Les Belles Lettres. isbn:9782251010830

Avec la méthode buffer vous n'avez pas à vous soucier de l'emplacement d'un fichier de données bibliographiques, puisque ces données sont rédigées dans le fichier *.tex lui-même.

Ne pas perdre de vue que la qualité des données bibliographiques dépend de la collecte à la source de ces données, soit via Mozilla Firefox et son add-on Zotero, soit via l'outil JabRef (que j'utilise), lui aussi connectable à Mozilla Firefox. JabRef et Zotero fonctionnent sous Mac OSX, Linux et Microsoft Windows, avec quelques bugs pour JabRef.Vous pouvez construire à la main vous-même les données à partir de l'ISBN de l'ouvrage en question. S'agissant de l'exemple du roman de George Orwell, Animal Farm, la collecte des données donne ceci (au format BibTeX) :

  @Book{Orwell2008,
  author    = {George Orwell},
  publisher = {Penguin Books in association with Martin Secker & Warburg Ltd},
  title     = {Animal farm},
  year      = {2008},
  address   = {London},
  isbn      = {0141036133},
  note      = {Originally published: London: Martin Secker & Warburg, 1945},
  pagetotal = {94},
  ppn_gvk   = {1626769362},
  subtitle  = {A fairy story},


La clé de la citation dans votre texte sera ainsi : Orwell2008. Dans votre texte, le code sera rédigé ainsi :

\cite[alternative=entry][littérature::Orwell2008]

Comment ventiler les rubriques bibliographiques

modifier

Nous venons de voir ci-dessus comment indiquer à ConText où puiser les références bibliographiques en utilisant un fichier *.bib et en nommant (en donnant un titre) à notre bibliographie. Reste maintenant à faire en sorte que cette bibliographie s'imprime quelque part dans notre texte, soit à la fin du chapitre, soit à la fin du texte (avant les index et la table des matières). ConTeXt, il faut le rappeler, est un outil puissant : il va aller chercher les références bibliographiques, les classer par ordre alphabétique et les ventiler par rubriques, si elles existent et cela de manière automatique : vous n'aurez pas à le faire à la main. La seule condition consiste à rédiger un code propre (i.e. fonctionnel).

% Définition de la bibliographie

\usebtxdataset[littérature ancienne][mabibliographie.bib]
\usebtxdataset[littérature moderne][mabibliographie.bib]
\usebtxdataset[littérature médiévale][mabibliographie.bib]
\usebtxdefinitions[apa]
  • Remarque : la méthode bibliographique utilisée ici est celle de l'APA (on peut choisir le style "Chicago").
  • Note : On indique maintenant dans quelles rubriques ventiler les données (le rendering dans le dataset !) :
\definebtxrendering[littérature ancienne][apa][dataset=littérature ancienne]
\definebtxrendering[littérature moderne][apa][dataset=littérature moderne]
\definebtxrendering[littérature médiévale][apa][dataset=littérature médiévale]
  • Note : On indique maintenant à ConTeXt que nous voulons que les données bibliographiques se suivent :

\setupbtxrendering[continue =yes] % Fin de la bibliographie


  • Remarque: ConTeXt est indépendant du programme BibTeX, mais peut lire les bases de données .bib, si elles ne sont pas trop polluées par des commandes non standardisées LATEX. Ce format est le plus ancien, mais il est supporté par la plupart des programmes de gestion de bibliographie. Les autres formats supportés utilisent la même structure d'enregistrements, simplement portés dans des "langages" différents.

Example : La commande \cite[alternative=entry][littérature::Orwell1945]

donne la sortie suivante : Orwell, G. (1945) Animal Farm. London: Secken & Warburg. 92 pages.

Conditions : Deux choses doivent impérativement être agrégées. D'une part une base de données sous format *.bib, contenant les entrées bibliographiques. Cette base est contenu dans un fichier du type mabibliographie.bib. D'autre part, le préambule de votre fichier ConTeXt (monfichier.tex) doit contenir la manière dont ConTeXT va appeler ce fichier *.bib.

S'agissant de notre exemple, notre fichier monfichier.tex va utiliser le fichier de données bibliographiques mabibliographie.bib. Dans le préambule, je vais écrire la ligne suivante :

\usebtxdataset[littérature][mabibliographie.bib]

\usebtxdataset est la commande qui donne à ConTeXt l'ordre d'utiliser le fichier mabibliographie.bib. La mention entre crochets [littérature] est une mention interne qui indique à ConTeXt qu'on pourra ventiler les références bibliographiques dans la rubrique littérature.

Si vous souhaitez plusieurs rubriques, il faudra les indiquer dans le préambule :

\usebtxdataset[littérature][mabibliographie.bib]
\usebtxdataset[littérature ancienne][mabibliographie.bib]
\usebtxdataset[littérature médiévale][mabibliographie.bib]

Ensuite, lors de la rédaction de votre texte/essai, à vous d'indiquer à quelle rubrique appartient votre référence (littérature ancienne, moderne, médiévale, etc.). La catégorisation dépend de votre seule initiative.

Cependant, ne perdons pas de vue que la qualité des données bibliographiques dépend de la collecte à la source de ces données, soit via Mozilla Firefox et son add-on Zotero, soit via l'outil JabRef (que j'utilise), lui aussi connectable à Mozilla Firefox. JabRef et Zotero fonctionnent sous Mac OSX, Linux et Microsoft Windows, avec quelques bugs pour JabRef.Vous pouvez construire à la main vous-même les données à partir de l'ISBN. S'agissant de l'exemple du roman de George Orwell, Animal Farm, la collecte des données donne ceci (au format BibTeX) :

@Book{Orwell2008,
  author    = {George Orwell},
  publisher = {Penguin Books in association with Martin Secker & Warburg Ltd},
  title     = {Animal farm},
  year      = {2008},
  address   = {London},
  isbn      = {0141036133},
  note      = {Originally published: London: Martin Secker & Warburg, 1945},
  pagetotal = {94},
  ppn_gvk   = {1626769362},
  subtitle  = {A fairy story},

La clé de la citation dans votre texte sera ainsi : Orwell2008. Dans votre texte, le code sera rédigé ainsi :

\cite[alternative=entry][littérature::Orwell2008]

Comment ventiler les rubriques bibliographiques

modifier

Nous venons de voir ci-dessus comment indiquer à ConText où puiser les références bibliographiques en utilisant un fichier *.bib et en nommant (en donnant un titre) à notre bibliographie. Reste maintenant à faire en sorte que cette bibliographie s'imprime quelque part dans notre texte, soit à la fin du chapitre, soit à la fin du texte (avant les index et la table des matières). ConTeXt, il faut le rappeler, est un outil puissant : il va aller chercher les références bibliographiques, les classer par ordre alphabétique et les ventiler par rubriques, si elles existent et cela de manière automatique : vous n'aurez pas à le faire à la main. La seule condition consiste à rédiger un code propre (i.e. fonctionnel).

% Définition de la bibliographie

\usebtxdataset[littérature ancienne][mabibliographie.bib]
\usebtxdataset[littérature moderne][mabibliographie.bib]
\usebtxdataset[littérature médiévale][mabibliographie.bib]
\usebtxdefinitions[apa]
  • Remarque : la méthode bibliographique utilisée ici est celle de l'APA
  • Note : On indique maintenant dans quelles rubriques ventiler les données (le rendering dans le dataset !) :
\definebtxrendering[littérature ancienne][apa][dataset=littérature ancienne]
\definebtxrendering[littérature moderne][apa][dataset=littérature moderne]
\definebtxrendering[littérature médiévale][apa][dataset=littérature médiévale]
  • Note : On indique maintenant à ConTeXt que nous voulons que les données bibliographiques se suivent :

\setupbtxrendering[continue =yes]

% Fin de la bibliographie


  • Remarque: ConTeXt est indépendant du programme BibTeX, mais peut lire les bases de données .bib, si elles ne sont pas trop polluées par des commandes non standardisées LATEX. Ce format est le plus ancien, mais il est supporté par la plupart des programmes de gestion de bibliographie. Les autres formats supportés utilisent la même structure d'enregistrements, simplement portés dans des "langages" différents.

La méthode en tampon mémoire : buffer

modifier

Explication : La méthode de mise en mémoire tampon des références bibliographiques peut être utilisée, bien qu'elle me semble fastidieuse quoique, au premier abord, elle apparaît simple. De quoi s'agit-il ?

Comme son nom l'indique, au lieu de faire référence à un fichier de type mabibliographie.bib, on demande à ConTeXt de mettre en mémoire les références que l'on veut utiliser dans le document. Dans l'exemple suivant, on va demander à ConTeXt de mettre en mémoire tampon un fichier nommé biblio, qui ne contient ici que deux entrées (mais il peut en droit en contenir des centaines). Le préambule de notre fichier ConTeXt (pour les besoins de l'explication) est simple. Il commence par la commande :

\startbuffer

et se termine par la commande

\stopbuffer

à quoi on ajoute, comme nous l'avons vu dans la section précédente, les commandes destinées à ventiler les données bibliographiques :

\usebtxdataset[philosophie ancienne][biblio.buffer]
\usebtxdefinitions[apa]
\definebtxrendering[philosophie ancienne][apa][dataset=philosophie ancienne]
\setupbtxrendering[continue =yes]
  • Remarque : Les commandes après le corps du texte indiquent à ConTeXt comment ventiler la bibliographie.
  • Voici donc ci-dessous un exemple complet à compiler qui utilise la méthode buffer, que vous pouvez copier et tester :
\startbuffer[biblio]
@Book{cicero-tuscu2011,
  author     = {Marcus Tullius Cicéron},
  editor     = {Fohlen, G.},
  publisher  = {Les Belles Lettres},
  title      = {Tusculanes},
  year       = {2011},
  address    = {Paris},
  edition    = {7e tirage},
  isbn       = {9782251010830},
  series     = {œuvres philosophiques},
  volume     = {1},
  ppn_gvk    = {1823774121},
  subtitle   = {Marcus Tullius},
  translator = {Jules Humbert},
}

@Book{Aristote2008,
  Title                    = {Les Politiques},
  Author                   = {Aristote},
  Editor                   = {Pellegrin, Pierre},
  Publisher                = {Garnier-Flammarion},
  Year                     = {2008},
  Address                  = {Paris, France},
  Series                   = {Le monde de la philosophie},
  Date                     = {2008},
  ISBN                     = {978-2-08-121816-1},
  Location                 = {Paris, France},
  Pagetotal                = {xxiii+518},
  Translator               = {Pierre Pellegrin}
}
\stopbuffer
\usebtxdataset[philosophie ancienne][biblio.buffer]
\usebtxdefinitions[apa]
\definebtxrendering[philosophie ancienne][apa][dataset=philosophie ancienne]
\setupbtxrendering[continue =yes]

 \starttext

\startchapter[title={Introduction à la Philosophie}]

Dans les notes qui suivent, on s’intéressera à la pensée philosophique comme philosophie politique. Aristote, le philosophe grec qui publia et commenta les Constitutions des anciennes cités grecques, commence son ouvrage {\it les Politiques} par la thèse selon laquelle \quotation {l’homme est un animal politique}\footnote{\cite[alternative=entry][philosophie ancienne::Aristote2008]}.

Cicéron, ce grand homme politique et cet écrivain savant, a eu la formule bien connue, selon laquelle \quotation{Socrate fit descendre la philosophie du ciel sur la terre.}\footnote{\cite[alternative=entry][philosophie ancienne::cicero-tuscu2011]}, qui désigne la question fondamentale de l’intérêt nourri par la philosophie pour les {\it choses humaines}.


\stopchapter
\starttext
\startbackmatter

 \startchapter[title={Bibliographie}]

 \startsection[title={Philosophie ancienne}]

 \placelistofpublications[philosophie ancienne][method=local]

 \stopsection

 \stopchapter

\stopbackmatter

\stoptext

% fin de l'exemple d'un fichier bibliographique avec mémoire tampon.

Aide sur Context Garden

modifier

Comment organiser les références, citations et autres index

modifier

Principes généraux

modifier
  • Dans les travaux universitaires en France, et dans l'édition en général, la table des matières et les index nominum et index rerum sont situés en fin de document, dans ce que dans la langue de Modèle:TeX, LATEX et autres ConTeXt on nomme le (ou la) backmatter. La mode universitaire américaine a tendance à s'immiscer dans les normes universitaires françaises et nombreux sont ceux à vouloir placer la table des matières en première page, avant l'introduction et après les remerciements. Cela dit, pour ConTeXt le jeu d'écriture consister à placer ici (ou bien là !) des lignes de commande comme :

% Bibliographie

\placelistofpublications[Littérature][method=local]

% Index

\completeindex

% Table des matières

\completecontent[criterium=previous]

Rien de mystérieux dans ces lignes ! la commande :

\placelistofpublications[MachinTruc][method=local]

Compile, donne et ventile par ordre alphabétique toutes les références bibliographiques collectées dans le texte par la commande suivante :

\cite{[alternative=entry][MachinTruc::clé_biblio]}

  • Si vous écrivez par exemple, un texte comme dans l'exemple suivant et dans la mesure où dans le préambule du fichier source vous avez bien défini la base de donnée bibliographique -- voir :definebtxdataset dans le chapitre Bibliographie--, le fichier *.bib :

Exemple :

Enfin, Platon est le fondateur d'une école appelée l'Académie\index{Académie, école fondée par Platon}, une école supérieure dont la durée de vie en fait une des écoles les plus remarquables, puisqu'elle sera dissoute — après bien des vicissitudes — par l'empereur Justinien\index{Justinien (482-565 après J.C.), {\em empereur d'Orient.}} en 529 après Jésus Christ\footnote{Le nom d'Académie vient d'un certain Akadémos sur le terrain duquel Platon avait construit son école\cite{[alternative=entry][Platon::nails2000]}. La longévité de cette école — à bien des égards un établissement où étaient enseignées la philosophie politique, la littérature et les mathématiques — qui s'étend sur huit siècles, a connu des ruptures, des pauses et des absences. Mais cette école, qui va de Platon à Carnéade\index{Carnéade, dernier scholarque directeur de l'Académie de Platon}, est un exemple de cette énergie à la source de l'Europe culturelle. Le motif de la fermeture de l'école — son paganisme — conduisit l'école à s'installer à Harran en Syrie, alors sous la dépendance de l'empereur sassanide (Iranien) Khosroès I\index{Khosroès I, empereur sassanide d'origine perse en guerre contre Byzance}. Et c'est à partir de cette délocalisation que les conquérants Arabes purent faire traduire dans leur langue une partie du {\em corpus} des sciences grecques.}.

Dans l'exemple ci-dessus, les commandes \cite et \index vont permettre d'établir la collecte des données bibliographiques comme:

  • Debra Nails 2000, The People of Plato : A Prosopography of Plato and Other Socratics. Indianapolis: Princeton University Press. 414 p. (ISBN 978-0-87220-564-2, LCCN 2002068496) (si vous choisissez le style de bibliographie Chicago et à condition que votre fichier *.bib contienne cet item bibliographique avec la clé nails2000).

et pour la commande :

\index d'indexer par ordre alphabétique (et par numéro de page), tous les noms suivis affublés de cette commande (ici : Académie, Justinien, Carnéade, Khosroès...).

Ventilation de la bibliographie

modifier

Dans un document de type thèse universitaire, ou un ouvrage académique, on peut avoir besoin de plusieurs sections de bibliographie. Par exemple, en philosophie, on ventilera la bibliographie en Ouvrages classiques, Ouvrages critiques et Littérature secondaire (ou Philosophie ancienne, Philosophie médiévale et Philosophie contemporaine). Pour atteindre ces objectifs, il suffit d'indiquer dans le préambule dans quelle rubrique classer les ouvrages :

1. On commence par indiquer dans le préambule quel fichier Modèle:BibTeX de données bibliographiques on veut utiliser :

\usebtxdataset[philosophie ancienne][mabiblio.bib]
\usebtxdataset[philosophie médiévale][mabiblio.bib]
\usebtxdataset[philosophie contemporaine][mabiblio.bib]
\usebtxdataset[Littérature][mabiblio.bib]

etc.

2. Ensuite on indique à ConTeXt comment ranger cette bibliographie :

\usebtxdefinitions[apa]

% Ici on utilise la norme APA, mais ce pourrait être Chicago.

\definebtxrendering[philosophie ancienne][apa][dataset=philosophie ancienne]

% Le rendu (rendering) correspond au classement que l'on désire, à partir du fichier mabiblio.bib, des éléments auxquels on fait appel.

3. La commande :

\setupbtxrendering[continue =yes]

permet d'avoir une bibliographie en continu, classée par ordre alphabétique.

En résumé, à la fin de votre document (Backmatter), vous pouvez disposer les commandes suivantes :

\stopchapter

% Bibliographie

\starttext
\startbackmatter
\startchapter[title={Bibliographie}]
\startsection[title={{\em Philosophie ancienne}}]
\placelistofpublications[philosophie ancienne][method=local]
\stopsection

\startsection[title={{\em Philosophie moderne}}]
\placelistofpublications[philosophie moderne][method=local]
\stopsection

\startsection[title={{\em Littérature}}]
\placelistofpublications[littérature][method=local]
\stopsection
\stopchapter
\stopbackmatter
\stoptext

% Index

\completeindex

% Table des matières

\completecontent[criterium=previous]
\stoptext
  • Pour des informations complémentaires, voir cette fiche synthétique sur la table des matières, La Fiche à Bébert