Пропуск нужного числа слогов

Jul 27, 2010 02:16

Лилипонд хоть и требует указывать длительность в команде \skip, предназначенной для создания пропусков в тексте, в некоторых режимах (например, когда текст подключен командой \lyricsto) эту длительность игнорирует, о чём честно предупреждает в документации (это не баг - это фича!) Однако жить от такой предупредительности не легче.

Писать здоровенные куски кода, содержащие множество команд \skip 1 \skip 1 \skip 1 - не наш метод. Гуглением нашлось два метода: тупой и правильный.

Тупой заключается в замене n команд \skip цифра на одну: \repeat unfold n { _ } - дёшево и сердито. Единственный минус - надо подсчитать число слогов в скрываемом фрагменте.

Правильный метод показан во втором примере на http://lilypond.org/doc/v2.12/Documentation/user/lilypond/Specific-uses-of-lyrics#Divisi-lyrics (хотя пример излишне сложен, смысл можно раскопать): мелодия делится на короткие голоса, к которым и привязываются фрагменты текста (также имеющие небольшую длину). Я как-то пробовал так делать: получилось, но тоже как-то всё непросто.

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

P. S. Попытки задать скрываемому тексту прозрачность или белый цвет не сработали, команды \hidеLуriсs в лилипонде нет.

lilypond, документация, программизм, ноты

Previous post Next post
Up