Lilypond 装饰音符影响格式

Lilypond grace note affects formatting

当我用装饰音开始这首曲子时,它弄乱了格式:

代码:

\version "2.18.2"

\header {
    title = "Sonata in D Major"
    composer = "Joseph Haydn"
    opus = "Hob. XVI/37"
}

\language "english"

upper = \relative c'' {
    \clef treble
    \key d \major
    \time 4/4

    r4 r8 <cs a'> <d gs>( <cs a'>) <d gs>( <cs a'>) %m1
}

lower = \relative c {
    \clef treble
    \key d \major
    \time 4/4

    \grace gs''8( a-!) a,-! a-! a-! b(\trill a) b(\trill a)
}

\score {
    \new PianoStaff <<
        \set PianoStaff.instrumentName = #"Piano  "
        \new Staff = "upper" \upper
        \new Staff = "lower" \lower
    >>
    \layout { }
    \midi { }
}

如果我删除 \grace 指示,它会起作用(但当然,没有宽音符):

如何在保持正确格式的同时使用此装饰音符?这是 Lilypond 的错误吗?

这是一个已知问题,但有一个解决方法:只需在 r4 休止符之前的上层谱表添加一个间隔装饰音符 (\grace s8)。

\grace s8 r4 r8 <cs a'> % etc

建议在今年夏天 Google GSoC 期间研究该问题的修复,请参阅 http://lilypond.org/google-summer-of-code.html