2.5 Conversioni manuali
In teoria, un programma come convert-ly potrebbe gestire qualsiasi
cambiamento di sintassi. Dopo tutto, un programma per computer interpreta
la vecchia versione e la nuova versione, quindi un altro programma
può tradurre un file in un altro1.
Tuttavia il progetto LilyPond ha risorse limitate: non tutte le conversioni sono compiute automaticamente. Di seguito è riportato l’elenco dei problemi noti.
1.6->2.0:
Doesn't always convert figured bass correctly, specifically things like {<
>}. Mats' comment on working around this:
To be able to run convert-ly
on it, I first replaced all occurrences of '{<' to some dummy like '{#'
and similarly I replaced '>}' with '&}'. After the conversion, I could
then change back from '{ #' to '{ <' and from '& }' to '> }'.
Doesn't convert all text markup correctly. In the old markup syntax,
it was possible to group a number of markup commands together within
parentheses, e.g.
-#'((bold italic) "string")
This will incorrectly be converted into
-\markup{{\bold italic} "string"}
instead of the correct
-\markup{\bold \italic "string"}
2.0->2.2:
Doesn't handle \partCombine
Doesn't do \addlyrics => \lyricsto, this breaks some scores with multiple
stanzas.
2.0->2.4:
\magnify isn't changed to \fontsize.
- \magnify #m => \fontsize #f, where f = 6ln(m)/ln(2)
remove-tag isn't changed.
- \applyMusic #(remove-tag '. . .) => \keepWithTag #'. . .
first-page-number isn't changed.
- first-page-number no => print-first-page-number = ##f
Line breaks in header strings aren't converted.
- \\\\ as line break in \header strings => \markup \center-align <
"First Line" "Second Line" >
Crescendo and decrescendo terminators aren't converted.
- \rced => \!
- \rc => \!
2.2->2.4:
\turnOff (used in \set Staff.VoltaBracket = \turnOff) is not properly
converted.
2.4.2->2.5.9
\markup{ \center-align <{ ... }> } should be converted to:
\markup{ \center-align {\line { ... }} }
but now, \line is missing.
2.4->2.6
Special LaTeX characters such as $~$ in text are not converted to UTF8.
2.8
\score{} must now begin with a music expression. Anything else
(particularly \header{}) must come after the music.
Note a piè di pagina
[1] O almeno questo è possibile in qualsiasi file LilyPond che non contenga codice Scheme. Se c’è del codice Scheme nel file, allora il file LilyPond contiene un linguaggio Turing-completo, ed è possibile imbattersi in problemi col famigerato “Problema dell’arresto” in informatica.