Lilypond no alinea las letras correctamente

Estaba escribiendo partituras que consistían en melodía, acordes y letra. Para mi sorpresa, la letra no estaba correctamente alineada debajo de las notas. El archivo parecía el código fuente correcto de Lilypond:

global = {
    \time 3/4
    \partial 4
}

theChords = \chordmode {
    c4 | c2. | a2:m e4 | a2:m d4 | g2
}

melody = \relative c'' {
    g8.( e16) | c4 e g | c2 e8. d16 | c4 e, fis | g2
}

theLyrics = \lyricmode {
    O say can you see, by the dawn's ear -- ly light
}

\score {
    \new ChoirStaff <<
        \new ChordNames {
            \global \theChords
        }
        \new Staff = "Melody" <<
            \new Voice = "Melody" {
                \global \melody
            }
        >>
        \new Lyrics \lyricsto "Melody" {
            \theLyrics
        }
    >>
}

Sin embargo, produjo el siguiente resultado:

Respuestas (1)

Resulta que el documento de Word del que copié la letra contenía algunos espacios que no se rompen ; estos no se destacan en el editor de Lilypond* pero el compilador no los reconoce como separadores de palabras. Ve la totalidad de "O say can you see" como una sola sílaba.

Cuando reemplacé todos los espacios no estándar por espacios regulares, las letras se alinearon correctamente nuevamente.

* : o para el caso, la mayoría de los editores de texto. Después de publicar esta pregunta, me di cuenta de que el editor de Stack Exchange (o quizás mi navegador) los convierte automáticamente en espacios regulares. He subido el archivo a Google Drive, parece que los conserva y puedes descargarlo aquí . Confía en mí, el problema es real y me costó bastante tiempo averiguarlo...

Podría decirse que esto es un error. Dado que prácticamente todos los entornos muestran un NBSP igual que un espacio normal, la única respuesta razonable del sistema para lilypond sería tratarlos como espacios normales. Si desea una palabra con un espacio, debe citarla para mayor claridad.
@KilianFoth sí, tal vez debería presentar un error. Ya puedes usar a ~para 'pegar' palabras juntas.
Parece que usar ~ tiene un resultado diferente: la tilde agrega un vínculo a las palabras; usar comillas para unirlos no lo hace. Un espacio que no se rompe hace exactamente lo que le dices que haga: eso no es un error.
Puede 'pegar' palabras entre comillas dobles: "five words in one note" "two words" "one". (También puede hacerlo protegiendo los espacios con barras invertidas). Por lo tanto, no habría una gran pérdida al tratar los espacios que no se rompen como los normales. — Sin embargo, muchos otros programas no lo hacen, por lo que podría argumentar que es más coherente que Lilypond tampoco lo haga.