Comment mettre en page un poème ?#
1. Avec les commandes de base#
Il existe l’environnement verse
. Il gère les marges, les retours à la ligne dans une strophe se font par \\
et les strophes sont séparées par des lignes blanches :
\begin{verse}
J'ai un poney gris, \\
Qui galope à travers la prairie.
Grignote, grignote dans ma main, \\
La carotte rousse du jardin.
Mes cousins ont un poney blanc, \\
Qui parcourt chemins et champs.
\end{verse}
2. Avec l’extension « verse »#
L’extension verse étend les fonctionnalités de l’environnement verse
. Elle fournit entre autres une commande de titre de poème, le centrage global (l’ensemble du poème est centré mais les vers sont, sauf spécification contraire, alignés au fer à gauche.) du poème dans la page, la possibilité de régler l’espace vertical entre les strophes, la numérotation des lignes (ainsi que leurs étiquétes et références), etc.
Voici un exemple :
\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage{verse}
\usepackage{babel}
\newcommand{\attrib}[1]{\nopagebreak{\raggedleft\footnotesize #1\par}}
\setlength{\stanzaskip}{\baselineskip}
\begin{document}
\settowidth{\versewidth}{M'a fait trouver belles les femmes:}
\poemtitle{Gaspard Hauser chante}
{\shorthandoff{!}
\begin{verse}[\versewidth]
\poemlines{2}
Je suis venu, calme orphelin\\
Riche de mes seuls yeux tranquilles,\\
Vers les hommes des grandes villes :\\
Ils ne m'ont pas trouvé malin.\\!
À vingt ans un trouble nouveau,\\
Sous le nom d'amoureuses flammes,\\
M'a fait trouver belles les femmes :\\
Elles ne m'ont pas trouvé beau.\\!
Bien que sans patrie et sans roi\\
Et très brave ne l'étant guère,\\
J'ai voulu mourir à la guerre :\\
La mort n'a pas voulu de moi.\\!
Suis-je né trop tôt ou trop tard ?\\
Qu'est-ce que je fais en ce monde ?\\
Ô vous tous, ma peine est profonde :\\
Priez pour le pauvre Gaspard.\\!
\end{verse}}
\attrib{Paul \bsc{Verlaine}}
\end{document}
3. Un cas de code personnalisé#
Voici également un exemple de code pour mettre en forme un poème (de J.H.B. Nijhof), très légèrement modifié pour fonctionner avec LaTeX :
\documentclass[a4paper,12pt]{article}
\def\testline{%
\par\noindent
\hbox to 0pt{\hss*\hss}\hfill
\hbox to 0pt{\hss*\hss}\hfill
\hbox to 0pt{\hss*\hss}\par}
\def\centerstar{%
\par\medskip\noindent
\hbox to\hsize{\hss*\hss}\par
\medskip}
\newbox\poembox
\newbox\widebox
\newdimen\centerx
\newcount\linecount
\newdimen\poemleftmargin
\def\newpoem{%
\setbox0=\box\poembox
\setbox0=\box\widebox
\linecount=0} % boîte vide
\newpoem % probablement pas nécessaire
\def\poemline#1{\setbox0=\hbox{\strut #1}%
\setbox\poembox=\vbox{\unvbox\poembox\copy0}%
\setbox\widebox=\hbox{\unhbox\widebox\copy0}%
\advance \linecount 1}
\def\setpoem{% vous aurez besoin d'un saut de page ici.
\centerx=\wd\widebox
\divide\centerx\linecount
\divide\centerx 2%
%maintenant centerx est le x du centre de gravité
\poemleftmargin=0.5\hsize
\advance \poemleftmargin-\centerx
\noindent\kern\poemleftmargin\box\poembox
\par
\newpoem}
\begin{document}
\testline % pour voir les marges
\poemline{Rozen verwelken}
\poemline{schepen vergaan}
\poemline{maar onze liefde}
\poemline{zal blijven bestaan}
\setpoem
\centerstar
\poemline{Rozen verwelken}
\poemline{schepen vergaan}
\poemline{maar onze liefde zal blijven bestaan}
\setpoem
\centerstar
\poemline{Rozen verwelken, schepen vergaan}
\poemline{maar onze liefde zal blijven bestaan}
\setpoem
\centerstar
\poemline{Rozen verwelken}
\poemline{\qquad schepen vergaan}
\poemline{maar onze liefde}
\poemline{\qquad zal blijven bestaan}
\setpoem
\centerstar
\end{document}