]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/it/usage/suggestions.itely
878cf13aecd5456156353aedfaf1f3ab23490482
[lilypond.git] / Documentation / it / usage / suggestions.itely
1 @c -*- coding: utf-8; mode: texinfo; -*-
2
3 @ignore
4     Translation of GIT committish: 7ba0a22641cb0c7f5949d66a06d1e2e1fd0b3033
5
6     When revising a translation, copy the HEAD committish of the
7     version that you are working on.  For details, see the Contributors'
8     Guide, node Updating translation committishes..
9 @end ignore
10
11 @c \version "2.13.36"
12
13 @node Consigli su come scrivere i file
14 @chapter Consigli su come scrivere i file
15 @translationof Suggestions for writing files
16
17 Ora puoi iniziare a scrivere file di input di LilyPond più grandi --
18 non più i piccoli esempi del tutorial, ma brani completi.
19 Ma qual è il modo migliore di farlo?
20
21 Finché LilyPond comprende i file di input e produce l'output che
22 desideri, non importa quale aspetto abbiano i file di input.  Tuttavia,
23 ci sono altre questioni da tenere a mente quando si scrivono
24 file di input di LilyPond.
25
26 @itemize
27 @item Se fai un errore?  La struttura di un file LilyPond può rendere
28 l'individuazione di certi errori più facile (o più difficile).
29
30 @item Se vuoi inviare i tuoi file di input a qualcuno?  E se vuoi modificare
31 i tuoi file di input dopo qualche anno?  Alcuni file di input di LilyPond sono
32 comprensibili a prima vista; altri ti possono lasciare perplesso per un'ora.
33
34 @item Se vuoi aggiornare il tuo file per poterlo usare
35 con una versione più recente di LilyPond?  La sintassi di input cambia di
36 tanto in tanto mentre LilyPond si evolve.  Alcune modifiche possono essere
37 fatte in automatico con @code{convert-ly}, ma altre potrebbero richiedere
38 un intervento manuale.  I file di input di LilyPond possono essere strutturati
39 per poter essere aggiornati in modo più semplice (o più difficile).
40
41 @end itemize
42
43 @menu
44 * Consigli generali::
45 * Scrivere musica esistente::
46 * Grandi progetti::
47 * Risoluzione dei problemi::
48 * Make e Makefiles::
49 @end menu
50
51
52 @node Consigli generali
53 @section Consigli generali
54 @translationof General suggestions
55
56 Ecco alcuni consigli che possono aiutarti ad evitare o risolvere
57 i problemi:
58
59 @itemize
60 @item @strong{Includi il numero di @code{\version} in ogni file}.  Nota che tutti
61 i modelli contengono l'informazione su @code{\version}.  Si consiglia vivamente
62 di includere sempre @code{\version}, non importa quanto piccolo possa essere
63 il file.  Per esperienza personale, è piuttosto frustrante cercare di ricordare
64 quale versione di LilyPond si usava alcuni anni prima.  @command{convert-ly}
65 richiede che si dichiari la versione di LilyPond utilizzata.
66
67 @item @strong{Includi i controlli}: @ruser{Bar and bar number checks},
68 @ruser{Octave checks}.  Se includi i controlli ogni tanto, allora se
69 fai un errore lo puoi individuare più rapidamente.  Cosa si intende per
70 @q{ogni tanto}?  Dipende dalla complessità della musica.
71 Se la musica è molto semplice, magari solo una o due volte.  Se la musica
72 è molto complessa, ad ogni battuta.
73
74 @item @strong{Una battuta per ogni linea di testo}.  Se c'è qualcosa di
75 complicato, nella musica stessa o nell'output che desideri, di solito è
76 preferibile scrivere una sola battuta per linea.  Risparmiare spazio sullo
77 schermo concentrando otto battute per ogni riga non conviene affatto
78 se poi devi fare il @q{debug} dei file di input.
79
80 @item @strong{Inserisci dei commenti nei file di input}.  Puoi usare i numeri
81 di battuta (ogni tanto) o dei riferimenti ai temi musicali
82 (@q{secondo tema nei violini,} @q{quarta variazione,} etc.).  Potresti non
83 aver bisogno dei commenti mentre scrivi il brano la prima volta, ma se due
84 o tre anni dopo vuoi cambiare qualcosa o se vuoi dare il sorgente a un amico,
85 sarà molto più difficile capire le tue intenzioni e la struttura del file
86 se non sono presenti dei commenti.
87
88 @item @strong{Indenta le parentesi graffe}.  Molti problemi sono causati
89 da uno squilibrio nel numero di @code{@{} e @code{@}}.
90
91 @item @strong{Esplicita le durate} all'inizio delle sezioni e delle
92 variabili.  Se specifichi @code{c4 d e} all'inizio di un fraseggio
93 (innvece di @code{c d e} soltanto) puoi evitare alcuni problemi
94 quando riarrangi la musica successivamente.
95
96 @item @strong{Separa le modifiche manuali (tweak)} dalle definizioni
97 musicali.  Vedi @rlearning{Ridurre l’input grazie a variabili e funzioni}, e
98 @rlearning{Style sheets}.
99
100 @end itemize
101
102
103 @node Scrivere musica esistente
104 @section Scrivere musica esistente
105 @translationof Typesetting existing music
106
107 Se stai scrivendo della musica da una partitura esistente (ovvero il brano
108 di uno spartito già scritto),
109
110 @itemize
111
112 @item Inserisci in LilyPond le note del manoscritto (la copia fisica della
113 musica) un sistema alla volta (ma sempre una battuta per linea di testo),
114 e controlla ogni sistema quando ne completi uno.  Puoi usare le proprietà
115 @code{showLastLength} o @code{showFirstLength} per velocizzare
116 l'elaborazione -- vedi @ruser{Skipping corrected music}.
117
118 @item Definisci @code{mBreak = @{ \break @}} e inserisci @code{\mBreak}
119 nel file di input ogni volta che nel manoscritto c'è un a capo.  In questo
120 modo è più semplice confrontare la musica generata da LilyPond con quella
121 originale.  Quando hai finito la revisione della partitura, puoi
122 definire @code{mBreak = @{ @}} per eliminare tutte queste interruzioni di
123 riga.  Così LilyPond potrà inserire le interruzioni dove ritiene stiano
124 meglio.
125
126 @item Quando si inserisce una parte per uno strumento traspositore in una
127 variabile, si consiglia di avvolgere le note tra parentesi
128
129 @example
130 \transpose c altezza-naturale @{...@}
131 @end example
132
133 @noindent
134 (dove @code{altezza-naturale} è l'altezza dello strumento) in modo
135 che la musica contenuta nella variabile sia effettivamente in Do. Puoi trasporla
136 all'indietro quando la variabile viene usata, se richiesto, ma potresti non
137 desiderarlo (ad esempio quando si stampa una partitura in intonazione reale,
138 quando si converte una parte per trombone dalla chiave di Sol alla chiave di
139 basso, etc.).  Errori nelle trasposizioni sono meno probabili se tutta la musica
140 contenuta nelle variabili è ad un'altezza costante.
141
142 Inoltre, trasponi sempre verso/dal Do.  Questo significa che le uniche altre
143 tonalità che userai sono le altezze naturali degli strumenti - bes
144 per una tromba in Si bemolle, aes per un clarinetto in La bemolle, etc.
145
146 @end itemize
147
148
149 @node Grandi progetti
150 @section Grandi progetti
151 @translationof Large projects
152
153 Quando si lavora a un grande progetto, definire una struttura chiara nel
154 file di input diventa vitale.
155
156 @itemize
157
158 @item @strong{Usa una variabile per ogni voce}, con un minimo di
159 struttura nella definizione.  La struttura della sezione
160 @code{\score} è la parte che più probabilmente cambierà;
161 la definizione di @code{violin} è molto improbabile che cambi
162 in una nuova versione di LilyPond.
163
164 @example
165 violin = \relative c'' @{
166 g4 c'8. e16
167 @}
168 ...
169 \score @{
170   \new GrandStaff @{
171     \new Staff @{
172       \violin
173     @}
174   @}
175 @}
176 @end example
177
178 @item @strong{Separa le modifiche manuali (tweak) dalle definizioni musicali}.  Questo
179 punto è stato menzionato prima, ma nei grandi progetti diventa di vitale
180 importanza.  Potrebbe essere necessario modificare la definizione
181 di @code{fthenp}, ma si dovrebbe farlo una volta sola e senza toccare
182 niente in @code{violin}.
183
184 @example
185 fthenp = _\markup@{
186   \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p @}
187 violin = \relative c'' @{
188 g4\fthenp c'8. e16
189 @}
190 @end example
191
192 @end itemize
193
194
195 @node Risoluzione dei problemi
196 @section Risoluzione dei problemi
197 @translationof Troubleshooting
198
199 Prima o poi ti capiterà di scrivere un file che LilyPond non
200 riesce a compilare.  I messaggi inviati da LilyPond potrebbero aiutarti
201 a trovare l'errore, ma in molti casi devi fare qualche ricerca
202 per individuare l'origine del problema.
203
204 Gli strumenti più potenti per questo scopo sono il commento della
205 linea singola (indicato da @code{%}) e il commento di blocco
206 (indicato da @code{%@{ ... %@}}).  Se non sai dove sta il problema,
207 inizia col commentare ampie parti del file di input.  Dopo aver commentato
208 una sezione, prova a compilare di nuovo il file.  Se funziona, allora il
209 problema deve trovarsi nella parte che hai appena commentato.  Se non
210 funziona, continua a commentare il materiale finché non hai qualcosa
211 che funziona.
212
213 Nel caso più estremo, potresti finire con soltanto
214
215 @example
216 \score @{
217   <<
218     % \melody
219     % \harmony
220     % \bass
221   >>
222   \layout@{@}
223 @}
224 @end example
225
226 @noindent
227 (in altre parole, un file senza musica)
228
229 Se accade questo, non rinunciare.  Decommenta un pezzetto -- ad esempio,
230 la parte di basso -- e vedi se funziona.  Se non funziona,
231 allora commenta tutta la musica del basso (ma lascia
232 @code{\bass} in @code{\score} non commentato).
233
234 @example
235 bass = \relative c' @{
236 %@{
237   c4 c c c
238   d d d d
239 %@}
240 @}
241 @end example
242
243 Ora inizia piano piano a decommentare la parte di
244 @code{bass} finché non trovi la linea che causa il problema.
245
246 Un'altra tecnica di debug molto utile consiste nel creare
247 @rweb{Esempi minimi}.
248
249
250 @node Make e Makefiles
251 @section Make e Makefiles
252 @translationof Make and Makefiles
253
254 @cindex makefiles
255 @cindex make
256
257 Tutte le piattaforme su cui Lilypond può essere installato supportano un
258 software chiamato @code{make}.  Questo software legge un file speciale chiamato
259 @code{Makefile} che definisce quali file dipendono da quali altri file e quali
260 comandi bisogna dare al sistema operativo per produrre un file da un
261 altro.  Ad esempio makefile può spiegare come generare
262 @file{ballad.pdf} e @file{ballad.midi} da @file{ballad.ly} eseguendo
263 Lilypond.
264
265 Ci sono situazioni in cui è una buona idea creare un @code{Makefile}
266 per il proprio progetto, per proprio comodo o come cortesia
267 per altri che potrebbero avere accesso ai file sorgente.
268 Questo vale per i progetti molto ampi con tanti file inclusi e
269 diverse opzioni di output (ad esempio, partitura completa, parti, partitura
270 del direttore, riduzione per pianoforte, etc.), o per progetti che
271 richiedono comandi difficili per la compilazione (come i progetti che
272 usano @code{lilypond-book}).  Makefiles variano molto in complessità
273 e flessibilità, in base alle necessità e alle abilità degli autori.
274 Il programma GNU Make è installato nelle distribuzioni GNU/Linux
275 e su MacOS X ed è disponibile anche per Windows.
276
277 Si veda il @strong{Manuale di GNU Make} per conoscere in dettaglio l'uso di
278 @code{make}, dato che quel che segue dà solo un'idea quel che può fare.
279
280 I comandi per definire delle regole in un makefile cambiano in base
281 alla piattaforma; ad esempio le varie forme di Linux e
282 MacOS usano @code{bash}, mentre Windows usa @code{cmd}.  Nota che su
283 MacOS X bisogna configurare il sistema per usare l'interprete da linea
284 di comando.  Di seguito alcuni makefile di esempio, con versioni sia per
285 Linux/MacOS sia per Windows.
286
287 Il primo esempio è per un'opera per orchestra in quattro
288 movimenti e ha la seguente struttura di directory:
289
290 @example
291 Symphony/
292 |-- MIDI/
293 |-- Makefile
294 |-- Notes/
295 |   |-- cello.ily
296 |   |-- figures.ily
297 |   |-- horn.ily
298 |   |-- oboe.ily
299 |   |-- trioString.ily
300 |   |-- viola.ily
301 |   |-- violinOne.ily
302 |   `-- violinTwo.ily
303 |-- PDF/
304 |-- Parts/
305 |   |-- symphony-cello.ly
306 |   |-- symphony-horn.ly
307 |   |-- symphony-oboes.ly
308 |   |-- symphony-viola.ly
309 |   |-- symphony-violinOne.ly
310 |   `-- symphony-violinTwo.ly
311 |-- Scores/
312 |   |-- symphony.ly
313 |   |-- symphonyI.ly
314 |   |-- symphonyII.ly
315 |   |-- symphonyIII.ly
316 |   `-- symphonyIV.ly
317 `-- symphonyDefs.ily
318 @end example
319
320 I file @file{.ly} nelle directory @file{Scores} e
321 @file{Parts} prendono le note dai file @file{.ily}
322 nella directory @file{Notes}:
323
324 @example
325 %%% inizio del file "symphony-cello.ly"
326 \include ../definitions.ily
327 \include ../Notes/cello.ily
328 @end example
329
330 Il makefile avrà i target di @code{score} (l'intero brano in partitura
331 completa), @code{movements} (movimenti individuali in partitura completa),
332 e @code{parts} (parti individuali per i musicisti).  C'è anche un
333 target @code{archive} che creerà un archivio compresso dei file sorgenti,
334 utile per la condivisione via web o email.  Ecco un esempio di
335 makefile per GNU/Linux e MacOS X.  Dovrebbe essere salvato col
336 nome @code{Makefile} nella directory principale del progetto:
337
338 @warning{Quando si definisce un target o una regola di pattern, le
339 linee successive devono iniziare con i tabulatori, non con gli spazi.}
340
341 @example
342 # Il prefisso al nome dei file di output
343 piece = symphony
344 # Determinazione del numero dei processori
345 CPU_CORES=`cat /proc/cpuinfo | grep -m1 "cpu cores" | sed s/".*: "//`
346 # Il comando per eseguire lilypond
347 LILY_CMD = lilypond -ddelete-intermediate-files \
348                     -dno-point-and-click -djob-count=$(CPU_CORES)
349
350 # I suffissi usati in questo Makefile.
351 .SUFFIXES: .ly .ily .pdf .midi
352
353 # I file di input e di output vengono cercati nelle directory elencate
354 # nella variabile VPATH.  Tutte queste sono sottodirectory della directory
355 # corrente (assegnata dalla variabile `CURDIR' di GNU make).
356 VPATH = \
357   $(CURDIR)/Scores \
358   $(CURDIR)/PDF \
359   $(CURDIR)/Parts \
360   $(CURDIR)/Notes
361
362 # La regola di pattern per creare i file PDF e MIDI da un file di input LY.
363 # I file di output .pdf vengono messi nella sottodirectory `PDF', mentre i file
364 # .midi vanno nella sottodirectory `MIDI'.
365 %.pdf %.midi: %.ly
366         $(LILY_CMD) $<; \           # questa linea inizia con una tabulazione
367         if test -f "$*.pdf"; then \
368             mv "$*.pdf" PDF/; \
369         fi; \
370         if test -f "$*.midi"; then \
371             mv "$*.midi" MIDI/; \
372         fi
373
374 notes = \
375   cello.ily \
376   horn.ily \
377   oboe.ily \
378   viola.ily \
379   violinOne.ily \
380   violinTwo.ily
381
382 # Le dipendenze dei movimenti.
383 $(piece)I.pdf: $(piece)I.ly $(notes)
384 $(piece)II.pdf: $(piece)II.ly $(notes)
385 $(piece)III.pdf: $(piece)III.ly $(notes)
386 $(piece)IV.pdf: $(piece)IV.ly $(notes)
387
388 # Le dipendenze della partitura completa.
389 $(piece).pdf: $(piece).ly $(notes)
390
391 # Le dipendenze delle parti.
392 $(piece)-cello.pdf: $(piece)-cello.ly cello.ily
393 $(piece)-horn.pdf: $(piece)-horn.ly horn.ily
394 $(piece)-oboes.pdf: $(piece)-oboes.ly oboe.ily
395 $(piece)-viola.pdf: $(piece)-viola.ly viola.ily
396 $(piece)-violinOne.pdf: $(piece)-violinOne.ly violinOne.ily
397 $(piece)-violinTwo.pdf: $(piece)-violinTwo.ly violinTwo.ily
398
399 # Lanciare `make score' per generare la partitura completa di tutti i quattro
400 # movimenti in un unico file.
401 .PHONY: score
402 score: $(piece).pdf
403
404 # Lanciare `make parts' per generare tutte le parti.
405 # Lanciare `make foo.pdf' per generare la parte per lo strumento `foo'.
406 # Esempio: `make symphony-cello.pdf'.
407 .PHONY: parts
408 parts: $(piece)-cello.pdf \
409        $(piece)-violinOne.pdf \
410        $(piece)-violinTwo.pdf \
411        $(piece)-viola.pdf \
412        $(piece)-oboes.pdf \
413        $(piece)-horn.pdf
414
415 # Lanciare `make movements' per generare i file per i
416 # quattro movimenti separatamente.
417 .PHONY: movements
418 movements: $(piece)I.pdf \
419            $(piece)II.pdf \
420            $(piece)III.pdf \
421            $(piece)IV.pdf
422
423 all: score parts movements
424
425 archive:
426         tar -cvvf stamitz.tar \       # questa linea inizia con una tabulazione
427         --exclude=*pdf --exclude=*~ \
428         --exclude=*midi --exclude=*.tar \
429         ../Stamitz/*
430 @end example
431
432
433 Ci sono complicazioni specifiche nella piattaforma Windows.  Dopo aver
434 scaricato e installato GNU Make per Windows, bisogna impostare il percorso
435 corretto nelle variabili d'ambiente di sistema perché la
436 shell DOS possa trovare il programma Make.  Per farlo, clicca col tasto destro
437 del mouse su "My Computer," poi scegli @code{Proprietà} e
438 @code{Avanzate}.  Clicca su @code{Variabili di ambiente}, e poi nel
439 pannello @code{Variabili di Sistema}, nella sezione @code{Percorso}, clicca su
440 @code{modifica} e aggiungi il percorso al file eseguibile GNU Make, che
441 avrà un aspetto simile:
442
443 @example
444 C:\Program Files\GnuWin32\bin
445 @end example
446
447 Lo stesso makefile deve essere modificato per gestire diversi comandi
448 shell e gli spazi che sono presenti in alcune directory predefinite
449 di sistema.  Il target @code{archive} target viene tolto perché Windows
450 non ha il comando @code{tar}; inoltre Windows ha una diversa estensione
451 predefinita per i file midi.
452
453
454 @example
455 ## VERSIONE DI WINDOWS
456 ##
457 piece = symphony
458 LILY_CMD = lilypond -ddelete-intermediate-files \
459                     -dno-point-and-click \
460                     -djob-count=$(NUMBER_OF_PROCESSORS)
461
462 #get the 8.3 name of CURDIR (workaround for spaces in PATH)
463 workdir = $(shell for /f "tokens=*" %%b in ("$(CURDIR)") \
464           do @@echo %%~sb)
465
466 .SUFFIXES: .ly .ily .pdf .mid
467
468 VPATH = \
469   $(workdir)/Scores \
470   $(workdir)/PDF \
471   $(workdir)/Parts \
472   $(workdir)/Notes
473
474 %.pdf %.mid: %.ly
475         $(LILY_CMD) $<      # questa linea inizia con una tabulazione
476         if exist "$*.pdf"  move /Y "$*.pdf"  PDF/
477         if exist "$*.mid" move /Y "$*.mid" MIDI/
478
479 notes = \
480   cello.ily \
481   figures.ily \
482   horn.ily \
483   oboe.ily \
484   trioString.ily \
485   viola.ily \
486   violinOne.ily \
487   violinTwo.ily
488
489 $(piece)I.pdf: $(piece)I.ly $(notes)
490 $(piece)II.pdf: $(piece)II.ly $(notes)
491 $(piece)III.pdf: $(piece)III.ly $(notes)
492 $(piece)IV.pdf: $(piece)IV.ly $(notes)
493
494 $(piece).pdf: $(piece).ly $(notes)
495
496 $(piece)-cello.pdf: $(piece)-cello.ly cello.ily
497 $(piece)-horn.pdf: $(piece)-horn.ly horn.ily
498 $(piece)-oboes.pdf: $(piece)-oboes.ly oboe.ily
499 $(piece)-viola.pdf: $(piece)-viola.ly viola.ily
500 $(piece)-violinOne.pdf: $(piece)-violinOne.ly violinOne.ily
501 $(piece)-violinTwo.pdf: $(piece)-violinTwo.ly violinTwo.ily
502
503 .PHONY: score
504 score: $(piece).pdf
505
506 .PHONY: parts
507 parts: $(piece)-cello.pdf \
508        $(piece)-violinOne.pdf \
509        $(piece)-violinTwo.pdf \
510        $(piece)-viola.pdf \
511        $(piece)-oboes.pdf \
512        $(piece)-horn.pdf
513
514 .PHONY: movements
515 movements: $(piece)I.pdf \
516            $(piece)II.pdf \
517            $(piece)III.pdf \
518            $(piece)IV.pdf
519
520 all: score parts movements
521 @end example
522
523
524 Il Makefile seguente è per un documento @command{lilypond-book} fatto con
525 LaTeX.  Questo progetto ha un indice, dunque il comando @command{latex} deve
526 essere eseguito due volte per aggiornare i collegamenti.  I file di output
527 sono tutti salvati nella directory @code{out} per i file .pdf e nella directory
528 @code{htmlout} per i file html.
529
530 @example
531 SHELL=/bin/sh
532 FILE=myproject
533 OUTDIR=out
534 WEBDIR=htmlout
535 VIEWER=acroread
536 BROWSER=firefox
537 LILYBOOK_PDF=lilypond-book --output=$(OUTDIR) --pdf $(FILE).lytex
538 LILYBOOK_HTML=lilypond-book --output=$(WEBDIR) $(FILE).lytex
539 PDF=cd $(OUTDIR) && pdflatex $(FILE)
540 HTML=cd $(WEBDIR) && latex2html $(FILE)
541 INDEX=cd $(OUTDIR) && makeindex $(FILE)
542 PREVIEW=$(VIEWER) $(OUTDIR)/$(FILE).pdf &
543
544 all: pdf web keep
545
546 pdf:
547         $(LILYBOOK_PDF)  # inizia con una tabulazione
548         $(PDF)           # inizia con una tabulazione
549         $(INDEX)         # inizia con una tabulazione
550         $(PDF)           # inizia con una tabulazione
551         $(PREVIEW)       # inizia con una tabulazione
552
553 web:
554         $(LILYBOOK_HTML) # inizia con una tabulazione
555         $(HTML)          # inizia con una tabulazione
556         cp -R $(WEBDIR)/$(FILE)/ ./  # inizia con una tabulazione
557         $(BROWSER) $(FILE)/$(FILE).html &  # inizia con una tabulazione
558
559 keep: pdf
560         cp $(OUTDIR)/$(FILE).pdf $(FILE).pdf  # inizia con una tabulazione
561
562 clean:
563         rm -rf $(OUTDIR) # inizia con una tabulazione
564
565 web-clean:
566         rm -rf $(WEBDIR) # inizia con una tabulazione
567
568 archive:
569         tar -cvvf myproject.tar \ # inizia questa linea con una tabulazione
570         --exclude=out/* \
571         --exclude=htmlout/* \
572         --exclude=myproject/* \
573         --exclude=*midi \
574         --exclude=*pdf \
575         --exclude=*~ \
576         ../MyProject/*
577 @end example
578
579 @c TODO: make this thing work on Windows
580
581 Il makefile precedente non funziona su Windows.  Un'alternativa per
582 gli utenti Windows consiste nel creare un semplice file batch
583 contenente i comandi per la compilazione.  Questo file non terrà
584 traccia delle dipendenze come fa invece un makefile, ma almeno riduce
585 il processo di compilazione a un solo comando.  Salva il codice
586 seguente come @command{build.bat} o @command{build.cmd}.
587 Il file batch può essere eseguito nel prompt DOS o semplicemente con
588 un doppio clic sulla sua icona.
589
590 @example
591 lilypond-book --output=out --pdf myproject.lytex
592 cd out
593 pdflatex myproject
594 makeindex myproject
595 pdflatex myproject
596 cd ..
597 copy out\myproject.pdf MyProject.pdf
598 @end example
599
600
601 @seealso
602
603 Questo manuale:
604 @ref{Uso da linea di comando},
605 @ref{lilypond-book}
606