@c -*- coding: utf-8; mode: texinfo; -*- @ignore Translation of GIT committish: 0764a50d470cab82ca29da30298dacd333d3da12 When revising a translation, copy the HEAD committish of the version that you are working on. For details, see the Contributors' Guide, node Updating translation committishes. @end ignore @c \version "2.16.0" @c Translators: Pavel Fric @node Aktualizace souborů pomocí convert-ly @chapter Aktualizace souborů pomocí @command{convert-ly} @translationof Updating files with convert-ly @cindex Aktualizace souboru LilyPond @cindex convert-ly Vstupní skladba LilyPondu je vždy znovu měněna kvůli zjednodušení nebo různým vylepšením a vývoji. Vedlejší účinek toho je ale, že LilyPond často nadále nedokáže správně zpracovat starší vstupní soubory. Aby tento problém obešel, může program používat @command{convert-ly}, který zvládá většinu změn ve skladbě mezi různými verzemi LilyPondu. @menu * Proč se mění skladba?:: * Vyvolání convert-ly:: * Volby příkazového řádku pro convert-ly:: * Potíže s convert-ly:: * Ruční převod:: @end menu @node Proč se mění skladba? @section Proč se mění skladba? @translationof Why does the syntax change? @cindex convert-ly @cindex Aktualizace starých vstupních souborů @cindex Obnova starých vstupních souborů Vstupní skladba LilyPondu se čas od času mění. Když je program LilyPond zlepšen, je odpovídajícím způsobem přizpůsobena i skladba (zadávací jazyk). Některé změny dělají vstupní text snadnější pro zápis a ke čtení, jiné do LilyPondu přinášejí nové vlastnosti. Například všechny názvy vlastností @code{\paper} a @code{\layout} se mají zapisovat ve tvaru @code{první-druhá-třetí}. Ve verzi 2.11.60 si však všímáme, že vlastnost @code{printallheaders} se tohoto pravidla nedrží. Měli bychom to tak teď nechat (díky čemuž budou noví uživatelé zmateni, protože se musí vyrovnat se vstupním formátem, který není logický), nebo bychom to měli změnit (čímž naštveme staré uživatele s jejich již napsanými notovými zápisy)? V tomto případě jsme se rozhodli, že změníme název v @code{print-all-headers}. Naštěstí může být tato změna zautomatizována naším nástrojem @command{convert-ly}. Bohužel si @code{convert-ly} neporadí se všemi změnami ve skladbě. Například v LilyPondu 2.4 a dřívějších byly přízvuky a neanglická písmena v jiných jazycích zadávány příkazy LaTeXu -- tak například německé Änderung (změna) bylo zapsáno jako @code{\"Anderung}, nebo v případě zobrazení francouzského slova pro Vánoce bylo zadáno @code{No\"el}. Od verze 2.6 se ale musí přízvuky a zvláštní znaky za zapsat přímo jako znak UTF-8. @code{convert-ly} nedokáže převést všechny znaky LaTeXu, takže se musí kvůli aktualizaci starých souborů LilyPond převzít ručně. @node Vyvolání convert-ly @section Vyvolání @command{convert-ly} @translationof Invoking convert-ly @command{convert-ly} používá příkaz @code{\version} pro zjištění čísla staré verze LilyPondu ve vstupním souboru. Ve většině případů jednoduše stačí napsat v příkazovém řádku @example convert-ly -e můjsoubor.ly @end example @noindent v adresáři, v němž soubor leží. Tím je @file{můjsoubor.ly} přímo zaktualizován a původní soubor zachován v @file{můjsoubor.ly~}. @warning{@command{convert-ly} vždy převádí až po poslední změnu ve skladbě, kterou program zvládá. To znamená, že číslo @code{\version}, které v souboru stojí po převodu, je obvykle nižší než verze samotného @command{convert-ly}.} Pro převod všech souborů v adresáři se v příkazovém řádku napíše: @example convert-ly -e *.ly @end example Převedenému souboru lze rovněž určit jiný název, takže původní soubor zůstane nezměněn. K tomu se v příkazovém řádku napíše @example convert-ly můjsoubor.ly > můjnovýsoubor.ly @end example Program sestaví seznam s čísly všech verzí, pro které byl převod proveden. Pokud nejsou vypsána žádná čísla verzí, je soubor v nejnovější verzi. Uživatelé MacOS@tie{}X mohou příkazy spouštět přes položku nabídky @code{Compile > Update syntax}. Uživatelé Windows by tyto příkazy měli spouštět v příkazovém okně, které se obvykle nachází pod @code{Start > Příslušenství > Příkazy}. @node Volby příkazového řádku pro convert-ly @section Volby příkazového řádku pro @command{convert-ly} @translationof Command line options for convert-ly Program je vyvolán následujícím způsobem: @example convert-ly [@var{volba}]@dots{} @var{souborovýnázev}@dots{} @end example Mohou se používat následující volby: @table @code @item -e, --edit Použít převod přímo na vstupní soubor, takže je přímo změněn. @item -f, --from=@var{od-čísloverze} Nastavuje číslo verze, od kterého má převod začít. Když tato volba není použita, odhadne @command{convert-ly} číslo verze na základě údaje o @code{\version} v souboru. Například @code{--from=2.10.25} @item -n, --no-version Obvykle do výstupu @command{convert-ly} přidá záznam @code{\version} k převáděnému souboru. Zadání této volby povede k potlačení tohoto chování. @item -s, --show-rules Ukázat všechny známé převody a ukončit. @item --to=@var{po-čísloverze} Nastavit cílovou verzi převodu. Výchozí je poslední možná verze, kterou program zvládá. Například @code{--to=2.12.2} @item -h, --help Ukázat nápovědu k použití. @end table K aktualizaci úryvků LilyPondu v souborech texinfo lze použít @example convert-ly --from=... --to=... --no-version *.itely @end example @noindent . Pro zobrazení změn ve skladbě LilyPondu mezi dvěma verzemi se napíše @example convert-ly --from=... --to=... -s @end example @node Potíže s convert-ly @section Probleme mit @code{convert-ly} @translationof Problems running convert-ly Když se @command{convert-ly} používá v příkazovém okně ve Windows na souboru, který má v názvu souboru nebo v cestě k němu mezery, musí se celý název souboru obklopit třemi (!) dvojitými uvozovkami: @example convert-ly """D:/My Scores/Ode.ly""" > "D:/My Scores/new Ode.ly" @end example Když jednoduchý příkaz @command{convert-ly -e *.ly} nepracuje, protože je rozepsaný příkazový řádek příliš dlouhý, je také možné @command{convert-ly} nechat běžet opakovaně ve smyčce. Tento příklad pro UNIX převede všechny soubory @file{-ly} v nynějším adresáři: @example for f in *.ly; do convert-ly -e $f; done; @end example Pro příkazové okno ve Windows zní odpovídající příkaz takto: @example for %x in (*.ly) do convert-ly -e """%x""" @end example Ne všechny změny ve skladbě jsou převáděny. Lze zadat jen volbu pro výstup. Automatická aktualizace Scheme a kódu Scheme v LilyPondu je celkem nepravděpodobná, velice pravděpodobně se zde musí provést aktualizace ručně. @node Ruční převod @section Ruční převod @translationof Manual conversions Teoreticky by mohl program jako @command{convert-ly} zvládnout všechny změny ve skladbě. Konečně je to počítačový program, který vykládá starou a novou verzi souboru s notovým zápisem, takže jiný počítačový program by mohl přeložit jeden soubor do druhého.@footnote{To je každopádně možné u každého souboru LilyPond, který neobsahuje Scheme. Když bylo v souboru použito Scheme, potom takový soubor obsahuje úplný Turingův jazyk a my se tím dostáváme do potíží se slavným @qq{Zastavovacím problémem} informatiky.} Nicméně projekt LilyPond má omezené prostředky, počet členů jeho družstva je malý, takže ne všechny převody pracují automaticky. Dole je seznam známých potíží: @verbatim 1.6->2.0: Číslovaný bas není vždy převeden správně, obzvláště věci jako {< >}. Matovy poznámky k řešení: 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 '> }'. Ne všechny textové popisy jsou vždy převeden správně. Ve staré skladbě šlo seskupit více popisů závorkami, například: -#'((bold italic) "string") Toto je nesprávně převáděno na: -\markup{{\bold italic} "string"} namísto: -\markup{\bold \italic "string"} 2.0->2.2: Nerozumí \partcombine Nedělá \addlyrics => \lyricsto, takže některé soubory s mnoha slokami nepracují 2.0->2.4: \magnify není změněno na \fontsize. - \magnify #m => \fontsize #f, where f = 6ln(m)/ln(2) remove-tag není změněn. - \applyMusic #(remove-tag '. . .) => \keepWithTag #'. . . first-page-number není změněn. - first-page-number no => print-first-page-number = ##f Zalomení řádků v hlavičkách nejsou převedeny. - \\\\ jako zalomení řádku v polích \header => \markup \center-align < "První řádek" "Druhý řádek" > Koncové body pro crescendo a decrescendo-Endpunkte nejsou převedeny. - \rced => \! - \rc => \! 2.2->2.4: \turnOff (použito v \set Staff.VoltaBracket = \turnOff) není převeden správně 2.4.2->2.5.9 \markup{ \center-align <{ ... }> } by měl být převeden na: \markup{ \center-align {\line { ... }} } nyní ale chybí \line. 2.4->2.6 Zvláštní LaTeXové znaky jako $~$ v textu nejsou převedeny na UTF-8. 2.8 \score{} nyní musí vždy začínat hudebním výrazem. Všechno ostatní (obzvláště \header{}) smí přijít teprve po notách. @end verbatim