Hi folks,

I'm trying to reproduce a score with cross-staff beams in LilyPond, using

  \change Staff = "blahblah"

The result looks fine, but a warning is spat out by LilyPond (in Chinese):

  没有可用的起始构型:可能找不到合适的符尾倾角

Or, in English:

  no viable initial configuration found: may not find good beam slope

I learned from other threads that this warning is generally harmless, and can 
be suppressed by something like

  #(ly:expect-warning "no viable initial configuration found")

However, this only works when the language environment variable is set to 
English (`LANGUAGE=en_US`). In a Chinese environment, I have to use something 
like

  #(ly:expect-warning "没有可用的起始构型")

Well, things start to become inelegant. What if a user using another language 
wants to compile the document?

The documentation of `ly:expect-warning` says I should use `(_ ...)` to 
translate the message, but I can't get it to work:

  Unbound variable: _

I'm using LilyPond 2.25.7 (development version, but not the latest, for 
compatibility reasons). What should I do?

See the attachment for a (not really minimal) working example that will 
trigger the warning. I have tried to make it more minimal, but any further 
simplification will eliminate the warning. Sorry for the inconvenience.

Huanyu
\version "2.25.7"
<<
  \new GrandStaff <<
    \new Staff = "up" \relative {
      \time 2/4
      \key d \minor
      \clef treble
      <fis a d>4 r8 d'''8 |
      <<
        {
          \voiceOne
          fis4. cis16 d | \break
        }
        \new Voice {
          \voiceTwo
          fis16 <fis, a d> r d fis8 r |
    
        }
      >> |
      \oneVoice
      \cadenzaOn \change Staff = "down" a,,,8[ bes cis d e f g gis a bes cis d \change Staff = "up" e f g gis a bes cis d e f g \cadenzaOff gis a bes cis] |
    }
    \new Staff = "down" \relative {
      \time 2/4
      \key d \minor
      \clef bass
      R2*1 |
      r8 a16 d f fis gis a |
      \cadenzaOn s8*23 \cadenzaOff s2 |
    }
  >>
>>

Reply via email to