2

I am printing a song. The song (several stanzas) has one chorus stanza that should be further indented and italicised.

I am using the verse environment (not package) and want to know the best way to achieve this. Currently I simply \hspace each line in the chorus stanza and wrap it in italics.

I know I could use the verse package, but this seems overkill; I want to know if I can indent a block within a verse environment, as the comment in the MWE suggests.

I would like to understand the logic of Tex: how nested environments (e.g. a chorus stanza in a verse) compete when they set the indent.

The MWE is

\documentclass[11pt,oneside]{article}
\begin{document}

\section*{Song Title}
\begin{verse}
1. word word word word word \\
word word word word word \\
word word word word word \\
word word word word word \\

\medskip

{\itshape   %I want to add a \addtoindent command here!!
Chorus: \\
\hspace{1em} chorus chorus chorus chorus \\
\hspace{1em} chorus chorus chorus chorus \\
\hspace{1em} chorus chorus chorus chorus \\
\hspace{1em} chorus chorus chorus chorus }

\medskip

2. word word word word word \\
word word word word word \\
word word word word word \\
word word word word word \\

\end{verse}
\end{document}
2

3 Answers 3

1

I introduce the chorusverse environment, governed by an added indent of \chorusindent. The environment automatically goes into italic and prints a line that says "Chorus:"

\documentclass[11pt,oneside]{article}
\usepackage{xpatch}
\def\chorusindent{1em}
\let\origverse\verse
\xpatchcmd\verse{\leftmargin 1.5em}{\leftmargin\chorusindent}{}{}
\xpatchcmd\verse{\itemindent -1.5em}{\itemindent\dimexpr-1.5em-\labelwidth-\labelsep}{}{}
\xpatchcmd\verse{\relax}{\relax\itshape Chorus:\\}{}{}
\let\chorusverse\verse
\let\endchorusverse\endverse
\let\verse\origverse
\begin{document}
\section*{Song Title}
\begin{verse}
1. word word word word word \\
word word word word word \\
word word word word word \\
word word word word word \\

\begin{chorusverse}
chorus chorus chorus chorus \\
chorus chorus chorus chorus \\
chorus chorus chorus chorus \\
chorus chorus chorus chorus 
\end{chorusverse}

2. word word word word word \\
word word word word word \\
word word word word word \\
word word word word word \\
\end{verse}
\end{document}

enter image description here

1
  • This also gives me some new coding to learn.
    – Tim
    Dec 3, 2015 at 18:10
0

As well as the other solutions you can also use the verse package and gmverse.

The advantage of this combination is

  1. Automatic visual centring of the poem
  2. if gmverse is loaded second then you can also enter lines without trailing //. This makes document creation much faster if you are copying and pasting from text sources.

The verse package also has a command \flagverse{} which will hang left the paragraph description e.g. \flagverse{\itshape Chorus:} would give chorus labels as in your request.

0

This might be overkill, but the indentedverse environment in poemscol does exactly what you want. You could make a hierarchy of differently indented blocks of lines if you wished.

You must log in to answer this question.

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