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