Am Fr., 1. Mai 2020 um 05:33 Uhr schrieb Brent Annable <brentanna...@gmail.com>: > > Hi all, > > I'm currently putting a whole bunch of separate pieces together into one > document, and occasionally I want to manually adjust the distance between > systems in one piece without affecting the spacing in the others. Because of > the file structure I've chosen, I can't include any top-level instructions in > \paper blocks without affecting all the other pieces in the document. Is > there a way of including an instruction within a \score block (or below), or > some other way to help adjust between-system spacing? > > Regards, > > Brent.
Hi Brent, please try the code below. It's not tested beyond the given minimal, thus test it thoroughly before you use it for serious work. \version "2.20.0" #(define (system-system-extra-offset-per-score number) "Sets @code{'counter}, defaulting to zero, in @code{ly:grob-layout} using @code{1+}. Relying on the read @code{'counter}, @code{'line-break-system-details}'s subproperty @code{'extra-offset} will be adjusted by the multiplication of @code{'counter}, starting with zero, and @var{number}. As a result the first system of a score is not affected, follow up system's Y-positions will be adjusted to get a different spacing, adding calculated multiples of @var{number} to the default." ;; See NR 4.4.2 Explicit staff and system positioning ;; for more info about 'line-break-system-details and the 'extra-offset there (lambda (grob) (if (positive? (ly:item-break-dir grob)) (begin (ly:output-def-set-variable! (ly:grob-layout grob) 'counter (1+ (ly:output-def-lookup (ly:grob-layout grob) 'counter 0))) (let ((val (ly:output-def-lookup (ly:grob-layout grob) 'counter 0))) (ly:grob-set-property! grob 'line-break-system-details `((extra-offset . (0 . ,(* (1- val) number)))))))))) scoreSystemSystemExtraOffset = #(define-music-function (nmbr)(number?) "Set @code{Score.NonMusicalPaperColumn.after-line-breaking} to the procedure @code{system-system-extra-offset-per-score} taking @var{nmbr] as its argument." #{ \override Score.NonMusicalPaperColumn.after-line-breaking = #(system-system-extra-offset-per-score nmbr) #}) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Examples %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \paper { ragged-right = ##f indent = 0 } %1 \score { << R1 R >> \header { piece = \markup \rounded-box \fill-line { "Piece 1" } } } %2 \score { << { \partial 4 r4 R1 \break R1 \break R1 } { \partial 4 r4 R1 \break R1 \break R1 } >> \header { piece = \markup \rounded-box \fill-line { "Piece 2" } } \layout { \scoreSystemSystemExtraOffset #-15 } } \pageBreak %3 \score { << { R1 \break R1 } { R1 \break R1 } >> \header { piece = \markup \rounded-box \fill-line { "Piece 3" } } \layout { \scoreSystemSystemExtraOffset #6 } } Cheers, Harm