Estoy intentando personalizar el coro del songs
paquete pero no puedo entender por qué la primera línea no está alineada correctamente. elRdebe estar en la misma posición que el número del verso(1.).
Solía xpatch
eliminar todas las apariciones de \SB@cbarshift
y \cbarwidth
. Luego ajusté el estribillo para que tuviera el mismo formato que los versos.
\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}
Respuesta1
Para su situación particular, es el caso de los 4 %
signos que faltan en su parche de \SB@@beginchorus
. Aunque, para ser honesto, agregaría aún más %
señales al final de las líneas, para evitar que se introduzcan espacios perdidos en otras circunstancias.
Ver¿Para qué sirven los signos de porcentaje (%) al final de las líneas?
\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}