csl-clio/Documentation/GUIDE_CSL-Clio.md

1359 lines
118 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: "CSL/Clio"
subtitle: "Guide d'utilisation et de création de styles CSL adaptés aux besoins des historiens"
author: Bastien Dumont
date: 21/09/2021
lang: fr-FR
toc: true
lof: true
documentclass: scrbook
top-level-division: part
figureTemplate: '$$t$$'
tableTemplate: '$$t$$'
---
::: {#license}
Copyright © 2021 Bastien Dumont.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
:::
# Introduction {.unnumbered}
Le but du projet *CSL/Clio* est de fournir une solution clé en main aux historiens pour utiliser des gestionnaires bibliographiques basés sur CSL, tels que [*Zotero*](https://www.zotero.org/), et mettre en forme automatiquement leurs références et leurs bibliographies grâce aux processeurs CSL existants. Il comprend trois volets :
* Proposer des stratégies claires pour encoder des références bibliographiques dans le format CSL en contournant ses limitations plutôt qu'en l'étendant;
* Fournir des feuilles de style CSL qui poussent le plus loin possible l'automatisation de la mise en forme des citations et de la bibliographie en s'appuyant sur ces stratégies d'encodage;
* Fournir des outils de post-traitement (macros pour *LibreOffice*, filtres pour *Pandoc*) pour automatiser la plus grande partie des modifications qui doivent être effectuées sur le résultat produit par les processeurs CSL.
La première section développe les principes et les objectifs du projet. Malgré mes efforts, il est possible qu'elle reste quelque peu obscure à la première lecture. Il est possible de la parcourir rapidement, voire de la laisser de côté dans un premier temps, puis d'y revenir éventuellement plus tard, en ayant acquis un peu d'expérience. Les sections suivantes donnent des indications pratiques pour utiliser *Zotero* selon les principes de *CSL/Clio*, utiliser les outils fournis et étendre le nombre de styles proposés. Il est nécessaire, avant de les lire, d'être un minimum familiarisé avec l'interface et les fonctionnalités de base de *Zotero*.
Les outils fournis par *CSL/Clio* peuvent être utilisés soit avec *Pandoc*, soit avec *LibreOffice*, soit les deux combinés. Si vous ne souhaitez pas utiliser l'un de ces deux logiciels, vous pouvez passer les paragraphes qui les concernent spécifiquement. Il est également possible d'utiliser les styles avec *Microsoft Word*, mais le document DOCX obtenu devra ensuite être ouvert dans *LibreOffice* si vous souhaitez utiliser les outils de post-traitement.
Enfin, ce projet est destiné à s'enrichir et à évoluer! N'hésitez pas à m'adresser vos remarques, questions, demandes de création de styles et signalements de bugs. Voyez à ce sujet la [section dédiée](#un-projet-évolutif-et-ouvert-aux-retours-des-utilisateurs). Si vous voulez vous impliquer davantage, vous pouvez commencer par lire la section [_Enrichir la collection_ CSL/Clio](#enrichir-la-collection-cslclio).
# Principes
## Présentation de CSL
*Citation Style Language* (CSL) est un format de fichier basé sur [XML](https://www.w3.org/standards/xml/core) qui décrit la manière dont doivent être mises en forme des références bibliographiques au sein d'un document. Il permet de traiter différemment une référence selon qu'elle se trouve dans une citation ou dans la bibliographie, et de distinguer entre la première mention d'une référence et ses utilisations ultérieures. Pour ce faire, il spécifie :
* Les différentes variables qui peuvent être utilisées pour décrire une référence dans un gestionnaire de bibliographie : `title`, `author`, `editor`, `issued`, `page`,...
* La manière dont doivent être rédigées les instructions de mise en forme dans une feuille de style;
* La manière dont ces instructions doivent être interprétées par les logiciels qui traitent ces feuilles de style pour procéder à la mise en forme, CSL n'étant pas lui-même un programme, mais un format de fichier.
Les règles que doit respecter tout fichier CSL (variables utilisées, syntaxe,...) sont spécifiées dans un [*schéma*](https://github.com/citation-style-language/schema/tree/v1.0.1), qui est une représentation formelle destinée à l'ordinateur plutôt qu'à un être humain. Le contenu du schéma, les contraintes qu'il exprime et la manière dont doivent être interprétées les instructions d'une feuille de style sont explicitées dans les [*spécifications*](http://docs.citationstyles.org/en/1.0.1/specification.html).
L'utilisation de CSL pour la mise en forme des citations met en œuvre quatre outils :
* Un gestionnaire de bibliographie qui se fonde sur les règles spécifiées par CSL pour décrire les références. Dans la suite de ce document, nous prendrons l'exemple de [*Zotero*](https://www.zotero.org/), mais [d'autres logiciels supportent CSL](https://en.wikipedia.org/wiki/Comparison_of_reference_management_software);
* Une feuille de style conforme à la fois au schéma CSL et aux directives de la revue, de la collection ou de la maison d'édition qui doit publier le travail en cours (les deux principaux dépôts étant [celui du projet CSL](https://github.com/citation-style-language/styles) et [celui de *Zotero*](https://www.zotero.org/styles));
* Un processeur CSL, c'est-à-dire un programme qui traite les données enregistrées dans le gestionnaire de bibliographie selon les instructions données dans la feuille de style spécifiée pour produire une référence mise en forme dans un format qui lui est propre;
* Un programme qui convertit les données renvoyées par le processeur CSL dans le format du fichier où la référence doit être insérée (format DOCX, ODT, mais aussi, selon les processeurs, HTML, LaTeX et bien d'autres...).
De nombreux gestionnaires de bibliographie intègrent un processeur CSL, le plus souvent [*citeproc-js*](https://citeproc-js.readthedocs.io/en/latest/), et proposent des greffons pour les principaux logiciels de traitement de texte. Grâce à ceux-ci, lorsque l'auteur souhaite insérer une citation, il lui suffit de cliquer sur un bouton et d'indiquer dans la fenêtre qui s'ouvre à quels items il veut faire référence et quelles précisions supplémentaires il souhaite apporter; le greffon appelle le processeur intégré en lui indiquant la feuille de style choisie par l'utilisateur et les informations relatives à la citation et intègre la citation produite par le processeur dans le document courant sous la forme d'une note de bas de page ou d'une référence dans le corps du texte. On en trouvera des exemples de greffons [sur le site de *Zotero*](https://www.zotero.org/support/word_processor_integration). [D'autres processeurs existent](https://citationstyles.org/developers/#/csl-processors), notamment celui utilisé par [*Pandoc*](https://pandoc.org/).
L'utilisation de cette chaîne opératoire pour la mise en forme des citations comporte de nombreux avantages sur un travail purement manuel. En automatisant le processus, elle réduit les risques d'incohérences et d'erreurs : on gagne ainsi du temps à la fois lors de la saisie des citations et à la relecture. Elle évite d'avoir à vérifier si une référence a déjà été citée ou non et dans quelle note. La séparation entre le stockage des références bibliographiques et leur mise en forme facilite également l'utilisation des mêmes références dans plusieurs publications soumises à des normes différentes. Elle permet même de changer les règles de mise en forme en cours de rédaction sans perdre de temps à modifier toutes les citations existantes, ce qui peut s'avérer précieux lorsque l'éditeur met à jour ses instructions ou lorsque l'on décide de soumettre à une autre revue que celle envisagée initialement. Certes, il est nécessaire de prendre un peu de temps pour apprendre à utiliser ces outils et pour enregistrer sa bibliographie dans le gestionnaire; mais cet investissement est réduit si l'on se contente d'utiliser ou de modifier légèrement des feuilles de styles existantes, et il est très rapidement rentabilisé.
Enfin, CSL est un format pérenne. Les spécifications sont publiées sous license [Creative Commons Attribution-ShareAlike](https://creativecommons.org/licenses/by-sa/3.0/deed.fr), une license [libre](https://www.gnu.org/philosophy/free-sw.html) qui leur garantit une large diffusion. Les processeurs et les logiciels de gestion de bibliographie qui l'utilisent sont relativement nombreux, dotés pour certains d'une importante communauté d'utilisateurs, en partie dépendants les uns des autres, et libres, ce qui rend très peu probable l'arrêt de leur développement. La large [batterie de tests](https://github.com/citation-style-language/test-suite) maintenue sur le dépôt en ligne de CSL permet aux développeurs de vérifier si le comportement de leur programme est conforme aux spécifications : ainsi, dans la plupart des cas, un style CSL donné produira bien les mêmes résultats quel que soit le processeur utilisé — et si tel n'est pas le cas, il est possible de signaler le problème sur le dépôt du code source du projet. Le principal risque pour l'utilisateur est qu'une modification des spécifications CSL impose de modifier les styles ou l'enregistrement des données dans le gestionnaire de bibliographie; cependant, dans ce cas, des outils seront très probablement mis à disposition pour rendre la migration automatique, [comme cela a été le cas](https://github.com/citation-style-language/utilities/blob/master/update-styles-0.8.1-to-1.0.sh) lors du passage de la version 0.8 à la version 1.0 des spécifications.
> **Pour aller plus loin :**
>
> * [Site de CSL](https://citationstyles.org/)
> * [Introduction à CSL](https://docs.citationstyles.org/en/1.0.1/primer.html)
## Limites actuelles de CSL pour les publications en Histoire
Si CSL a été développé principalement par des chercheurs pour la publication scientifique, le fait qu'il soit pensé pour l'ensemble des sciences humaines le rend peu adapté, au premier abord, à certains besoins particuliers.
Pour les historiens, son point faible le plus évident est le manque de support pour la gestion des sources primaires. En effet, CSL prévoit principalement une variable `title`^[
*Titre* dans *Zotero*.
] pour le titre d'une référence et une variable `container-title`^[
Dans *Zotero*, *Titre du livre* si l'item enregistré est un chapitre ou *Publication* s'il s'agit d'un article.
], pour l'ensemble dans lequel elle est insérée (livre pour un chapitre d'ouvrage, revue pour un article), mais rien pour le titre d'une source. Or, on ne peut pas renseigner le titre de la source comme `title` et celui de l'ouvrage dans lequel elle est publiée dans `container-title` car certaines sources primaires sont publiées dans des articles ou des chapitres d'ouvrages. En outre, selon les éditeurs, il faut indiquer soit le titre de la source, soit celui de la publication, soit les deux : si l'on veut que les enregistrements dans la base de données bibliographique soient complets et indépendants des styles utilisés et que l'on puisse facilement passer d'un style à l'autre, une variable *ad hoc* est donc nécessaire. Or, le fait que l'utilisation d'une telle variable soit limitée aux historiens empêche qu'elle soit ajoutée dans les spécifications^[
Pour plus de détails, voir [cette discussion](https://github.com/citation-style-language/schema/issues/388) sur le dépôt officiel du schéma CSL.
].
Bien que ce point ne soit pas explicité, les spécifications actuelles de CSL (v. 1.0.1) semblent supposer que la localisation d'un passage dans une publication se fait en fonction d'un critère unique, tel que la page, le chapitre ou la ligne. Les processeurs, en accord avec les tests officiels, ne prévoient en tout cas que ce cas de figure^[
Il semblerait que [*citeproc-js* supporte les cas les plus simples de localisations selon plusieurs critères](https://forums.zotero.org/discussion/comment/350840). Je n'ai pas réussi à reproduire l'exemple donné.
]. Or, le plus souvent, lorsque l'on précise la ligne, on indique aussi la page, le folio ou la colonne. De même, on peut avoir besoin de localiser un passage dans une source à la fois selon les divisions internes de la source (p. ex. VI, 5) et selon la pagination de l'édition publiée. Dans les boîtes de dialogue d'ajout de citation, on ne peut renseigner qu'un des deux critères de localisation dans le champ approprié, l'autre étant à ajouter en suffixe (voir [@fig:double-locator-zotero]). Cela pose problème à double titre : d'abord parce que certains localisateurs, dans certains styles, sont rendus différemment selon qu'ils sont seuls ou combinés à d'autres^[
Comparer p. ex. « La Fontaine, *À Fouquet*, l. 7 » (ligne seule) et « La Fontaine, *Le Songe de Vaux*, p. 26^5^ » (page et ligne en exposant). Voir aussi [cette discussion](https://github.com/citation-style-language/schema/issues/342).
]; ensuite parce que cette lacune oblige à mettre en forme une partie des localisateurs directement dans le champ *Suffixe*, ce qui oblige, le cas échéant, à les modifier à la main. Par ailleurs, CSL prévoit une grande variété de critères de localisation dans les citations, mais pas dans la bibliographie finale : ainsi, on peut se référerer à un folio précis d'un manuscrit dans une citation, mais non indiquer la localisation d'une œuvre dans un manuscrit dans la bibliographie.
![Localisation selon la page et la ligne dans la fenêtre classique d'ajout de citation de *Zotero*](double-locator-zotero.png){#fig:double-locator-zotero}
Concernant les titres de revues, les spécifications CSL prévoient une variable `container-title-short` qui permet d'indiquer une forme abrégée. *Zotero* [propose en outre une option](https://www.zotero.org/support/kb/journal_abbreviations) pour ignorer cette variable et utiliser à la place la liste d'abréviations de l'*Index Medicus*. Toutefois, ces deux approches ne sont pas satisfaisantes, d'une part parce qu'elles ne prévoient pas un mécanisme semblable pour les titres de collections, d'autre part parce que les listes d'abréviations varient selon les éditeurs et les revues. Pour l'instant, seul *Pandoc* permet officiellement de fournir une liste d'abréviations en plus du fichier CSL [en utilisant un mécanisme généralisable à toutes les variables](https://pandoc.org/MANUAL.html#specifying-a-citation-style) (dont `collection-title`). *Zotero* devrait aussi acquérir cette fonctionnalité dans le futur; en attendant, [une solution existe déjà](https://forums.zotero.org/discussion/comment/155854/#Comment_155854) mais elle n'est pas officiellement documentée et est assez délicate à metre en œuvre. Nous l'expliquons [plus loin](#listes-dabréviations).
Enfin, il manque des solutions claires pour l'encodage de certains éléments. Il n'existe pas, dans CSL, de types de documents tels que « actes de colloque », « répertoire », « blog » ou « site Web ». Il n'est pas prévu non plus de rôle pour les collaborateurs^[
Il existe bien un champ *Collaborateur* dans *Zotero*, mais il n'est relié à aucune variable dans CSL.
]. Comme nous l'avons évoqué plus haut, il n'est pas possible de localiser autrement une partie d'ouvrage dans la bibliographie que par pages, volume ou partie : il n'est donc pas possible d'indiquer à quels folios ou dans quelles colonnes de la *Patrologie grecque* se trouve une source, bien que ce soit possible dans les citations.
Heureusement, les membres du projet CSL sont parfaitement conscients de ces limites que les nombreux retours d'utilisateurs mettent en évidence, et ils travaillent à faire évoluer les spécifications pour y apporter des réponses. À l'heure à laquelle ce guide est rédigé, les spécifications officielles, qui sont implémentées par les processeurs, portent le numéro de version 1.0.1. Elles devraient bientôt évoluer vers la version 1.0.2, qui introduira quelques nouveautés sans véritablement résoudre les problèmes que nous avons identifiés. À plus long terme, CSL sera plus profondément remanié dans la version 1.1. Les discussions en cours sont très prometteuses, mais nul ne sait quand elles aboutiront, et il faudra encore un délai supplémentaire pour que les processeurs soient mis à jour. En attendant, il nous faut trouver des moyens de surmonter les limites actuelles de CSL en faisant avec l'existant.
> **En savoir plus sur l'évolution de CSL :**
>
> * Le blog de CSL contient un [article très synthétique sur les évolutions envisagées](https://citationstyles.org/2020/07/11/seeking-public-comment-on-CSL-1-0-2/);
> * Sur la version 1.0.2, en gardant à l'esprit qu'il s'agit encore d'un travail en cours, quoique très avancé, on peut prendre connaissance des [spécifications](https://github.com/citation-style-language/documentation/blob/master/specification.rst). Un document synthétique listant les évolutions par rapport à la version 1.0.1 est disponible [ici](https://docs.google.com/document/d/1wY1cOOamDYYh8VNW7h_uleqieBDGOa_LYsRiVdQy1RI/);
> * Sur la version 1.1, on peut consulter la [liste des problèmes identifiés ou en cours de traitement](https://github.com/citation-style-language/schema/milestone/1);
> * À plus long terme encore, [quelques objectifs ont été définis pour une version 1.2](https://github.com/citation-style-language/schema/labels/1.2);
> * Voir aussi la [liste des propositions pour de futures versions de CSL](https://github.com/orgs/citation-style-language/projects/3) (toutes versions confondues).
## Objectifs de *CSL/Clio*
Actuellement, pour bénéficier malgré tout des avantages de CSL, chacun doit définir des stratégies d'encodage *ad hoc* et créer des styles qui les prennent en compte en fonction de ses besoins. À cet effet, il faut comprendre comment fonctionne CSL, découvrir des fonctionnalités peu connues de *Zotero*, programmer des outils et corriger ensuite ses erreurs. Pour des raisons fort compréhensibles, peu de chercheurs ont le temps ou l'envie de se consacrer à ces tâches. Le but du projet *CSL/Clio* est de réduire le plus possible l'investissement requis en fournissant des solutions clé en main pour utiliser CSL et automatiser le plus possible le travail de post-traitement qui reste nécessaire. Ainsi, le temps d'apprentissage requis pour maîtriser les principes et les outils présentés dans ce guide sera largement compensé par le temps et l'énergie gagnés lors du processus de rédaction. De plus, ce travail pourra servir de base pour coordonner les efforts des individus qui souhaiteront apporter des améliorations ou de nouvelles fonctionnalités, au lieu de résoudre chacun de son côté les mêmes problèmes en partant de rien. Dans cette sous-section, nous détaillons les lignes directrices du projet et justifions les choix opérés.
### Fournir des stratégies d'encodage communes
On peut surmonter de trois manières différentes le fait que les spécifications CSL et les gestionnaires de bibliographie ne déterminent pas de stratégies d'encodage claire pour une partie des besoins relatifs à la discipline historique :
#. N'utiliser que les fonctionnalités offertes, en modifiant et en complétant à la main le résultat produit par le processeur CSL. Ainsi, pour indiquer une source, on peut enregistrer dans *Zotero* la publication dans laquelle elle est éditée, choisir un style assez proche de celui de la revue visée et ajouter à la main l'auteur et le nom de la source, en plus des autres ajustements requis. Cette solution n'implique aucune programmation, limite au minimum le temps d'apprentissage et laisse aux revues la possibilité de proposer des styles CSL sur les dépôts officiels qui ne sont pas complètement conformes à leurs directives, mais suivent rigoureusement les spécifications de CSL. Elle ne permet toutefois pas de tirer pleinement profit des possibilités de CSL et impose un travail fastidieux de vérification et de correction, avec les risques d'erreur que cela implique;
#. Inventer des variables qui ne figurent pas dans les spécifications CSL et rédiger des feuilles de style qui les utilisent. Cette solution est applicable dans la mesure où le processeur utilisé supporte les variables non standard, ce qui est le cas de *citeproc-js* (le plus répandu) et de *citeproc* (sur lequel s'appuie *Pandoc*)^[Le logiciel [*Juris-M*](https://juris-m.github.io/), basé sur *Zotero*, fait un usage important de cette possibilité et utilise même des extensions à la syntaxe de CSL qui sont implémentées dans *citeproc-js*. Il offre des fonctionnalités intéressantes, mais [celles qui pourraient être utilisées pour les références aux sources primaires](https://forums.zotero.org/discussion/81644/classical-sources-numbers-and-pages) ne résolvent pas tous les problèmes et risquent d'en poser pour la bibliographie finale. En outre, le format CSL-M ne comble pas toutes les lacunes de CSL pour les historiens et n'est compatible qu'avec *citeproc-js*.];
#. Utiliser des variables existantes d'une manière qui n'est pas prévue par les spécifications, ce qui permet de respecter formellement le schéma CSL et de créer des styles compatibles avec tous les processeurs. Plus précisément, cette stratégie consiste à *spécialiser* des variables très abstraites (telles que `annote` pour indiquer un titre de source) et à *détourner* des variables plus spécialisées dont les historiens n'ont *a priori* pas besoin (telles que `original-publisher` pour indiquer la langue d'origine d'un document traduit).
Le projet *CSL/Clio* met en œuvre la troisième option. Certes, l'invention de nouvelles variables présente l'avantage de la clarté, et le détournement de variables existantes pourrait entrer en conflit avec des besoins imprévus. J'ai choisi de privilégier la compatibilité avec le plus grand nombre de processeurs. De plus, l'utilisation de variables non standard interdirait de placer les styles développés dans le cadre de *CSL/Clio* dans les dépôts de CSL et de *Zotero*. J'espère que les évolutions futures de CSL permettront de se passer du détournement de variables; si les adaptations nécessaires à notre discipline se limitent à des spécialisations, une intégration aux dépôts officiels deviendra envisageable.
Les choix d'encodage opérés dans ce cadre sont exposées dans la partie [*Gérer ses données bibliographiques avec* Zotero](#gérer-ses-données-bibliographiques-avec-zotero).
### Créer un ensemble de styles cohérents et interopérables
Le premier objectif de *CSL/Clio* est donc de fournir des règles communes pour encoder des bibliographies selon les catégories prévues par CSL, en définissant quelles variables peuvent être spécialisées ou détournées pour quels types d'information. Ce vocabulaire commun constitue une condition préalable à la création de styles interopérables, c'est-à-dire qui puissent tous être utilisés avec la même base de données bibliographique. Une autre condition est l'existence de règles communes pour structurer les styles. L'idée principale est de diviser le code en *modules*, c'est-à-dire de petites unités, de manière à ce que l'on puisse facilement le comprendre et le modifier pour créer un autre style.
Considérons, par exemple, une structure non modulaire dont on pourrait exprimer la logique de la manière suivante :
~~~
Pour toutes les citations, réaliser les étapes suivantes
en séparant les segments par des virgules :
— Afficher le nom de l'auteur avec le prénom abrégé
avant le nom en petites capitales;
— Afficher le titre en italiques s'il s'agit d'un
livre, en caractères droits avec des guillemets
s'ils s'agit d'un article;
— Afficher la maison d'édition en caractères droits
s'il s'agit d'un livre, la nom de la revue en
italiques s'il s'agit d'un article.
~~~
Avec un code construit de cette manière, on obtiendrait :
> N. [Auteur]{.smallcaps}, *Titre du livre*, Maison d'édition\
> N. [Auteur]{.smallcaps}, « Titre de l'article », *Titre de la revue*\
Si l'on veut modifier un seul aspect (p. ex. retirer les guillemets d'un titre d'article), il faut parcourir tout le code pour trouver le passage concerné. Or, les directives des revues en histoire sont plus complexes que cela : pour ne prendre que cet exemple, la feuille de style que j'ai écrite de manière très empirique pour mon mémoire de Master contenait plus de 500 lignes de code et, à mesure que son développement anarchique se poursuivait, j'avais de plus en plus de mal à ajouter des fonctionnalités supplémentaires et à corriger les bugs sans en introduire de nouveaux. Un code modulaire rédigé comme suit est beaucoup plus facile à comprendre et à manier à mesure qu'il se complexifie :
~~~
Pour toutes les citation, réaliser les étapes suivantes
en séparant les segments par des virgules :
— Appliquer la macro "nom de l'auteur";
— Appliquer la macro "titre";
— Appliquer la macro "publication".
Macro "nom de l'auteur" :
— Afficher le nom de l'auteur avec le prénom abrégé
avant le nom en petites capitales.
Macro "titre" :
— Afficher le titre en italiques s'il s'agit d'un
livre, en caractères droits avec des guillemets
s'il s'agit d'un article.
Macro "publication" :
— Afficher la maison d'édition en caractères droits
s'il s'agit d'un livre, la nom de la revue en
italiques s'il s'agit d'un article.
~~~
Si l'on veut supprimer les guillemets du titre d'un article, on saura immédiatement qu'il faut modifier la macro `"titre"`, et ce d'autant plus si la même organisation du code est suivie dans toutes les feuilles de style.
Pour garantir que les styles produise bien la mise en forme attendue, ils sont contrôlés automatiquement après chaque modification. D'une part, *CSL/Clio* intrègre une bibliographie type d'une cinquantaine d'items représentant chacun une configuration différente. D'autre part, chaque style est associé à un fichier qui indique la mise en forme attendue par la revue ou l'éditeur pour chacun de ces items dans différentes situations (première citation, citation ultérieure, en combinaison,...). Une feuille de style n'est mise en ligne que si elle produit un rendu conforme à ce qui est prévu par l'éditeur.
Les conventions suivies dans *CSL/Clio* sont exposées dans la partie [Programmer de nouveaux styles](#programmer-de-nouveaux-styles). Contrairement aux règles d'enregistrement des données bibliographiques, il n'est pas nécessaires de les connaître si l'on ne souhaite pas programmer soi-même de feuilles de style. Cependant, il est bon d'avoir conscience que les styles mis à disposition par le projet *CSL/Clio* suivent des stratégies particulières. Le lecteur sera également rassuré de savoir que les conventions et les procédures suivies permettent de produire des styles fiables, que l'on peut aisément corriger ou modifier pour obtenir d'autres styles.
### Coupler CSL avec des outils de post-traitement
Quelles que soient les stratégies utilisées, certaines exigences d'éditeurs et de revues ne peuvent pas être satisfaites en se limitant à CSL. Pour ne citer qu'un exemple, il est impossible, dans la bibliographie, d'introduire les références aux folios par « f. » s'il n'y en a qu'un et « ff. » s'il y en a plusieurs. Pour cette raison, *CSL/Clio* fournit deux types d'outils de post-traitement qui permettent de limiter le plus possible le travail manuel requis pour corriger les imperfections de la mise en forme automatique : des [filtres Lua](https://pandoc.org/lua-filters.html) (encore peu nombreux) à utiliser avec *Pandoc* et des macros pour *LibreOffice Writer*. Pour l'instant, je n'ai pas prévu de réécrire les macros pour *Microsoft Word*; heureusement, la suite *LibreOffice* est gratuite et traite assez bien les documents au format DOCX rédigés sous *Word*^[
<!-- À supprimer si le bug est résolu. -->Assez bien, mais pas parfaitement. En particulier, *LibreOffice* corrompt les références automatiques aux numéros de figures, tableaux et notes (mais pas de page) dans les documents DOCX. Il faut donc remplacer dans *Word* les champs automatiques correspondants par les mêmes chiffres insérés manuellement avant d'ouvrir le document sous *LibreOffice*; il semblerait que cela puisse se faire en sélectionnant le champ et en appuyant sur `Crtl+Shift+F9`. Heureusement, c'est une fonctionnalité qu'on utilise généralement peu à l'échelle d'un article.
]. Chaque style est fourni avec un document qui précise ses limites et indique quelles macros utiliser et quelles tâches doivent être accomplies manuellement.
Les informations sur les outils de post-traitement figurent dans la section [*Automatiser la mise en forme*](#automatiser-la-mise-en-forme).
### Un projet évolutif et ouvert aux retours des utilisateurs
À mesure que j'utilise *CSL/Clio* et que je reçois des remarques d'utilisateurs, je peux être amené à traiter des cas que je n'avais pas anticipés, à ajouter des fonctionnalités et à améliorer ou corriger certains styles. La plupart du temps, il suffit de [mettre à jour](#installation) son installation pour en bénéficier. Parfois, cependant, ces changements imposent de modifier certains enregistrements dans *Zotero* pour que la base de données bibliographique continue à fonctionner avec la nouvelle version : je fais en sorte que cela arrive le plus rarement possible, seulement dans des cas où les bénéfices sont supérieurs aux coûts pour l'utilisateur. À partir de 2022, j'enregistre systématiquement les changements dans le fichier [CHANGELOG](https://bastien-dumont.onmypc.net/git/bdumont/CSL-Clio/src/branch/master/CHANGELOG.md), dont le contenu est reproduit [dans les annexes de ce guide](#changelog). Si vous souhaitez être tenu au courant des mises à jour, vous pouvez m'envoyer un mail à `csl-clio@posteo.net`.
Pour l'instant, le projet *CSL/Clio* est surtout informé par ma pratique de doctorant en histoire du Proche-Orient médiéval. Il est possible que je n'aie pas rencontré les mêmes problèmes que vous et que je n'aie pas eu les mêmes besoins. Si, par exemple, vous trouvez un bug dans les outils proposés, si certains passages de ce guide ne vous paraissent pas clair, si vous avez besoin d'un style de revue qui n'est pas fourni, si les outils de post-traitement n'effectuent pas une tâche dont vous avez besoin, ou si vous souhaitez participer, vous pouvez :
* M'envoyer un mail : `csl-clio@posteo.net`; <!-- TODO : envisager une liste d'utilisateurs si besoin ; créer une FAQ si certaines questions reviennent souvent -->
* [Ouvrir un ticket](https://bastien-dumont.onmypc.net/git/bdumont/CSL-Clio/issues) sur le dépôt du projet (plus spécifiquement pour les bugs ou les demandes de fonctionnalités supplémentaires : dans le doute, envoyez plutôt un mail).
Pour vous inscrire sur le [dépôt du projet](https://bastien-dumont.onmypc.net/git/bdumont/CSL-Clio) (nécessaire pour ouvrir un ticket) :
* Vous pouvez utiliser *OpenID*, qui vous permet de vous connecter via un site sur lequel vous possédez déjà un compte. Voir [ici](https://en.wikipedia.org/wiki/OpenID#Adoption) une liste non exhaustive des sites qui fournissent automatiquement un service d'identification par *OpenID* à leurs utilisateurs. Notez que le site de *Zotero* permet aussi de s'identifier avec *OpenID*.
* Sinon, je peux vous créer un compte sur demande.
Vous pouvez écrire en français, allemand, italien ou anglais.
# Gérer ses données bibliographiques avec *Zotero*
Pour pouvoir utiliser les styles de *CSL/Clio*, il est primordial de bien enregistrer sa bibliographie dans son gestionnaire. Dans cette partie, nous verrons tout d'abord quelques fonctionnalités de *Zotero* auxquelles nous ferons référence par la suite, puis les conventions utilisées par *CSL/Clio* pour l'enregistrement des données bibliographiques. Comme le reste de ce manuel, cette section prend l'exemple de *Zotero* parce que c'est le logiciel que j'utilise. Si vous utilisez un autre logiciel et que vous constatiez des différences, n'hésitez pas à me les signaler : je me ferai un plaisir de les indiquer dans ce guide.
## Utilisation avancée de *Zotero*
Parmi les fonctionnalités de *Zotero* que nous allons passer en revue, seules les premières sont indispensables. Voyez aussi la rubrique [*Demander de l'aide*](#demander-de-laide-et-signaler-des-bugs).
### Ce qu'il faut savoir
#### Indications de mise en forme dans une valeur de champ
Il est possible de mettre certaines parties des valeurs que vous renseignez dans les champs en italiques, gras, petites capitales, indice ou exposant. C'est utile, notamment, lorsqu'un titre cite un autre titre, comme dans la [@fig:titre-dans-titre] (noter que, dans ce cas, si le titre principal était rendu en italiques, *Dialogica polymorpha antiiudaica* serait en caractères droits).
![Utilisations de balises pour mettre en valeur un titre cité dans un autre titre](titre-dans-titre.png){#fig:titre-dans-titre}
Vous trouverez plus d'informations [ici](https://citationstyles.org/authors/#/rich-text-within-fields). Bien que cette fonctionnalité ne fasse pas partie à strictement parler des spécifications CSL, elle est supportée par de nombreux processeurs, avec quelques variations mineures : voir pour [*citeproc*](https://pandoc.org/MANUAL.html#specifying-bibliographic-data) (utilisé par *Pandoc*) et [*citeproc-js*](https://www.zotero.org/support/fr/kb/rich_text_bibliography) (utilisé par *Zotero* et d'autres gestionnaires de bibliographie).
#### Champ *Extra*
L'interface de *Zotero* contient un champ *Extra* dans lequel l'utilisateur peut renseigner des variables absentes des champs proposés par défaut pour le type de document sélectionné. La syntaxe utilisée est :
> `variable: valeur`
Chaque variable est séparée de la précédente par un passage à la ligne. Une valeur peut contenir des espaces. Pour citer un individu, il faut séparer son nom de son prénom par deux barres verticales (Altgr+6 sur un clavier AZERTY). Si une variable contient plusieurs valeurs (par exemple `editor`), il faut un enregistrement complet par valeur. *Le nom de la variable est celui prévu dans les [spécifications CSL](https://docs.citationstyles.org/en/1.0.1/specification.html#appendix-iv-variables), pas celui affiché dans l'interface de* Zotero *!*
\noindent Exemples (voir aussi la [@fig:enregistrement-doctrina-jacobi]) :
> annote: Titre de la source\
> editor: Nom || Prénom\
> ~~annote: "Titre de la source"~~\
> ~~Éditeur: Nom || Prénom~~\
> ~~Éditeur: Nom || Prénom, Autrenom || Autreprénom~~
#### Intervalles de dates
Le champ *Date* ne supporte pas les intervalles tels que « 20092011 ». Lorsque vous entrez plusieurs nombres séparés par des tirets, *Zotero* les interprète comme des indications de jour, mois et année. Pour indiquer un intervalle de date dans *Zotero*, vous devez laisser le champ *Date* vide et renseigner la date dans le champ *Extra* comme valeur de la variable `issued` en utilisant la syntaxe *année-mois-jour/année-mois-jour*, où *mois* et *jour* sont optionnels et où les deux dates doivent compter le même nombre d'éléments.
\noindent Exemples :
> issued: 1999-09/1999-12\
> issued: 1999-09/2000-01\
> issued: 1999/2000\
> ~~issued: 1999-09/12~~\
> ~~issued: 1999-09/2000~~
#### Créer plusieurs enregistrements d'un même document
Vous pouvez avoir besoin qu'une même information soit enregistrée de plusieurs manières différentes dans votre gestionnaire de bibliographie : par exemple si vous écrivez dans plusieurs langues différentes, ce qui implique de traduire certaines informations telles que le lieu d'édition ou la valeur de la variable [`original-publisher`](#documents-traduits), ou si vous voulez renvoyer à un même manuscrit par des abréviations différentes selon les articles où vous le citez. Dans ce cas, vous pouvez créer une collection spécifique pour chacun de vos travaux en cours en plus des collections thématiques que vous alimentez au fil de vos lectures. Pour alimenter ces collections par travaux, vous avez deux possibilités :
* Copier par un simple « cliquer-déposer » les documents utilisés de la collection thématique où ils se trouvent vers la collection dédiée à votre travail en cours : dans ce cas, la notice copiée sera la même que celle qui se trouve dans la collection d'origine, si bien que toute modification dans une collection modifiera aussi l'enregistrement dans l'autre. Cette méthode ne doit donc être utilisée que si vous n'avez pas besoin de modifier la notice;
* Faire un clic droit sur le document dans le panneau central, cliquer sur *Dupliquer le document* et modifier comme désiré la deuxième notice ainsi créée. Vous pouvez ensuite copier cette seconde notice dans la collection dédiée au travail en cours puis la supprimer de la collection thématique où vous l'avez créée. Vous conservez ainsi la notice d'origine intacte dans la collection thématique. Dans ce cas, je conseillerais de créer une note ou marqueur dans la deuxième notice pour indiquer qu'il s'agit d'une version adaptée aux contraintes spécifiques du travail que vous êtes en train de mener.
Le fait de constituer une collection spécifique pour chaque travail vous permettra non seulement de retrouver plus facilement les documents quand vous voudrez les citer, mais aussi de pouvoir vérifier facilement si toutes les notices qui se trouvent dans cette collection présentent bien les caractéristiques souhaitées.
Retenez en tout cas que le fait de « cliquer-déposer » une notice d'une collection à l'autre ne crée pas une nouvelle notice, mais plutôt un nouveau point d'accès à un même enregistrement dans la base de données : pour avoir deux enregistrements différents d'un même document, il faut utiliser la fonction *Dupliquer le document*.
#### Écriture dans une autre langue que le français
Il est possible d'utiliser les styles de *CSL/Clio* dans d'autres langues que le français. Dans votre logiciel de traitement de texte, il suffit de sélectionner la langue dans les préférences de *Zotero*. Avec *Pandoc*, vous pouvez renseigner la [métadonnée `lang`](https://pandoc.org/MANUAL.html#language-variables).
Il est possible que certaines expressions insérées automatiquement, telles que « traduit par » ou « dans », ne correspondent pas à vos attentes (ou à celles de l'éditeur). Dans ce cas, n'hésitez pas à [me contacter](#un-projet-évolutif-et-ouvert-aux-retours-des-utilisateurs) : le problème peut être réglé facilement et rapidement.
### Ce qu'il peut être utile de savoir
#### Console JavaScript
Une console JavaScript est accessible dans l'interface de *Zotero* via le menu *Outils > Développeur > Run JavaScript*. Elle permet d'automatiser certaines tâches laborieuses dans la gestion de la base de données bibliographique, et peut être utile si vous avez besoin de modifier de manière systématique l'enregistrement de certaines informations pour utiliser les styles de *CSL/Clio*. À titre d'exemple, il fut un temps où j'enregistrais les titres de sources dans le champ *Résumé*; lorsque j'ai dû les transférer de la variable `abstract` (correspondant au champ *Résumé*) à la variable `annote` (à enregistrer dans *Extra*), j'ai pu le faire en utilisant le code suivant (les lignes commençant par `//` sont des commentaires que j'ai ajoutés pour expliquer le déroulement de l'algorithme) :
~~~ {.javascript}
// Obtenir la collection sélectionnée dans l'interface.
var collection = ZoteroPane.getSelectedCollection();
// Obtenir les notices dans la collection.
var items = collection.getChildItems();
// Pour chaque notice...
for (let item of items) {
// Obtenir la valeur du champ Résumé.
let sourceName = item.getField('abstractNote')
// Passer directement à la notice suivante si cette
// valeur est nulle.
if (!sourceName) continue
// Si cette valeur est renseignée, obtenir la
// valeur du champ Extra.
let extraField = item.getField('extra')
// Ajouter à cette valeur un passage à la ligne (\n),
// puis "annote: ", puis la valeur de Résumé.
item.setField('extra', extraField + '\nannote: ' + sourceName)
// Vider le champ Résumé.
item.setField('abstractNote', '')
// Sauvegarder le résultat.
item.saveTx()
}
~~~
On pourra trouver sur [le site d'apprentissage de la Fondation Mozilla](https://developer.mozilla.org/fr/docs/Apprendre/JavaScript) des ressources sur JavaScript (seules les connaissances les plus basiques sont requises, et la maîtrise d'HTML et de CSS n'est pas utile pour *Zotero*). Le [site de *Zotero*](https://www.zotero.org/support/dev/client_coding/javascript_api) contient une introduction et de nombreux exemples. N'hésitez pas à [demander de l'aide](#demander-de-laide-et-signaler-des-bugs)!
**Attention :** Avant d'utiliser la console, faites une sauvegarde de votre répertoire de données, dont l'emplacement peut être trouvé via le menu *Édition > Préférences > Avancées > Fichiers et dossiers*. Les modifications ne sont pas réversibles! Après avoir appliqué vos modifications, il peut être judicieux de cliquer sur *Vérifier l'intégrité de la base de données* dans le même menu.
#### Export, modification et réimport d'une collection au format CSL JSON
*Zotero* permet également, par un simple clic droit, d'exporter une collection dans le format de votre choix. Vous pouvez ainsi exporter une collection dans un fichier texte, opérer des « chercher/remplacer » dans un [éditeur de texte](https://en.wikipedia.org/wiki/Comparison_of_text_editors#Basic_features) et réimporter le fichier obtenu dans *Zotero*. Dans ce cas, le format CSL JSON est à privilégier car il est facile à comprendre et utilise les variables de CSL. Cette méthode est plus accessible et aussi rapide que l'utilisation de la console JavaScript, mais elle présente un inconvénient : vous perdrez vos notes, marqueurs et fichiers attachés si vous procédez ainsi.
#### Listes d'abréviations
CSL ne propose qu'un mécanisme rudimentaire pour les abréviations : la variable `container-title-short`. D'une part, cette variable n'est pas prévue pour les collections; d'autre part, son utilité est diminué par le fait que les revues et les éditeurs divergent souvent quant aux abréviations à utiliser. *Pandoc* et *Zotero* fournissent tous deux un mécanisme pour abréger automatiquement les titres selon une liste fournie par l'utilisateur. Dans les deux cas, il faut fournir un [fichier JSON](https://www.json.org/json-fr.html) structuré de la manière suivante :
~~~
{
"default": {
"nom-de-la-variable-à-abréger": {
"Titre long": "Abrev",
"Titre long 2": "Abrev2"
},
"nom-autre-variable-à-abréger": {
"Titre long 3": "Abrev3"
}
}
}
~~~
[Pour *Pandoc*](https://pandoc.org/MANUAL.html#specifying-a-citation-style), son utilisation est assez simple : il suffit de reprendre cette structure, d'indiquer les noms de revues ou de collections telles qu'elles apparaissent dans la base de données et d'utiliser la métadonnée `citation-abbreviations` ou l'option correspondante pour indiquer au programme où se trouve le fichier d'abréviations à utiliser lors de son invocation. Sachant que les noms de revues sont représentés par la variable `container-title`, un fichier court mais complet pourrait ressembler à :
~~~
{
"default": {
"container-title": {
"Revue de l'histoire religieuse": "RHR",
"Jerusalem Studies in Arabic and Islam": "JSAI"
},
"collection-title": {
"Sources chrétiennes": "SC"
}
}
}
~~~
**Attention :** Jusqu'à la version 2.13 incluse, les titres sont sensibles à la casse. Par conséquent, si vous avec tantôt *Patrologia graeca*, tantôt *Patrologia Graeca*, il faut enregistrer une entrée pour chaque variante. Cette limitation va disparaître, probablement à la version 2.14 (voir [ici](https://github.com/jgm/citeproc/issues/45#event-4608462983)).
Pour *Zotero*, le cas est plus complexe. Il faut en effet transformer les titres complets selon les règles suivantes :
* Passer toutes les capitales en minuscules;
* Supprimer les mots suivants : and et y und la le the l' d';
* Supprimer les caractères suivants :! " # $ % & ' ( * ) + , . / :; < = >? @ [ \ ] ^ _ ` { | } ~;
* Lorsque plusieurs espaces se suivent, n'en conserver qu'un.
En outre, il faut placer en début de document l'objet suivant :
~~~
"info": {
"URI": "http://www.zotero.org/abbreviations/nom.json",
"name": "Nom du fichier d'abréviations"
}
~~~
Si l'on reprend l'exemple précédent, cela donne :
~~~
{
"info": {
"URI": "http://www.zotero.org/abbreviations/nom.json",
"name": "Nom du fichier d'abréviations"
},
"default": {
"container-title": {
"revue de histoire religieuse": "RHR",
"jerusalem studies in arabic islam": "JSAI"
},
"collection-title": {
"sources chrétiennes": "SC"
}
}
}
~~~
Pour que le fichier soit pris en compte, il doit être enregistré obligatoirement sous le nom *abbreviations.json* à la racine de votre répertoire de données, dont l'emplacement peut être trouvé via le menu *Édition > Préférences > Avancées > Fichiers et dossiers*. Il faut donc conserver l'ensemble des fichiers d'abréviations avec chacun son titre dans un répertoire distinct ou dans le même répertoire et copier celui que vous voulez utiliser en donnant ce nom à la copie. À la suite de cette opération, *Zotero* doit être redémarré pour que le changement de fichier soit pris en compte. Enfin, dans votre logiciel de traitement de texte, il faut ouvrir les préférences du greffon *Zotero* et cocher la case *Utiliser les abréviations MEDLINE des titres de revues* (voir [@fig:preferences-medline]); si cette option n'apparaît pas, c'est que le style n'utilise pas les formes abrégées.
Quoique je n'aie pas testé d'autres possibilités, d'autres variables peuvent être abrégées, par exemple l'éditeur (variable `publisher`). Si les abréviations que vous avez prévues ne fonctionnent pas, vérifiez que le style CSL que vous utilisez prévoie l'utilisation des formes abrégées (avec des commandes telles que `<text variable="container-title" form="short"/>`) : si ce n'est pas le cas, vous pouvez demander de l'aide ou une modification, en fonction de la provenance du style, soit à [*CSL/Clio*](#un-projet-évolutif-et-ouvert-aux-retours-des-utilisateurs), soit à [*Zotero*](#demander-de-laide-et-signaler-des-bugs).
![Préférences du document dans le greffon *Zotero* pour *LibreOffice*](preferences-medline.png){#fig:preferences-medline}
### Demander de l'aide et signaler des bugs
Si vous rencontrez un problème qui concerne *Zotero* et non *CSL/Clio*, vous pouvez tout d'abord consulter la [documentation](https://www.zotero.org/support/) et la [FAQ](https://www.zotero.org/support/kb), puis faire une recherche sur le [forum](https://forums.zotero.org/discussions). Si vous ne trouvez toujours pas de solution, [cette page](https://www.zotero.org/support/getting_help) vous indiquera comment demander de l'aide et [celle-ci](https://www.zotero.org/support/styles#reporting_style_errors) comment signaler des erreurs dans les styles hébergés par *Zotero*.
Si votre problème concerne *CSL/Clio* (enregistrement d'un ouvrage, défaut dans un style fourni par *CSL/Clio*, macro,...), voir [ici](#un-projet-évolutif-et-ouvert-aux-retours-des-utilisateurs).
## Enregistrement des documents selon les conventions de *CSL/Clio*
Cette section passe en revue les stratégies d'encodage propres à *CSL/Clio*. Pour plus de clarté, vous pouvez vous référer à la [collection de test](https://bastien-dumont.onmypc.net/git/bdumont/CSL-Clio/raw/branch/master/Tests-Data/BIBLIO_CSL-Tests.json) du projet, que vous pouvez télécharger et importer dans *Zotero*.
### Rôles
L'indication des rôles pose généralement peu de problèmes. Le cas des sources primaires mis à part, il suffit de respecter trois règles :
* Un éditeur d'ouvrage collectif doit être indiqué comme *Éditeur* (voir cependant [ci-dessous](#sources-primaires) le cas d'une source publiée dans un ouvrage collectif);
* Un collaborateur doit être désigné comme *Directeur de collection* : en effet, CSL ne prévoit pas de variable `collaborator`, aussi le champ *Collaborateur* de *Zotero* n'est-il pas pris en compte par les processeurs;
* Si une notice relative à un article contenu dans un ensemble plus vaste porte la mention d'un collaborateur, celui-ci est toujours considéré comme ayant collaboré à la rédaction du document sur lequel porte la notice, non de l'ensemble dans lequel il est publié. Par exemple, l'enregistrement reproduit dans la [@fig:collaborateur-avec-container] est rendu ainsi selon les normes de la *Revue des études byzantines* (en utilisant un [fichier d'abréviations](#listes-dabréviations)) :
> P. [Andrist]{.smallcaps}, avec la collaboration de V. [Déroche]{.smallcaps}, Questions ouvertes autour des *Dialogica polymorpha antiiudaica*, dans C. [Zuckermann]{.smallcaps} (éd.), *Constructing the Seventh Century* (TM 17), Paris 2013, p. 926.
![Enregistrement d'un article écrit en collaboration dans *Zotero*](collaborateur-avec-container.png){#fig:collaborateur-avec-container}
### Sources primaires
Le type d'une source primaire est celui de la publication qui la contient. Les informations relatives à cette publication sont enregistrées normalement, à l'exception des points suivants :
* L'auteur de la publication est indiqué comme éditeur ou traducteur; pour certains types, comme *Thèse*, cette information doit être enregistrée dans *Extra*;
* Le champ *Auteur* doit être réservé à l'auteur de la source;
* Si la source est publiée dans un chapitre d'ouvrage collectif, l'éditeur du livre doit être renseigné dans le champ *Auteur du livre*;
* Si la source est publiée dans une compilation d'articles d'un ou plusieurs auteurs sans qu'il n'y ait d'éditeur, les auteurs du livre doivent être enregistrés dans *Extra* avec la variable `container-author` (voir [@fig:enregistrement-doctrina-jacobi]);
* *Titre abrégé* est interprété comme le titre abrégé de la source, non de la publication.
Les informations suivantes peuvent être ajoutées :
* L'auteur de la source doit être renseigné dans le champ *Auteur*;
* Si le nom de l'auteur de la source doit être abrégé dans certaines circonstances (p. ex. Muḥammad b. Jarīr b. Yazīd al-Ṭabarī, à abréger en al-Ṭabarī), il faut saisir la forme abrégée dans le champ unique de *Auteur* (voir ci-dessous) et la forme longue dans *Extra* comme valeur de la variable `original-author`;
* Dans le cas contaire, transformer le champ de saisie en champ unique en cliquant sur le symbole à gauche du bouton « supprimer ».
* Le titre de la source doit être renseigné dans *Extra* comme valeur de la variable `annote`;
* Si le titre de la source et celui de la publication sont redondants, utilisez la variable `year-suffix` dans *Extra* avec une valeur telle que « titre redondant ». Selon le style utilisé, cela conduira à afficher seulement l'un des deux titres dans la bibliographie.\
**Attention :** La variable `year-suffix` doit être réservée à cet usage;
* Indiquer les noms de répertoires dans *Extra* avec la variable `references` (par exemple : `references: CPG 1536`). La référence sera affichée telle quelle dans la bibliographie : s'il vous faut une espace insécable entre le nom du répertoire et le numéro, il espace doit être insécable dans votre enregistrement. Notez que CSL permet seulement d'afficher ou non cette variable, pas de choisir entre plusieurs valeurs.
Les champs *Éditeur* et *Traducteur* ne sont pas disponibles pour certains types de documents dans l'interface de *Zotero*. Quand vous enregistrez, par exemple, une source publiée dans une thèse, vous devez renseigner les variables `editor` et `translator` dans *Extra*.
Si vous avez besoin de vous référer à la publication en tant que telle (par exemple pour citer l'introduction de l'éditeur), enregistrez une notice distincte qui ne contient pas la référence à la source éditée et où l'éditeur est enregistré dans le champ *Auteur*.
Vous trouverez un exemple assez complet dans la [@fig:enregistrement-doctrina-jacobi].
![Enregistrement de la *Doctrina Jacobi* dans *Zotero*](enregistrement-doctrina-jacobi.png){#fig:enregistrement-doctrina-jacobi}
### Manuscrits
Pour un manuscrit, renseigner :
* Le nom de la ville de conservation dans *Lieu*;
* La bibliothèque dans *Archive*;
* Le dépôt dans *Localisation dans l'archive*;
* Le numéro dans *Cote*;
* La référence dans un catalogue dans *Catalogue de bibl.*;
* L'identifiant dans un répertoire (comme Diktyon) dans *Extra* comme valeur de la variable `scale`;
* La forme abrégée de la référence au manuscrit dans *Extra* comme valeur de la variable `container-title-short` et/ou une forme standard (pas utilisée directement par les styles) comme valeur de `container-title` (voir le dernier paragraphe).
**Attention :** Les valeurs entrées dans *Catalogue de bibl.* et `scale` seront affichées telles quelles. Si vous souhaitez insérer une espace insécable, il convient de le faire dans la base de données bibliographique. Notez que certaines macros *LibreOffice* appliquent une mise en forme supplémentaire quand elle est requise (par exemple, pour la *Revue des Études byzantines*, les chaînes de caractères « CPG » et « BHG » sont mises en italiques).
Cette stratégie d'encodage laisse libres les variables `annote` et le champ *Titre abrégé* pour un éventuel nom de source. Le champ *Titre* peut être utilisé librement (par exemple pour afficher la référence au manuscrit dans le panneau central de *Zotero*) car il n'est pas utilisé pour la mise en forme des citations.
Tous les éditeurs ne suivent pas les mêmes conventions pour désigner les manuscrits. Il est donc possible que vous deviez rédiger plusieurs notices pour un même manuscrit si vous les citez dans des publications soumises à des normes différentes. Alternativement, vous pouvez enregistrer une référence standard comme valeur de la variable `container-title` et indiquer pour chacun de vos travaux la forme abrégée à utiliser dans une [liste d'abréviations](#listes-dabréviations).
![Enregistrement d'un manuscrit avec abréviation selon les normes de la REB](mss-reb.png){#fig:mss-reb}
![Enregistrement d'une source inédite](mss-source.png){#fig:mss-source}
### Mémoires et thèses
Dans le type *Thèse*, indiquer la nature du mémoire dans *Type* (Thèse de doctorat, PhD dissertation, Mémoire de Master,...).
### Actes de colloque, revues, sites webs, blogs
CSL prévoit des types spécifiques pour les publications dans des actes de colloques, des revues, ou sur des sites webs et des blogs, mais pas pour les contenants eux-mêmes, sauf dans le cas des ouvrages collectifs qui peuvent être définis comme des livres dotés d'éditeurs. Si vous souhaitez enregistrer un document relevant d'un de ces types non prévus, vous pouvez créer une notice avec le type de contenu correspondant (*Article de colloque*, *Article de revue*,...) et ne renseigner que les informations qui concernent le contenant, comme dans la [@fig:actes-colloque]. Dans ce cas, le champ *Titre abrégé* sera associé, selon les types, au champ *Titre du livre*, *Titre des actes*, etc... L'inconvénient est qu'aucun titre n'apparaîtra dans le panneau central de *Zotero*.
Pour les actes de colloque, vous pouvez indiquer comme valeur de la variable `scale` la suite de caractères à introduire entre le titre des actes et l'intitulé du colloque pour les styles qui les placent l'un à la suite de l'autre. Si cette suite de caractères commence ou finit par une espace, comme dans la [@fig:actes-colloque], elle doit être enclose dans des [balises](#indications-de-mise-en-forme-dans-une-valeur-de-champ) pour que l'espace ne soit pas supprimée automatiquement par *Zotero*. En règle générale, il est préférable d'utiliser à cet effet la balise `<span style="font-variant:small-caps;">...</span>`, qui ne modifie pas le rendu visuel si les caractères qu'elle encadrent ne disposent pas d'une version en petites capitales.
![Enregistrement d'actes de colloque dans *Zotero*](actes-colloque.png){#fig:actes-colloque}
### Numéros spéciaux de revues
Il n'est pas possible, dans *Zotero*, d'indiquer le titre d'un numéro spécial de revue. Dans ce cas, vous pouvez enregistrer l'article comme un chapitre de livre en utilisant les conventions suivantes :
* Renseigner le titre du numéro spécial comme titre du livre;
* Indiquer le nom de la revue dans le champ *Collection*;
* Renseigner le numéro de la revue dans *Numéro dans la collection*;
* S'il y a un numéro de fascicule, l'indiquer dans *Extra* comme valeur de *issued*.
### Documents traduits
Pour des traductions de la littérature secondaire, on indiquera :
* Le nom du traducteur dans *Traducteur*;
* La langue accompagnée de la préposition dans *Extra* comme valeur de `original-publisher`;
* Le lieu de publication de l'édition originale comme valeur de `original-publisher-place`;
* Le titre d'origine comme valeur de `original-title`;
* La date de la publication d'origine comme valeur de `original-date` (suivant les mêmes règles que [la variable `issued`](#intervalles-de-dates)).
Notez que le détournement de la variable `original-publisher` rend impossible l'enregistrement de l'éditeur de la publication originale. Si un style requiert cette information, il est envisageable d'adopter un traitement *ad hoc* pour cette variable, ce qui impliquerait de créer des [enregistrements parallèles](#créer-plusieurs-enregistrements-dun-même-document).
![Ouvrage traduit de l'anglais dans *Zotero*](litt-sec-traduite.png){#fig:litt-sec-traduite}
### Documents dont le titre est traduit
Pour les documents écrits dans certaines langues telles que l'hébreu, il est fréquent d'indiquer un titre traduit au lieu du titre original dans la bibliographie. Dans ce cas, vous pouvez indiquer la langue comme valeur de la variable `jurisdiction` dans *Extra*, par exemple pour qu'elle soit affichée entre parenthèses à la suite du titre traduit. S'il faut ajouter « en » (par exemple, « en hébreu »), le style s'en chargera.
\noindent Exemple :
> jurisdiction: hébreu
### Ouvrages en plusieurs volumes
Trois cas de figure sont à envisager :
* Pour citer l'ouvrage entier, il suffit d'indiquer le nombre de volumes dans le champ dédié. Si la publication est échelonnée sur plusieurs années, voir [comment indiquer un intervalle d'années](#intervalles-de-dates);
* Pour citer un volume de l'ouvrage qui ne porte pas lui-même de titre spécifique, il faut enregistrer le titre du livre dans *Titre* et le numéro de volume dans *Volume* (voir [@fig:volume-sans-titre-particulier]). Dans ce cas, à moins que vous ne souhaitiez indiquer l'année précise de publication du volume cité dans le cas d'un ouvrage paru en plusieurs fois, vous pouvez aussi utiliser la notice de l'ouvrage entier et indiquer le volume comme localisateur au moment de l'ajout de la citation, comme dans la [@fig:citation-volume];
* Pour citer un volume qui porte son propre titre, indiquer le titre du volume dans *Titre*, le numéro de volume dans *Volume* et le titre du livre entier dans *Extra* comme valeur de la variable `container-title` (voir [@fig:volume-avec-titre-particulier]).
![Volume sans titre particulier dans *Zotero*](volume-sans-titre-particulier.png){#fig:volume-sans-titre-particulier}
![Volume indiqué dans la fenêtre classique d'ajout de citation de *Zotero* (mise en forme selon les normes de la REB)](citation-volume.png){#fig:citation-volume}
![Volume avec un titre particulier dans *Zotero*](volume-avec-titre-particulier.png){#fig:volume-avec-titre-particulier}
### Patrologie
Les sources publiées dans la *Patrologie grecque*, la *Patrologie latine* et la *Patrologie orientale* doivent être enregistrées dans le type *Article de revue* :
* Il est possible de renseigner le titre de la source à la fois comme valeur de la variable `annote` et dans le champ *Titre* de manière à ce qu'il s'affiche dans le panneau central de *Zotero*; dans ce cas, il faut utiliser la variable `year-suffix` comme expliqué [à propos des sources primaires](#sources-primaires);
* Le titre de la collection doit être renseigné dans *Publication* et le volume dans *Volume*;
* Les numéros de colonnes doivent être renseignés comme valeur de la variable `chapter-number`.
### Apostrophes et guillemets
Là où vous utilisez les caractères « droits » ASCII `"` et `'`, les processeurs `citeproc-js` et `citeproc` choisissent automatiquement les guillemets typographiques correspondant à la langue dans laquelle vous écrivez (en français, « ou » et '); de même si vous utilisez les guillemets droits pour mettre en évidence une citation à l'intérieur d'une citation (`"il dit 'courir', je dis 'marcher'"` →  il dit “courir”, je dis “marcher” »*). Il convient de prendre garde à trois points :
* Si vous utilisez une [liste d'abréviations](#listes-dabréviations), veillez à ce que les enregistrements dans *Zotero* soient cohérents avec elle. En particulier, si vous importez les références à partir de votre navigateur ou utilisez des copier-coller, certains titres de revues ou de collections risquent de contenir des apostrophes typographiques^[
Dites aussi guillemets-apostrophes, car elles recouvrent aussi bien les apostrophes que les guillemets ouvrants à l'intérieur de citations en anglais. Voir le tableau répertoriant les différents encodages de l'apostrophe [sur Wikipedia](https://fr.wikipedia.org/wiki/Apostrophe_(typographie)#Informatique).
] : si vous ne les remplacez pas par des apostrophes ASCII (touche 4 du clavier AZERTY), le processeur ne reconnaîtra pas ces titres comme faisant partie de la liste d'abréviations^[
À moins, bien entendu, que vous n'y ayez également introduit ces apostrophes typographiques, auquel cas il faudra qu'elles soient présentes dans tous les enregistrements du titre correspondant dans *Zotero*.
]. Heureusement, la différence de forme entre les apostrophes ASCII et les apostrophes typographiques dans la police utilisée par *Zotero* (trait droit contre virgule) aide à repérer les anomalies;
* Dans les titres écrits en langues étrangères, si vous souhaitez que la typographie d'origine soit respectée, vous devez utiliser les caractères correspondants. Par exemple :
> `“Semper Vagus”: The Anatomy of a Mobile Monk`
et non :
> `"Semper Vagus": The Anatomy of a Mobile Monk`
lequel serait rendu ainsi dans un article en français :
>  Semper Vagus »: The Anatomy of a Mobile Monk*^[
Le champ *Langue* devrait permettre, dans un futur plus ou moins lointain, de différencier la mise en forme en fonction de la langue de rédaction de l'ouvrage, comme dans [Juris-M](https://juris-m.github.io/).
];
* Dans les titres écrits dans la langue dans laquelle vous rédigez, il est préférable d'utiliser les guillemets ASCII de manière à ce qu'ils soient convertis en guillemets intérieurs si le style utilisé place lui-même les titres entre guillemets.
**Attention :** `citeproc` de Pandoc convertit aussi les guillemets typographiques intérieurs du français (“ et ”). Prévoyez un filtre à appliquer après `citeproc` pour rétablir la graphie souhaitée dans les passages correspondants.
### Numéros en chiffres romains
Les numéros en chiffres romains (notamment les pages dans les introductions) doivent être écrits en minuscules dans le champ *Pages* ou la valeur de `chapter-number` : ils seront rendus, suivant les styles, par des petites capitales ou des majuscules.
Dans le gestionnaire de bibliographie, les numéros de volume doivent toujours être enregistrés en chiffres arabes : selon les styles, ils seront rendus en chiffres arabes ou romains.
### Travail annoncé ou en cours de publication
Pour citer une référence qui n'est pas encore parue, vous pouvez indiquer son statut comme valeur de la variable `status` dans *Extra* (p. ex. « à paraître »).
### Classement de la bibliographie en catégories
Les styles *CSL/Clio* classent la bibliographie par catégories : d'abord les sources, puis la littérature secondaire. Lorsque le style le requiert, des regroupements supplémentaires peuvent être opérés : par exemple, le style de la *Revue des études byzantines* génère en premier une liste des manuscrits cités. Pour ajouter des critères de classement supplémentaires, que ce soit dans les sources ou la littérature secondaire, vous pouvez utiliser la variable `keyword` dans *Extra*. Vous pouvez même créer des sous-catégories en ajoutant les mots-clefs de rang inférieur à la suite des mots-clefs de rang supérieur.
\noindent Exemples :
> keyword: grec\
> keyword: géorgien\
> keyword: grec papyrus\
> keyword: grec chronique\
> keyword: monastères économie
Les entrées seront regroupées en sections selon les mots-clefs associés et placées dans l'ordre alphabétique; il vous appartiendra ensuite d'insérer les titres correspondants et, éventuellement, de les réordonner. Comme pour toute modification manuelle, vous devez auparavant vous assurer que vous n'avez plus besoin d'utiliser l'outil d'ajout ou de modification de citation de *Zotero*.
## Pratiques à éviter
J'ai tenté de lister ici quelques pratiques que l'on adopte parfois spontanément et qui s'avèrent contre-productives. Je me suis en grande partie inspiré de mon expérience : n'hésitez pas à me faire part de vos malheurs pour enrichir cette section!
### Faire confiance à l'enregistrement automatique des références
*Zotero* propose [différents outils](https://www.zotero.org/support/adding_items_to_zotero) qui permettent d'enregistrer automatiquement des références dans le gestionnaire de bibliographie. Outre les modifications requises par *CSL/Clio*, il convient d'être attentif aux points suivants :
* Si une valeur est renseignée dans le champ *URL*, elle risque d'être utilisée par certains styles : ne la laissez que si vous souhaitez ce comportement;
* Si vous laissez l'URL, supprimez l'indication de proxy de votre institution;
* Mêmes remarques pour les DOI; il faudra de plus en retrancher la partie qui ne relève pas de [l'identifiant proprement dit](https://en.wikipedia.org/wiki/Digital_object_identifier#Nomenclature_and_syntax) (p. ex. *https://doi.org/* ou *doi:*);
* Vérifiez que les noms soient renseignés sous la forme la plus généralement acceptée et de manière cohérente au sein de votre base de données : les notices d'autorité [de la Bibliothèque nationale de France](https://data.bnf.fr/) ou de la [Bibliothèque du Congrès](https://authorities.loc.gov) vous permettent de savoir quelles sont les formes attestées et quelle est la forme standard du nom de nombreux auteurs;
* Dans les catalogues de bibliothèques, les titres sont souvent renseignés selon des normes uniformes (p. ex. titre et sous-titre séparés par deux points, suppression du *title case*) : vous aurez souvent besoin de les retoucher pour restituer leur typographie originelle;
* Faites attention aux caractères employés pour les [apostrophes et les guillemets](#apostrophes-et-guillemets);
* Vérifiez qu'il n'y ait pas de renseignements manquants.
### Mettre en forme les informations en fonction d'un style donné
Lorsque l'on renseigne une notice bibliographique, on peut être tenté de ne pas renseigner certaines informations ou de les mettre au format de la revue ou de l'éditeur auquel on compte soumettre son manuscrit. Cette pratique va à l'encontre du principe de séparation entre les données bibliographiques et leur mise en forme et peut poser des problèmes si vous citez le document avec un style que vous n'aviez pas prévu à l'origine, ou même parfois avec le style que vous aviez prévu.
De manière générale, à l'exception de l'URL quand elle renvoie au portail sur lequel vous avez téléchargé un article, soyez le plus complet possible : cela vous évitera de devoir reprendre toute votre bibliographie pour ajouter des informations que vous ne pensiez pas utiles. Dans le même ordre d'idées, n'abrégez pas les références : vous pourrez définir des [listes d'abréviations](#listes-dabréviations) ou utiliser des [macros](#macros) adaptées à chaque style, voire à chacun de vos écrits. N'hésitez pas non plus à renseigner des dates complètes (par exemple avec l'indication du mois pour une revue qui paraît plusieurs fois par an) : CSL permet de définir pour chaque style les parties de la date qui seront affichées.
N'abrégez pas les prénoms. Même si vous pensez devoir toujours les présenter sous une forme abrégée dans votre manuscrit, il est important qu'ils soient renseignés sous leur forme pleine dans le gestionnaire de bibliographie. D'une part, cela permet au processeur d'afficher la forme complète du prénom lorsque deux auteurs cités partagent le même nom et les mêmes initiales. D'autre part, si vous avez renseigné le même auteur tantôt avec un prénom abrégé, tantôt avec le prénom complet, et que vous citiez deux notices portant des formes différentes, le processeur considérera les deux entrées comme désignant des individus distincts partageant les mêmes initiales et activera le mécanisme de désambiguïsation.
Il y a toutefois quelques cas, inévitables, où la valeur que vous entrerez sera liée aux contraintes d'un style : par exemple, si vous citez les mêmes références dans des articles écrits dans des langues différentes, si certains éditeurs souhaitent que l'on indique le titre d'un article en hébreu dans sa graphie d'origine, et d'autres en translittération. Dans le futur, CSL devrait pouvoir permettre l'enregistrement de valeurs alternatives pour une même variable. En attendant, je vous conseille de vous en tenir à une convention de votre choix dans la bibliographie thématique que vous constituez au fil de vos lectures et de créer une collection spécifique pour chacun de vos travaux dans lesquelles vous pourrez placer des versions modifiées de vos notices bibliographiques, comme je l'ai décrit [plus haut](#créer-plusieurs-enregistrements-dun-même-document).
# Automatiser la mise en forme
Une fois que l'on a constitué sa base de données bibliographique, il faut s'en servir! Dans cette partie, nous verrons comment installer et utiliser les ressources fournies par *CSL/Clio*.
## Installation
### Où trouver les fichiers
#### Sur Zenodo
_CSL/Clio_ dispose d'une [communauté sur Zenodo](https://zenodo.org/communities/csl-clio/?page=1&size=20). Vous pourrez y trouver le manuel, les feuilles de styles CSL avec leurs documentations particulières et le fichier OTX pour les macros LibreOffice.
#### Sur le dépôt du projet
Vous pouvez également cloner et mettre à jour régulièrement le [dépôt du projet](https://bastien-dumont.onmypc.net/git/bdumont/CSL-Clio) pour avoir tous les fichiers réunis en une seule arborescence. Elle est constituée comme suit :
* **CSL** : styles CSL
* **[Revues...]** : différents répertoires nommés d'après le nom de la revue ou de l'éditeur correspondant
* **\*.csl** : fichier CSL
* **\*.md** : fichier source de la documentation spécifique à ce style
* **\*.pdf** : version PDF de cette documentation
* **\*.html** : fichiers de validation
* **Documentation** : documentation générale du projet
* **GUIDE_CSL-Clio.md** : source de ce guide
* **GUIDE_CSL-Clio.pdf** : version PDF
* **\*.png** : images utilisées dans ce guide
* **Macros**
* **LibreOffice**
* **ApresZotero** : bibliothèque de macros (non compressée)
* **\*.otx** : version compressée de la bibliothèque de macros à installer comme extension dans _LibreOffice_
* **Filtres** : filtres pour _Pandoc_
* **Tests-Data** : fichiers utilisés pour les tests de validation des styles
* **Utilitaires** : divers fichiers utilisés pour la maintenance (dont le makefile du projet)
> Si vous n'avez jamais utilisé Git, vous pouvez commencer par lire, sur [cette page](https://docs.gitlab.com/ee/gitlab-basics/start-using-git.html), les sections _Requirements_, _Git terminology_ et _Clone a repository_.
>
> Pour créer une copie locale du dépôt, utilisez la commande :
> ```
> git clone\
> 'https://bastien-dumont.onmypc.net/git/bdumont/CSL-Clio.git'
> ```
>
> Pour obtenir la liste des fichiers qui ont été ajoutés ou modifiés sur le dépôt depuis la dernière mise à jour de votre copie locale (et donc, pour les fichiers CSL, ceux que vous devrez [réimporter dans *Zotero*](#fichiers-csl) si vous la mettez à jour) :
> ```
> git diff --name-only origin
> ```
>
> Pour mettre à jour votre copie locale du dépôt :
> ```
> git fetch
>```
### Fichiers CSL
Pour importer les fichiers dans *Zotero*, utilisez le menu *Édition* > *Préférences*, cliquez sur le bouton `+` et sélectionnez le style à ajouter. Il apparaîtra sous la forme « CSL/Clio — Nom ».\
**Attention :** Vous devrez répéter cette opération à chaque fois que le style sera mis à jour. <!-- Mises à jour et ajouts de styles annoncés sur la liste mail. -->
### Filtres
Voir le [manuel de *Pandoc*](https://pandoc.org/MANUAL.html).
### Macros
Pour installer ou mettre à jour les macros dans *LibreOffice*, naviguez dans le menu *Outils > Gestionnaire des extensions*, cliquez sur *Ajouter*, puis sélectionnez le fichier OTX. Cette extension installera les macros de toutes les revues.
## Utilisation des greffons *Zotero* pour les logiciels de traitement de texte
Si vous utilisez un gestionnaire autre que *Zotero*, il est probable qu'il ait aussi développé un greffon pour *LibreOffice*. Voyez les instructions sur le site du logiciel ou le manuel d'utilisation. Il devrait être assez aisé d'adapter les instructions ci-dessous, car *citeproc*, *citeproc-js* et sans doute d'autres processeurs distinguent de la même manière entre la *localisation*, le *préfixe* et le *suffixe* de la citation.
### Ajout d'une citation
#### Chiffres arabes ou romains
Contrairement au champ *Volume*, par exemple, dans la base de données bibliographique, les valeurs que vous entrez dans la fenêtre d'ajout de citation pour la localisation du passage cité (volume, page, ligne, folio,...) ne sont pas traitées comme des nombres, mais comme du texte. Par conséquent, si vous souhaitez qu'un numéro de volume, de page ou autre soit indiqué en chiffres romains, il faut le renseigner en caractères de bas de casse latins correspondants; si vous souhaitez qu'il soit affiché comme un chiffre arabe, en utilisant les chiffres arabes correspondants.\
**Attention :** En principe, le processeur doit rendre les chiffres romains en minuscules, majuscules ou petites capitales selon les instructions données dans la feuille de style. Cependant, le processeur de *Zotero* a un bug à ce niveau, si bien que, dans la fenêtre d'ajout de citation, vous devez entrer les chiffres romains en utilisant directement la casse souhaitée, comme dans la [@fig:citation-volume]. Ce bug a été signalé et corrigé dans `citeproc-js`; il faut attendre que *Zotero* mette à jour sa version du processeur. En revanche, la mise en forme des minuscules en petites capitales fonctionne.
#### Localisation selon plusieurs critères
Lorsque vous utilisez plusieurs critères pour localiser un passage (par exemple la page et la ligne, ou le volume et la page), seul le premier critère peut entrer dans le champ dédié : l'autre doit être mis en forme directement dans le suffixe de la citation (voir [@fig:double-locator-zotero]). De plus, si vous voulez utiliser les macros ou les filtres de post-traitement, les numéros de pages avec lignes doivent être séparés par un trait d'union encadré d'espaces, comme dans le [tableau @tbl:multicritere] : les macros ou les filtres se chargeront d'opérer la bonne mise en forme.
#### Repères de texte
Dans le cas où l'on cite un repère de texte au sein d'une page ou d'une colonne (par exemple pour la *Patrologie grecque*), on peut indiquer la page (ou la colonne) dans le champ en sélectionnant l'étiquette appropriée, puis renseigner le bloc (A-D) ou la ligne comme une ligne dans *Suffixe* (i. e. précédé de « , l. »). La macro de chaque style s'occupera de la mise en forme.
\noindent Exemples (on indique en gras le nom de chacun des champs de la fenêtre classique d'ajout de citation dans *Zotero*) :
| **Item sélectionné** | **Page** | **Suffixe** |
|:---------------------|:---------|---------------------:|
| Dialogue | 5 | , l. 4-5 |
| Dialogue | 5-6 | |
| Dialogue | 5 | , l. 4 - p. 6, l. 12 |
| PG 14 | 1208 | , l. A5-B3 |
| PG 14 | 1208 | , l. A-B |
| PG 14 | 1208 | , l. A - 1211, l. C |
: Utilisation des champs de la fenêtre d'ajout de citation pour des citations multicritères {#tbl:multicritere}
#### Divisions internes d'une source
Pour indiquer une localisation en fonction des divisions internes d'une source en plus de la localisation dans la publication, on doit indiquer la localisation selon les divisions internes dans le champ dédié en sélectionnant l'étiquette *Section* et mettre la pagination en suffixe comme dans la [@fig:citation-source-section]. Vous pouvez utiliser de la même manière l'étiquette *Numéro* : en principe, elle renvoie à un fascicule d'une revue pluriannuelle (`issue`), mais, dans le cas d'une source composée comme une collection, elle est utilisée dans *CSL/Clio* pour désigner par son numéro un des textes qui la constituent (par exemple dans un ouvrage de questions-réponses, des apophtegmes, un recueil épigraphique,...).\
**Attention :** Lorsque l'étiquette « section » est utilisée pour la localisation avec un ouvrage contenant une source primaire (i. e. où la variable `annote` est utilisée), les styles de *CSL/Clio* l'identifient comme faisant référence aux divisions internes de la source et la placent à l'endroit indiqué par les directives de la revue ou de l'éditeur. Si vous voulez vraiment renvoyer à une section dans un tel ouvrage, utilisez le champ *Suffixe*.
![Localisation selon les divisions internes d'une source dans la fenêtre classique d'ajout de citation du greffon *Zotero* pour *LibreOffice* (mise en forme selon les normes de la REB)](citation-source-section.png){#fig:citation-source-section}
#### Citations multiples
Pour assurer le plus de souplesse possible, les styles *CSL/Clio* ne prévoient pas d'insérer automatiquement des délimiteurs entre les différentes parties d'une citation : vous devez donc déterminer vous-même la manière dont elles s'articulent entre elles en utilisant les champs *Préfixe* et *Suffixe*, comme dans la [@fig:sources-multiples].
![Sources multiples dans la fenêtre classique d'ajout de citation](sources-multiples.png){#fig:sources-multiples}
#### Mise en forme des intervalles d'années et de numéros de collection
CSL n'offre pas de moyen standard de mettre en forme une information telle que « de 2006 à 2008 » ou « du numéro 2 à 4 » (dans une collection) autrement que _20062008_ et _24_, avec un semi-cadratin. Si vous souhaitez utiliser, par exemple, un trait d'union à la place de ce délimiteur par défaut, vous avez deux solutions :
* _citeproc-js_ utilise une variable non standard `year-range-delimiter` qui fonctionne aussi pour les numéros dans des collections^[Voir la fonction `fixupRangeDelimiter` dans [le code source](https://github.com/Juris-M/citeproc-js/blob/aa2683f48fe23be459f4ed3be3960e2bb56203f0/src/util_number.js#L619).]. Dans la feuille de style utilisée, vous pouvez donc ajouter la ligne suivante après `<terms>` : `<term name="year-range-delimiter">-</term>`;
* Si vous utilisez un autre processeur que _citeproc-js_, vous devrez corriger manuellement le résultat ou, dans le cas de _Pandoc_, écrire un filtre.
### Mise en forme de la bibliographie
N'insérez la bibliographie que quand vous n'avez plus à retoucher le document. Dans votre logiciel de traitement de texte, une fois la bibliographie insérée, vous pouvez supprimer un partie des références en positionnant le curseur dans la bibliographie et en cliquant sur le bouton *Insérer une bibliographie*.
Certains styles mettent en forme la bibliographie de manière à ce qu'elle puisse ensuite être utilisée par certaines macros de post-traitement. Par exemple, la macro de la *Revue des études byzantines* abrège la première référence à item cité dans la bibliographie (qui est en réalité une liste d'abréviations); à cette fin, l'abréviation et la référence complète sont séparées par le caractère « | » pour permettre un meilleur traitement par la macro correspondante. Dans ce cas, la même macro s'occupera aussi la mise en forme finale (dans le cas cité, elle remplace les caractères « | » par «  :  » dans la bibliographie).
Une fois les éventuelles macros appliquées, vous pouvez procéder, le cas échéant, à l'insertion de [titres de sections dans la bibliographie](#classement-de-la-bibliographie-en-catégories).
## Utilisation des outils de post-traitement
### Filtres
Voir le [manuel de *Pandoc*](https://pandoc.org/MANUAL.html).
### Macros
Les macros ne doivent être appliquées qu'après que vous ayez terminé de travailler sur votre document et actualisé les styles sur *Zotero*, et de préférence sur une copie. Si vous travaillez sur *Word*, cela signifie que vous ne devez pas retoucher le texte après avoir ouvert le document dans *LibreOffice*. Il est recommandé de ne pas ouvrir le document lui-même dans *LibreOffice*, mais une copie. Si vous rédigez votre document dans *LibreOffice*, vous ne devez pas le retravailler avec avoir exporté votre document ODT en DOCX pour y appliquer les macros. Si vous vous rendez compte que vous devez apporter des modifications au texte autres que des retouches cosmétiques, il est généralement préférable de les faire dans le document original, puis de répéter le processus d'export et d'application des macros.
Dans la fenêtre où votre document est ouvert, cliquez sur *Outils > Macros > Exécuter la macro*. Sélectionnez la macro correspondant à la revue ou à l'éditeur de votre choix, comme le montre la [@fig:selection-macro-revue].
![Sélection d'une macro dans *LibreOffice*](selection-macro-revue.png){#fig:selection-macro-revue}
Deux répertoires peuvent vous intéresser :
* *ApZotRevues* : Vous y trouverez les macros à exécuter pour adapter la mise en forme à la revue ou à l'éditeur de votre choix;
* *ApZotUtilities* : Contient pour l'instant deux macros qui peuvent avoir leur utilité :
* *CountOccurrencesPerReference* : Cette macro est à appliquer sur le document ODT, avant la conversion en DOCX. Elle crée à la fin de votre document une liste de l'ensemble des références citées triées par nombre d'occurrences. Elle ne fonctionne pas sur un document DOCX. Le résultat n'est pas agréable à lire, mais il peut aider à décider pour quelles références vous allez fournir une liste d'abréviations; de toutes façon, cette liste est destinée à être supprimée;
* *ChangeGreekFont* : J'ai créé cette macro à un moment où la *Revue des Études byzantines* demandait encore à ce qu'on utilise une police différente du texte principal pour le grec. Vous pouvez modifier la police choisie en éditant le module *ApZotGlobalOptions* et en remplaçant `IFAO-Grec Unicode`.
Certaines macros requièrent quelques interventions manuelles après leur application ou n'effectuent pas la totalité des modifications nécessaires pour rendre le document conforme aux directives de l'éditeur. Veuillez vous référer à la documentation fournie au format PDF avec le fichier CSL correspondant.
# Enrichir la collection _CSL/Clio_
Si vous souhaitez contribuer à _CSL/Clio_, bienvenue! Voici quelques tâches que vous pouvez accomplir, de celle qui requiert le moins de connaissances informatiques à celle qui en demande le plus. Dans tous les cas, contactez-moi auparavant à l'adresse `csl-clio@posteo.net` pour en discuter. Vous pouvez également consulter les [ticket](https://bastien-dumont.onmypc.net/git/bdumont/CSL-Clio/issues) pour voir si un problème n'attend pas d'être résolu.
## Traduire la documentation
N'hésitez pas à me contacter si vous souhaitez traduire ce manuel ou des documentations de styles. J'envisage d'accomplir ce travail moi-même, mais sans doute pas dans un futur proche!
## Traduire les styles existants
Les feuilles de style de CSL/Clio sont conçues pour être utilisées dans n'importe quelle langue. Si vous constatez que certains éléments ne sont pas bien rendus dans votre langue (ponctuation, mots-clefs tels que _éd._), n'hésitez pas à [le signaler](#un-projet-évolutif-et-ouvert-aux-retours-des-utilisateurs). Si vous souhaitez aider à traduire le style, veuillez suivre en outre les instructions ci-dessous.
Dans l'idéal, le mieux serait de consulter le fichier XML par défaut correspondant à votre langue à [cette adresse](https://github.com/citation-style-language/locales) et de copier dans un fichier à part les éléments `term` qu'il faut changer, comme dans l'exemple ci-dessous. Pour plus d'informations, voir [la section correspondante dans la spécification de CSL](https://docs.citationstyles.org/en/1.0.1/specification.html#terms).
```{=xml}
<term name="cited">op. cit.</term>
<term name="folio" form="short">
<single>f.</single>
<multiple>ff.</multiple>
</term>
<term name="editortranslator">édité et traduit</term>
```
Bien entendu, vous n'avez besoin d'indiquer que les éléments effectivement utilisés dans le style visé. Le plus simple est donc d'ouvrir le fichier CSL correspondant dans un éditeur de texte, de rechercher les occurrences de l'expression `term=` et de relever ses différentes valeurs. Ensuite, vous pouvez vous reporter au fichier XML par défaut pour voir quels sont les termes utilisés. Dans tous les cas, vérifiez aussi les sections `<!-- PUNCTUATION -->`, `<!-- ORDINALS -->` et `<!-- LONG ORDINALS -->`.
Lors de ce travail, veillez à prendre en compte le sens particulier des [variables détournées et spécialisées](#liste-des-variables-spécialisées) dans _CSL/Clio_.
## Programmer de nouveaux styles
La programmation d'un nouveau style n'est pas très compliquée. Il s'agit principalement de :
* Choisir le style qui se rapproche le plus de ce à quoi vous souhaitez parvenir;
* Copier et modifier son fichier de test HTML pour définir le rendu auquel vous souhaitez arriver ;
* _Optionnellement_, définir les filtres _Pandoc_ que vous souhaitez appliquer pour parvenir au fichier de test;
* Copier et modifier le fichier `.csl` jusqu'à ce qu'il produise le même résultat que votre fichier de test;
* Indiquer dans un fichier à part les tâches qui restent à effectuer sur le résultat produit par le fichier CSL.
Sauf impossibilité réelle, il est très vivement conseillé de faire vérifier votre fichier de test par l'éditeur et de l'interroger sur les points qui ne seraient pas précisés dans les instructions aux auteurs.
N'hésitez pas à me contacter si vous rencontrez des difficultés.
### Ressources de base
Si vous n'en avez pas encore, procurez-vous un bon [éditeur de texte](https://framalibre.org/recherche-par-crit-res?keys=%22%C3%A9diteur+de+texte%22+d%C3%A9veloppement), qui dispose de la coloration syntaxique pour XML, permette une navigation facile entre les balises et éventuellement valide en temps réel la conformité de votre fichier au [schéma CSL (format RNC)](https://raw.githubusercontent.com/citation-style-language/schema/v1.0.1/csl.rnc).
Consultez la [spécification de CSL](https://docs.citationstyles.org/en/1.0.1/specification.html#terms), en prenant en compte les modifications signalées dans ce manuel.
Quand vous pensez que votre style est fonctionnel (mais pas nécessairement terminé), si votre éditeur ne supporte pas la validation en temps réel, vous pouvez le soumettre au [validateur](https://validator.citationstyles.org/) pour vérifier qu'il soit bien conforme aux spécifications. Les choix propres à _CSL/Clio_ n'entraînent jamais une non-conformité aux spécifications.
Vous pouvez utiliser l'éditeur de styles intégré à *Zotero* pour faire des expériences et visualiser en direct les résultats de vos modifications. Il est accessible via le menu _Outils_ > _Développeur_ > _Style editor_.
En revanche, vous ne pouvez pas utiliser les [outils d'édition proposés sur le site de CSL](https://editor.citationstyles.org/about/).
Pour conduire les tests, vous avez le choix entre deux possibilités :
* Utiliser le Makefile de CSL/Clio, ce qui implique de disposer des programmes en ligne de commande utilisés;
* Créer un fichier ODT ou DOCX dans lequel vous insérerez une deux fois de suite une note de bas de page pour chaque item dans la bibliographie de test (la première pour tester une première citation, la seconde pour une citation subséquente), puis quelques tests supplémentaires pour les localisateurs, les _ibidem_, etc... Il faudra ensuite vérifier à la main qu'elle ne contienne pas d'erreurs.
Dans les deux cas, il faudra au préalable importer la [bibliographie de test](https://bastien-dumont.onmypc.net/git/bdumont/CSL-Clio/raw/branch/master/Tests-Data/BIBLIO_CSL-Tests.json) dans *Zotero*.
### Le code CSL de *CSL/Clio*
Suivant un principe éprouvé et largement appliqué en programmation, [le code des feuilles de style est modulaire](#créer-un-ensemble-de-styles-cohérents-et-interopérables), ce qui lui permet d'être lisible et facilement transformable. Le plus simple est donc de copier un fichier existant et de le modifier en respectant les principes suivants (que l'on comprendra mieux en étudiant ledit fichier) :
* Contrairement à l'usage courant dans les fichiers CSL, l'ordre des macros va de la plus générale à la plus précise : ainsi, un coup d'œil sur le début du fichier (macros `citation` et `bibliography`) donne une indication sur la logique d'ensemble, puis la poursuite de la lecture permet d'acquérir une compréhension de plus en plus précise;
* Les choix conditionnels et les instructions de mise en forme doivent être reléguées dans les macros de plus bas niveau possible. Par exemple :
* On n'indiquera pas dans la macro `citation` que le titre d'un article doit être indiqué en caractères droits et celui d'un livre en italiques : la macro `citation` contiendra un appel à la macro `publicationTitle`, qui elle-même contiendra ces informations;
* Dans `REB.csl`, la macro `publicationReference` appelle systématiquement `publicationTitle`. Ce n'est que dans la macro `publicationTitle` qu'apparaît l'instruction selon laquelle il ne faut rien afficher si la variable `year-suffix` est renseignée. Cela permet à la macro `publicationReference` d'indiquer seulement dans quel ordre sont affichés, le cas échéant, les différents composants de la citation, et par quels caractères ils sont séparés.
* Le nom d'une macro doit indiquer précisément ce qu'elle fait : `publicationTitle` s'occupe du titre principal d'une publication (et non d'une source), `titleInItalics` produit un titre en italiques;
* Par convention, les noms de macros doivent être en _camelCase_;
* Les macros doivent être courtes (entre 3 et 40 lignes). Dès que vous imbriquez des choix conditionnels ou que vous mêlez des informations sur des parties différentes de la citation (titre, auteur,...), demandez-vous si vous ne pourriez pas créer différentes macros pour gérer ces différents problèmes et les appeler dans votre macro principale. La logique d'ensemble n'en sera que plus claire;
* Reprenez le plus possible les titres de macros déjà existants, et donc la logique sous-jacentes. En particulier, essayez de conserver la division des citations en `sourceReference`, `publicationReference` et `digitalReference`, avec la subdivision de `sourceReference` en `sourceAuthor`, `sourceTitle` et `sourceIdentifier`, etc...
* Pour délimiter les différentes parties d'un bloc, enclosez-les dans des éléments `group` dotés d'un attribut `delimiter` plutôt que d'utiliser les attributs `prefix` et `suffix`.
### Les macros
Les macros _LibreOffice_ sont plus difficiles à programmer; d'autre part, comme la plus grande partie du code est commune à tous les styles, il devrait être moins nécessaire d'en créer de nouvelles. Le plus important est de bien indiquer dans un fichier à part les modifications qui restent à effectuer lorsque votre feuille de style a été appliquée : à partir de ces indications, il me sera facile de construire la macro correspondante.
En revanche, la création d'une version pour _Microsoft Word_ serait bienvenue.
# Annexes
## Liste des variables spécialisées
* `container-author` :
* Co-auteur d'un ouvrage dans lequel est publié une source :
* Éditeur d'un ouvrage dans lequel est publié une source.
* `keyword` : suite de mots-clefs utilisés pour opérer un tri secondaire des références;
* Localisateur (*locator*) `section` (à ne pas confondre avec la variable du même nom) : référence au passage cité selon les divisions internes de la source;
## Liste des variables détournées
* `annote` : titre d'une source;
* `collection-editor` : collaborateur;
* `chapter-number` : numéro de colonne;
* Localisateur (*locator*) `issue` : un numéro dans une source composée comme une collection (uniquement pour les sources);
* `jurisdiction` : langue de l'ouvrage original;
* `original-author` : forme complète d'un nom d'auteur long;
* `original-publisher` : syntagme à insérer dans « traduit... par X » pour un document de littérature secondaire traduit (ex : « de l'anglais »);
* `page` : pour un manuscrit dans la base de données bibliographique, numéro de folio :
* `references` : répertoire dans lequel est cité une source et numéro dans le répertoire;
* `scale` :
* Dans un document de type *Manuscrit* (`manuscript`), une référence dans un répertoire;
* Dans un document de type *Article d'actes de colloque* (`paper-conference`), chaîne de caractères à insérer le cas échéant entre le *Titre des actes* (`container-title`) et l'*Intitulé du colloque* (`event`).
* `verse` : verset ou vers;
* `year-suffix` : variable à renseigner si titre de la source et celui de la publication sont redondants.
## Liste des éléments des spécifications CSL ignorées par *CSL/Clio*
Cette liste contient tous les éléments qui, de fait, ne sont pas pris en compte par *CSL/Clio*. Il est possible que certains d'entre eux soient implémentés à l'avenir sur l'ensemble des styles s'il y a une demande en ce sens. D'autre part, l'utilisation d'un de ces éléments dans un style donné pour des besoins particuliers doit faire l'objet d'une explication dans la documentation associée.
* Rôles :
* `composer`
* `director`
* `editorial-director`
* `illustrator`
* `interviewer`
* `recipient`
* `reviewed-author`
* Types :
* `bill`
* `broadcast`
* `dataset`
* `entry`
* `figure`
* `graphic`
* `interview`
* `legislation`
* `legal_case`
* `map`
* `motion_picture`
* `musical_score`
* `pamphlet`
* `patent`
* `post`
* `personal_communication`
* `report`
* `review` (absent de *Zotero*, utiliser *Article*)
* `review-book` (absent de *Zotero*, utiliser *Article*)
* `song`
* `speech`
* `treaty`
* Variables standard :
* `archive-place`
* `authority`
* `dimensions`
* `ISBN`
* `ISSN`
* `medium`
* `page-first`
* `PMCID`
* `PMID`
* `reviewed-title`
* `section`
* `source`
* `version`
* Variables numériques :
* `submitted`
[]{#changelog}
::: {.changelog}
:::
<!--
GNU Free Documentation License
Version 1.3, 3 November 2008
Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
<https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
0. PREAMBLE
The purpose of this License is to make a manual, textbook, or other
functional and useful document "free" in the sense of freedom: to
assure everyone the effective freedom to copy and redistribute it,
with or without modifying it, either commercially or noncommercially.
Secondarily, this License preserves for the author and publisher a way
to get credit for their work, while not being considered responsible
for modifications made by others.
This License is a kind of "copyleft", which means that derivative
works of the document must themselves be free in the same sense. It
complements the GNU General Public License, which is a copyleft
license designed for free software.
We have designed this License in order to use it for manuals for free
software, because free software needs free documentation: a free
program should come with manuals providing the same freedoms that the
software does. But this License is not limited to software manuals;
it can be used for any textual work, regardless of subject matter or
whether it is published as a printed book. We recommend this License
principally for works whose purpose is instruction or reference.
1. APPLICABILITY AND DEFINITIONS
This License applies to any manual or other work, in any medium, that
contains a notice placed by the copyright holder saying it can be
distributed under the terms of this License. Such a notice grants a
world-wide, royalty-free license, unlimited in duration, to use that
work under the conditions stated herein. The "Document", below,
refers to any such manual or work. Any member of the public is a
licensee, and is addressed as "you". You accept the license if you
copy, modify or distribute the work in a way requiring permission
under copyright law.
A "Modified Version" of the Document means any work containing the
Document or a portion of it, either copied verbatim, or with
modifications and/or translated into another language.
A "Secondary Section" is a named appendix or a front-matter section of
the Document that deals exclusively with the relationship of the
publishers or authors of the Document to the Document's overall
subject (or to related matters) and contains nothing that could fall
directly within that overall subject. (Thus, if the Document is in
part a textbook of mathematics, a Secondary Section may not explain
any mathematics.) The relationship could be a matter of historical
connection with the subject or with related matters, or of legal,
commercial, philosophical, ethical or political position regarding
them.
The "Invariant Sections" are certain Secondary Sections whose titles
are designated, as being those of Invariant Sections, in the notice
that says that the Document is released under this License. If a
section does not fit the above definition of Secondary then it is not
allowed to be designated as Invariant. The Document may contain zero
Invariant Sections. If the Document does not identify any Invariant
Sections then there are none.
The "Cover Texts" are certain short passages of text that are listed,
as Front-Cover Texts or Back-Cover Texts, in the notice that says that
the Document is released under this License. A Front-Cover Text may
be at most 5 words, and a Back-Cover Text may be at most 25 words.
A "Transparent" copy of the Document means a machine-readable copy,
represented in a format whose specification is available to the
general public, that is suitable for revising the document
straightforwardly with generic text editors or (for images composed of
pixels) generic paint programs or (for drawings) some widely available
drawing editor, and that is suitable for input to text formatters or
for automatic translation to a variety of formats suitable for input
to text formatters. A copy made in an otherwise Transparent file
format whose markup, or absence of markup, has been arranged to thwart
or discourage subsequent modification by readers is not Transparent.
An image format is not Transparent if used for any substantial amount
of text. A copy that is not "Transparent" is called "Opaque".
Examples of suitable formats for Transparent copies include plain
ASCII without markup, Texinfo input format, LaTeX input format, SGML
or XML using a publicly available DTD, and standard-conforming simple
HTML, PostScript or PDF designed for human modification. Examples of
transparent image formats include PNG, XCF and JPG. Opaque formats
include proprietary formats that can be read and edited only by
proprietary word processors, SGML or XML for which the DTD and/or
processing tools are not generally available, and the
machine-generated HTML, PostScript or PDF produced by some word
processors for output purposes only.
The "Title Page" means, for a printed book, the title page itself,
plus such following pages as are needed to hold, legibly, the material
this License requires to appear in the title page. For works in
formats which do not have any title page as such, "Title Page" means
the text near the most prominent appearance of the work's title,
preceding the beginning of the body of the text.
The "publisher" means any person or entity that distributes copies of
the Document to the public.
A section "Entitled XYZ" means a named subunit of the Document whose
title either is precisely XYZ or contains XYZ in parentheses following
text that translates XYZ in another language. (Here XYZ stands for a
specific section name mentioned below, such as "Acknowledgements",
"Dedications", "Endorsements", or "History".) To "Preserve the Title"
of such a section when you modify the Document means that it remains a
section "Entitled XYZ" according to this definition.
The Document may include Warranty Disclaimers next to the notice which
states that this License applies to the Document. These Warranty
Disclaimers are considered to be included by reference in this
License, but only as regards disclaiming warranties: any other
implication that these Warranty Disclaimers may have is void and has
no effect on the meaning of this License.
2. VERBATIM COPYING
You may copy and distribute the Document in any medium, either
commercially or noncommercially, provided that this License, the
copyright notices, and the license notice saying this License applies
to the Document are reproduced in all copies, and that you add no
other conditions whatsoever to those of this License. You may not use
technical measures to obstruct or control the reading or further
copying of the copies you make or distribute. However, you may accept
compensation in exchange for copies. If you distribute a large enough
number of copies you must also follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and
you may publicly display copies.
3. COPYING IN QUANTITY
If you publish printed copies (or copies in media that commonly have
printed covers) of the Document, numbering more than 100, and the
Document's license notice requires Cover Texts, you must enclose the
copies in covers that carry, clearly and legibly, all these Cover
Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
the back cover. Both covers must also clearly and legibly identify
you as the publisher of these copies. The front cover must present
the full title with all words of the title equally prominent and
visible. You may add other material on the covers in addition.
Copying with changes limited to the covers, as long as they preserve
the title of the Document and satisfy these conditions, can be treated
as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit
legibly, you should put the first ones listed (as many as fit
reasonably) on the actual cover, and continue the rest onto adjacent
pages.
If you publish or distribute Opaque copies of the Document numbering
more than 100, you must either include a machine-readable Transparent
copy along with each Opaque copy, or state in or with each Opaque copy
a computer-network location from which the general network-using
public has access to download using public-standard network protocols
a complete Transparent copy of the Document, free of added material.
If you use the latter option, you must take reasonably prudent steps,
when you begin distribution of Opaque copies in quantity, to ensure
that this Transparent copy will remain thus accessible at the stated
location until at least one year after the last time you distribute an
Opaque copy (directly or through your agents or retailers) of that
edition to the public.
It is requested, but not required, that you contact the authors of the
Document well before redistributing any large number of copies, to
give them a chance to provide you with an updated version of the
Document.
4. MODIFICATIONS
You may copy and distribute a Modified Version of the Document under
the conditions of sections 2 and 3 above, provided that you release
the Modified Version under precisely this License, with the Modified
Version filling the role of the Document, thus licensing distribution
and modification of the Modified Version to whoever possesses a copy
of it. In addition, you must do these things in the Modified Version:
A. Use in the Title Page (and on the covers, if any) a title distinct
from that of the Document, and from those of previous versions
(which should, if there were any, be listed in the History section
of the Document). You may use the same title as a previous version
if the original publisher of that version gives permission.
B. List on the Title Page, as authors, one or more persons or entities
responsible for authorship of the modifications in the Modified
Version, together with at least five of the principal authors of the
Document (all of its principal authors, if it has fewer than five),
unless they release you from this requirement.
C. State on the Title page the name of the publisher of the
Modified Version, as the publisher.
D. Preserve all the copyright notices of the Document.
E. Add an appropriate copyright notice for your modifications
adjacent to the other copyright notices.
F. Include, immediately after the copyright notices, a license notice
giving the public permission to use the Modified Version under the
terms of this License, in the form shown in the Addendum below.
G. Preserve in that license notice the full lists of Invariant Sections
and required Cover Texts given in the Document's license notice.
H. Include an unaltered copy of this License.
I. Preserve the section Entitled "History", Preserve its Title, and add
to it an item stating at least the title, year, new authors, and
publisher of the Modified Version as given on the Title Page. If
there is no section Entitled "History" in the Document, create one
stating the title, year, authors, and publisher of the Document as
given on its Title Page, then add an item describing the Modified
Version as stated in the previous sentence.
J. Preserve the network location, if any, given in the Document for
public access to a Transparent copy of the Document, and likewise
the network locations given in the Document for previous versions
it was based on. These may be placed in the "History" section.
You may omit a network location for a work that was published at
least four years before the Document itself, or if the original
publisher of the version it refers to gives permission.
K. For any section Entitled "Acknowledgements" or "Dedications",
Preserve the Title of the section, and preserve in the section all
the substance and tone of each of the contributor acknowledgements
and/or dedications given therein.
L. Preserve all the Invariant Sections of the Document,
unaltered in their text and in their titles. Section numbers
or the equivalent are not considered part of the section titles.
M. Delete any section Entitled "Endorsements". Such a section
may not be included in the Modified Version.
N. Do not retitle any existing section to be Entitled "Endorsements"
or to conflict in title with any Invariant Section.
O. Preserve any Warranty Disclaimers.
If the Modified Version includes new front-matter sections or
appendices that qualify as Secondary Sections and contain no material
copied from the Document, you may at your option designate some or all
of these sections as invariant. To do this, add their titles to the
list of Invariant Sections in the Modified Version's license notice.
These titles must be distinct from any other section titles.
You may add a section Entitled "Endorsements", provided it contains
nothing but endorsements of your Modified Version by various
parties--for example, statements of peer review or that the text has
been approved by an organization as the authoritative definition of a
standard.
You may add a passage of up to five words as a Front-Cover Text, and a
passage of up to 25 words as a Back-Cover Text, to the end of the list
of Cover Texts in the Modified Version. Only one passage of
Front-Cover Text and one of Back-Cover Text may be added by (or
through arrangements made by) any one entity. If the Document already
includes a cover text for the same cover, previously added by you or
by arrangement made by the same entity you are acting on behalf of,
you may not add another; but you may replace the old one, on explicit
permission from the previous publisher that added the old one.
The author(s) and publisher(s) of the Document do not by this License
give permission to use their names for publicity for or to assert or
imply endorsement of any Modified Version.
5. COMBINING DOCUMENTS
You may combine the Document with other documents released under this
License, under the terms defined in section 4 above for modified
versions, provided that you include in the combination all of the
Invariant Sections of all of the original documents, unmodified, and
list them all as Invariant Sections of your combined work in its
license notice, and that you preserve all their Warranty Disclaimers.
The combined work need only contain one copy of this License, and
multiple identical Invariant Sections may be replaced with a single
copy. If there are multiple Invariant Sections with the same name but
different contents, make the title of each such section unique by
adding at the end of it, in parentheses, the name of the original
author or publisher of that section if known, or else a unique number.
Make the same adjustment to the section titles in the list of
Invariant Sections in the license notice of the combined work.
In the combination, you must combine any sections Entitled "History"
in the various original documents, forming one section Entitled
"History"; likewise combine any sections Entitled "Acknowledgements",
and any sections Entitled "Dedications". You must delete all sections
Entitled "Endorsements".
6. COLLECTIONS OF DOCUMENTS
You may make a collection consisting of the Document and other
documents released under this License, and replace the individual
copies of this License in the various documents with a single copy
that is included in the collection, provided that you follow the rules
of this License for verbatim copying of each of the documents in all
other respects.
You may extract a single document from such a collection, and
distribute it individually under this License, provided you insert a
copy of this License into the extracted document, and follow this
License in all other respects regarding verbatim copying of that
document.
7. AGGREGATION WITH INDEPENDENT WORKS
A compilation of the Document or its derivatives with other separate
and independent documents or works, in or on a volume of a storage or
distribution medium, is called an "aggregate" if the copyright
resulting from the compilation is not used to limit the legal rights
of the compilation's users beyond what the individual works permit.
When the Document is included in an aggregate, this License does not
apply to the other works in the aggregate which are not themselves
derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these
copies of the Document, then if the Document is less than one half of
the entire aggregate, the Document's Cover Texts may be placed on
covers that bracket the Document within the aggregate, or the
electronic equivalent of covers if the Document is in electronic form.
Otherwise they must appear on printed covers that bracket the whole
aggregate.
8. TRANSLATION
Translation is considered a kind of modification, so you may
distribute translations of the Document under the terms of section 4.
Replacing Invariant Sections with translations requires special
permission from their copyright holders, but you may include
translations of some or all Invariant Sections in addition to the
original versions of these Invariant Sections. You may include a
translation of this License, and all the license notices in the
Document, and any Warranty Disclaimers, provided that you also include
the original English version of this License and the original versions
of those notices and disclaimers. In case of a disagreement between
the translation and the original version of this License or a notice
or disclaimer, the original version will prevail.
If a section in the Document is Entitled "Acknowledgements",
"Dedications", or "History", the requirement (section 4) to Preserve
its Title (section 1) will typically require changing the actual
title.
9. TERMINATION
You may not copy, modify, sublicense, or distribute the Document
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense, or distribute it is void, and
will automatically terminate your rights under this License.
However, if you cease all violation of this License, then your license
from a particular copyright holder is reinstated (a) provisionally,
unless and until the copyright holder explicitly and finally
terminates your license, and (b) permanently, if the copyright holder
fails to notify you of the violation by some reasonable means prior to
60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, receipt of a copy of some or all of the same material does
not give you any rights to use it.
10. FUTURE REVISIONS OF THIS LICENSE
The Free Software Foundation may publish new, revised versions of the
GNU Free Documentation License from time to time. Such new versions
will be similar in spirit to the present version, but may differ in
detail to address new problems or concerns. See
https://www.gnu.org/licenses/.
Each version of the License is given a distinguishing version number.
If the Document specifies that a particular numbered version of this
License "or any later version" applies to it, you have the option of
following the terms and conditions either of that specified version or
of any later version that has been published (not as a draft) by the
Free Software Foundation. If the Document does not specify a version
number of this License, you may choose any version ever published (not
as a draft) by the Free Software Foundation. If the Document
specifies that a proxy can decide which future versions of this
License can be used, that proxy's public statement of acceptance of a
version permanently authorizes you to choose that version for the
Document.
11. RELICENSING
"Massive Multiauthor Collaboration Site" (or "MMC Site") means any
World Wide Web server that publishes copyrightable works and also
provides prominent facilities for anybody to edit those works. A
public wiki that anybody can edit is an example of such a server. A
"Massive Multiauthor Collaboration" (or "MMC") contained in the site
means any set of copyrightable works thus published on the MMC site.
"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
license published by Creative Commons Corporation, a not-for-profit
corporation with a principal place of business in San Francisco,
California, as well as future copyleft versions of that license
published by that same organization.
"Incorporate" means to publish or republish a Document, in whole or in
part, as part of another Document.
An MMC is "eligible for relicensing" if it is licensed under this
License, and if all works that were first published under this License
somewhere other than this MMC, and subsequently incorporated in whole or
in part into the MMC, (1) had no cover texts or invariant sections, and
(2) were thus incorporated prior to November 1, 2008.
The operator of an MMC Site may republish an MMC contained in the site
under CC-BY-SA on the same site at any time before August 1, 2009,
provided the MMC is eligible for relicensing.
ADDENDUM: How to use this License for your documents
To use this License in a document you have written, include a copy of
the License in the document and put the following copyright and
license notices just after the title page:
Copyright (c) YEAR YOUR NAME.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
replace the "with...Texts." line with this:
with the Invariant Sections being LIST THEIR TITLES, with the
Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
If you have Invariant Sections without Cover Texts, or some other
combination of the three, merge those two alternatives to suit the
situation.
If your document contains nontrivial examples of program code, we
recommend releasing these examples in parallel under your choice of
free software license, such as the GNU General Public License,
to permit their use in free software.
-->