Как я могу опустить разрывы и разрывы страниц в LilyPond?

Я создаю партитуру и партии из одного файла с различными \bookблоками, и в моих инструментальных партиях есть некоторые \breakи \pageBreakкоманды, но я хочу, чтобы в партитуре не было этих разрывов. Я подумал, что что-то вроде этого будет полезно:

\layout {
    \context {
        \Staff \RemoveEmptyStaves
        \omit or \remove [Something, possibly "\break" and "\pageBreak", but that doesn't work]
    }
}

Но я не могу найти какой-либо полезный ресурс для исключения перерывов во всей моей партитуре, сохраняя их в своих инструментальных партиях.

Ответы (2)

Одним из возможных способов было бы использование тегов . Основная идея очень проста: вы можете давать теги частям музыки, а затем выбирать, какие теги оставить.

Очень простой пример будет выглядеть так:

music = {
    c8 d e f g a b c | \tag #'breaks { \break }
    c b a g f e d c | \tag #'breaks { \pageBreak }
}

Оба перерыва отмечены тегом #'breaks. Теперь в своих партиях вы бы просто использовали \new Staff \new Voice \music(все помеченные вещи сохраняются по умолчанию), а в полной партитуре вы бы использовали \new Staff \new Voice \removeWithTag #'breaks \music(все, что имеет тег, #'musicоттуда удаляется).

В вашем случае вы можете использовать какое-то средство массового поиска и замены (я бы использовал его sedв Linux, но вы, вероятно, захотите что-то другое), чтобы заменить каждый \breakна \tag #'breaks { \break }, и аналогично для \pageBreak. Я не уверен, что это лучшее решение, но, по крайней мере, оно будет работать.

И, кстати, если вы хотите сделать несколько оценок из одной переменной, теги просто необходимы. Например, мне нужно было написать пару гитарных партитур с табулатурой, и я, конечно, хотел, чтобы Lilypond сгенерировала табулатуру и выгравировала партитуру в соответствии с той же самой музыкой, но часто нужно было вносить небольшие корректировки в партитуру и другие мелкие корректировки в табулатура. Поэтому я бы использовал два тега #'scoreи #'tab, чтобы отметить эти настройки, а затем я бы использовал \keepWithTag #'score \someMusicи \keepWithTag #'tab \someMusicсоответственно.

Вау, я никогда не слышал об этом раньше. Я люблю изучать новые трюки LilyPond!
Я на самом деле объединил оба ответа, и все было намного проще. Спасибо.

Хотя метки являются более универсальным решением, всегда есть кувалдный подход.

    перерыв = {}
    pageBreak = {}

который просто переопределяет команды.