Можно ли опустить \\ в стихах?

Можно ли опустить \\ в стихах?

Насколько мне известно, двойной перенос строки вводит новый абзац. Внутри verseон используется для разделения строф, что также можно сделать с помощью \\!. Так что в исходном коде LaTeX для длинных отдельных стихотворений почти каждая строка заканчивается на \\. Можно ли вместо этого использовать одинарный перенос строки для новых строк?

По сути у меня есть

\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}

и вместо этого хотел бы иметь возможность писать

\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}

решение1

Вот одна из возможностей, используя\obeylines и вариацииответ egregкВставка автоматического вертикального пробела между блоками при активном \obeylinesдля переопределения стандартной 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}

введите описание изображения здесь

решение2

Отличный вопрос и фантастический ответ Гонсало Медины! Работает отлично! Усовершенствование для текущей версии 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    

Связанный контент