Fabriquer un exemplier

jeudi 20 mars 2014, mise à jour vendredi 21 mars 2014, par Maïeul
Suivre la vie du site RSS 2.0 Forum

Pour une intervention que je donne bientôt dans un cadre universitaire, j’avais besoin de fabriquer un exemplier, c’est à dire un document contenant l’ensemble des textes analysés lors de la conférence et qui serait distribué au publique avant la conférence.

Dans l’idéal, je souhaitais que mon exemplier soit fabriqué automatiquement à partir du texte de l’article que je tirerai de la conférence, en extrayant les textes commentés de l’article, dans l’ordre de l’article.

J’ai posé la question sur la liste de discussion francophone. Il n’y avait pas de package pour répondre à ce besoin spécifique, et il aurait fallu détourner des packages de leur usage primitive, ce qui est rarement une bonne idée.

J’ai donc préparé un package répondant à ce type de besoin, que je viens de publier sur le CTAN. Il sera donc disponible dans vos distributions TeX favorite d’ici quelques jours. Outre la documentation officielle en anglais, voici un tutoriel en français.

Principe général

L’idée est de rédiger l’article / le texte / les notes de la conférence et dans la même foulée de produire l’exemplier.

Pour ce faire, chaque texte / figure / tableau qui sera commenté durant l’exposé est mis dans un fichier dédié, qui est appelé non pas via la classique commande \input, mais via la commande \handout.

Lors de la compilation, l’exemple sera inséré automatiquement dans l’article à l’endroit de son appel, puis ajouter à la fin de l’article, après un saut de page.

Note sur la présente documentation

Dans le zip ci-joint, vous trouverez l’ensemble des fichiers sources. Bien que leur titres soient anglais (car correspondant à la documentation officielle), ils sont numérotés selon l’ordre de progression de l’article, et vous devrez pouvoir les retrouver facilement. En outre j’ai pour chaque étape du tutoriel mis le résultat final en PDF.

Fichier d’examples d’un exemplier

Un exemple minimal

Supposons que je veuille commenter un texte de Richard Simon. J’écrit donc mon article, avec les phrases qui vont introduire le texte, puis j’appelle le fichier dans lequel j’ai mis le texte de Richard Simon. Bien sûr je charge en préambule le package handout.

\documentclass[a4]{article}
\usepackage{polyglossia,fontspec}
\setmainlanguage{french}
\usepackage{handout}

\begin{document}

Dans son \emph{Histoire critique du texte du Nouveau Testament}, Richard~Simon écrit:
\handout{txts/Richard_Simon_NT.tex}
Des commentaires sur ce passage.

\end{document}

Et dans le fichier txt/Richard_Simon_NT.tex, je met le texte commenté :

\begin{quotation}
Mr.~le~Moine habile Protestant \& savant dans les langues Orientales, nous assûre qu'il étoit écrit en Ebreu, parce que Saint~Barnabé qui l'avoit décrit pour son usage étoit Juif de naissance, \& prêchoit à ceux de sa nation. Mais il y a plus d'apparence qu'Anthime qui n'étoit pas Juif en supposa un grec ; \& il n'est gueres croyable qu'on l'eust lû publiquement dans l'Eglise de Constantinople, s'il eût été écrit en Ebreu.
\end{quotation}

Lors de la compilation, deux parties du document sont produites. La première partie contient le texte principal, la seconde partie contient l’exemplier.

Exemplier minimal

Appliquer automatiquement des commandes en début d’exemplier

Les textes que nous commentons sont dans un environnement quotation, qui applique une marge spécifique. Il n’est pas utile d’ajouter cette marge au sein de l’exemplier, puisque celui-ci ne contient, par définition (ou presque) que des citations.

On peut donc créer une commande \beforehandout qui sera exécuté au début de l’exemplier. Cette commande va changer l’environnement \quotation pour le rendre sans effet :

\newcommand{\beforehandout}{%
	\renewenvironment{quotation}{}{}
}
Exemplier avec des citations sans marge excessive

Éviter de frapper plusieurs fois le chemin

Supposons maintenant que j’ajoute un nouveau exemple, comme celui-ci :

\begin{quotation}
L'an 42. l'Evangeliste S.~Matthieu escrivit son Evangile en Hebreu au païs de Iudee: qui ayant esté long temps caché, fut par luy mesme reuelé \& trouvé du temps de l'Empereur Zenon, comme nous verrons en son lieu.
\end{quotation}

Je vais le mettre dans un fichier txts/Preau1583. Puisque l’ensemble de mes fichiers d’exemplier sont dans un dossier txts, autant le dire une fois pour toute au package, via l’option dir :

\usepackage[dir=txts]{handout}

Ce qui permet d’appeler plus rapidement les exemples :

L'historien catholique Gabriel du Preau ce sert de l'épisode lorsqu'il est question de Matthieu:
\handout{Preau1583.tex}
Des commentaires sur ce passage

Dans son \emph{Histoire critique du texte du Nouveau Testament}, Richard~Simon écrit:
\handout{Richard_Simon_NT.tex}
Des commentaires sur ce passage.
Exemplier avec la base du chemin défini une fois pour toute

Insérer des intertitres

En général, votre conférence suit un plan, que vous indiquez via des commandes de sectionnement classiques :

\section{Au temps des guerre de religions}
L'historien catholique Gabriel du Preau ce sert de l'épisode lorsqu'il est question de Matthieu:
\handout{Preau1583.tex}
Des commentaires sur ce passage

\section{À l'époque de Port-Royal}
Dans son \emph{Histoire critique du texte du Nouveau Testament}, Richard~Simon écrit:
\handout{Richard_Simon_NT.tex}
Des commentaires sur ce passage.

Vous pouvez passer une option sectioning au package pour qu’il insère automatiquement les niveaux de sectionnement dans votre exemplier :

\usepackage[dir=txts,sectioning]{handout}

Le package s’occupe automatiquement d’éviter que les titres de l’exemplier soient dans la table des matières [1]

Exemplier avec sectionnement

Numéroter automatiquement les exemples

Cependant il peut arriver que vous ayez plusieurs exemples par partie. En ce cas, l’option numbering passé au package active une numérotation automatique des exemples. Par défaut le numéro est mis en marge, encadré.

\usepackage[dir=txt,sectioning,numbering]{handout}
...
\begin{document}

\section{Au temps des guerre de religions}
L'historien catholique Gabriel du Preau ce sert de l'épisode lorsqu'il est question de Matthieu:
\handout{Preau1583.tex}
Des commentaires sur ce passage

Mais notre auteur dispose aussi de l'œuvre de Nicéphore Calliste Xanthopoulos. C'est pourquoi il duplique notre évangile retrouvé:
\handout{Preau1583b}
Des commentaires sur ce passage
\section{Les conflits autour de l'œuvre de Richard~Simon}
Dans son \emph{Histoire critique du texte du Nouveau Testament}, Richard~Simon écrit:
\handout{Richard_Simon_NT.tex}
Des commentaires sur ce passage.
\end{document}
Exemplier numéroté

Insérer du texte uniquement dans l’exemplier ou uniquement dans l’article

Supposons que dans votre article vous fassiez une note de bas de page au sein d’une citation, note qui n’a de sens que si on a lu le reste de l’article. Et qu’inversement, vous souhaitez mettre une note de bas de page dans l’exemplier mais pas dans l’article. Deux commandes sont prévus pour cela : \nothandout, qui n’affichera son contenu qu’en dehors de l’exemplier, et \onlyhandout, qui n’affichera son contenu que dans l’exemplier :

\begin{quotation}
L'an 42. l'Evangeliste S.~Matthieu escrivit son Evangile en Hebreu au païs de Iudee: qui ayant esté long temps caché, fut par luy mesme reuelé\footnote{\nothandout{Note non présente dans l'exemplier.}\onlyhandout{Note seulement présente dans l'exemplier.}} \& trouvé du temps de l'Empereur Zenon, comme nous verrons en son lieu.
\end{quotation}
Conditionnement du contenu en dehors de l’exemplier ou seulement dans l’exemplier

Insérer automatiquement les références dans l’exemplier

Un exemplier sans référence bibliographique ne sert à rien. Si comme moi vous êtes adeptes de la référence insérée en note de bas de page avant les deux points introduisant la citation [2], les références n’apparaîtront pas dans l’exemplier.

C’est pourquoi j’ai prévu une commande particulière, forhandout, qui lorsqu’elle est appelée va insérer son contenu dans l’exemplier. On peut donc s’en servir en combinaison avec la commande BibLaTeX \AtNextCitekey. Cette dernière permet d’exécuter une action à la prochaine référence bibliographique appelée. Nous allons donc la mettre dans une commande \citehandout qui sera appelée avant chaque référence bibliographique que l’on souhaite insérer dans l’exemplier [3].

Commentaire ligne par ligne :

  • l. 1 : déclaration de la commande
  • l. 2 : on exécute une action la prochaine fois que l’on croise une clef bibliographique.
  • l. 3-5 : dans l’exemplier on met la commande \beforehandoutref.
  • l. 6-8 : dans l’exemplier on met la commande \cite suivi entre crochets du contenu du champ postnote, c’est à dire de l’argument optionnel contenant la page, suivi de la clef bibliographique entre accolades.
  • l. 9-11 : dans l’exemplier on met la commande \afterhandoutref.
  • l. 14 : la commande \beforehandoutref change de paragraphe et commence le nouveau paragraphe par une indentation négative égale à deux fois l’indentation normale de paragraphe.
  • l. 15 : la commande \afterhandoutref change de paragraphe et insére un espace vertical égal à un quart de ligne.

Pourquoi utilise-je plusieurs fois la commande \forhandout ? À cause d’un comportement particulier de celle-ci : la première commande qui s’y référe à l’intérieure n’est exécutée que lors de la fabrication de l’exemplier, tandis que les autres commandes sont exécutées au moment où la commande \forhandout est appelée.

Le package s’occupe automatiquement de réinitialiser les abréviations bibliographiques en début d’exemplier.

Si vous utiliser le package biblatex-source-division pour gérer la division des sources antiques vous devez remplacer :

\cite[\strfield{postnote}]{\strfield{entrykey}}

par

\cite[(\strfield{titleaddon}\strfield{maintitleaddon})\strfield{postnote}]{\strfield{entrykey}}

En effet lorsque le contenu de \AtNextCitekey est exécuté, l’analyse de la division de source a déjà été faite, et le champ postnote ne la contient plus.

Ceci nous permet d’obtenir notre exemplier final :

Exemplier avec des références bibliographiques

Désactiver la fabrication de l’exemplier

Si vous passez l’option disabled à l’appel du package, la fabrication de l’exemplier est désactivée. Pratique pour les relectures de brouillon et pour l’article final.

Notes

[1De même pour les indexations et les références croisées.

[2Et non pas appelée à la fin du bloc de citation...

[3Nous sommes obligés de procéder ainsi car on ne peut pas savoir à priori

Vos commentaires

  • Le 21 mars 2014 à 09:48, par Kai En réponse à : Fabriquer un exemplier

    Voici une autre approche, ma discussion avec des collègues germanophones, mais il y a des exemples tex...

  • Le 21 mars 2014 à 15:21, par Maïeul En réponse à : Fabriquer un exemplier

    intéressant,

    l’idée aussi était de proposer un package tout en un ...

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Acheter XeLaTeX appliqué aux sciences humaines

À propos

Titulaire d’un doctorat en théologie et d’un doctorat en histoire, sous la direction conjointe de Frédéric Amsler et d’Élisabeth_Malamut, je commence à partir du 1er août 2017 un travail d’édition critique des Actes de Barnabé.

Dans le cadre de la rédaction de mon mémoire de master puis de ma thèse de doctorat, j’ai été emmené à utiliser LaTeX, et j’ai donc décider de partager mes techniques. En effet, au cours de mes premiers apprentissages, j’ai découvert que les ressources indiquant les outils pour l’utilisation de LaTeX en sciences humaines étaient rares. Ceci m’a conduit à maintenir ou créer plusieurs packages LaTeX et à donner plusieurs formations.

J’ai reçu en 2018 le prix DANTE e.V pour mon travail autour de LaTeX, en particulier autour de reledmac et reledpar.

Par ailleurs, je suis membre actif de la communauté SPIP, au sein de laquelle j’administre le site Spip-Contrib. Je propose sur ce site quelques notes sur SPIP, en général à destination de webmestre.

Il m’arrive également de faire un petit peu de Python, de temps en temps.

Enfin, je tiens un blog de réflexions politiques et religieuses.

Maïeul