Premier jet de Objectifs de CSL/Clio (post-traitement)

This commit is contained in:
Bastien Dumont 2020-12-30 13:10:51 +01:00
parent f540d3a2de
commit c508989c61

View File

@ -5,6 +5,8 @@ author: Bastien Dumont
date: 29/12/2020
lang: fr-FR
colorlinks: true
toc: true
lof: true
---
<!-- TODO :
@ -104,7 +106,7 @@ On peut surmonter de trois manières différentes le fait que les spécification
Le projet *CSL/Clio* repose sur 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.
Ces règles sont exposées dans la partie [*Gérer ses données bibliographiques avec Zotero*](#gérer-ses-données-bibliographiques-avec-zotero).
Ces règles 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érent et interopérables
@ -113,39 +115,53 @@ Le premier objectif de *CSL/Clio* est donc de fournir des règles communes pour
Considérons, par exemple, la structure non modulaire suivante (écrite en pseudo-code et non en XML) :
~~~
Pour toute citation, 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.
Pour toute citation, 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.
~~~
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 règles des revues en histoire sont souvent beaucoup plus raffinées que cela. Le code modulaire suivant sera beaucoup plus facile à comprendre et à manier à mesure qu'il se complexifiera :
~~~
Pour toute citation, réaliser les étapes suivantes en séparant les segments par des virgules :
Pour toute 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.
— 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'ils s'agit d'un article.
— 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.
— 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 reprend l'exemple précédent, on saura immédiatement qu'il faut modifier la macro "titre" pour supprimer les guillemets, et ce d'autant plus s'il est convenu que tous les styles doivent indiquer la mise en forme du titre principal du document (et seulement cela) dans un macro appelée "titre".
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,...). Un style ne sera pas mis en ligne tant qu'il ne produira pas un rendu conforme, et il ne sera pas modifié si la modification proposée entraîne des effets indésirables.
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 en programmer soi-même de feuille de style CSL. Cependant, il est bon d'avoir conscience que les styles mis à disposition par le projet *CSL/Clio* suivent des stratégies précises qui ne sont pas suivies par ceux des dépôts officiels. Le lecteur sera également rassuré de savoir que les conventions suivies permettent de produire des styles fiables et que l'on peut aisément corriger ou modifier pour produire d'autres styles.
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 en programmer soi-même de feuille de style CSL. Cependant, il est bon d'avoir conscience que les styles mis à disposition par le projet *CSL/Clio* suivent des stratégies précises qui ne sont pas suivies par ceux des dépôts officiels. Le lecteur sera également rassuré de savoir que les conventions suivies permettent de produire des styles fiables et que l'on peut aisément corriger ou modifier pour produire d'autres styles.
### Coupler CSL avec des outils de post-traitement
<!-- À terme, mon souhait est que le langage CSL soit étendu de sorte que ces styles ne reposent plus sur des détournements et puissent être intégrés au dépôt officiel. -->
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 en faire une version utilisable avec *Microsoft Word* ; heureusement, la suite *LibreOffice* est gratuite et peut très bien traiter des documents DOCX rédigés sous *Word*. 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 partie [*Automatiser la mise en forme*](#automatiser-la-mise-en-forme).
### Un projet évolutif et ouvert aux retours des utilisateurs