# ConTeXt/Références bibliographiques
## Références bibliographiques

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
#### Comment indiquer à ConTeXt la source de la référence

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]
Où \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 :
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) :
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

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
* 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 !) :
* 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]
Où \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 :
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) :
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

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
* 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 !) :
* 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

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 :
* 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 :
% fin de l'exemple d'un fichier bibliographique avec mémoire tampon.

### Aide sur Context Garden

* Principes généraux de la bibliographie avec
* Qu'est-ce que ConTeXt ?
* Installation
* Comment créer un document simple ?
* Comment créer un document complexe ?
* Références bibliographiques
* Comment organiser les références, citations et autres index
* Quelques exemples d'organisation de la page : marges, cadres, etc.
* ConTeXt/Utiliser Metapost (MPgraphic)
* Qu'est-ce que ConTeXt ?
* Installation
* Comment créer un document simple ?
* Comment créer un document complexe ?
* Références bibliographiques
* Comment organiser les références, citations et autres index
* Quelques exemples d'organisation de la page : marges, cadres, etc.
* ConTeXt/Utiliser Metapost (MPgraphic)
[ Modifier le sommaire ]

## Comment organiser les références, citations et autres index
### Principes généraux

* 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

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 :
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
% Index
\completeindex
% Table des matières
* Pour des informations complémentaires, voir cette fiche synthétique sur la table des matières, La Fiche à Bébert