Comprendre comme reledpar synchronise les pages

mardi 29 septembre 2015, mise à jour mercredi 28 octobre 2015, par Maïeul
Suivre la vie du site RSS 2.0 Forum

La version 2.4.0 de reledpar, qui vient juste d’être déposée sur le CTAN, propose des nouvelles options permettant de synchronisation des pages parallèles permettant d’aller plus loin que l’historique shiftedpstarts, lequel était limité [1]. La compréhension de ces options, et notamment de leur impact sur la coupure des paragraphes entre deux pages n’étant pas des plus aisées, voici une explication en français [2].

Le processus de synchronisation passe par l’écriture dans les fichiers auxiliaires numérotés (.1, .1R, .2, .2R etc), dont le contenu change tant que la synchronisation n’est pas stabilisée. Ceci implique donc généralement plusieurs compilations. Nous vous conseillons donc d’utiliser un utilitaire tel que latexmk pour s’assurer que la synchronisation des pages est bien stabilisée.

Nous appelons « blocs » (chunck) la zone délimitée par un \pstart\pend.

Pour faire bref, le réglage par défaut permet de s’assurer d’une synchronicité maximum entre les blocs correspondants, au détriment du remplissage des pages et en laissant des blancs entre les blocs. La combinaison des réglages advancedshiftedpstarts et nomaxlines permet de s’assurer de remplir aux maximum les pages, au détriment de la synchronicité des blocs, tout en s’assurant qu’un bloc commence toujours sur la page en vis-à-vis du bloc qui lui est associé.

Pour comprendre plus finement les différentes options de synchronisation de reledpar, il est nécessaire de comprendre d’abord comment par défaut reledpar synchronise les blocs de gauche et droite.

La synchronisation par défaut de reledpar vise deux objectifs :

  1. S’assurer que les pages de gauche contiennent ce qui doit aller à gauche et les pages de droite contiennent ce qui doit aller à droite.
  2. S’assurer que chaque bloc commence en face de son vis-à-vis.

Pour répondre à ce second objectif, reledpar s’assure que les règles suivantes soient respectées :

  1. Le nombre de lignes d’une paire de blocs est identique. Pour que ce point soit respecté, reledpar insère des lignes blanches en bas du bloc le plus court, afin qu’il compte le même nombre de ligne que le bloc le plus long.
  2. Le contenu principal, excluant les notes critiques et les notes familières, de deux pages en vis-à-vis contient le même nombre de lignes, y compris blanches. C’est pourquoi si une page de gauche contient des notes plus longues qu’une page de droite, le bas de la page de droite sera vide.

Les options de synchronisation de reledpar permettent donc de modifier ces deux règles :

  1. En ce qui concerne le nombre de lignes par paire de blocs :
    1. L’option shiftedpstarts se contente déplacer les lignes blanches de fin de bloc à la fin de page. Elle ne permet donc pas de mettre plus de lignes par page, mais simplement d’éviter au sein d’une page les espaces interblocs. Pour bien en comprendre le mécanisme, comparez les lignes de textes présentes sur une page avec ou sans cette option : vous constaterez que ce sont les mêmes.
    2. L’option advancedshiftedpstarts supprime l’insertion des lignes blanches de fin de bloc et leur décompte dans la taille de la page. Elle permet donc d’insérer plus de ligne par page. Notez cependant que :
      1. Les lignes blanches restent prises en compte dans le calcul du moment où reledpar passe au bloc suivant. Ceci permet de s’assurer que deux blocs associés commencent systématiquement dans la même paire de pages.
      2. En conséquence, les lignes blanches restent prises en compte dans le calcul du nombre de lignes par paire de pages. Ceci explique pourquoi lorsqu’un bloc courent sur deux pages, le bloc plus court correspondant court également sur deux pages, en dépit du fait qu’il puisse rester de la place sur sa première page.
  2. En ce qui concerne le nombre de lignes, y compris blanches, par page, l’option nomaxlines supprime la règle d’égalité entre deux pages en vis-à-vis. Elle permet donc de mettre plus de contenu par page. Un mécanisme complexe est alors mis en œuvre pour s’assurer que deux blocs associés commencent sur deux pages en vis-à-vis, et pour qu’ils soient alignés, si l’option shiftedpstarts ou advancedshiftedpstarts n’est pas activée.

Enfin, il est possible de laisser de côté toute règle de synchronisation automatique et de se contenter de l’alternance entre les pages de gauche et les pages de droite. Pour ce faire, on utilisera l’option nosyncpstarts.

Notez par ailleurs que tout changement de règle de synchronisation entre deux compilations entraîne ipso-facto l’annulation des fichiers numérotés, afin de s’assurer que reledpar ne tente pas de synchroniser selon des résultats archaïques.

Notes

[1D’ailleurs historiquement il s’agissait d’un shiftedverses, le shiftedpstarts étant un dérivé, mais moins adapté aux textes en prose.

[2Pour tout dire, l’explication a été d’abord rédigée en français puis traduite en anglais par Robert Alessi pour être intégrée dans la documentation. Qu’il en soit remercié.

Vos commentaires

  • Le 21 janvier 2017 à 19:49, par Sintram En réponse à : Comprendre comme reledpar synchronise les pages

    Je pensais qu’il y avait une façon de synchronisation plus fine, soit, au niveau des lignes. Mais je me rends compte que \pstart c’est toujours le commencement d’un paragraphe. Cela entraîne des limitations, puisque on peut voir la traduction en retard ou en avance de quelques lignes par rapport au texte original. Somme toute : pas d’alternative en reledpdar ?

  • Le 21 janvier 2017 à 19:51, par Maïeul En réponse à : Comprendre comme reledpar synchronise les pages

    Pour le moment il n’est pas possible de synchroniser au niveau des lignes. Cela fait partie des demandes, mais je n’ai pas encore eu le temps de m’y pencher. Je ne connais pas d’alternative à reledpar qui soit aussi complète.

  • Le 21 janvier 2017 à 20:07, par Maïeul En réponse à : Comprendre comme reledpar synchronise les pages

    De toute façon, une synchronisation au niveau des lignes sera toujours manuelles… et galère…

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