Soweit ich weiß, leitet ein doppelter Zeilenumbruch einen neuen Absatz ein. Innerhalb verse
wird dieser verwendet, um Strophen zu trennen, was auch mit möglich ist \\!
. Im LaTeX-Quellcode für lange, eigenständige Gedichte endet also fast jede Zeile mit \\
. Ist es möglich, stattdessen einen einzelnen Zeilenumbruch für neue Zeilen zu verwenden?
Im Wesentlichen habe ich
\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}
und möchte stattdessen gerne schreiben können
\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}
Antwort1
Hier ist eine Möglichkeit, \obeylines
mit einer Variation vonegregs AntwortZuAutomatischen vertikalen Abstand zwischen Blöcken einfügen, wenn \obeylines aktiv istum die Standardumgebung neu zu definieren verse
:
\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}
Antwort2
Tolle Frage und fantastische Antwort von Gonzalo Medina! Funktioniert prima! Eine Verbesserung für die aktuelle Version von 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