Urs Liska <li...@openlilylib.org> writes: > OK, but now I have a follow-up question which is quite similar to my > other post from today (and I'm afraid the answer is similarly > embarrassing): > > I managed to install an editionID to a specific movement's score with > this code: > > (ly:score-add-output-def! score > #{ > \layout { > \context { > \Score > #(editionID #f movement-path) > } > } > #}) > > which actually works when I use that "movement-path" variable to > address in \editionMod later. > > However, I would like to be able to also write this without the > permanent switches,
Permanent switches? Huh? > i.e. in pure Scheme syntax. Why? Seriously. > But unlike \key I can't simply "call" layout. > > My impression (after looking at the Scheme functions reference page > and a number of source files) is that I could use (ly:make-output-def) > to create the output definition and then use > ly:output-def-set-variable! to achieve the goal. An output definition created from scratch will be neither layout definition, midi definition, nor paper block. You are better off copying an existing template. Which is what #{ \layout ... #} does ($defaultlayout or something like that). > But after trying out a number of things I must admit I don't get to an > end with it. > > So again I have to hope for any hint ... If you want to replace the parser with your own Scheme code, your best bet is to look in lily/parser.yy and check what the actual parser code does. There is no user-level documentation for rewriting any LilyPond code in Scheme. Because it would be sort-of pointless given the user-level #{ ... #} construct. -- David Kastrup _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user