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