First of all, thanks to Simon for answering my previous question about how to get a split centered title in the running header. My adaptation of his solution is included below.
Next, I am trying to use bookpart to separate songs in a multi-song book.
The title of the piece remains the same, and I am using subtitle to identify each song.
The problem I now have is in subsequent book parts, the headers are printing twice:
1) Once is the running header, which works as intended.
2) Then the header for the song (bookpart) is printed, which includes title, subtitle, poet, composer and arranger.
Really, all I want is to print from the normal header is the subtitle.
o Setting arranger to "" is fine that does not need to get printed again.
o Setting title to "" is fine since the value used in the running header uses fixed variables (not the dynamic context variables like \fromproperty #'header:title)
o But for poet and composer, I either get the double printing, or if I set poet and composer to "", they do not get printed in either the running header nor the bookpart header.
So, my question boils down to: Is there a way to suppress printing of the poet and composer in a bookpart header (without setting the values to "")?
\version "2.19.11"
emDash = \markup \char ##x2014
titleKern = " "
pageNumberKern = " "
titleLeft = "Indal"
titleRight = "Haran"
\header {
poet = "Concert Pitch"
copyright = \markup { \tiny "copyright © 2014 D. Elaine Alt" }
title = \markup { \fontsize #4 \bold \line { \titleLeft " " \titleRight } }
composer = "Traditional"
arranger = "transcribed by D. Elaine Alt"
}
\paper {
print-page-number = ##t
print-first-page-number = ##f
oddHeaderMarkup = \markup {
\on-the-fly #print-page-number-check-first
\fill-line {
\fromproperty #'header:poet
\line {
\titleLeft
\titleKern
\emDash
\pageNumberKern
\lower #0.55 \fontsize #6 \fromproperty #'page:page-number-string
\pageNumberKern
\emDash
\titleKern
\titleRight
}
\fromproperty #'header:composer
}
}
evenHeaderMarkup = \oddHeaderMarkup
oddFooterMarkup = \markup { \fill-line { \fromproperty #'header:copyright } }
evenFooterMarkup = \oddFooterMarkup
}
dohaChaubolaDaud = \relative c'' {
\key bf \major
\numericTimeSignature
\once \override Staff.TimeSignature #'stencil = ##f
\time 4/4
\mark \markup { "part 1" }
bf8 bf bf a16 g bf2 |
a8 a f g16 a g8 f4. |
r8 bf ~ bf bf16 c af8. g16 f4 |
r4 f16 g f g ef8. d16 c4 |
r8 ef ~ ef ef16 f d4 c |
bf1 \bar "||" \break
\mark \markup {" part 2" }
bf'8 bf16 bf bf8 a16 c bf2 |
bf16 bf bf8 a a g8. f16 g8 a |
g8 f2.. |
r8 bf ~ bf bf16 c af8. g16 f4 |
r4 f16 g f g ef8. d16 c4 |
r8 ef ~ ef ef16 f d4 c \bar "||" \break
\mark \markup { "part 3" }
ef8 ef16 ef ef8 ef16 g f2 |
bf8. af16 af4 g8 g16 g g8 g16 a |
g8 f2.. |
r8 bf ~ bf bf16 c af8. g16 f4 |
f8 bf ~ bf f16 g ef8. d16 c4 |
r8 ef ~ ef ef16 f d4 c |
bf1 \bar "||" \break
}
dohaChand = \relative c' {
\key bf \minor
\numericTimeSignature
\once \override Staff.TimeSignature #'stencil = ##f
\time 4/4
\grace c16 ( df8 ) df df [ c16 bf ] c4 af8 bf16 c |
df c bf c af bf8. ~ bf4 r |
ef4 c ef8 ef16 ef f4 |
bf8 bf16 bf bf8 af16 g af8 g16 f ~ f4 |
r4 r8 ef16 f gf?8 f16 ef df8 c16 bf |
bf2 r2 \bar "||"
}
%%%%%
\book {
\bookpart {
\header {
subtitle = "Doha - Chaubola - Daud"
}
\score {
\new StaffGroup <<
\new Staff {
\set Staff.instrumentName = #""
\clef treble
\transpose c c { \dohaChaubolaDaud } \pageBreak
}
>>
}
}
\bookpart {
\header {
title = ""
subtitle = "Doha - Chand"
arranger = ""
% If these are set to "", then they are not printed in the running header.
% If these are left with pre-existing values, then the names are printed twice,
% once in the running header then once again above the score.
% How can I get them to print in the running header, but not above the score?
%composer = ""
%poet = ""
}
\score {
\new StaffGroup <<
\new Staff {
\set Staff.instrumentName = #""
\clef treble
\transpose c c { \dohaChand }
}
>>
}
}
}