Chemin principal : Accueil > LaTeX > (r)(e)led(mac/par) > Mixer numérotation continue et discontinue

Autre chemin : (Aller directement au contenu de l'article)

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

PDF - 121.5 ko
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 :

  1. \beginnumbering
  2. \restorestanzaline
  3. \stanza
  4. Questo è il testo in versi &
  5. Questo è il testo in versi &
  6. Questo è il testo in versi &
  7. Questo è il testo in versi &
  8. Questo è il testo in versi &
  9. Questo è il testo in versi &
  10. Questo è il testo in versi &
  11. Questo è il testo in versi &
  12. Questo è il testo in versi &
  13. Questo è il testo in versi &
  14. Questo è il testo in versi &
  15. Questo è il testo in versi
  16. \&
  17. \savestanzaline
  18. \endnumbering

Télécharger

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 :

  1. \newcount\@stanzaline
  2. \newcommand{\savestanzaline}[0]{\global\@stanzaline=\line@num}
  3. \newcommand{\restorestanzaline}{\setlinenum{\@stanzaline}}

Télécharger

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 formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

À propos

Titulaire d’un master en sciences religieuses de l’Université de Strasbourg, je suis depuis août 2012 assistant-diplômé en histoire du christianisme antique et littérature apocryphe chrétienne à l’Université de Lausanne, où je prépare une thèse sous la direction de Frédéric Amsler.

Dans le cadre de la rédaction de mon mémoire de master, 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.

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