... > I cannot be the only person to need to deal with this. What's the best > practice for making parts when using explicit page breaking?
So the question is, how do one handle, for a given set of music, varying requirements for line and page breaks ? The way I handle it is to first split the lilypond code into two sets. I'm using http://aspodata.se/git/musik/Guillaume_du_Fay/ave_regina_caelorum/ http://aspodata.se/git/musik/Franz_Zaver_Brixi/heac_est_dies/ here to exemplify things. One file (the .ily) with just the music and some defaults, e.g.: musTen = \relative a { \key c \major \[ a\breve*3/2 \melisma | % 1 g\breve \] f1 \melismaEnd | % 2 e\breve*3/2 | % 3 d\breve e1 | % 4 ... } I.e. just the music put in variables. Then I have realisation files, the .ly's, where I set e.g. paper and score things. In this I can also redefine the defaults set in the .ily file. In this example I have two of them ave_regina_caelorum.ly and ave_regina_caelorum_alt.ly, which differ in the look, old or a somewhat more modern: http://aspodata.se/choir/ensemble/2019-03-23/Guillaume_du_Fay_ave_regina_caelorum.pdf http://aspodata.se/choir/ensemble/2019-03-23/Guillaume_du_Fay_ave_regina_caelorum_alt.pdf or small typed (two pages) vs. big typed (three pages): http://aspodata.se/choir/osthammar/Brixi/ http://aspodata.se/git/musik/bin/mkinstr.pl relieves my of much the work writing staff things, which is much cut and paste. It generates the .instr_ily and .staff_ily files.) /// Now regarding page and line breaks, I use a variable PS which is set empty as default: PS = {} and usually that is sufficient, but in http://aspodata.se/git/musik/Franz_Zaver_Brixi/heac_est_dies/heac_est_dies_big.ly I want to put the page break in a proper place, like: \include "heac_est_dies.ily" PS = \relative f { s2.*85 | \pageBreak % 1..85 s2.*25 | % 86..110 } where in the "normal" two page version, I don't need that, which thus doesn't contain that redefinition. Then writing the staff part, make a new variable which has the with the line/page breaks, something linke: staffSop = \new Staff << \voiceSop \PS >> And the score becomes something like: For a partiture: \score { << \new ChoirStaff << \staffSop \staffAlt \staffTen \staffBas >> >> } for parts: \score { \staffSop } or if you wants it all in one file: PS = { ... \break ... } \score { \new Staff << \voiceSop \PS >> } PS = { ... some other \break's ... } \score { << \new ChoirStaff << \new Staff << \voiceSop \PS >> ... >> >> } So, by using variables, you can completely separate the "break structure" from the music. /// You mentioned \tag's, I don't know how this interract with tags. You mentioned signature changes, you can handle \time , \clef, \bar in the same way. Just write the Cello = \relative c' { } without any of theese things and use it like \new \Staff << \PS \timeCello \clefCello \barCello ... \Cello >> An example of that is in http://aspodata.se/git/musik/JohannPachelbel/magnificat/ clefCem.ily contains two variants of clef use which I can switch between them in magnificat.ly by commenting: \include "clefCem.ily" %clefCem = \clefCemOrg clefCem = \clefCemMod ... \score { ... \new GrandStaff << \transpose c \pitchTranspose \new Staff = "up" << \musA \musB \musC \BS \PS >> \transpose c \pitchTranspose \new Staff = "down" \with \nameCem << \clefCem \voiceCem \BS \PS >> \new FiguredBass \gbCem >> ... } Regards, /Karl Hammar _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user