Я создаю партитуру и партии из одного файла с различными \book
блоками, и в моих инструментальных партиях есть некоторые \break
и \pageBreak
команды, но я хочу, чтобы в партитуре не было этих разрывов. Я подумал, что что-то вроде этого будет полезно:
\layout {
\context {
\Staff \RemoveEmptyStaves
\omit or \remove [Something, possibly "\break" and "\pageBreak", but that doesn't work]
}
}
Но я не могу найти какой-либо полезный ресурс для исключения перерывов во всей моей партитуре, сохраняя их в своих инструментальных партиях.
Одним из возможных способов было бы использование тегов . Основная идея очень проста: вы можете давать теги частям музыки, а затем выбирать, какие теги оставить.
Очень простой пример будет выглядеть так:
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
соответственно.
Хотя метки являются более универсальным решением, всегда есть кувалдный подход.
перерыв = {} pageBreak = {}
который просто переопределяет команды.
Ричард
Кай Винтер