1

I'm trying to engrave a sonata in three movements. I want to indicate the opus number only in the main \header block, but not in each separate score \header block.

So far, I've only been able to achieve showing the opus number in the score \header block, but not in the main \header block.

Code:

\version "2.22.2"

\paper {
    #(define fonts
        (set-global-fonts
            #:roman "Bodoni* 06"
            #:music "beethoven"
            #:brace "beethoven"
        )
    )
    print-all-headers = ##t
}

\header {
    title = "S O N A T A."
    opus = "Op. 79"
    composer = "L. van Beethoven"
    tagline = ##f
}

\book {
    % MOVEMENT 1
    \score {
        \header {
            title = "I."
            subtitle = ##f
            composer = ##f
        }
        \new PianoStaff \with { instrumentName = \markup { \huge \bold "25." }} <<
            \new Staff = "up" \with {
                \consists "Merge_rests_engraver"
            } \relative c'' {
                \override Score.BarNumber.stencil = #(make-stencil-circler 0.1 0.25 ly:text-interface::print)
                \override Score.BarNumber.font-series = #'bold

                \clef treble
                \key g \major
                \time 3/4
                \tempo "Presto alla tedesca."

                <g g'>4\f-. <b b'>-. <g g'>-. \bar ".|:"

                <d' d'>2(c'8 b a g fis g b g)
                fis4(e) d8(c b a gis a c a)
                fis2 a4-. c-. a-. fis-.

                g8\f d cis d fis g a d, cis d g a
                b g fis g c d e d c b a g fis4\p r8_\markup{\italic{leggerimente}}
                d fis a d fis, a d fis a, d fis a d, fis a d fis, a d fis e d4 r8
            }

            \new Staff = "down" \with { \consists "Merge_rests_engraver" } \relative c {
                \clef bass
                \key g \major
                \time 3/4

                \repeat unfold 9 {
                    <g' b>8 d'
                }

                \repeat unfold 5 {
                    <g, c> e'
                }

                \repeat unfold 7 {
                    <g, a c> d'
                }

                <g, b>2.
                <fis, d' fis>
                <g d' g>2 <a a'>8 <b b'>
                <c c'>4 <c c'> <cis cis'> 
            }
        >>

        \layout {}
    }
}

Result:

The "Op. 79" appears below the I. header, and not below the SONATA. header

the "Op. 79" appears below the I. header, and not below the SONATA. header

How do I make sure that the opus number appears below the title of the whole piece, and not the title of the movement?

Adriaan
  • 17,741
  • 7
  • 42
  • 75

1 Answers1

1

I'm not sure exactly what you want to do, but I would do something like this:

\version "2.22.2"

\paper {
    print-all-headers = ##t
}

\header {
    tagline = ##f
}

\book {
    % MOVEMENT 1
    \score {
        \header {
            title = "S O N A T A."
            opus = "Op. 79"
            composer = "L. van Beethoven"
            subtitle = "I."
        }
        { c'4 4 4 4 }
    }
    % MOVEMENT 2
    \score {
        \header {
            opus = ##f
            composer = ##f
            subtitle = "II."
        }
        { c'4 4 4 4 }
    }
}

Put everything in the first movement's header (I use subtitle here) and then only the subtitle in the subsequent movements.

(By the way, it's nice to have a minimal working example of the code you're working on when you post.)

ksnortum
  • 2,809
  • 4
  • 27
  • 36