Я пытаюсь использовать код из фрагмента, найденного в официальной документации «Отображение полей» (прокрутите вниз до «Известные проблемы и предупреждения»):
\version "2.18.2"
forget = #(define-music-function (music) (ly:music?) #{
\accidentalStyle forget
#music
\accidentalStyle modern
#})
{
\accidentalStyle modern
\time 2/4
\repeat volta 2 {
c'2
}
\alternative {
\repeat volta 1 { cis' }
\repeat volta 2 { \forget c' }
}
}
Когда я компилирую его, я получаю следующую ошибку:
Changing working directory to: `/tmp'
Processing `/tmp/11678868158475380898.ly'
Parsing.../usr/share/lilypond/2.18.2/scm/ly-syntax-constructors.scm:56:23: In expression (apply (ly:music-function-extract fun) parser ...):
/usr/share/lilypond/2.18.2/scm/ly-syntax-constructors.scm:56:23: Wrong number of arguments to #<procedure #f (music)>
Я получаю аналогичную ошибку при попытке использовать другие функции замены, например те, что представлены здесь . Я не знаком со схемой, поэтому я не могу отлаживать/анализировать, что я делаю неправильно.
Я использую Lilypond 2.18.2 на Raspberry Pi, если это имеет значение.
При использовании примеров из руководства для версии 2.23 для LilyPond версии 2.18 вы можете ожидать, что некоторые вещи не будут работать.
Как бы вы ни пришли к этой ссылке, попробуйте заменить v2.23
строку в ее URL на v2.18
и взять оттуда код примера.
Стоит отметить, что код в руководстве LilyPond выводит результаты на печать непосредственно в процессе создания файлов документации в формате HTML и PDF. Это означает, что нет никакого кода с напечатанными результатами, который "случайно" не смог бы скомпилироваться абсолютно как есть с версией, соответствующей руководству. Что может случиться, так это то, что напечатанные результаты отличаются от того, что вы ожидаете от текстового описания: в этом случае это может быть ошибка документации. Но не может случиться так, что он вообще не скомпилируется или выдаст другой визуальный результат, если вы используете правильную версию.
Вы также изменили содержимое \alternative
, заменив его чем-то синтаксически допустимым для 2.18, но контекстуально бессмысленным, что привело к абсурдному печатному результату.
\relative
. (Я знал об абсолютной нотации, но подумал, что вам также нужно будет объявить это конкретно.)
Глорфиндель
(music)
на(parser location music)
и теперь работает.