2

I'm using leadsheets to create a songbook. Currently the name of the interpret is displayed at the end of the song, but I'd like to move it to the footer opposite of the page number. My problem is that I only want it to be displayed at the end of the song, so if a song spans multiple pages, the interpret should only show up in the footer of the last page, like so:

Screenshot of Document

I also had the problem that when I added \songproperty{interpret} to my fancyhdr footer, it only worked for the first song and not for any subsequent ones.

Here is an MWE:

\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}
\usepackage[T1]{fontenc}
\usepackage{leadsheets}
\usepackage[paperheight=11cm, paperwidth=16cm, top=7.5mm, bottom=7.5mm, inner=2cm, outer=1cm, nohead, includefoot, foot=1em]{geometry}

\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead{} %clear all header fields
\fancyfoot{} %clear all footer fields
\fancyfoot[LE,RO]{\thepage}
\renewcommand{\headrulewidth}{0pt}

\begin{document}

\begin{song}{title={Am Westermanns Lönstief}, interpret={Some Interpret}}
\begin{verse}
Am ^*{a}Wes termanns Lönstief pfeift ^*{d}ei siger ^{a}Wind, \\
uns ^*{d}schau kelt die ^{a}See wie die ^*{E}Mut ter ihr ^{a}Kind. \\
^{G}Am ^*{C}Wes termanns ^*{G}Löns tief ist ^*{C}al les so ^{G}grau, \\
wir ^*{a}fan gen den ^*{E}He ring, den ^*{a}Ka beljau.
\end{verse}
\begin{chorus}
Tschi^{d}ree macht die ^{a}See, tschi^{E}raa, tschi^{a}ree, \\
tschi^{d}ree macht die ^{a}See, tschi^*{E}ra hahaha tschi^{a}ree.
\end{chorus}
\begin{verse}
Durch Tage und Nächte wir kurven im Nord \\
und hieven die zappelnde Beute an Bord. \\
Wir kehlen den Hering und salzen ihn ein, \\
sind voll unsere Kantjes wir fahren heim.
\end{verse}
\begin{verse}
Südwester, das Ölzeug und Isländer Wams, \\
was nützen die Plünnen im Schneeflockentanz? \\
Ein daumenbreit Schluck aus der Buttel mit Rum, \\
das krempelt uns wieder 'ne Weile um.
\end{verse}
\begin{verse}
Spring über die Reling Jan Rasmus, tschiree, \\
fass Taue, halt fest dich, sonst fährst du zur See. \\
So mancher fuhr tief in den Meerkeller ein, \\
kommt nicht mehr heraus vor Sankt Nimmerlein.
\end{verse}
Interpret: \songproperty{interpret}
\end{song}
\newpage

\begin{song}{title={Song 2}, interpret={Another Interpret}}
\begin{verse}
Another day, another song.
\end{verse}
Interpret: \songproperty{interpret}
\end{song}
\newpage

\end{document}
2

The following code updates the song environment and replaces it with one that captures the interpret key-value and uses it to update the current page style at the \end{song}.

enter image description here

\documentclass{book}

\usepackage[utf8]{inputenc}
\usepackage[german]{babel}
\usepackage[T1]{fontenc}
\usepackage{leadsheets}
\usepackage[
  paperheight = 11cm,
  paperwidth = 16cm,
  top = 7.5mm,
  bottom = 7.5mm,
  inner = 2cm,
  outer = 1cm,
  nohead,
  includefoot,
  foot = 1em
]{geometry}

\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}% Clear header/footer
\fancyfoot[LE,RO]{\thepage}%
\renewcommand{\headrulewidth}{0pt}

\fancypagestyle{songinterpret}{%
  \fancyhf{}% Clear header/footer
  \fancyfoot[LE,RO]{\thepage}%
  \fancyfoot[RE,LO]{Interpret: \songINTERPRET}
  \renewcommand{\headrulewidth}{0pt}%
}

\let\oldsong\song
\let\endoldsong\endsong
\renewenvironment{song}[1]
  {\oldsong{#1}
     \xdef\songINTERPRET{\songproperty{interpret}}}% Capture interpret property
  {  %
     \thispagestyle{songinterpret}%
   \endoldsong
   \clearpage}

\begin{document}

\begin{song}{title={Am Westermanns Lönstief}, interpret={Some Interpret}}
\begin{verse}
Am ^*{a}Wes termanns Lönstief pfeift ^*{d}ei siger ^{a}Wind, \\
uns ^*{d}schau kelt die ^{a}See wie die ^*{E}Mut ter ihr ^{a}Kind. \\
^{G}Am ^*{C}Wes termanns ^*{G}Löns tief ist ^*{C}al les so ^{G}grau, \\
wir ^*{a}fan gen den ^*{E}He ring, den ^*{a}Ka beljau.
\end{verse}
\begin{chorus}
Tschi^{d}ree macht die ^{a}See, tschi^{E}raa, tschi^{a}ree, \\
tschi^{d}ree macht die ^{a}See, tschi^*{E}ra hahaha tschi^{a}ree.
\end{chorus}
\begin{verse}
Durch Tage und Nächte wir kurven im Nord \\
und hieven die zappelnde Beute an Bord. \\
Wir kehlen den Hering und salzen ihn ein, \\
sind voll unsere Kantjes wir fahren heim.
\end{verse}
\begin{verse}
Südwester, das Ölzeug und Isländer Wams, \\
was nützen die Plünnen im Schneeflockentanz? \\
Ein daumenbreit Schluck aus der Buttel mit Rum, \\
das krempelt uns wieder 'ne Weile um.
\end{verse}
\begin{verse}
Spring über die Reling Jan Rasmus, tschiree, \\
fass Taue, halt fest dich, sonst fährst du zur See. \\
So mancher fuhr tief in den Meerkeller ein, \\
kommt nicht mehr heraus vor Sankt Nimmerlein.
\end{verse}
\end{song}

\begin{song}{title={Song 2}, interpret={Another Interpret}}
\begin{verse}
Another day, another song.
\end{verse}
\end{song}

\end{document}
  • Awesome, thank you! I've been trying to customize your code. For some reason the \ifsongpropertiesequal function doesn't seem to work inside the \xdef\songinterpret function. Apparently it's always resolving to true no matter what. Do you have any idea why? – user3249829 Oct 18 '18 at 19:53
  • @user3249829: I'm unfamiliar with \ifsongpropertiesequal. Can you provide a complete example of your use-case where you perform the test? – Werner Oct 18 '18 at 20:20
  • This might be a more complex issue better suited for a new thread. I have a workaround for now, if it becomes a problem I'll post another question. Anyway, thanks again! Your solution goes far beyond my current grasp on Latex, so I couldn't have figured it out without your help. – user3249829 Oct 22 '18 at 15:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.