在诗句环境中缩进块

在诗句环境中缩进块

我正在打印一首歌曲。这首歌(有几个小节)有一个合唱小节应该进一步缩进和斜体化。

我正在使用verse环境(而不是包),想知道实现此目的的最佳方法。目前,我只是将\hspace合唱节中的每一行都用斜体包装起来。

我知道我可以使用 verse 包,但这似乎有点小题大做;我想知道我是否可以在 verse 环境中缩进一个块,正如 MWE 中的评论所建议的那样。

我想了解 Tex 的逻辑:嵌套环境(例如诗歌中的合唱节)在设置缩进时如何竞争。

MWE 是

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

答案1

我引入了chorusverse环境,通过添加缩进来控制\chorusindent。环境自动变为斜体并打印一行“合唱:”

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

在此处输入图片描述

答案2

除了其他解决方案之外,您还可以使用 verse 包和 gmverse。

这种组合的优点是

  1. 自动将诗歌视觉居中
  2. 如果 gmverse 是第二个加载的,那么您也可以输入不带 // 的行。如果您从文本源复制和粘贴,这将使文档创建速度更快。

verse 包中还有一个命令 \flagverse{},它将悬挂在段落描述左侧,例如 \flagverse{\itshape Chorus:} 将按照您的要求提供合唱标签。

答案3

这可能有点过头了,但 poetryscol 中的 indentedverse 环境正好满足了你的需要。如果你愿意,你可以创建不同缩进的行块层次结构。

相关内容