Регулировка расстояния между первым стихом и предыдущим абзацем с помощью `verse`

Регулировка расстояния между первым стихом и предыдущим абзацем с помощью `verse`

Вставка поэзии в прозаический текст с использованием эмбиента verseсоздает дистанцию ​​между первым стихом и предыдущим абзацем, а также между последним стихом и следующим абзацем.

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

Можно ли регулировать эти два разрыва?

решение1

Я оставляю вам установку разделителя, который подходит вам в качестве значения \topsep. Обратите внимание, что \partopsepдобавляется, когда перед , есть пустая строка verse, поэтому вы можете установить его вместо или вместе с \topsep.

\documentclass{article}

\usepackage{xpatch}
\xpatchcmd\verse
  {\itemsep}
  {\topsep=0pt \partopsep=0pt \itemsep}
  {}{}

\begin{document}

In the beginning, when God created the heavens and the
earth, the earth was a formless wasteland, and darkness covered
the abyss, while a mighty wind swept over the waters.

\begin{verse}
  La vispa Teresa gridava sospesa: \\
  l'ho presa, l'ho presa, la vispa Teresa! \\
  Gridava sospesa: L'ho presa, l'ho presa, \\
  La vispa Teresa! Grida sospesa
\end{verse}

Then God said, Let there be light, and there was light. God
saw how good the light was. God then separated the light from
the darkness.

\end{document}

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

решение2

Вы можете определить собственную myverseсреду, которая регулирует вертикальный интервал над/под стихом:

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

\documentclass{article}

\usepackage[paper=a5paper]{geometry}% Just for this example
\usepackage{mdframed,xkeyval}

\newlength{\mvskipabove}
\newlength{\mvskipbelow}
\makeatletter
\define@key{myverse}{skipabove}{\setlength{\mvskipabove}{#1}}
\define@key{myverse}{skipbelow}{\setlength{\mvskipbelow}{#1}}
\makeatother
\newenvironment{myverse}[1][]
  {\setkeys{myverse}{skipabove=0pt,skipbelow=0pt,#1}%
   \begin{mdframed}[
     leftmargin=1.5em,
     linewidth=0pt,
     innertopmargin=\mvskipabove,
     innerbottommargin=\mvskipbelow]}
  {\end{mdframed}}

\begin{document}

In the beginning, when God created the heavens and the
earth, the earth was a formless wasteland, and darkness covered
the abyss, while a mighty wind swept over the waters.

\begin{verse}
  La vispa Teresa gridava sospesa: \\
  l'ho presa, l'ho presa, la vispa Teresa! \\
  Gridava sospesa: L'ho presa, l'ho presa, \\
  La vispa Teresa! Grida sospesa
\end{verse}

Then God said, Let there be light, and there was light. God
saw how good the light was. God then separated the light from
the darkness.

\begin{myverse}
  La vispa Teresa gridava sospesa: \\
  l'ho presa, l'ho presa, la vispa Teresa! \\
  Gridava sospesa: L'ho presa, l'ho presa, \\
  La vispa Teresa! Grida sospesa
\end{myverse}

Then God said, Let there be light, and there was light. God
saw how good the light was. God then separated the light from
the darkness.

\begin{myverse}[skipabove=5\baselineskip,skipbelow=1pt]
  La vispa Teresa gridava sospesa: \\
  l'ho presa, l'ho presa, la vispa Teresa! \\
  Gridava sospesa: L'ho presa, l'ho presa, \\
  La vispa Teresa! Grida sospesa
\end{myverse}

Then God said, Let there be light, and there was light. God
saw how good the light was. God then separated the light from
the darkness.

\end{document}

Вышеуказанная myverseсреда на самом деле является mdframedсредой с некоторыми параметрами по умолчанию для имитации обычного verse. Однако вы можете дополнить эти параметры по умолчанию или указать их как необязательные аргументы myverseв форме skipabove=<len>и/или skipbelow=<len>, где <len>— некоторая длина.

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