Hi Paul, >> Just for the record, here you've basically done this: >> x = y z >> but that only results in x = y, with z being "run" rather than being part of >> the definition of x. (See what gets logged with the snippet below.) > > Thanks! When I get a chance to run this, I will — and I’m sure it will be > informative.
Ran it, and saw the output. Thanks for the hint! This fix seems to solve the main problem highlighted by your counterexample-snippet: pageBreaksOff = \override Score.NonMusicalPaperColumn.page-break-permission = ##f pageBreaksOn = \revert Score.NonMusicalPaperColumn.page-break-permission lineBreaksOff = \override Score.NonMusicalPaperColumn.line-break-permission = ##f lineBreaksOn = \revert Score.NonMusicalPaperColumn.line-break-permission breaksOff = { \lineBreaksOff \pageBreaksOff } breaksOn = { \lineBreaksOn \pageBreaksOn } I’m surprised the definitions in my [now-previous] layout.ly include file didn’t have those braces included, as most of my multi-line shortcuts have them. By way of possible explanation, I haven’t included that particular file in any project in quite a long time — Jan-Peter’s amazing \editionEngraver affords me much more surgical control over layout than these old functions did/do — or I might have discovered this problem myself, and sooner. I have made numerous edits to all my include files over the past few years. One big one I remember was changing names like *BreaksForbid and *BreaksAllow to names like *BreaksOff and *BreaksOn (same with all my *Pedal functions, etc.), to more closely match the [new] naming conventions for other functions in the standard Lilypond codebase. Perhaps during that edit, I erroneously omitted the braces. If I had heeded Urs and Janek’s advice a long time ago, and implemented a full git system for my files, I’d be able to tell you exactly what happened! Best case scenario, of course, I’d have regression tests for all my additional functions and shortcuts… but “ain’t nobody got time for that!” ;) In any case, I’ll certainly check all of my definitions very closely now, to make sure a similar error hasn’t crept in to any others! Apologies again to the OP and the list for posting non-functional code as a solution to the OP’s question. _______ All of that being said… When I run your snippet with the new (braced) definitions, I get programming error: system with empty extent continuing, cross fingers programming error: system with empty extent continuing, cross fingers so I’m guessing the addition of the braces is insufficient to solve whatever problem David K was alluding to. I can’t say for sure, though. David will have to answer that himself. Thanks, Kieren. _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user