5

Consider the following MWE.

\documentclass[12pt]{report}
\usepackage[francais]{babel}
\usepackage[utf8]{inputenc}

\begin{document}
\vspace*{\fill}
\begin{tabular}{l}
    \textbf{« Ah ! comme la neige a neigé !} \\
    \textbf{Ma vitre est un jardin de givre.} \\
    \textbf{Ah ! comme la neige a neigé !} \\
    \textbf{Qu'est-ce que le spasme de vivre} \\
    \textbf{À la douleur que j'ai, que j'ai ! [...] »} \\
    Émile Nelligan
\end{tabular}
\vspace*{\fill}

\end{document}

I want to double the space between the last rows, so that the name of the poet be disjoint from the poem. I know I can add an argument in brackets to the \\ to put more vertical space, but I don't know what is the exact value of the space between rows in a \tabular environment. All I've found is that it has default value 1 when trying to renew the command \arraystretch in the preamble. Since 1 is dimensionless, this tells me absolutely nothing about the real value.

5
  • 1
    Use an empty line \\~\\ Émile Nelligan
    – Sigur
    Jul 28, 2014 at 1:48
  • 2
    Have you considered the verse package?
    – pablos
    Jul 28, 2014 at 1:54
  • @pablos No, I haven't. But thanks for letting me know it exists.
    – Amateur
    Jul 28, 2014 at 1:54
  • @Amateur you can find how to typeset poetry here ctan.math.washington.edu/tex-archive/macros/latex/contrib/verse/…
    – pablos
    Jul 28, 2014 at 2:09
  • 2
    The \vspace*{\fill} at the beginning of your code let mea think perhaps you want to typeset epigraphs. If this is indeed the case, there is an epigraph package. Otherwise, less known than verse is the gmverse package that's dedicated to typesetting verses too long to fit on one line.
    – Bernard
    Jul 28, 2014 at 2:29

2 Answers 2

5

To answer your question, in an array or tabular environment, line spacing is done by placing a strut in every row of height and depth given by \arraystretch times the height and depth of the strut produced by an ordinary \strut commmand. Thus, you can get the desired value (under normal circumstances) with something like

\newlength\mylen
\setlength\mylen{\dimexpr\arraystretch\ht\strutbox+\arraystretch\dp\strutbox\relax}

So you could do:

\documentclass[12pt]{report}
\usepackage[francais]{babel}
\usepackage[utf8]{inputenc}

\newlength\mylen
\setlength\mylen{\dimexpr\arraystretch\ht\strutbox+\arraystretch\dp\strutbox\relax}

\begin{document}
\vspace*{\fill}
\begin{tabular}{l}
    \textbf{« Ah ! comme la neige a neigé !} \\
    \textbf{Ma vitre est un jardin de givre.} \\
    \textbf{Ah ! comme la neige a neigé !} \\
    \textbf{Qu'est-ce que le spasme de vivre} \\
    \textbf{À la douleur que j'ai, que j'ai ! [...] »} \\[\mylen]
    Émile Nelligan
\end{tabular}
\vspace*{\fill}
\end{document}

which produces

enter image description here

The exact same result would be obtained with an empty additional row:

\begin{tabular}{l}
    \textbf{« Ah ! comme la neige a neigé !} \\
    \textbf{Ma vitre est un jardin de givre.} \\
    \textbf{Ah ! comme la neige a neigé !} \\
    \textbf{Qu'est-ce que le spasme de vivre} \\
    \textbf{À la douleur que j'ai, que j'ai ! [...] »} \\
    \\
    Émile Nelligan
\end{tabular}

However, as has been noticed in comments, to typeset poetry instead of using a tabular you could use the standard verse environment or the features provided by a number of dedicated packages such as:

In CTAN, under Poetry and Drama you'll find a list of other related packages.

In case you are interested in epigraphs, the epigraph package could be of interest for standard classes; memoir and the KOMA classes offer their own epigraph mechanisms.

3

Apart from reminding about the verse environment (and the package with the same name that provides some enhancements), I want to suggest using a special environment for this: the advantage is greater flexibility.

In the example I show that by just modifying the definition of \poet you get a different effect without acting on all poems.

\documentclass[12pt]{report}
\usepackage[T1]{fontenc}     % <---- Don't forget this with French!
\usepackage[utf8]{inputenc}
\usepackage[francais]{babel}

\newenvironment{poetry}[1][]
 {#1\begin{tabular}{l}}
 {\end{tabular}}

\newcommand{\poet}[1]{\noalign{\vspace{.5\normalbaselineskip}}\normalfont#1}

\begin{document}
\begin{poetry}[\bfseries]
« Ah ! comme la neige a neigé ! \\
Ma vitre est un jardin de givre. \\
Ah ! comme la neige a neigé ! \\
Qu'est-ce que le spasme de vivre \\
À la douleur que j'ai, que j'ai ! [...] » \\
\poet{Émile Nelligan}
\end{poetry}

\bigskip

\begin{poetry}[\itshape]
« Ah ! comme la neige a neigé ! \\
Ma vitre est un jardin de givre. \\
Ah ! comme la neige a neigé ! \\
Qu'est-ce que le spasme de vivre \\
À la douleur que j'ai, que j'ai ! [...] » \\
\poet{Émile Nelligan}
\end{poetry}

\bigskip

% this is how \poet could be defined in the preamble
\renewcommand{\poet}[1]{%
  \noalign{\vspace{.5\normalbaselineskip}}%
  \multicolumn{1}{r}{\normalfont\scshape#1}%
}

\begin{poetry}
« Ah ! comme la neige a neigé ! \\
Ma vitre est un jardin de givre. \\
Ah ! comme la neige a neigé ! \\
Qu'est-ce que le spasme de vivre \\
À la douleur que j'ai, que j'ai ! [...] » \\
\poet{Émile Nelligan}
\end{poetry}

\end{document}

enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .