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