Hasta donde yo sé, un salto de línea doble introduce un nuevo párrafo. Dentro de verse
este se utiliza para separar estrofas, lo que también se puede hacer con \\!
. Entonces, en el código fuente de LaTeX para poemas largos e independientes, casi todas las líneas terminan con \\
. ¿Es posible utilizar un salto de línea único para las nuevas líneas?
Esencialmente tengo
\begin{verse}
There was a young lady of Niger \\
Who smiled as she rode on a tiger; \\
They returned from the ride \\
With the lady inside, \\
And the smile on the face of the tiger.
Second verse.
\end{verse}
y en cambio me gustaría poder escribir
\begin{verse}
There was a young lady of Niger
Who smiled as she rode on a tiger;
They returned from the ride
With the lady inside,
And the smile on the face of the tiger.
Second verse.
\end{verse}
Respuesta1
Aquí hay una posibilidad, usando \obeylines
y una variación dela respuesta de egregaInsertar espacio vertical automático entre bloques cuando \obeylines está activopara redefinir el verse
entorno estándar:
\documentclass{article}
\makeatletter
\renewenvironment{verse}
{\let\\\@centercr
\list{}{\itemsep \z@
\itemindent -1.5em
\listparindent\itemindent
\rightmargin \leftmargin
\advance\leftmargin 1.5em}
\item\relax\obeylines\begingroup\lccode`~=`\^^M
\lowercase{\endgroup\def~}{\par\leavevmode}%
\parskip=0pt plus 1pt%
}
{\endlist}
\makeatother
\begin{document}
\begin{verse}
There was a young lady of Niger
Who smiled as she rode on a tiger;
They returned from the ride
With the lady inside,
And the smile on the face of the tiger.
Second verse.
\end{verse}
\end{document}
Respuesta2
¡Gran pregunta y fantástica respuesta de Gonzalo Medina! ¡Funciona bien! Un refinamiento para la versión actual de MiKTeX 2.9:
\makeatletter
\renewenvironment{verse}[1][\linewidth]{%
\stepcounter{verse@envctr}%
\setcounter{poemline}{0}\refstepcounter{poemline}%
\setcounter{vslineno}{1}%
\let\\=\@vscentercr
\list{}{\itemsep \z@
\itemindent -\vindent%
\listparindent\itemindent
\parsep \stanzaskip
\ifdim #1 < \linewidth
\rightmargin \z@
\setlength{\leftmargin}{\linewidth}%
\addtolength{\leftmargin}{-#1}%
\addtolength{\leftmargin}{-0.5\leftmargin}%
\else
\rightmargin \leftmargin
\fi
\addtolength{\leftmargin}{\vindent}}%
\item\relax\obeylines\begingroup\lccode`~=`\^^M
\lowercase{\endgroup\def~}{\par\leavevmode}%
\parskip=0pt plus 1pt%
}
{\endlist}
\makeatother