]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/fr/usage/suggestions.itely
3ae1dc90cad08abd1007c56b9ff027f8c14f7d5a
[lilypond.git] / Documentation / fr / usage / suggestions.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
2
3 @ignore
4    Translation of GIT committish: eea3764cd6bbc78506261f78ed4e7745ac69df41
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.16.0"
12
13 @c Translators: Ludovic Sardain, Jean-Charles Malahieude
14 @c Translation checkers: Jean-Yves Baudais, Valentin Villenave, John Mandereau
15
16 @node Suggestions pour la saisie de fichiers LilyPond
17 @chapter Suggestions pour la saisie de fichiers LilyPond
18 @translationof Suggestions for writing files
19
20 Maintenant vous êtes prêt à travailler sur de plus gros fichiers
21 LilyPond -- des pièces entières, et plus seulement les petits
22 exemples du tutoriel.  Mais comment devriez-vous vous y prendre ?
23
24 Tant que LilyPond parvient à comprendre vos fichiers et produit le
25 résultat que vous souhaitez, peu importe la manière dont le code est
26 organisé.  Néanmoins, quelques critères doivent être pris en compte
27 lorsque l'on écrit un fichier LilyPond.
28
29 @itemize
30 @item
31 Si vous faites une erreur, la structure même du fichier LilyPond
32 peut permettre de la localiser plus ou moins facilement.
33
34 @item
35 Et si vous souhaitez partager vos fichiers avec quelqu'un d'autre, ou si
36 vous souhaitez modifier vos propres fichiers dans quelques années ?
37 Si certains fichiers LilyPond sont compréhensibles au premier coup
38 d'œil, d'autres vous feront vous arracher les cheveux pendant une heure.
39
40 @item
41 Et si vous souhaitez mettre à jour votre fichier pour l'utiliser avec
42 une version plus récente de LilyPond ?  La syntaxe du  langage d'entrée
43 change parfois lorsque LilyPond s'améliore.  La plupart des changements
44 peuvent être appliqués automatiquement avec @code{convert-ly}, mais
45 quelques-uns peuvent requérir une intervention manuelle.  Vos fichiers
46 LilyPond peuvent être structurés de manière à faciliter leur mise à
47 jour.
48 @end itemize
49
50 @menu
51 * Suggestions générales::
52 * Gravure de musique existante::
53 * Projets d'envergure::
54 * Résolution de problèmes::
55 * De la commande make et des fichiers Makefile::
56 @end menu
57
58
59 @node Suggestions générales
60 @section Suggestions générales
61 @translationof General suggestions
62
63 Voici quelques conseils qui peuvent vous éviter certains problèmes ou
64 en résoudre d'autres.
65
66 @itemize
67 @item @strong{Ajoutez le numéro de version dans chaque fichier}.
68 Notez que chaque fichier modèle contient une ligne
69 @code{\version "@version{}"}.  Nous vous conseillons fortement
70 d'inclure cette ligne, même pour de petits fichiers.  Par expérience, il
71 est très difficile de se rappeler quelle version de LilyPond on
72 utilisait quelques années auparavant.  L'utilitaire @command{convert-ly}
73 demande que vous spécifiiez la version de LilyPond vous utilisiez alors.
74
75 @item @strong{Ajoutez des contrôles}
76 @rusernamed{Vérifications d'octave,d'octaviation} et
77 @rusernamed{Vérification des limites et numéros de mesure,de limite ou
78 numéro de mesure}.  Si vous avez ajouté des contrôles de loin en loin,
79 et que vous faites une erreur, vous pourrez la retrouver plus
80 rapidement.  @qq{De loin en loin}, qu'est-ce à dire ?  Cela dépend
81 de la complexité de la musique.  Pour de la musique très simple,
82 peut-être une ou deux fois.  Pour de la musique très complexe, peut-être
83 à chaque mesure.
84
85 @item @strong{Une mesure par ligne de texte}.
86 Si la musique en elle-même ou le résultat que vous désirez contient
87 quelque chose de compliqué, il est souvent bon de n'écrire qu'une seule
88 mesure par ligne. Économiser de la place en tassant huit mesures par
89 ligne, ça ne vaut pas vraiment le coup si l'on doit corriger vos
90 fichiers.
91
92 @item @strong{Ajoutez des commentaires}.
93 Utilisez soit des numéros de mesure (assez souvent), soit des références
94 au contenu musical -- @qq{second thème des violons}, @qq{quatrième
95 variation}, etc.  Vous pouvez ne pas avoir besoin des commentaires
96 lorsque vous écrivez une pièce pour la première fois, mais si vous
97 souhaitez y revenir deux ou trois ans plus tard pour changer quelque
98 chose, ou si vous donnez le fichier source à un ami, ce sera beaucoup
99 plus difficile de déterminer vos intentions ou la manière dont votre
100 fichier est structuré si vous n'y avez pas adjoint de commentaires.
101
102 @item @strong{Indentez les accolades}.
103 Beaucoup de problèmes viennent d'un défaut de parité entre @code{@{} et
104 @code{@}}.
105
106 @item @strong{Mentionnez les durées}
107 au début de chaque section ou variable.  Si vous saisissez @code{c4 d e}
108 au début d'une phrase, vous vous épargnerez des problèmes si, plus tard,
109 vous modifiez votre musique.
110
111 @item @strong{Séparez les affinages de mise en forme}
112 de la musique elle-même.  Voyez
113 @rlearning{Économie de saisie grâce aux identificateurs et fonctions} et
114 @rlearning{Feuilles de style}.
115
116 @end itemize
117
118
119 @node Gravure de musique existante
120 @section Gravure de musique existante
121 @translationof Typesetting existing music
122
123 Si vous saisissez de la musique à partir d'une partition existante,
124 c'est-à-dire de la musique déjà écrite,
125
126 @itemize
127
128 @item 
129 n'entrez qu'un seul système de la partition originale
130 à la fois -- avec toujours une seule mesure par ligne de texte --,
131 et vérifiez chaque système lorsqu'il est terminé.  Vous pouvez
132 utiliser les commandes @code{showLastLength} et @code{showFirstLength}
133 pour accélérer la compilation -- voir
134 @ruser{Ignorer des passages de la partition} ;
135
136 @item
137 définissez @code{mBreak = @{ \break @}} et insérez @code{\mBreak} dans
138 le fichier d'entrée pour obtenir des sauts de ligne identiques à la
139 partition originale.  Cela facilite la comparaison entre la partition
140 originale et la partition de LilyPond.  Lorsque vous avez fini de relire
141 votre musique, vous pouvez définir @code{mBreak = @{ @}}
142 pour enlever tous ces sauts de ligne, et laisser LilyPond placer les
143 sauts de ligne selon son propre algorithme ;
144
145 @item
146 encadrez les notes d'une partie pour instrument transpositeur dans un
147
148 @example
149 \transpose c @var{tonalité-naturelle} @{...@}
150 @end example
151 (où @var{tonalité-naturelle} correspond à celle de l'instrument en
152 question) de telle sorte que la musique comprise dans cette variable se
153 retrouve en ut.  Vous pourrez toujours transposer à l'inverse si besoin
154 lorsque vous ferez appel à cette variable.  Des erreurs de transposition
155 seront moins susceptibles de se produire si la musique de toutes les
156 variables est dans la même et unique tonalité.
157
158 De la même manière, prenez toujours le do comme note de départ ou
159 d'arrivée.  Ceci aura pour simple conséquence que les autres tonalités
160 que vous utiliserez seront celles propres à chacun des instruments --
161 sib pour une trompette en si bémol, ou lab pour une clarinette en la bémol.
162
163 @end itemize
164
165
166 @node Projets d'envergure
167 @section Projets d'envergure
168 @translationof Large projects
169
170 Lorsque l'on travaille sur un gros projet, il devient vital
171 de structurer clairement ses fichiers LilyPond.
172
173 @itemize @bullet
174
175 @item @strong{Utilisez un identificateur pour chaque voix},
176 avec un minimum de structure dans la définition.  La structure de la
177 section @code{\score} est la plus susceptible de changer, notamment
178 dans une nouvelle version de LilyPond, alors que la définition du
179 @code{violon} l'est beaucoup moins.
180
181 @example
182 violon = \relative c'' @{
183 g4 c'8. e16
184 @}
185 ...
186 \score @{
187  \new GrandStaff @{
188    \new Staff @{
189      \violon
190    @}
191  @}
192 @}
193 @end example
194
195 @item @strong{Séparez les retouches} des définitions de musique.
196 Nous vous avons déjà invité à adopter une telle pratique, qui
197 par ailleurs devient vitale pour des projets d'importance.  Nous
198 pouvons avoir besoin de changer la définition de @code{fpuisp}, mais
199 dans ce cas nous n'aurons besoin de le faire qu'une seule fois, et nous
200 pourrons encore éviter de modifier quoi que ce soit à l'intérieur de la
201 définition du @code{violon}.
202
203 @example
204 fpuisp = _\markup@{
205  \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p @}
206 violon = \relative c'' @{
207 g4\fpuisp c'8. e16
208 @}
209 @end example
210
211 @end itemize
212
213
214 @node Résolution de problèmes
215 @section Résolution de problèmes
216 @translationof Troubleshooting
217
218 Tôt ou tard, vous écrirez un fichier que LilyPond ne peut pas
219 compiler.  Les messages que LilyPond affiche peuvent vous aider à
220 trouver l'erreur, mais dans beaucoup de cas vous aurez besoin de faire
221 quelques recherches pour déterminer la source du problème.
222
223 Pour ce faire, les outils les plus puissants sont le commentaire de
224 fin de ligne, indiqué par @code{%}, et le commentaire multilignes (ou
225 bloc de commentaire), indiqué par @code{%@{ ... %@}}.  Si vous ne
226 pouvez localiser le problème, commencez par mettre en commentaire de
227 grandes parties de votre fichier source.  Après avoir mis en
228 commentaire une section, essayez de compiler à nouveau.  Si cela
229 fonctionne, c'est que le problème se situe dans cette partie du
230 fichier.  Si cela ne fonctionne pas, continuez à mettre en commentaire
231 d'autres sections, jusqu'à ce que vous ayez quelque chose qui compile.
232
233 Dans un cas extrême, vous pourriez en arriver à
234
235 @example
236 \score @{
237   <<
238     % \melodie
239     % \harmonie
240     % \basse
241   >>
242   \layout@{@}
243 @}
244 @end example
245
246 @noindent
247 c'est-à-dire un fichier sans aucune musique.
248
249 Si cela se produit, ne vous découragez pas.  Décommentez un peu, la
250 partie de basse par exemple, et voyez si ça fonctionne.  Si ce n'est pas
251 le cas, placez en commentaire toute la partie de basse, mais laissez
252 @code{\basse} décommenté dans le bloc @code{\score}.
253
254 @example
255 basse = \relative c' @{
256 %@{
257   c4 c c c
258   d d d d
259 %@}
260 @}
261 @end example
262
263 Maintenant commencez à décommenter petit à petit le partie de
264 @code{basse} jusqu'à ce que vous localisiez la ligne qui pose
265 problème.
266
267 Une autre technique de débogage très utile est la construction
268 d'un @rwebnamed{Exemples minimaux,exemple minimaliste}.
269
270
271 @node De la commande make et des fichiers Makefile
272 @section De la commande make et des fichiers Makefile
273 @translationof Make and Makefiles
274
275 @cindex makefiles
276 @cindex make
277
278 La plupart des plates-formes sur lesquelles tourne LilyPond disposent
279 d'un logiciel appelé @code{make}.  Ce logiciel va lire un fichier
280 spécial, nommé @code{Makefile}, qui contient tout ce qu'il
281 faut -- les dépendances entre certains fichiers, les instructions
282 successives à traiter par le système -- pour aboutir au fichier que
283 vous désirez obtenir.  Il pourrait par exemple contenir tout ce qu'il
284 faut pour produire @file{ballade.pdf} et @file{ballade.midi} à partir de
285 @file{ballade.ly} en lançant LilyPond.
286
287 La création d'un @code{Makefile} peut se révéler pertinente pour
288 certains projets, que ce soit par simple goût personnel ou bien par
289 respect de ceux qui pourront accéder à vos sources.  Cette manière de
290 procéder est particulièrement indiquée lorsque vous travaillez sur un
291 projet de grande envergure impliquant de nombreuses inclusions de
292 fichiers et différentes éditions -- par exemple un conducteur et un
293 matériel d'orchestre complet avec la partition pour le chef et une
294 partition séparée pour chacun des pupitres -- ou bien si votre projet
295 requiert certaines commandes particulières comme @code{lilypond-book}.
296 Les @emph{Makefiles} varient tant en complexité qu'en flexibilité selon
297 les besoin et les aptitudes de celui qui les crée.  Le programme GNU
298 Make est installé par défaut sur les distributions GNU/Linux et sur
299 MacOS X, et il en existe une version pour les environnements Windows.
300
301 Consultez le @strong{GNU Make Manual} pour plus de détails sur ce dont
302 @code{make} est capable -- vous pourrez même en trouver des versions
303 françaises à l'aide des moteurs de recherche --, dans la mesure où ce
304 qui suit ne donne qu'un bref aperçu de ses possibilités.
305
306 Les commandes permettant de définir les règles diffèrent selon la
307 plate-forme : si les différents GNU/Linux et MacOS X utilisent
308 @code{bash}, Windows utilise @code{cmd}.  Dans le cas de MacOS X,
309 vous devrez toutefois configurer votre système de telle sorte qu'il
310 utilise l'interpréteur en ligne de commande.  Voici quelques exemples de
311 fichier @emph{Makefile}, avec une version pour GNU/Linux ou MacOS et une
312 pour Windows.
313
314 Pour commencer, une pièce à quatre mouvements pour orchestre et dont les
315 fichiers sont répartis selon l'arborescence suivante :
316
317 @example
318 Symphonie/
319 |-- MIDI/
320 |-- Makefile
321 |-- Notes/
322 |   |-- alto.ily
323 |   |-- cor.ily
324 |   |-- cello.ily
325 |   |-- figures.ily
326 |   |-- hautbois.ily
327 |   |-- trioCordes.ily
328 |   |-- violonOne.ily
329 |   `-- violonTwo.ily
330 |-- Partitions/
331 |   |-- symphonie.ly
332 |   |-- symphonieI.ly
333 |   |-- symphonieII.ly
334 |   |-- symphonieIII.ly
335 |   `-- symphonieIV.ly
336 |-- PDF/
337 |-- Pupitres/
338 |   |-- symphonie-alto.ly
339 |   |-- symphonie-cello.ly
340 |   |-- symphonie-cor.ly
341 |   |-- symphonie-hautbois.ly
342 |   |-- symphonie-violonUn.ly
343 |   `-- symphonie-violonDeux.ly
344 `-- symphonieDefs.ily
345 @end example
346
347 Les fichiers @file{.ly} des répertoires @code{Partitions} et
348 @code{Pupitres} récupéreront la notation des fichiers @file{.ily}
349 contenus dans le répertoire @code{Notes} :
350
351 @example
352 %%% début du fichier "symphonie-cello.ly"
353 \include ../symphonieDefs.ily
354 \include ../Notes/cello.ily
355 @end example
356
357 Le @emph{Makefile} répertorie des cibles correspondant à @code{score}
358 (l'intégrale au format conducteur), @code{mouvements} (chacun des
359 mouvements au format conducteur) et @code{pupitres} (une partition par
360 pupitre).  Il contient aussi une cible @code{archive} chargée de générer
361 une archive des fichiers source qui pourra être diffusée sur la toile ou
362 transmise par courriel.  Voici ce que contiendrait ce @emph{Makefile}
363 pour GNU/Linux ou MacOS X.  Ce fichier doit être enregistré sous le nom
364 de @code{Makefile} à la racine du projet -- ici @code{Symphonie}.
365
366 @warning{Lorsque vous définissez une cible ou une règle sur plusieurs
367 lignes, les lignes à partir de la deuxième @strong{doivent} débuter par
368 une tabulation, non pas par des espaces.}
369
370 @example
371 # Le préfixe au nom des fichiers résultants
372 piece = symphonie
373 # Détermination du nombre de processeurs
374 CPU_CORES=`cat /proc/cpuinfo | grep -m1 "cpu cores" | sed s/".*: "//`
375 # La commande d'appel à lilypond
376 LILY_CMD = lilypond -ddelete-intermediate-files \
377                     -dno-point-and-click -djob-count=$(CPU_CORES)
378
379 # Les suffixes utilisés dans ce Makefile
380 .SUFFIXES: .ly .ily .pdf .midi
381
382 # Les fichiers sources et résultants sont recherchés dans les répertoires
383 # listés dans la variable VPATH.  Ceux-ci sont tous des sous-répertoires
384 # du répertoire courant (fourni par la variable de GNU make `CURDIR').
385 VPATH = \
386   $(CURDIR)/Partitions \
387   $(CURDIR)/PDF \
388   $(CURDIR)/Pupitres \
389   $(CURDIR)/Notes
390
391 # La règle type pour créer un PDF et un MIDI à partir d'un fichier
392 # source LY.
393 # Les .pdf résultants iront dans le sous-répertoire "PDF" et les fichiers
394 # .midi dans le sous-répertoire "MIDI".
395 %.pdf %.midi: %.ly
396         $(LILY_CMD) $<; \       # cette ligne commence par une tabulation
397         if test -f "$*.pdf"; then \
398             mv "$*.pdf" PDF/; \
399         fi; \
400         if test -f "$*.midi"; then \
401             mv "$*.midi" MIDI/; \
402         fi
403
404 notes = \
405   alto.ily \
406   cello.ily \
407   cor.ily \
408   hautbois.ily \
409   violonUn.ily \
410   violonDeux.ily
411
412 # Les dépendances selon le mouvement.
413 $(piece)I.pdf: $(piece)I.ly $(notes)
414 $(piece)II.pdf: $(piece)II.ly $(notes)
415 $(piece)III.pdf: $(piece)III.ly $(notes)
416 $(piece)IV.pdf: $(piece)IV.ly $(notes)
417
418 # Les dépendances pour la partition intégrale.
419 $(piece).pdf: $(piece).ly $(notes)
420
421 # Les dépendances pour les pupitres.
422 $(piece)-alto.pdf: $(piece)-alto.ly alto.ily
423 $(piece)-cello.pdf: $(piece)-cello.ly cello.ily
424 $(piece)-cor.pdf: $(piece)-cor.ly cor.ily
425 $(piece)-hautbois.pdf: $(piece)-hautbois.ly hautbois.ily
426 $(piece)-violonUn.pdf: $(piece)-violonUn.ly violonUn.ily
427 $(piece)-violonDeux.pdf: $(piece)-violonDeux.ly violonDeux.ily
428
429 # Lancer `make score' pour générer l'intégrale des quatre mouvements
430 # en un seul fichier.
431 .PHONY: score
432 score: $(piece).pdf
433
434 # Lancer `make parties' pour obtenir tous les pupitres.
435 # Lancer `make toto.pdf' pour obtenir la partie instrumentale de toto.
436 # Par exemple : `make symphonie-cello.pdf'.
437 .PHONY: parties
438 parties: $(piece)-cello.pdf \
439          $(piece)-violonUn.pdf \
440          $(piece)-violonDeux.pdf \
441          $(piece)-alto.pdf \
442          $(piece)-hautbois.pdf \
443          $(piece)-cor.pdf
444
445 # Lancer `make mouvements' pour générer un fichier séparé pour chacun
446 # des mouvements.
447 .PHONY: mouvements
448 mouvements: $(piece)I.pdf \
449             $(piece)II.pdf \
450             $(piece)III.pdf \
451             $(piece)IV.pdf
452
453 all: score parties mouvements
454
455 archive:
456         tar -cvvf symphonie.tar \    # cette ligne commence par une tabulation
457         --exclude=*pdf --exclude=*~ \
458         --exclude=*midi --exclude=*.tar \
459         ../Symphonie/*
460 @end example
461
462
463 Les choses se compliquent sous Windows.  Une fois GNU Make pour Windows
464 téléchargé et installé, il vous faudra correctement définir le chemin
465 d'accès au programme @emph{Make} -- dans les variables d'environnement
466 du système --  afin que l'interpréteur de commandes DOS puisse le
467 localiser.  Pour cela, faites un clic droite sur @qq{Poste de travail},
468 choisissez @code{Propriétés} puis @code{Avancées}.  Cliquez sur
469 @code{Variables d'environnement} puis, dans l'onglet
470 @code{Variables système}, mettez @code{path} en surbrillance et
471 cliquez sur @code{Modifier}.  Ajoutez alors le chemin d'accès complet à
472 l'exécutable de GNU Make, qui devrait ressembler à :
473
474 @example
475 C:\Program Files\GnuWin32\bin
476 @end example
477
478 Il va également falloir adapter le @emph{makefile} aux particularités de
479 l'interpréteur de commandes et à la présence d'espaces dans le nom de
480 certains répertoire de ce système.
481 La cible @code{archive} est tout bonnement supprimée, puisque Windows ne
482 dispose pas de la commande @code{tar}.  Enfin, les fichiers MIDI ont une
483 extension par défaut propre à Windows.
484
485
486 @example
487 ## VERSION POUR WINDOWS
488 ##
489 piece = symphonie
490 LILY_CMD = lilypond -ddelete-intermediate-files \
491                     -dno-point-and-click \
492                     -djob-count=$(NUMBER_OF_PROCESSORS)
493
494 #get the 8.3 name of CURDIR (workaround for spaces in PATH)
495 workdir = $(shell for /f "tokens=*" %%b in ("$(CURDIR)") \
496           do @@echo %%~sb)
497
498 .SUFFIXES: .ly .ily .pdf .mid
499
500 VPATH = \
501   $(workdir)/Partitions \
502   $(workdir)/PDF \
503   $(workdir)/Pupitress \
504   $(workdir)/Notes
505
506 %.pdf %.mid: %.ly
507         $(LILY_CMD) $<      # cette ligne commence par une tabulation
508         if exist "$*.pdf"  move /Y "$*.pdf"  PDF/ # tabulation au début
509         if exist "$*.mid" move /Y "$*.mid" MIDI/  # tabulation au début
510
511 notes = \
512   cello.ily \
513   figures.ily \
514   cor.ily \
515   hautbois.ily \
516   trioCordes.ily \
517   alto.ily \
518   violonUn.ily \
519   violonDeux.ily
520
521 $(piece)I.pdf: $(piece)I.ly $(notes)
522 $(piece)II.pdf: $(piece)II.ly $(notes)
523 $(piece)III.pdf: $(piece)III.ly $(notes)
524 $(piece)IV.pdf: $(piece)IV.ly $(notes)
525
526 $(piece).pdf: $(piece).ly $(notes)
527
528 $(piece)-cello.pdf: $(piece)-cello.ly cello.ily
529 $(piece)-cor.pdf: $(piece)-cor.ly cor.ily
530 $(piece)-hautbois.pdf: $(piece)-hautbois.ly hautbois.ily
531 $(piece)-alto.pdf: $(piece)-alto.ly alto.ily
532 $(piece)-violonUn.pdf: $(piece)-violonUn.ly violonUn.ily
533 $(piece)-violonDeux.pdf: $(piece)-violonDeux.ly violonDeux.ily
534
535 .PHONY: score
536 score: $(piece).pdf
537
538 .PHONY: parties
539 parties: $(piece)-cello.pdf \
540          $(piece)-violonUn.pdf \
541          $(piece)-violonDeux.pdf \
542          $(piece)-alto.pdf \
543          $(piece)-hautbois.pdf \
544          $(piece)-cor.pdf
545
546 .PHONY: mouvements
547 mouvements: $(piece)I.pdf \
548            $(piece)II.pdf \
549            $(piece)III.pdf \
550            $(piece)IV.pdf
551
552 all: score parties mouvements
553 @end example
554
555
556 Le @emph{Makefile} suivant convient pour un document
557 @command{lilypond-book} réalisé avec @LaTeX{}.  Ce projet contiendra un
558 index, ce qui nécessitera de lancer une deuxième fois @command{latex}
559 pour mettre à jour les liens.  Les fichiers résultants iront dans le
560 répertoire @code{out} pour ce qui est des pdf et dans le répertoire
561 @code{htmlout} pour ce qui est du html.
562
563 @example
564 SHELL=/bin/sh
565 FILE=monprojet
566 OUTDIR=out
567 WEBDIR=htmlout
568 VIEWER=acroread
569 BROWSER=firefox
570 LILYBOOK_PDF=lilypond-book --output=$(OUTDIR) --pdf $(FILE).lytex
571 LILYBOOK_HTML=lilypond-book --output=$(WEBDIR) $(FILE).lytex
572 PDF=cd $(OUTDIR) && pdflatex $(FILE)
573 HTML=cd $(WEBDIR) && latex2html $(FILE)
574 INDEX=cd $(OUTDIR) && makeindex $(FILE)
575 PREVIEW=$(VIEWER) $(OUTDIR)/$(FILE).pdf &
576
577 all: pdf web keep
578
579 pdf:
580         $(LILYBOOK_PDF)  # tabulation en début de ligne
581         $(PDF)           # tabulation en début de ligne
582         $(INDEX)         # tabulation en début de ligne
583         $(PDF)           # tabulation en début de ligne
584         $(PREVIEW)       # tabulation en début de ligne
585
586 web:
587         $(LILYBOOK_HTML) # tabulation en début de ligne
588         $(HTML)          # tabulation en début de ligne
589         cp -R $(WEBDIR)/$(FILE)/ ./  # tabulation en début de ligne
590         $(BROWSER) $(FILE)/$(FILE).html &  # tabulation en début de ligne
591
592 keep: pdf
593         cp $(OUTDIR)/$(FILE).pdf $(FILE).pdf  # tabulation en début de ligne
594
595 clean:
596         rm -rf $(OUTDIR) # tabulation en début de ligne
597
598 web-clean:
599         rm -rf $(WEBDIR) # tabulation en début de ligne
600
601 archive:
602         tar -cvvf monprojet.tar \ # tabulation en début de ligne
603         --exclude=out/* \
604         --exclude=htmlout/* \
605         --exclude=monprojet/* \
606         --exclude=*midi \
607         --exclude=*pdf \
608         --exclude=*~ \
609         ../MonProjet/*
610 @end example
611
612 AVENIR: faire que ça marche sous Windows
613
614 Ce @emph{makefile} n'est malheureusement pas opérationnel sous Windows.
615 La seule alternative qui s'offre aux utilisateurs de Windows consiste à
616 créer un fichier de traitement par lot (@code{.bat}) qui contienne les
617 différentes commandes successives.  Bien que cette manière de procéder
618 ne tienne aucun compte des dépendances entre fichiers, elle permet de
619 réduire le nombre de processus à lancer dans une seule commande.  Vous
620 devrez enregistrer les lignes suivantes dans un fichier
621 @code{construire.bat} ou @code{construire.cmd}.  Ce fichier pourra être
622 exécuté soit en ligne de commande, soit par un double clic sur son
623 icône.
624
625 @example
626 lilypond-book --output=out --pdf monprojet.lytex
627 cd out
628 pdflatex monprojet
629 makeindex monprojet
630 pdflatex monprojet
631 cd ..
632 copy out\monprojet.pdf MonProjet.pdf
633 @end example
634
635 @seealso
636 Manuel d'utilisation :
637 @ref{Utilisation en ligne de commande},
638 @ref{lilypond-book}