Mixer numérotation continue et discontinue

lundi 13 mai 2013, par Maïeul
Suivre la vie du site RSS 2.0 Forum

Une personne souhaitait mélanger dans un texte deux types de numérotation de lignes, l’une continue, l’autre discontinue. Il n’est pas possible de faire cela directement avec les commandes eledmac, mais avec un peu d’astuce, on peut résoudre le problème.

Description du problème

Alterner numérotation continue et discontinue

Le demandeur travaille sur un texte alternant poésie et vers. Il souhaitait que la numérotation de le prose recommence à 1 en début de chaque passage, mais que la numérotation des vers soit continue, comme dans l’exemple joint.

Chaque bloc de vers / de prose correspond à un \beginumbering...\endnumbering.

On ne peut utiliser \pausenumbering ...  \resumenumbering [1] puisque nous alternons numérotation continue et numérotation discontinue.

Solution : principe

Le principe de la solution est assez simple :

  • à la fin de chaque série de vers, sauvegarder le numéro de la ligne dans un compteur.
  • en début de chaque série de vers, exceptée la première, changer la numérotation, en utilisant le compteur.

Nous allons donc définir deux commandes dans le préambule : \savestanzaline, que nous placerons entre \& et \endnumbering et \restorestanzalineque nous placerons entre \beginnumbering et \stanza [2], selon l’exemple ci-dessous :

\beginnumbering  
\restorestanzaline 
\stanza  
Questo è il testo in versi &  
Questo è il testo in versi &  
Questo è il testo in versi &  
Questo è il testo in versi &  
Questo è il testo in versi &  
Questo è il testo in versi &  
Questo è il testo in versi &  
Questo è il testo in versi &  
Questo è il testo in versi &  
Questo è il testo in versi &  
Questo è il testo in versi &  
Questo è il testo in versi  
\&  
\savestanzaline 
\endnumbering  

Reste à définir ces commandes, ce qui n’est pas une mince affaire.

Solution : mise en œuvre

Dans notre préambule, mettre les lignes suivantes :

Commentaire :

  • l. 1 et l. 5 : nos commande manipulent des commandes avec des @ dans le nom. On a donc besoin de makeatletter et \makeatother les encadrant.
  • l. 2 : on déclare un compteur \@stanzaline. C’est un compteur TeX et non LaTeX. Ce choix ce justifie :
    • Par économie : on n’a pas besoin de toutes fonctionalités d’un compteur TeX.
    • Par simplicité : un compteur LaTeX aurait posé des soucis lors de son appel pour modifier les numéro de lignes.
  • l. 3 : la commande \savestanzaline assigne à \@stanzaline la valeur du compteur \line@num, que eledmac utilise pour compter les lignes. Le \global permet que l’assignement dépasse le cadre de la section numérotée [3].
  • l. 4 : la commande \setlinenum est utilisé pour modifier le numéro de la ligne. Elle est appelée avant que la numérotation ne commence. On indique simplement que le numéro de ligne souhaité correspond au compteur \@stanzaline.

Et voici donc comment l’on peut mélanger deux types de numérotation de lignes.

Notes

[1Qui permettent d’arrêter un passage numéroté sans pour autant réinitialiser la numérotation.

[2Sauf pour le premier bloc de vers.

[3Celle qui est comprise entre \beginnumbering et \endnumbering.

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