Hi Vlado,
> Hello everyone, example: > > > > \version "2.24.1" > > > > > upper = { > > \key as \minor > > c'1 > > \stopStaff > > s1*4 > > \startStaff > > \section > > \sectionLabel "Coda" > > c'1 > > \bar ".|" > > } > > > > > lower = { > > \key as \minor > > c'1 > > \stopStaff > > s1*4 > > \startStaff > > \section > > \sectionLabel "Coda" > > c'1 > > \bar "|." > > } > > > > > \score { > > \new PianoStaff > > << > > \new Staff = "upper" \upper > > \new Staff = "lower" \lower > > >> > > } > > > > > How can I force lilypond to print pianostaff brace, clef and key signature at > the beginning of Coda that is not on line break? > > There is a way that was devised by Jean About Samoa earlier this year and it works brilliantly, I think, by copying the brace at the start of the system. It will need a bit of `cosmetic adjustment’ if you change the key signature or force a time signature, but you can get the effect that you require: \version "2.24.1" #(define replicate-stil (grob-transformer 'stencil (lambda (grob original) (let* ((replicate (ly:grob-array->list (ly:grob-object grob 'replicate-on-cols))) (left (ly:spanner-bound grob LEFT)) (own (interval-start (ly:paper-column::break-align-width left 'clef))) (sts (map (lambda (col) (let ((tr (interval-start (ly:paper-column::break-align-width col 'clef)))) (ly:stencil-outline (ly:stencil-translate-axis original (- tr own) X) empty-stencil))) replicate))) (apply ly:stencil-add (cons original sts)))))) \layout { \context { \PianoStaff \consists #(lambda (context) (let ((delims '()) (cols '())) (make-engraver (acknowledgers ((system-start-delimiter-interface engraver grob source-engraver) (set! delims (cons grob delims)))) ((stop-translation-timestep engraver) (let ((col (ly:context-property context 'currentCommandColumn))) (when (assoc-get 'replicate-delims (ly:grob-property col 'details)) (set! cols (cons col cols))))) ((finalize engraver) (for-each (lambda (delim) (ly:grob-set-object! delim 'replicate-on-cols (ly:grob-list->grob-array cols))) delims))))) \override SystemStartBar.stencil = #replicate-stil \override SystemStartBracket.stencil = #replicate-stil \override SystemStartBrace.stencil = #replicate-stil \override SystemStartSquare.stencil = #replicate-stil } } replicateDelims = { \once \override Score.NonMusicalPaperColumn.details.replicate-delims = ##t \once \set Staff.forceClef = ##t \once \override Staff.Clef.full-size-change = ##t \once \set Score.measureBarType = ##f \once \override Score.BreakAlignment.X-extent = #(lambda (grob) (match-let (((a . b) (ly:axis-group-interface::width grob))) (cons (- a 0.8) b))) } %%%%%%%%%%%%%% upper = { \key as \minor c'1 \stopStaff s1*4 \once \omit Staff.BarLine \once \omit PianoStaff.SpanBar \replicateDelims \startStaff \override PianoStaff.KeySignature.extra-offset = #'(-1 . 0) \key as \minor \override TextScript.X-offset = #-15.6 \override TextScript.Y-offset = #1.945 \section \sectionLabel "Coda" c'1^\markup { \override #'(line-cap-style . square) \with-dimensions #'(0 . 0) #'(0 . 0) \override #'(thickness . 2) \draw-line #'(0 . -12.875) } \bar ".|" } lower = { \key as \minor c'1 \stopStaff s1*4 \once \omit Staff.BarLine \replicateDelims \startStaff \key as \minor \section \sectionLabel "Coda" c'1 \bar "|." } \score { \new PianoStaff << \new Staff = "upper" \upper \new Staff = "lower" \lower >> } Jean’s original code is at https://music.stackexchange.com/questions/127631/how-can-i-insert-an-additional-systemstartbrace-into-a-pianostaff-in-lilypond, along with an equally successful alternative from Valentin Petzel. The code above should lead to this: I hope that this is helpful. Do let me know if you discover a more straightforward method! Alex Voice