Aller au contenu

ConTeXt/Versification et poésie (monolingue et bilingue)

Un livre de Wikilivres.

 Page précédente : apparat critique à plusieurs niveaux

Part. III, ch. 9  •  Versification et poésie  •  Sommaire

Page suivante : TEI-XML et poésie 


ConTeXt/Versification et poésie (monolingue et bilingue)

[modifier | modifier le wikicode]

La mise en page de la poésie répond à des exigences spécifiques : respect des vers, des strophes, des coupures, du rythme visuel, et parfois la nécessité de présenter un texte original en regard de sa traduction. ConTeXt offre des outils simples et puissants pour obtenir un rendu élégant, qu’il s’agisse de poésie française, de vers étrangers ou de textes bilingues en colonnes parallèles.

Objectifs de cette page

  • Comprendre comment conserver la structure du vers (retours à la ligne, strophes).
  • Composer un poème monolingue avec un rendu typographiquement soigné.
  • Mettre en page un texte poétique étranger et sa traduction française.
  • Présenter deux versions d’un texte en colonnes parallèles.
  • Découvrir les outils ConTeXt dédiés : \startlines, \definelines, \startcolumns, etc.

1. Poésie monolingue : conserver les vers et les strophes

[modifier | modifier le wikicode]

La façon la plus simple d’obtenir un poème correctement composé consiste à dire à ConTeXt : « chaque retour à la ligne dans le fichier source est un vers ». Cela se fait avec le couple \startlines / \stoplines ou, mieux encore, en définissant un environnement dédié.

Exemple minimal : un poème en français

[modifier | modifier le wikicode]
\definelines[poeme]

\starttext

\subject{Exemple de poème simple}

\startpoeme
Rien n’est plus doux que le silence,
quand la maison retient son souffle,
et que, derrière les vitres,
la pluie polit les heures.

Alors on écoute le temps,
non comme une menace,
mais comme un pas invisible
qui marche avec nous.
\stoppoeme

\stoptext

Ici :

  • chaque ligne du fichier source = un vers ;
  • un saut de ligne vide crée une strophe ;
  • ConTeXt n’indente pas les vers ;
  • la typographie reste celle du document courant (police, corps, interligne).

Indentation, centrage et variations de style

[modifier | modifier le wikicode]

Pour centrer le poème :

\setupalign[middle]

\startpoeme
...
\stoppoeme

Pour ajouter un retrait au début des vers :

\setuplines[indenting=yes, indentnext=no]

Ces options peuvent être ajoutées à la définition de l’environnement pour créer des styles poétiques réutilisables.

Voici ce qui est attendu après compilation

[modifier | modifier le wikicode]

Simulation du rendu (poème monolingue)


Ô lac ! l'année à peine a fini sa carrière,
Et près des flots chéris qu'elle devait revoir,
Regarde ! je viens seul m'asseoir sur cette pierre
Où tu la vis s'asseoir !

Ainsi, toujours poussés vers de nouveaux rivages,
Dans la nuit éternelle emportés sans retour,
Ne pourrons-nous jamais sur l'océan des âges
Jeter l'ancre un seul jour ?

Ce bloc illustre l'effet de \startlines/\stoplines : chaque retour à la ligne dans le code source correspond à un vers distinct dans la mise en page.

2. Poésie bilingue : original étranger + traduction française

[modifier | modifier le wikicode]

La mise en regard d’un poème et de sa traduction est un cas fréquent dans les éditions savantes. La solution la plus simple consiste à utiliser le module colonnes.

2.1. Deux colonnes équilibrées

[modifier | modifier le wikicode]
\setuppapersize[A4]
\setupbodyfont[modern,11pt]

\definelines[verso]
\definelines[versf]

\setupcolumns[n=2, balance=yes, distance=1cm]

\starttext
\subject{Poème bilingue en deux colonnes}

\startcolumns

\startverso
When I have fears that I may cease to be
Before my pen has gleaned my teeming brain,
Before high-piled books, in charactery,
Hold like rich garners the full-ripen’d grain;
\stopverso

\column

\startversf
Quand je crains de mourir avant d’avoir écrit
Tout ce que mon esprit foisonnant porte en germe,
Avant que les grands livres, rangés comme des greniers,
Ne gardent mes moissons en pages mûries;
\stopversf

\stopcolumns

\stoptext

Caractéristiques :

  • le contenu de chaque colonne conserve les retours à la ligne (grâce à \definelines) ;
  • les colonnes sont équilibrées en hauteur (balance=yes) ;
  • la distance entre colonnes peut être modifiée (distance=...).

Voici ce qui est attendu après compilation

[modifier | modifier le wikicode]

Simulation du rendu (poème bilingue en colonnes)


Texte original Traduction française
Arma virumque cano, Troiae qui primus ab oris Je chante les armes et l’homme qui, des rivages de Troie,
Italiam, fato profugus, Laviniaque venit vint le premier en Italie, banni par le destin,
litora, multum ille et terris iactatus et alto… jusqu’aux rivages de Lavinium, ballotté sur terre et sur mer…

Ce tableau schématise le résultat d'une composition en colonnes parallèles : le vers original et sa traduction sont alignés visuellement, comme dans la mise en page produite par ConTeXt (même si ici ce sont des vers de Virgile et non des vers anglais !).


Ce tableau schématise le résultat d'une composition en colonnes parallèles : le vers original et sa traduction sont alignés visuellement, comme dans la mise en page produite par ConTeXt.

2.2. Alignement strophe par strophe

[modifier | modifier le wikicode]

Si l’on souhaite que les strophes de la traduction soient visuellement alignées avec celles de l’original :

  • placer chaque strophe dans un bloc séparé ;
  • utiliser soit des colonnes, soit des tableaux sans bordures.

Exemple : strophes appariées (tableau sans bordures)

[modifier | modifier le wikicode]

Dans cet exemple, on aligne un poème original et sa traduction strophe par strophe. L’idée est la suivante :

  • \definelines[VO] et \definelines[VF] définissent deux environnements
 de vers qui respectent les retours à la ligne.
  • Le tableau (\bTABLE ... \eTABLE) sert uniquement à mettre en regard
 les strophes : colonne de gauche pour le texte original, colonne de droite pour la traduction.
  • Chaque strophe est un bloc \startVO ... \stopVO ou \startVF ... \stopVF
 placé dans une cellule (\bTD ... \eTD).
\setuppapersize[A5]
\setupbodyfont[modern,11pt]

% --- Deux environnements de vers (sans numérotation en soi)
\definelines[VO]
\definelines[VF]

% --- Définition d’un schéma de numérotation de lignes pour la VO
\definelinenumbering[VOlines]

\setuplinenumbering[VOlines][
  location=text,      % chiffres dans la zone de texte, pas dans la marge
  style=\tfxx,        % petits chiffres
  distance=0.5em,     % espace entre le numéro et le vers
]

\starttext

\subject{Poème bilingue : vers numérotés}

\bTABLE[split=no]

  \bTR
    \bTD
      % Numérotation activée pour la VO
      \startlinenumbering[VOlines]
      \startVO
When I have fears that I may cease to be\footnote{Allusion à la mort prématurée.}
Before my pen has gleaned my teeming brain,
      \stopVO
      \stoplinenumbering
    \eTD
    \bTD
      % Pas de numérotation pour la VF
      \startVF
Quand je crains de mourir avant d’avoir écrit
Tout ce que mon esprit foisonnant porte en germe,
      \stopVF
    \eTD
  \eTR

  \bTR
    \bTD
      \startlinenumbering[VOlines]
      \startVO
Before high-piled books, in charactery,
Hold like rich garners the full-ripen’d grain;
      \stopVO
      \stoplinenumbering
    \eTD
    \bTD
      \startVF
Avant que les grands livres, rangés comme des greniers,
Ne gardent mes moissons en pages mûries;
      \stopVF
    \eTD
  \eTR

\eTABLE

\stoptext
  • Dans le PDF on aura :
  • chaque colonne respecte les retours à la ligne comme des vers grâce à \definelines ;
  • chaque ligne du tableau (\bTR ... \eTR) correspond à une paire de strophes (original / traduction) ;
  • le tableau ne sert pas à faire de la "mise en page de données", mais simplement à aligner visuellement les blocs de vers.

3. Notes, numérotation de vers et formats savants

[modifier | modifier le wikicode]

Pour les éditions philologiques :

Numérotation dans la marge

[modifier | modifier le wikicode]
\setuplines[location=left] % numéros de vers en marge gauche

ConTeXt s’occupe alors de la numérotation automatique.

Notes sur les vers

[modifier | modifier le wikicode]

Dans un environnement lines, chaque note doit être placée dans la ligne elle-même :

\startpoeme
Voici le premier vers\footnote{Note sur ce vers}.
Voici le second vers.
\stoppoeme

Cela garantit que les notes suivent correctement la structure du poème.

3.1. Poésie bilingue savante : numérotation parallèle et notes

[modifier | modifier le wikicode]

Pour une édition plus savante, il peut être utile de numéroter les vers de l’original et de la traduction, éventuellement avec des notes. On peut réutiliser le principe du tableau pour aligner les strophes, tout en demandant à ConTeXt de numéroter les vers dans la marge.

Le principe :

  • \definelines[VO] et \definelines[VF] définissent deux environnements de vers.
  • \setuplines[VO][number=yes,location=left] demande à ConTeXt de numéroter les vers de VO dans la marge gauche.
  • On peut faire de même pour VF si l’on souhaite une numérotation parallèle.
  • Les notes sont simplement insérées dans les vers via \footnote{...}.
\setuppapersize[A5]
\setupbodyfont[modern,11pt]

% --- Deux environnements de vers, avec numérotation
\definelines[VO]
\definelines[VF]

\setuplines[VO][number=yes,location=left] % numérotation des vers VO en marge gauche
\setuplines[VF][number=yes,location=left] % idem pour VF (optionnel)

\starttext

\subject{Poème bilingue : vers numérotés}

\bTABLE[split=no]

  \bTR
    \bTD
      \startVO
When I have fears that I may cease to be\footnote{Allusion à la mort prématurée.}
Before my pen has gleaned my teeming brain,
\stopVO
    \eTD
    \bTD
      \startVF
Quand je crains de mourir avant d’avoir écrit
Tout ce que mon esprit foisonnant porte en germe,
\stopVF
    \eTD
  \eTR

  \bTR
    \bTD
      \startVO
Before high-piled books, in charactery,
Hold like rich garners the full-ripen’d grain;
\stopVO
    \eTD
    \bTD
      \startVF
Avant que les grands livres, rangés comme des greniers,
Ne gardent mes moissons en pages mûries;
\stopVF
    \eTD
  \eTR

\eTABLE

\stoptext

Dans le PDF :

  • chaque vers de VO et VF est numéroté automatiquement ;
  • les numéros apparaissent en marge gauche de chaque bloc ;
  • les notes insérées dans les vers (par \footnote) fonctionnent comme dans un texte normal.

Ce qui est attendu en sortie PDF

[modifier | modifier le wikicode]

Poème bilingue : vers numérotés (simulation de rendu PDF)


Texte original (anglais) Traduction française
1 When I have fears that I may cease to be1 Quand je crains de mourir avant d’avoir écrit
2 Before my pen has gleaned my teeming brain, Tout ce que mon esprit foisonnant porte en germe,
3 Before high-piled books, in charactery, Avant que les grands livres, rangés comme des greniers,
4 Hold like rich garners the full-ripen’d grain; Ne gardent mes moissons en pages mûries;

Note 1. Allusion à la mort prématurée.

3.2. Poésie et TEI-XML : exemple minimal de mapping

[modifier | modifier le wikicode]

Pour des éditions savantes, le poème peut être encodé en TEI-XML avec des balises comme <lg> (strophe) et <l> (vers). ConTeXt permet de définir des xmlsetups qui transforment ces balises en environnements de vers.

Exemple minimal :

<!-- Fichier : poeme.xml -->
<text>
  <body>
    <lg type="stanza">
      <l>Rien n’est plus doux que le silence,</l>
      <l>quand la maison retient son souffle,</l>
      <l>et que, derrière les vitres,</l>
      <l>la pluie polit les heures.</l>
    </lg>
  </body>
</text>

Côté ConTeXt :

% Fichier : poeme-tei.tex

\setuppapersize[A5]
\setupbodyfont[modern,11pt]

\definelines[poeme]
\setuplines[poeme][number=no]

% --- Définition des traitements XML
\startxmlsetups xml:poeme
  \xmlsetsetup{#1}{lg}{xml:strophe}
  \xmlsetsetup{#1}{l} {xml:vers}
\stopxmlsetups

\xmlregistersetup{xml:poeme}

\startxmlsetups xml:strophe
  \startpoeme
    \xmlflush{#1} % contenu de la strophe
  \stoppoeme
  \blank[medium]
\stopxmlsetups

\startxmlsetups xml:vers
  \xmlflush{#1}\par
\stopxmlsetups

\starttext
\xmlprocessfile{main}{poeme.xml}{}
\stoptext

Ici :

  • <lg> est transformé en un bloc \startpoeme ... \stoppoeme ;
  • chaque <l> devient un vers ;
  • la logique TEI reste extérieure au document, que ConTeXt se contente de mettre en forme.

3.3 Vers numérotés avec traduction en parallèle

[modifier | modifier le wikicode]

Composer des vers bilingues (texte original + traduction) en conservant une numérotation propre peut vite devenir compliqué si l’on s’occupe soi-même des colonnes, des numéros et de la mise en forme.

L’idée ici est de confier la structure à une macro ConTeXt, et de ne plus écrire que le contenu (les vers latin/français). Le résultat est un tableau à trois colonnes :

  • colonne 1 : numéro de vers ;
  • colonne 2 : vers original (par exemple en latin) ;
  • colonne 3 : traduction française.

Les numéros sont générés automatiquement, et les strophes peuvent être séparées par une ligne blanche.

Résultat visuel (schématisé)

Le code ci-dessous produit une page A5 avec :

  • un titre centré : Énéide I : hexamètres bilingues, en petites capitales ;
  • un tableau à trois colonnes :
    • colonne étroite pour le numéro de vers (1, 2, 3, …) ;
    • colonne de gauche (~38 % de la largeur) avec le texte latin en italique ;
    • colonne de droite (~48 % de la largeur) avec la traduction française en romain ;
  • deux strophes séparées par une ligne blanche ;
  • une taille de police légèrement réduite pour le bloc de poésie (lecture dense mais lisible).

On peut imaginer le rendu de la façon suivante :

                ÉNÉIDE I : HEXAMÈTRES BILINGUES

N.   LATIN (italique)                    FRANÇAIS (romain)
1    Arma virumque cano...               Je chante les armes et l’homme...
2    Italiam, fato profugus...           Chassé par le destin, il vint...
3    multum ille et terris...            Longtemps ballotté sur les terres...
4    vi superum saevae...                Par la force des dieux, à cause...

     [ligne blanche pour séparer les strophes]

5    multa quoque et bello passus...     Ayant souffert aussi de nombreuses guerres...
6    inferretque deos Latio...           Et apporter ses dieux au Latium...
7    Albanique patres...                 Les pères d’Albe la Longue...
Code ConTeXt à placer dans votre document
[modifier | modifier le wikicode]

Le fichier suivant est un exemple complet prêt à être compilé avec ConTeXt LMTX. Vous pouvez soit :

  • le compiler tel quel comme fichier *.tex autonome ;
  • soit copier la partie « définition des macros » dans votre environnement ConTeXt, et conserver seulement le bloc \starttext...\stoptext comme exemple.
\setuppapersize[A5]
\setupbodyfont[modern,11pt]

% --- Compteur simple pour les vers ---
\newcount\VerseNo
\VerseNo=0

% --- Format d’affichage du numéro de vers (personnalisable) ---
\define[1]\VerseNumber{#1}

% --- Macro pour une paire de vers (latin + traduction) ---
\def\Hex#1#2{%
  \global\advance\VerseNo by 1
  \NC \VerseNumber{\the\VerseNo}%
  \NC {\it #1}%
  \NC {#2}%
  \NR
}

% --- Petite macro pour séparer visuellement les strophes ---
\def\HexStrophe{%
  \NC \null \NC \null \NC \null \NR
}

\starttext

% Titre centré, petites capitales, taille modérée
\blank[2*big]
\startalignment[middle]
  {\sc Énéide I : hexamètres bilingues}
\stopalignment
\blank[medium]

% Bloc versifié en police réduite, pour tenir sur 1 seule page
{\switchtobodyfont[small]

\VerseNo=0
\starttabulate[|r|p(.38\textwidth)|p(.48\textwidth)|]
  \NC \bf N.\NC \bf Latin\NC \bf Français\NR

  % --- Strophe 1 ---
  \Hex{Arma virumque cano, Troiae qui primus ab oris,}
      {Je chante les armes et l’homme, qui le premier, des rivages de Troie,}

  \Hex{Italiam, fato profugus, Laviniaque venit litora,}
      {chassé par le destin, vint en Italie et aux rivages de Lavinium,}

  \Hex{multum ille et terris iactatus et alto,}
      {longtemps ballotté sur les terres et sur les flots,}

  \Hex{vi superum saevae memorem Iunonis ob iram.}
      {par la force des dieux, à cause de la rancœur tenace de la cruelle Junon.}

  \HexStrophe

  % --- Strophe 2 ---
  \Hex{multa quoque et bello passus, dum conderet urbem,}
      {ayant souffert aussi de nombreuses guerres, jusqu’à fonder une cité,}

  \Hex{inferretque deos Latio, genus unde Latinum,}
      {et apporter ses dieux au Latium, d’où naîtra le peuple latin,}

  \Hex{Albanique patres, atque altae moenia Romae.}
      {les pères d’Albe la Longue, et les hautes murailles de Rome.}
\stoptabulate

} % fin du bloc en petite police

\stoptext
Comprendre le rôle des macros dans cet exemple
[modifier | modifier le wikicode]

Cet exemple illustre l’intérêt de quelques macros bien choisies :

  • \VerseNo : compteur interne qui stocke le numéro du vers courant ;
  • \Hex{#1}{#2} :
    • incrémente le compteur (\global\advance\VerseNo by 1) ;
    • place le numéro dans la première colonne ;
    • applique l’italique au texte original (deuxième colonne) ;
    • place la traduction (troisième colonne) ;
  • \HexStrophe : ajoute une ligne vide dans le tableau pour séparer deux strophes.

La structure de mise en page (trois colonnes, numérotation automatique, italique pour le latin, romain pour le français) est ainsi définie une fois pour toutes dans les macros. Lorsqu’on saisit le poème, on se contente d’écrire :

\Hex{vers en latin}{vers en français}
\Hex{vers en latin}{vers en français}
\HexStrophe
\Hex{vers en latin}{vers en français}

Cela rend le fichier plus lisible, limite les erreurs et permet de réutiliser le même codage pour d’autres textes versifiés (autres poètes, autres langues, etc.).

Note

Une page spécifique du Wikilivre détaille plus généralement la thématique des macros en ConTeXt (définition, arguments #1, #2, portée, bonnes pratiques). Ici, on voit déjà comment une macro bien pensée permet de transformer un problème de mise en page complexe en un simple schéma de saisie régulier.

3.4. Vers longs et retours visuels (runovers)

[modifier | modifier le wikicode]

Les vers trop longs pour tenir sur une seule ligne doivent parfois être coupés visuellement, tout en restant perçus comme un seul vers. On peut gérer cela de manière contrôlée en utilisant une macro qui force un retour à la ligne avec retrait.

Exemple simple :

\setuppapersize[A5]
\setupbodyfont[modern,11pt]

\definelines[poeme]

% Macro : "vers long" en deux segments,
% la deuxième partie est indentée.
\def\LongVers#1#2{%
  #1\par
  \hskip2em#2\par
}

\starttext

\subject{Vers longs avec retour visuel contrôlé}

\startpoeme
\LongVers{Voici un vers trop long pour tenir sur une seule ligne}{que l’on décide de poursuivre avec un léger retrait.}
Ce vers-ci est plus court.
\LongVers{Un autre vers très long qui doit être coupé}{pour conserver un rythme visuel lisible.}
\stoppoeme

\stoptext

Ici :

  • chaque \LongVers{...}{...} représente un seul vers "logique" coupé en deux lignes visuelles ;
  • la seconde partie est indentée de 2 em (\hskip2em) ;
  • cette méthode reste manuelle, mais elle donne un contrôle précis du rendu.

 Page précédente : apparat critique à plusieurs niveaux

Part. III, ch. 9  •  Versification et poésie  •  Sommaire

Page suivante : TEI-XML et poésie