> Le 5 juil. 2022 à 08:11, Jean Abou Samra <j...@abou-samra.fr> a écrit : > > Neither am I, but it is the only idea I could propose.
Well, here is another, completely different one. Instead of rearranging the translation process to let \fine abort translation, let translation run normally until the end. Then, ‘cut’ the result. For MIDI, that shouldn’t be too hard: while outputting, just stop where \fine was used. For layout output, there is already a battle-tested algorithm, the one used to break into pieces after determining page breaking. I think it should be feasible to adapt it to run right after translation a first time to eliminate the part after \fine. More precisely, it should be as if a \break was present as \fine and the subsequent systems were not printed. For example, whether an item on the non-musical column at the point of \fine is included depends on whether its break-visibility makes it visible at EOL. The fine text itself will thus be included, while a rehearsal mark won’t. That is just as expected. After all, it might be the only fully correct of doing it. Imagine a hairpin starting before fine and ending after. How steep the change in MIDI volume should be depends on its end moment and the absolute dynamic that is there, which can’t be known if translation is aborted at \fine. Jean