Anpassen des Refrains im Liederpaket

Anpassen des Refrains im Liederpaket

Ich versuche, den Refrain des Pakets anzupassen songs, aber ich kann nicht herausfinden, warum die erste Zeile nicht richtig ausgerichtet ist.Rsollte an der gleichen Position wie die Versnummer stehen(1.).

Früher habe ich xpatchalle Vorkommen von \SB@cbarshiftund eliminiert \cbarwidth. Dann habe ich den Refrain so angepasst, dass er das gleiche Format wie die Strophen hat.

Lieder

\documentclass[a4paper]{report}
\usepackage[left=2.5cm,right=1cm,top=1cm,bottom=1cm]{geometry}
\usepackage[bookmarks,pdfborder={0 0 0}]{hyperref}
\usepackage[chorded,noshading]{songs}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{xpatch}
\songcolumns{1}
\setlength{\parindent}{0pt}

\makeatletter

\xpatchcmd{\justifyleft}
  {\SB@cbarshift}
  {\ifSB@inchorus\advance\leftskip\versenumwidth\fi}
  {}{}

\xpatchcmd{\justifycenter}
  {\SB@cbarshift}{}
  {}{}

\xpatchcmd{\SB@par}
  {\ifdim\cbarwidth>\z@\nobreak\else\SB@ilpenalty\fi}{}
  {}{}

\xpatchcmd{\brk}
  {
    \ifdim\cbarwidth=\z@%
    \ifrepchorus\marks\SB@cmarkclass{}\fi%
    \SB@breakpoint\brkpenalty%
  }
  {
    \endgroup\egroup
    \ifrepchorus\ifSB@gotchorus\else
      \global\setbox\SB@chorusbox\vbox{
        \unvbox\SB@chorusbox
        \SB@chorusbar\SB@box
        \unvcopy\SB@box
        \SB@breakpoint\brkpenalty
      }%
    \fi
  }
  {}{}

\xpatchcmd{\beginchorus}
  {\vnumberedfalse}{\vnumberedtrue}
  {}{}

\xpatchcmd{\SB@@beginchorus}
  {
    \setbox\SB@box\vbox\bgroup\begingroup%
      \ifchorded%
        \def\SB@everypar{%
          \vrule\@height\baselineskip\@width\z@\@depth\z@%
          \gdef\SB@everypar{}%
        }%
        \everypar{\SB@everypar\everypar{}}%
      \fi%
  }
  {
    \setbox\SB@box\vbox\bgroup\begingroup
      \ifvnumbered
        \def\SB@everypar{
          \setbox\SB@box\hbox{R}
           \ifdim\wd\SB@box<\versenumwidth
             \setbox\SB@box
             \hbox to\versenumwidth{\unhbox\SB@box\hfil}
           \fi
          \ifchorded\vrule\@height\baselineskip\@width\z@\@depth\z@\fi
          \placeversenum\SB@box
          \gdef\SB@everypar{}
        }
      \else
        \def\SB@everypar{
          \ifchorded\vrule\@height\baselineskip\@width\z@\@depth\z@\fi
          \gdef\SB@everypar{}
        }
      \fi
      \everypar{\SB@everypar\everypar{}}
  }
  {}{}

\xpatchcmd{\SB@endchorus}
  {\SB@chorusbar\SB@box}{}
  {}{}

\makeatother

\begin{document}
\begin{songs}{}

\beginsong{Dämmerung fällt}

\newchords{dfverse}
\newchords{dfchorus}

\beginverse\memorize[dfverse]
\[a]Dämmerung fällt und grauer \[d]Nebel zieht auf, \[G]einsamer Ruf von wilden \[C]Schwänen klingt auf.
\[a]Sitzen wir um das lodernd' \[d]Feuer herum, \[C]fragen uns leise: Warum \[G]zieh'n wir, warum?
\endverse

\beginchorus\memorize[dfchorus]
\[F]Nordwärts steh'n uns're Sterne, \[C]nordwärts, in weiter Ferne, \[a]nordwärts, da suchen wir das \[G]Glück.
\[F]Nordwärts bei Dunkelheiten, \[C]nordwärts durch Einsamkeiten, \[G]nordwärts, für uns gibt's kein Zu\[a]rück.
\endchorus

\endsong
\end{songs}
\end{document}

Antwort1

In Ihrem speziellen Fall sind es die 4 fehlenden %Zeichen in Ihrem Abschnitt von \SB@@beginchorus. Ehrlich gesagt würde ich jedoch %am Ende der Zeilen noch mehr Zeichen hinzufügen, um zu verhindern, dass unter anderen Umständen unauffällige Leerzeichen entstehen.

SehenWozu dienen Prozentzeichen (%) am Zeilenende?

\documentclass[a4paper]{report}
\usepackage[left=2.5cm,right=1cm,top=1cm,bottom=1cm]{geometry}
\usepackage[bookmarks,pdfborder={0 0 0}]{hyperref}
\usepackage[chorded,noshading]{songs}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{xpatch}
\songcolumns{1}
\setlength{\parindent}{0pt}

\makeatletter

\xpatchcmd{\justifyleft}
  {\SB@cbarshift}
  {\ifSB@inchorus\advance\leftskip\versenumwidth\fi}
  {}{}

\xpatchcmd{\justifycenter}
  {\SB@cbarshift}{}
  {}{}

\xpatchcmd{\SB@par}
  {\ifdim\cbarwidth>\z@\nobreak\else\SB@ilpenalty\fi}{}
  {}{}

\xpatchcmd{\brk}
  {
    \ifdim\cbarwidth=\z@%
    \ifrepchorus\marks\SB@cmarkclass{}\fi%
    \SB@breakpoint\brkpenalty%
  }
  {
    \endgroup\egroup
    \ifrepchorus\ifSB@gotchorus\else
      \global\setbox\SB@chorusbox\vbox{
        \unvbox\SB@chorusbox
        \SB@chorusbar\SB@box
        \unvcopy\SB@box
        \SB@breakpoint\brkpenalty
      }%
    \fi
  }
  {}{}

\xpatchcmd{\beginchorus}
  {\vnumberedfalse}{\vnumberedtrue}
  {}{}

\xpatchcmd{\SB@@beginchorus}
  {
    \setbox\SB@box\vbox\bgroup\begingroup%
      \ifchorded%
        \def\SB@everypar{%
          \vrule\@height\baselineskip\@width\z@\@depth\z@%
          \gdef\SB@everypar{}%
        }%
        \everypar{\SB@everypar\everypar{}}%
      \fi%
  }
  {
    \setbox\SB@box\vbox\bgroup\begingroup
      \ifvnumbered
        \def\SB@everypar{%
          \setbox\SB@box\hbox{R}%
           \ifdim\wd\SB@box<\versenumwidth
             \setbox\SB@box
             \hbox to\versenumwidth{\unhbox\SB@box\hfil}%
           \fi
          \ifchorded\vrule\@height\baselineskip\@width\z@\@depth\z@\fi
          \placeversenum\SB@box
          \gdef\SB@everypar{}%
        }
      \else
        \def\SB@everypar{
          \ifchorded\vrule\@height\baselineskip\@width\z@\@depth\z@\fi
          \gdef\SB@everypar{}
        }
      \fi
      \everypar{\SB@everypar\everypar{}}
  }
  {}{}

\xpatchcmd{\SB@endchorus}
  {\SB@chorusbar\SB@box}{}
  {}{}

\makeatother

\begin{document}
\begin{songs}{}

\beginsong{Dämmerung fällt}

\newchords{dfverse}
\newchords{dfchorus}

\beginverse\memorize[dfverse]
\[a]Dämmerung fällt und grauer \[d]Nebel zieht auf, \[G]einsamer Ruf von wilden \[C]Schwänen klingt auf.
\[a]Sitzen wir um das lodernd' \[d]Feuer herum, \[C]fragen uns leise: Warum \[G]zieh'n wir, warum?
\endverse

\beginchorus\memorize[dfchorus]
\[F]Nordwärts steh'n uns're Sterne, \[C]nordwärts, in weiter Ferne, \[a]nordwärts, da suchen wir das \[G]Glück.
\[F]Nordwärts bei Dunkelheiten, \[C]nordwärts durch Einsamkeiten, \[G]nordwärts, für uns gibt's kein Zu\[a]rück.
\endchorus

\endsong
\end{songs}
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen