]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/fr/notation/spacing.itely
Doc: cleanup @file{}, take 2: remove all @/ escaping sequences.
[lilypond.git] / Documentation / fr / notation / spacing.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
2
3 @ignore
4     Translation of GIT committish: b446ebc24f8d43acb323818988fe8b1d8072afc8
5
6     When revising a translation, copy the HEAD committish of the
7     version that you are working on.  For details, see the Contributors'
8     Guide, node Updating translation committishes..
9 @end ignore
10
11 @c \version "2.13.39"
12
13 @c Translators: Frédéric Chiasson, Jean-Charles Malahieude
14
15 @ignore
16 GDP TODO list
17
18 Negative numbers are allowed:
19 > Are you sure? The following works well
20 > \paper{
21 >   first-page-number = -2
22 > }
23 > and prints page number -1 on the second page, for example.
24
25
26 In 5.2.1 the @refbugs (line 495 in spacing.itely on master) it
27 states:
28
29 "@code{layout-set-staff-size} does not change the distance between
30 the
31 staff lines."
32
33 Could we add a sentence:
34 "Use instead the pair               fontSize = #@var{N}
35             \override StaffSymbol #'staff-space = #(magstep
36 @var{N})
37 inside the Staff context to change the size of the font and the
38 distance between
39 staff lines accordingly."
40
41 Actually I found, that the @internalsref{StaffSymbol} at line 481
42 sends to an incomplete
43 documentation.  The property staff-space is not explained here.  I
44 thought Y-extent might be of
45 help, but it is in turn explained by x-space which again is
46 missing from the list.  Who has the
47 knowledge to fix this?
48
49
50 Clarify
51 http://code.google.com/p/lilypond/issues/detail?id=68
52
53 @end ignore
54
55
56 @node Gestion de l'espace
57 @chapter Gestion de l'espace
58 @translationof Spacing issues
59
60 L'agencement général d'une partition dépend de trois facteurs
61 interdépendants@tie{}: la mise en page, les sauts de ligne et
62 l'espacement.  Les choix faits en matière d'espacement détermineront la
63 densité de chacun des systèmes, ce qui influera sur le positionnement
64 des sauts de lignes et, par voie de conséquence, sur le nombre de page
65 de la partition.
66
67 En pratique, cette procédure comporte quatre étapes.  Dans un premier
68 temps, des distances élastiques (@emph{springs}) sont déterminées sur la
69 base des durées.  Sont alors calculées différentes possibilités de saut
70 de ligne, chacune se voyant attribuer un @qq{coefficient de laideur},
71 puis est estimée la hauteur de chaque système.  LilyPond opte enfin pour
72 la combinaison entre sauts de page et de ligne qui offre la meilleure
73 occupation de l'espace, tant horizontalement que verticalement.
74
75 Les réglages qui influencent la mise en forme peuvent se placer dans
76 deux blocs différents.  Le bloc @w{@code{\paper @{@dots{}@}}} intervient
77 en dehors de tout bloc @w{@code{\score @{@dots{}@}}}@tie{}; il contient
78 les réglages applicables à l'intégralité du document.  Quant au bloc
79 @w{@code{\layout @{@dots{}@}}}, il se place à l'intérieur d'un bloc
80 @w{@code{\score @{@dots{}@}}} pour déterminer ce qui le concerne tout
81 particulièrement.  Dans le cas où il n'y a qu'un seul bloc
82 @w{@code{\score @{@dots{}@}}}, les deux emplacements donneront le même
83 effet.  Les commandes indiquées dans ce chapitre sont valables dans tous
84 les cas.
85
86
87 @menu
88 * Du papier et des pages::
89 * Mise en forme de la musique::
90 * Sauts::
91 * Espacement vertical::
92 * Espacement horizontal::
93 * Réduction du nombre de pages de la partition::
94 @end menu
95
96 @cindex ragged, aligné
97 @cindex aligné, ragged
98
99 @warning{Vous verrez au fil de ce chapitre apparaître certains termes
100 dont la traduction vous semblera assurément erronée.  Il n'en est
101 cependant rien@tie{}: certains termes techniques ont une histoire
102 particulière selon leur langue d'origine.  Ainsi, le vocable anglais
103 @emph{Ragged} signifie en lambeau, en loques@tie{}; dans l'univers
104 typographique, un maître français voit un alignement à gauche -- il dira
105 @qq{au fer à gauche} -- alors que son homologue anglophone constate un
106 @emph{ragged-right} -- donc du vide à droite.}
107
108
109 @node Du papier et des pages
110 @section Du papier et des pages
111 @translationof Paper and pages
112
113 Nous allons examiner ici le bornage -- ce qui détermine l'espace que
114 pourra occuper la musique sur une feuille.
115
116 @menu
117 * Format du papier::
118 * Mise en forme de la page::
119 @end menu
120
121 @node Format du papier
122 @subsection Format du papier
123 @translationof Paper size
124
125 @cindex papier, taille
126 @cindex page, format
127
128 Le format du papier est déterminé par deux fonctions différentes@tie{}:
129 @code{set-default-paper-size} et @code{set-paper-size}.
130 @code{set-default-paper-size} se place en tête de fichier, alors que
131 @code{set-paper-size} se place à l'intérieur d'un bloc
132 @code{\paper}@tie{}:
133
134 @example
135 #(set-default-paper-size "a4")
136 @end example
137
138 @example
139 \paper @{
140   #(set-paper-size "a4")
141 @}
142 @end example
143
144 @noindent
145 @code{set-default-paper-size} fixe le format pour toutes les pages,
146 alors que @code{set-paper-size} détermine le format des feuilles
147 rattachées à un bloc @code{\paper} particulier.  Ainsi, lorsque le bloc
148 @code{\paper} se trouve en tête de fichier, le format du papier
149 s'appliquera à toutes les pages@tie{}; si @code{\paper} apparaît dans un
150 bloc @code{\book}, la taille ne s'appliquera qu'au @emph{book} en
151 question.
152
153 Les formats @code{a4}, @code{letter}, @code{legal} et @code{11x17} (ou
154 tabloïde) sont couramment utilisés pour les éditions musicales.  Bien
155 d'autres formats sont disponibles et sont répertoriés à la rubrique
156 @code{paper-alist} du fichier d'initialisation @file{scm/paper.scm}.
157
158 @c TODO add a new appendix for paper sizes (auto-generated) -pm
159
160 @warning{Par défaut, le papier est au format A4 (codé @code{a4}).}
161
162 Rien ne vous empèche d'ajouter un format de papier inhabituel à la
163 rubrique @code{paper-alist} du fichier @file{scm/paper.scm}.  Sachez
164 cependant que celui-ci est écrasé à chaque mise à jour de LilyPond.
165
166 @cindex orientation
167 @cindex landscape
168 @cindex paysage, papier
169 @cindex à l'italienne, papier
170
171 Le fait d'ajouter l'argument @code{'landscape} à l'instruction
172 @code{set-default-paper-size} permet d'obtenir une présentation à
173 l'italienne -- ou paysage si vous préférez -- et donc des lignes plus
174 longues.
175
176 @example
177 #(set-default-paper-size "a6" 'landscape)
178 @end example
179
180 La définition du format de papier influe sur un certain nombre de
181 variables comme entre autres les marges.  Nous vous invitons à toujours
182 spécifier, dans le bloc @code{\paper}, le format de page avant toute
183 autre variable.
184
185
186 @seealso
187 Fichiers d'initialisation :
188 @file{scm/paper.scm}.
189
190 Morceaux choisis :
191 @rlsrnamed{Spacing,Espacements}.
192
193
194 @node Mise en forme de la page
195 @subsection Mise en forme de la page
196 @translationof Page formatting
197
198 @funindex \paper
199
200 Les marges, entête et pied de page, ainsi que les autres variables de
201 mise en page sont automatiquement définis par rapport au format du
202 papier.
203
204 Les valeurs par défaut des marges, inscrites dans le fichier
205 d'initialisation @file{ly/paper-defaults-init.ly}, s'appliquent
206 au format par défaut (A4 sauf mention spécifique) et sont étalonnées
207 pour les autres formats.
208
209 Nous allons examiner, dans les paragraphes qui suivent, les différentes
210 variables sur lesquelles vous pouvez intervenir.
211
212 @menu
213 * Dimensionnement vertical fixe::
214 * Dimensionnement vertical fluctuant::
215 * Dimensionnement horizontal::
216 * Autres variables de mise en page::
217 @end menu
218
219
220 @node Dimensionnement vertical fixe
221 @unnumberedsubsubsec Dimensionnement vertical fixe
222 @translationof Fixed vertical dimensions
223
224 @table @code
225 @item paper-height
226 @funindex paper-height
227
228 La hauteur de la feuille.  Il s'agit par défaut de la dimension du
229 papier utilisé -- voir @ref{Format du papier} pour plus de détails.
230
231 @item top-margin
232 @funindex top-margin
233
234 La marge entre le bord supérieur de la feuille et la surface imprimable.
235 Elle est fixée par défaut à@tie{}@code{5\mm}.
236
237 @item bottom-margin
238 @funindex bottom-margin
239
240 La marge entre la surface imprimable et le bord inférieur de la feuille.
241 Elle est fixée par défaut à@tie{}@code{6\mm}.
242
243 @end table
244
245
246 @node Dimensionnement vertical fluctuant
247 @unnumberedsubsubsec Dimensionnement vertical fluctuant
248 @translationof Flexible vertical dimensions
249
250 Il est souvent judicieux d'apporter un peu de flexibilité à l'espacement
251 entre différents éléments (marges, titres, systèmes ou mouvements), en
252 dilatation ou compression selon le cas.  Un certain nombre de variables
253 de type @code{\paper} répertoriées ci-dessous vous permettront d'affiner
254 ces dimensionnements.
255
256 Gardez à l'esprit que les variables du bloc @code{\paper} dont nous
257 parlons ici n'influencent en rien l'espacement des portées d'un même
258 système.  L'espacement au sein des systèmes est géré par des propriétés
259 attachées à des objets graphiques (@emph{grobs}) qui, elles, se
260 définissent au niveau du bloc @code{\score} -- voir à ce sujet
261 @ref{Espacement vertical au sein d'un système}.
262
263
264 @subsubheading Structure des variables d'espacement du bloc @code{\paper}
265 @translationof Structure of spacing alists for @code{\paper} variables
266
267 Chacune de ces variables est constituée d'une liste associative à quatre
268 @i{clés}@tie{}:
269
270 @itemize
271 @item @code{padding} (@emph{décalage}) -- la grandeur minimale de
272 @qq{blanc} qui sépare deux éléments, exprimée en hauteur de portée.  On
273 peut le voir comme la hauteur minimale d'un rectangle vide qui devrait
274 s'étendre sur toute la largueur des deux éléments.
275
276 @item @code{space} (@emph{espace}) -- la grandeur d'espace par défaut,
277 exprimée en hauteur de portée, séparant les @i{points de référence} de
278 deux éléments, qui évite tout risque de collision en l'absence de
279 dilatation ou compression.  Le point de référence d'un titre ou d'un
280 @emph{markup} est son sommet, celui d'un système est la ligne médiane du
281 @code{StaffSymbol} le plus proche -- même lorsqu'une ligne de
282 @qq{non-portée} se trouverait au milieu.  Un @code{space} inférieur à
283 @code{padding} ou @code{minimum-distance} sera sans effet, dans la
284 mesure où l'espacement résultant ne saurait être inférieur à
285 @code{padding} ou @code{minimum-distance}.
286
287 @item @code{minimum-distance} (@emph{distance-minimale}) -- l'espacement
288 minimal, exprimé en hauteur de portée, entre les points de référence des
289 deux éléments alors qu'il y a déjà un effet de compression.  Une
290 @code{minimum-distance} inférieure à la valeur du @code{padding} sera
291 sans effet, dans la mesure où l'espacement résultant ne saurait être
292 inférieur au @code{padding}.
293
294 @item @code{stretchability} (@emph{dilatation}) -- le coefficient
295 d'étirement de cet espace.  Un coefficient nul permet de figer
296 l'espacement, à moins qu'il n'en résulte des collisions.  Un coefficient
297 positif déterminera la propension d'un espacement à s'étirer, tout
298 en tenant compte du coefficient affecté aux autres espacements.
299 Par exemple, lorsque le coefficient de dilatation d'une dimension est
300 double de celui d'une autre, elle pourra s'étirer deux fois plus que
301 cette dernière.  Il ne saurait être négatif.  La valeur @code{+inf.0}
302 provoque une @code{programming_error} (erreur de programmation) et est
303 ignorée@tie{}; vous pouvez toutefois utiliser @code{1.0e7} pour obtenir
304 une valeur proche de l'infini.  Lorsque cette @i{clé} n'est pas définie,
305 sa valeur est par défaut égale à @code{space}.  Notez bien que
306 l'utilisateur ne peut définir une propension à la compression@tie{};
307 elle est en fait égale à
308 (@code{space}@tie{}@minus{}@tie{}@code{minimum-distance}).
309
310 @end itemize
311
312 Lorsque l'impression n'est pas en pleine page -- elle est donc
313 @emph{ragged bottom} pour les anglophones -- l'élément @code{space}
314 n'est pas étiré. Les hauteurs sur une telle page correspondront donc au
315 maximum de
316
317 @itemize
318 @item @code{space}, plus
319 @item @code{minimum-distance} et
320 @item @code{padding}, augmenté de ce qu'il faut pour éviter les
321 chevauchements.
322 @end itemize
323
324 Les manières de modifier des listes associatives font l'objet d'un
325 @rusernamed{Modification de listes associatives,chapitre spécifique}.
326 Les variables d'espacement associées au papier ne peuvent se gérer que
327 dans un bloc @code{\paper}.
328
329 L'exemple suivant indique deux façons de modifier une liste associative.
330 La première déclaration intervient sur une seule clé, alors que la
331 deuxième redéfinit complètement la variable.
332
333 @example
334 \paper @{
335   system-system-spacing #'space = #8
336
337   score-system-spacing =
338     #'((padding . 1)
339        (space . 12)
340        (minimum-distance . 6)
341        (stretchability . 12))
342 @}
343 @end example
344
345 Les valeurs par défaut de ces variables sont répertoriés dans le
346 fichier @file{ly/paper-defaults-init.ly}.
347
348
349 @subsubheading Variables de dimensionnement fluctuant du bloc @code{\paper}
350 @translationof Flexible vertical dimension @code{\paper} variables
351
352 Le nom des dimensionnements à hauteur variable sont de la forme
353 @code{@var{upper}-@var{lower}-spacing}, où @code{@var{upper}} et
354 @code{@var{lower}} représentent les éléments qui doivent être espacés.
355 La distance s'établit entre les points de référence des deux éléments
356 concernés@tie{}: le sommet pour un titre ou un @emph{markup}, la ligne
357 médiane de la portée la plus proche pour un système.  Notez bien que,
358 dans les règles de nommage des variables qui suivent, le terme
359 @code{markup} fait référence aussi bien à un @i{markup de titrage}
360 (@code{bookTitleMarkup} ou @code{scoreTitleMarkup}) qu'à un
361 @i{markup de haut niveau} (voir @ref{Structure de fichier}).
362
363 Voici à présent les différentes variables disponibles@tie{}:
364
365 @table @code
366 @item markup-system-spacing
367 @funindex markup-system-spacing
368
369 détermine l'espacement entre un titre ou un @emph{markup} de premier
370 niveau, et le système qui le suit.
371
372 @item score-markup-spacing
373 @funindex score-markup-spacing
374
375 détermine l'espacement entre le dernier système et le titre ou
376 @emph{markup} de haut niveau qui le suit.
377
378 @item score-system-spacing
379 @funindex score-system-spacing
380
381 détermine l'espacement entre le dernier système d'une partition et le
382 premier système de la partition suivante, en l'absence de titrage ou
383 @emph{markup} qui les sépare.
384
385 @item system-system-spacing
386 @funindex system-system-spacing
387
388 détermine l'espacement entre deux systèmes d'un même mouvement.
389
390 @item markup-markup-spacing
391 @funindex markup-markup-spacing
392
393 détermine l'espacement entre deux titres ou @emph{markups} de premier
394 niveau.
395
396 @item last-bottom-spacing
397 @funindex last-bottom-spacing
398
399 détermine la distance entre le dernier système ou le dernier
400 @emph{markup} de haut niveau, et le bas de la surface imprimable --
401 autrement dit le haut de la marge basse.
402
403 @item top-system-spacing
404 @funindex top-system-spacing
405
406 détermine l'espace entre le haut de la surface imprimable (le bas de la
407 marge haute) et le milieu du premier système.  Cette variable n'est
408 effective qu'en l'absence de titre ou @emph{markup} de premier niveau
409 en haut de page.
410
411 @item top-markup-spacing
412 @funindex top-markup-spacing
413
414 détermine l'espace entre le haut de la surface imprimable (le bas de la
415 marge haute) et le premier titre ou @emph{markup} de premier niveau.
416 Cette variable n'est effective qu'en l'absence de système en haut de
417 page.
418
419 @end table
420
421
422 @snippets
423
424 L'entête et le pied de page sont créés respectivement par les fonctions
425 @code{make-header} et @code{make-footer}, toutes deux définies dans le
426 bloc @code{\paper}.  Leur implémentation par défaut se trouve dans les
427 fichiers d'initialisation @file{ly/paper-defaults-init.ly} et
428 @file{ly/titling-init.ly}.
429
430 La mise en forme de la page est réalisée par les fonctions
431 @code{page-music-height} et @code{page-make-stencil}, toutes deux
432 membres du bloc @code{\paper}.  La première informe l'algoritme des
433 sauts de ligne de combien d'espace il dispose sur la page@tie{}; la
434 seconde génère la page selon le nombre de système qu'elle contiendra.
435
436 Vous pouvez définir toutes ces valeurs -- en @code{mm}, @code{in},
437 @code{pt} ou @code{cm} -- en langage Scheme au sein du bloc
438 @code{\paper}.  Celles contenues dans le fichier
439 @file{paper-defaults.ly} sont en millimètres, c'est la raison pour
440 laquelle la valeur de @code{2@tie{}cm} de ce qui suit doit être
441 précédée du signe multiplier.
442
443 @example
444 \paper @{
445  #(define bottom-margin (* 2 cm))
446 @}
447 @end example
448
449
450 Exemple :
451
452 @example
453 \paper @{
454   paper-width = 2\cm
455   top-margin = 3\cm
456   bottom-margin = 3\cm
457   ragged-last-bottom = ##t
458 @}
459 @end example
460
461 Voici par exemple comment centrer le numéro des pages au bas de chacune
462 d'elles@tie{}:
463
464 @example
465 \paper @{
466   print-page-number = ##t
467   print-first-page-number = ##t
468   oddHeaderMarkup = \markup \fill-line @{ " " @}
469   evenHeaderMarkup = \markup \fill-line @{ " " @}
470   oddFooterMarkup = \markup @{ \fill-line @{
471      \bold \fontsize #3 \on-the-fly #print-page-number-check-first
472      \fromproperty #'page:page-number-string @} @}
473   evenFooterMarkup = \markup @{ \fill-line @{
474      \bold \fontsize #3 \on-the-fly #print-page-number-check-first
475      \fromproperty #'page:page-number-string @} @}
476 @}
477 @end example
478
479
480 @seealso
481 Manuel de notation :
482 @ref{Espacement vertical entre les systèmes}.
483
484 Morceaux choisis :
485 @rlsrnamed{Spacing,Espacements}.
486
487
488 @node Dimensionnement horizontal
489 @unnumberedsubsubsec Dimensionnement horizontal
490 @translationof Horizontal dimensions
491
492 Certaines variables permettent de gérer les dimensionnements
493 horizontaux de la page@tie{}:
494
495 @table @code
496
497 @item binding-offset
498 @funindex binding-offset
499
500 La gouttière, ou marge de reliure, permet d'augmenter en conséquence la
501 valeur de la marge intérieure @code{inner-margin} de telle sorte que
502 rien ne soit masqué par la reliure.  Bien entendu, cette variable n'est
503 effective que lorsque vous comptez générer un fichier imprimable en
504 recto-verso -- propriété @code{two-sided} définie à vrai.  La valeur par
505 défaut est de@tie{}@code{0}.
506
507 @item horizontal-shift
508 @funindex horizontal-shift
509
510 Tous les systèmes, ainsi que les titres et séparateurs de systèmes,
511 seront poussés d'autant vers la droite.  la valeur par défaut est
512 de@tie{}@code{0.0}.
513
514 @item indent
515 @funindex indent
516
517 Le niveau d'indentation du premier système d'une partition.  La valeur
518 par défaut est de@tie{}@code{15\mm}.
519
520 @item inner-margin
521 @funindex inner-margin
522
523 La marge que toutes les pages d'une partie ou de tout un ouvrage devront
524 avoir du côté intérieur.  Bien entendu, cette variable n'est
525 effective que lorsque vous comptez générer un fichier imprimable en
526 recto-verso -- propriété @code{two-sided} définie à vrai.  La valeur par
527 défaut est de@tie{}@code{10\mm}.
528
529 @item left-margin
530 @funindex left-margin
531
532 la marge entre le bord gauche de la feuille et le début de chaque
533 système.  La valeur par défaut est de@tie{}@code{10\mm}.
534
535 @item line-width
536 @funindex line-width
537
538 la longueur d'un système musical.  La valeur par défaut est égale à
539 @code{paper-width}, auquel sont retranchés @code{left-margin} et
540 @code{right-margin}.
541
542 @item outer-margin
543 @funindex outer-margin
544
545 la marge que toutes les pages d'une partie ou de tout un ouvrage devront
546 avoir du côté extérieur -- opposé à la reliure.  Bien entendu, cette
547 variable n'est effective que lorsque vous comptez générer un fichier
548 imprimable en recto-verso -- propriété @code{two-sided} définie à vrai.
549 La valeur par défaut est de@tie{}@code{20\mm}.
550
551 @item paper-width
552 @funindex paper-width
553
554 La largeur de la page.  Elle correspond par défaut à la largeur du
555 format de papier utilisé -- voir à ce sujet la rubrique
556 @ref{Format du papier}.
557
558 @item right-margin
559 @funindex right-margin
560
561 La marge entre le bord droit de la page et la fin des systèmes.  La
562 valeur par défaut est de@tie{}@code{10\mm}.
563
564 @item short-indent
565 @funindex short-indent
566
567 Le niveau d'indentation de tous les systèmes hormis le premier.  La
568 valeur par défaut est de@tie{}@code{0}.
569
570 @end table
571
572 LilyPond appliquera les valeurs par défaut pour les variables non
573 définies, en les ajustant toutefois selon la taille de papier que vous
574 aurez spécifiée.  Cet adaptation automatique concerne@tie{}:
575
576 @itemize
577 @item @var{left-margin}
578 @item @var{right-margin}
579 @item @var{top-margin}
580 @item @var{bottom-margin}
581 @item @var{head-separation}
582 @item @var{foot-separation}
583 @item @var{indent}
584 @item @var{short-indent}
585 @end itemize
586
587 Les réglages de @code{line-width}, @code{left-margin},
588 @code{right-margin} et @code{paper-width} dépendent les uns des autres,
589 mais ne sont pas tous obligatoires@tie{}:
590
591 @example
592 \paper @{
593   left-margin = 30\mm
594 @}
595 @end example
596
597 Ceci ne définit que la marge gauche (@code{lef-margin}).  Cependant, et
598 dans la mesure ou @code{right-margin} -- la marge de droite -- garde sa
599 valeur par défaut, la longueur de ligne -- @code{line-width} -- sera
600 automatiquement calculée.
601
602 @example
603 \paper @{
604   line-width = 150\mm
605 @}
606 @end example
607
608 Ici, @code{left-margin} et @code{right-margin} prendront la même valeur.
609 Par conséquent, @code{line-width} est retranché de @code{paper-width} et
610 divisé par deux.  Autrement dit, le fait de ne spécifier que la valeur
611 de @code{line-width} permet d'obtenir des systèmes centrés sur la
612 largeur de la page.
613
614 LilyPond effectue toutefois des contrôles de cohérence au niveau de ces
615 valeurs et émet un avertissement si l'addition n'est pas bonne ou si les
616 systèmes risquent de déborder.
617
618 @example
619 \paper @{
620   paper-width = 210\mm
621   left-margin = 20\mm
622   right-margin = 30\mm
623   line-width = 100\mm
624 @}
625 @end example
626
627 Ces contrôles peuvent se désactiver en définissant la propriété
628 @code{check-consistency} à faux@tie{}:
629
630 @example
631 \paper @{
632   paper-width = 210\mm
633   left-margin = 20\mm
634   line-width = 200\mm
635   check-consistency = ##f
636 @}
637 @end example
638
639 @warning{Lorsque vous définissez manuellement la largeur de page
640 (@code{paper-width}), ajustez si besoin les valeurs de
641 @code{line-width}, @code{left-margin}, @code{indent} et
642 @code{short-indent}.}
643
644
645 @seealso
646 Morceaux choisis :
647 @rlsrnamed{Spacing,Espacements}.
648
649
650 @node Autres variables de mise en page
651 @unnumberedsubsubsec Autres variables de mise en page
652 @translationof Other layout variables
653
654 Les variables regroupées ici par ordre alphabétique vous permettront
655 d'agencer la page en général.
656
657 @table @code
658
659 @item auto-first-page-number
660 @funindex auto-first-page-number
661
662 L'algorithme qui gère les sauts de page prend en compte le fait que le
663 premier numéro de page soit pair ou impair.  Lorsque cette
664 fonctionnalité est activée, l'algorithme des sauts de page décidera de
665 lui-même si le premier numéro sera pair ou impair, ce qui se traduira
666 par un éventuel incrément de un.  La valeur par défaut
667 est@tie{}@code{##f}.
668
669 @ignore
670
671 TODO: this variable is used, but I don't know what it does. -pm
672 @item blank-after-score-page-force
673 @funindex blank-after-score-page-force
674
675 Default: @code{2}.
676
677 @end ignore
678
679 @item blank-last-page-force
680 @funindex blank-last-page-force
681
682 Pénalité pour fin de partition intervenant sur une page impaire.  La
683 valeur par défaut est de@tie{}@code{0}.
684
685 @item blank-page-force
686 @funindex blank-page-force
687
688 Pénalité pour apparition d'une page blanche en cours de partition.
689 L'option @code{ly:optimal-breaking} n'en tiendra pas compte puisqu'elle
690 ne conçoit pas la présence d'une page blanche au milieu d'une partition.
691 La valeur par défaut est de@tie{}@code{5}.
692
693 @item check-consistency
694 @funindex check-consistency
695
696 Lorsqu'elle est activée, cette variable vérifie que  @code{left-margin},
697 @code{right-margin} et @code{line-width} sont en cohérence, et que
698 l'addition de ces trois éléments ne dépassera pas la largeur du papier
699 (@code{paper-width}).  La valeur par défaut est@tie{}@code{##t}.
700
701 @item first-page-number
702 @funindex first-page-number
703
704 Le numéro de la première page.  La valeur par défaut est
705 de@tie{}@code{#1}.
706
707 @item max-systems-per-page
708 @funindex max-systems-per-page
709
710 Le nombre maximal de systèmes qu'une page pourra comporter.  Cette
711 variable n'est prise en compte, à ce jour, que par l'option
712 @code{ly:optimal-breaking}, et n'est pas définie.
713
714 @item min-systems-per-page
715 @funindex min-systems-per-page
716
717 Le nombre minimal de systèmes qu'une page pourra comporter.  Attention
718 cependant aux risques de débordement s'il est trop important.  Cette
719 variable n'est prise en compte, à ce jour, que par l'option
720 @code{ly:optimal-breaking}, et n'est pas définie.
721
722 @item page-breaking-system-system-spacing
723 @funindex page-breaking-system-system-spacing
724
725 Cette variable permet de @qq{tromper} l'algorithme de gestion des sauts
726 de page quant à la valeur de @code{system-system-spacing}.  Ainsi,
727 lorsque @code{page-breaking-system-system-spacing #'padding} a une
728 valeur nettement supérieure à @code{system-system-spacing #'padding},
729 l'algorithme en question aura tendance à disposer moins de systèmes sur
730 une même page.  Cette variable est par défaut non définie.
731
732 @item page-count
733 @funindex page-count
734
735 Le nombre de pages que devra comporter la partition.  Cette variable est
736 par défaut non définie.
737
738 @item page-spacing-weight
739 @funindex page-spacing-weight
740
741 Cette variable définit l'importance relative des espacements entre la
742 page (verticalité) et la ligne (horizontalité).  Une valeur élevée
743 privilégiera l'espacement au niveau de la page.  La valeur par défaut
744 est de@tie{}@code{#10}.
745
746 @item print-all-headers
747 @funindex print-all-headers
748
749 Lorsque cette variable est activée, l'intégralité des champs d'entête
750 sera imprimée pour chaque bloc @code{\score}, plutôt que les seuls
751 champs @code{piece} et @code{opus}.  La valeur par défaut
752 est@tie{}@code{##f}.
753
754 @item print-first-page-number
755 @funindex print-first-page-number
756
757 Cette variable permet d'imprimer le numéro de page y compris sur la
758 première.  La valeur par défaut est@tie{}@code{##f}.
759
760 @item print-page-number
761 @funindex print-page-number
762
763 La désactivation de cette variable permet d'obtenir des pages non
764 numérotées.  La valeur par défaut est@tie{}@code{##t}.
765
766 @item ragged-bottom
767 @funindex ragged-bottom
768
769 L'activation de cette variable permet de ne pas répartir verticalement
770 les systèmes sur les pages hormis la dernière.  La valeur par défaut
771 est@tie{}@code{##f}.
772
773 Lorsque la partition ne comporte que deux ou trois systèmes par page,
774 comme pour un conducteur d'orchestre, nous vous conseillons d'activer
775 cette variable.
776
777 @item ragged-last
778 @funindex ragged-last
779
780 Lorsqu'elle est activée, cette variable permet de ne pas étendre le
781 dernier système de façon à occuper toute la longueur de la ligne.  La
782 valeur par défaut est@tie{}@code{##f}.
783
784 @item ragged-last-bottom
785 @funindex ragged-last-bottom
786
787 La désactivation de cette variable permet de répartir verticalement les
788 systèmes de la dernière pages d'une partition.  La valeur par défaut
789 est@tie{}@code{##t}.
790
791 Nous vous conseillons, lorsque des pièces couvrent deux pages ou plus,
792 d'activer cette variable.
793
794 Notez bien que la variable @code{ragged-last-bottom} affecte aussi la
795 dernière page de chacune des parties -- créées à l'aide d'un bloc
796 @code{\bookpart} -- d'un même ouvrage.
797
798 @item ragged-right
799 @funindex ragged-right
800
801 Lorsque cette variable est activée, les systèmes ne s'étendront pas sur
802 la longueur de la ligne, mais sarrêteront à leur longueur normale.
803 La valeur par défaut est @code{##f}.
804
805 Si la partition ne comporte qu'un seul système, la valeur par défaut
806 devient @code{##t}.
807
808 @item system-separator-markup
809 @funindex system-separator-markup
810
811 Il s'agit en l'occurence d'insérer un objet de type @emph{markup} entre
812 chaque système, comme on le voit dans nombre de partitions orchestrales.
813 Cette variable n'est pas définie par défaut.
814
815 La commande @code{\slashSeparator} fournit un @emph{markup} relativement
816 courant@tie{}:
817
818 @lilypond[quote,ragged-right]
819 #(set-default-paper-size "a6" 'landscape)
820 \book {
821   \score {
822     \relative c' { c1 \break c1 }
823   }
824   \paper {
825     system-separator-markup = \slashSeparator
826   }
827 }
828 @end lilypond
829
830 @item system-count
831 @funindex system-count
832
833 Le nombre de systèmes requis par la partition.  Cette variable n'est pas
834 définie par défaut.
835
836 @item systems-per-page
837 @funindex systems-per-page
838
839 Le nombre de systèmes que devrait comporter chaque page.  Cette variable
840 n'est à ce jour prise en charge que par l'algorithme
841 @code{ly:optimal-breaking} et n'est pas définie par défaut.
842
843 @item two-sided
844 @funindex two-sided
845
846 @cindex gouttière
847 @cindex reliure
848
849 Cette variable permet de gérer efficacement les impressions recto-verso.
850 Lorsqu'elle est activée, les réglages affectés à @code{inner-margin},
851 @code{outer-margin} ainsi que @code{binding-offset} détermineront les
852 différentes marges selon qu'il s'agit d'une page paire ou impaire.
853 Cette variable s'applique en lieu et place de @code{left-margin} et
854 @code{right-margin}.  La valeur par défaut est@tie{}@code{##f}.
855
856 @end table
857
858
859 @seealso
860 Morceaux choisis :
861 @rlsrnamed{Spacing,Espacements}.
862
863
864 @knownissues
865
866 L'entête par défaut, formé d'une seule ligne, est constitué du numéro de
867 page et du champ @code{instrument} contenu dans le bloc @code{\header}.
868
869 Les titrages (contenus dans le bloc @code{\header@{@}}) sont considérés
870 comme des systèmes à part entière@tie{}; ils seront donc affectés par
871 @code{ragged-bottom} et @code{ragged-last-bottom}, qui éventuellement
872 ajouteront de l'espace avant le premier système de la partition.
873
874
875 @node Mise en forme de la musique
876 @section Mise en forme de la musique
877 @translationof Music layout
878
879 @menu
880 * Définition de la taille de portée::
881 * Mise en forme de la partition::
882 @end menu
883
884
885 @node Définition de la taille de portée
886 @subsection Définition de la taille de portée
887 @translationof Setting the staff size
888
889 @cindex fonte, définition de la taille
890 @cindex portée, définition de la taille
891 @funindex layout file
892
893 La @strong{taille de portée} (@emph{staff size}) est fixée par défaut à
894 20@tie{}points.  Il existe deux manières de la modifier@tie{}:
895
896 La taille des portées peut se définir globalement pour toutes les
897 partitions d'un même fichier, ou plus précisément d'un bloc
898 @code{\book}, à l'aide de @code{set-global-staff-size}.
899
900 @example
901 #(set-global-staff-size 14)
902 @end example
903
904 @noindent
905 Ceci définit donc la hauteur des portées à 14@tie{}points par
906 défaut@tie{}; toutes les fontes seront ajustées en conséquence.
907
908
909 Vous pouvez aussi spécifier une taille à une partition en particulier en
910 procédant comme ci-dessous@tie{}:
911
912 @example
913 \score@{
914   ...
915   \layout@{
916   #(layout-set-staff-size 15)
917   @}
918 @}
919 @end example
920
921 La fonte Feta fournit les symboles musicaux dans huit tailles
922 différentes.  Chaque fonte correspond à une hauteur particulière de
923 portée@tie{}; les petites tailles comportent des symboles plus épais
924 pour correspondre à l'épaisseur relativement plus importante des lignes
925 de la portée.  Le tableau suivant répertorie les différentes tailles de
926 police.
927
928 @quotation
929 @multitable @columnfractions .15 .2 .22 .2
930
931 @item @b{nom de la fonte}
932 @tab @b{hauteur de portée (pt)}
933 @tab @b{hauteur de portée (mm)}
934 @tab @b{utilisation}
935
936 @item feta11
937 @tab 11,22
938 @tab 3,9
939 @tab format de poche
940
941 @item feta13
942 @tab 12,60
943 @tab 4,4
944 @tab
945
946 @item feta14
947 @tab 14,14
948 @tab 5,0
949 @tab
950
951 @item feta16
952 @tab 15,87
953 @tab 5,6
954 @tab
955
956 @item feta18
957 @tab 17,82
958 @tab 6,3
959 @tab carnet de chant
960
961 @item feta20
962 @tab 20
963 @tab 7,0
964 @tab partition standard
965
966 @item feta23
967 @tab 22,45
968 @tab 7,9
969 @tab
970
971 @item feta26
972 @tab 25,2
973 @tab 8,9
974 @tab
975 @c modern rental material?
976
977 @end multitable
978 @end quotation
979
980 Ces fontes sont disponibles à toutes les tailles.  La propriété de
981 contexte @code{fontSize} ainsi que la propriété de mise en forme
982 @code{staff-space} (voir @rinternals{StaffSymbol}) permettent d'ajuster
983 individuellement la taille de chaque portée.  La taille de chacune des
984 portées est relative à la taille globale.
985
986
987 @seealso
988 Manuel de notation :
989 @ref{Indication de la taille de fonte musicale}.
990
991 Morceaux choisis :
992 @rlsrnamed{Spacing,Espacements}.
993
994
995 @knownissues
996
997 @code{layout-set-staff-size} ne modifie en rien l'espacement entre les
998 lignes d'une portée.
999
1000
1001 @node Mise en forme de la partition
1002 @subsection Mise en forme de la partition
1003 @translationof Score layout
1004
1005 @funindex \layout
1006
1007 Alors que @code{\paper} définit le formatage des pages pour
1008 l'intégralité du document, @code{\layout} s'occupe de la mise en forme
1009 spécifique à la partition.
1010
1011 @example
1012 \layout @{
1013   indent = 2.0\cm
1014   \context @{ \Staff
1015     \override VerticalAxisGroup #'minimum-Y-extent = #'(-6 . 6)
1016   @}
1017   \context @{ \Voice
1018     \override TextScript #'padding = #1.0
1019     \override Glissando #'thickness = #3
1020   @}
1021 @}
1022 @end example
1023
1024
1025 @seealso
1026 Manuel de notation :
1027 @ref{Modification des réglages par défaut d'un contexte}.
1028
1029 Morceaux choisis :
1030 @rlsrnamed{Spacing,Espacements}.
1031
1032
1033 @node Sauts
1034 @section Sauts
1035 @translationof Breaks
1036
1037 @menu
1038 * Sauts de ligne::
1039 * Sauts de page::
1040 * Optimisation des sauts de page::
1041 * Optimisation des tournes::
1042 * Minimisation des sauts de page::
1043 * Sauts explicites::
1044 * Recours à une voix supplémentaire pour gérer les sauts::
1045 @end menu
1046
1047 @node Sauts de ligne
1048 @subsection Sauts de ligne
1049 @translationof Line breaking
1050
1051 @cindex saut de ligne
1052 @cindex ligne, passer à la suivante
1053
1054 Les sauts de ligne sont normalement gérés de façon automatique.  Ils
1055 interviennent de telle sorte qu'une ligne ne soit ni trop resserrée, ni
1056 trop aérée, et que des lignes consécutives aient à peu près la même
1057 densité.  Il arrive parfois que LilyPond n'ait pas judicieusement placé
1058 un saut de ligne@tie{}; il suffit alors d'insérer l'instruction
1059 @code{\break} à l'endroit où vous le jugez utile pour @qq{forcer} le
1060 passage à la ligne suivante, en gardant à l'esprit qu'il ne saurait
1061 intervenir au beau milieu d'une mesure.  Autrement dit, un saut de ligne
1062 ne peut se placer que sur une barre, à la fin d'une mesure complète.  Si
1063 d'aventure vous voulez forcer un saut de ligne en l'absence de barre de
1064 mesure, vous devrez auparavant insérer une barre invisible -- à l'aide
1065 de @code{\bar@tie{}""} -- et vous assurer qu'aucune portée n'a de note
1066 en cours à ce moment précis, auquel cas le saut en question sera tout
1067 simplement ignoré.
1068
1069 L'instruction opposée, @code{\noBreak}, interdira toute tentative de
1070 saut de ligne à la fin de la mesure où elle est explicitée.
1071
1072 LilyPond dispose de deux variables de base pour influencer l'espacement
1073 au niveau des lignes.  Toutes deux se définissent dans un bloc
1074 @code{\layout}, @code{indent} réglant l'indentation de la première
1075 ligne, et @code{line-width} la longueur des lignes.
1076
1077 L'activation du commutateur @code{ragged-right} au sein du bloc
1078 @code{\layout} aura pour effet de terminer les système là où il le
1079 feraient normalement plutôt que de les étirer sur toute la longueur de
1080 la ligne.  Ceci est particulièrement utile pour de petits fragments ou
1081 pour vérifier la densité induite par l'espacement naturel.
1082
1083 @c TODO Check and add para on default for ragged-right
1084
1085 Le commutateur @code{ragged-last} est équivalent à @code{ragged-right},
1086 à ceci près qu'il n'affecte que la dernière ligne de la pièce.
1087
1088 @example
1089 \layout @{
1090 indent = #0
1091 line-width = #150
1092 ragged-last = ##t
1093 @}
1094 @end example
1095
1096
1097
1098 @cindex sauts de ligne régliers
1099 @cindex portée à quatre mesures
1100
1101 L'utilisation conjointe de @code{\break} et de blancs dans une section
1102 @code{\repeat} vous permettra de positionner des sauts de ligne à
1103 intervalle régulier.  Par exemple, les 28 mesures de ce qui suit seront
1104 coupées toutes les quatre mesures, pas ailleurs@tie{}:
1105
1106 @example
1107 << \repeat unfold 7 @{
1108          s1 \noBreak s1 \noBreak
1109          s1 \noBreak s1 \break @}
1110    @emph{en avant la musique !}
1111 >>
1112 @end example
1113
1114 @ignore
1115 Apparemment, je ne vois pas de "snippet" qui corresponde,
1116 à moins que ce ne soit pour allécher vers la section
1117 "4.6 Fitting music onto fewer pages" -JCM
1118 @c TODO Check this
1119 A linebreaking configuration can be saved as a @code{.ly} file
1120 automatically.  This allows vertical alignments to be stretched to
1121 fit pages in a second formatting run.  This is fairly new and
1122 complicated.  More details are available in
1123 @rlsr{Spacing}.
1124 @end ignore
1125
1126 @predefined
1127 @funindex \break
1128 @code{\break},
1129 @funindex \noBreak
1130 @code{\noBreak}.
1131 @endpredefined
1132
1133
1134 @seealso
1135 Référence des propriétés internes :
1136 @rinternals{LineBreakEvent}.
1137
1138 Morceaux choisis :
1139 @rlsrnamed{Spacing,Espacements}.
1140
1141
1142 @knownissues
1143
1144 Un saut de ligne ne peut intervenir qu'au moment d'une barre de mesure.
1145 Une note qui resterait en suspend faussera la mesure comme vous pouvez
1146 le constater ci-dessous.
1147
1148 @lilypond[quote,ragged-right,relative=2,verbatim]
1149 c4 c2 << c2 {s4 \break } >>  % this does nothing
1150 c2 c4 |           % a break here would work
1151 c4 c2 c4 ~ \break % as does this break
1152 c4 c2 c4
1153 @end lilypond
1154
1155 Le seul moyen d'obtenir ce que vous voulez en pareil cas consiste à
1156 désactiver le @code{Forbid_line_break_engraver}.  Notez bien que les
1157 sauts de ligne forcés doivent être saisis au sein d'une expression
1158 polyphonique@tie{}:
1159
1160 @lilypond[quote,ragged-right,relative=2,verbatim]
1161 \new Voice \with {
1162   \remove Forbid_line_break_engraver
1163 } {
1164   c4 c2 << c2 {s4 \break } >>  % now the break is allowed
1165   c2 c4
1166 }
1167 @end lilypond
1168
1169 Selon le même principe, un saut de ligne ne peut intervenir alors qu'une
1170 ligature s'étend sur deux mesures consécutives.  Il faut en ce cas là
1171 introduire la dérogation @code{\override Beam #'breakable = ##t}.
1172
1173
1174 @node Sauts de page
1175 @subsection Sauts de page
1176 @translationof Page breaking
1177
1178 La gestion automatique des sauts de page se contrôle à l'aide des
1179 commandes @code{\pageBreak} et @code{\noPageBreak}. Ces commandes
1180 fonctionnent de manière analogue à @code{\break} et @code{\noBreak} pour
1181 les sauts de ligne et se placent donc au moment d'une barre de mesure.
1182 Elles permettent de forcer, ou d'interdire, un saut de page à l'endroit
1183 indiqué.  Comme on peut s'y attendre, @code{\pageBreak} force le saut de
1184 ligne.
1185
1186 Les commandes @code{\pageBreak} et @code{\noPageBreak} peuvent se
1187 trouver à des niveaux supérieurs, entre deux partitions ou
1188 @emph{markups} de premier rang.
1189
1190 Tout comme @code{ragged-right} et @code{ragged-last} qui permettent de
1191 gérer la répartition horizontale, LilyPond dispose de commutateurs
1192 équivalents au niveau de la verticalité@tie{}: @code{ragged-bottom} et
1193 @code{ragged-last-bottom}.  Lorsqu'ils sont tous deux activés --
1194 affectés de @code{##t} -- les systèmes ne seront pas répartis sur les
1195 pages y compris la dernière.
1196
1197 Pour de plus amples détails, reportez-vous à @ref{Espacement vertical}.
1198
1199 Les sauts de page sont générés par la fonction @code{page-breaking}.
1200 LilyPond dispose de trois différents algorithmes en la matière@tie{}:
1201 @code{ly:optimal-breaking}, @code{ly:page-turn-breaking} et
1202 @code{ly:minimal-breaking}.  C'est @code{ly:optimal-breaking} qui est
1203 activé par défaut, mais rien ne vous empèche d'en changer, par
1204 l'intermédiaire du bloc @code{\paper}@tie{}:
1205
1206 @example
1207 \paper@{
1208   #(define page-breaking ly:page-turn-breaking)
1209 @}
1210 @end example
1211
1212 @funindex \bookpart
1213
1214 Losqu'un ouvrage contient plusieurs partitions et un certain nombre de
1215 pages, la gestion des sauts de page finit par devenir très gourmande,
1216 tant au niveau du processeur que de la mémoire.  Vous pouvez cependant
1217 alléger la charge en recourant à des blocs @code{\bookpart} afin de
1218 sectionner l'ouvrage que vous traitez@tie{}; les sauts de pages seront
1219 alors gérés individuellement au niveau de chacune des parties.  Par
1220 ailleurs, cela vous autorisera une gestion différente selon les
1221 sections.
1222
1223 @example
1224 \bookpart @{
1225   \header @{
1226     subtitle = "Préface"
1227   @}
1228   \paper @{
1229      %% Pour une partie constituée principalement de texte
1230      %% ly:minimal-breaking est plus judicieux.
1231      #(define page-breaking ly:minimal-breaking)
1232   @}
1233   \markup @{ @dots{} @}
1234   @dots{}
1235 @}
1236 \bookpart @{
1237   %% Cette partie étant purment musicale,
1238   %% retour au style par défaut (optimal-breaking).
1239   \header @{
1240     subtitle = "Premier mouvement"
1241   @}
1242   \score @{ @dots{} @}
1243   @dots{}
1244 @}
1245 @end example
1246
1247
1248 @predefined
1249 @funindex \pageBreak
1250 @code{\pageBreak},
1251 @funindex \noPageBreak
1252 @code{\noPageBreak}.
1253 @endpredefined
1254
1255
1256 @seealso
1257 Morceaux choisis :
1258 @rlsrnamed{Spacing,Espacements}.
1259
1260
1261 @node Optimisation des sauts de page
1262 @subsection Optimisation des sauts de page
1263 @translationof Optimal page breaking
1264
1265 @funindex ly:optimal-breaking
1266
1267 LilyPond, pour déterminer où placer un saut de page, utilise par défaut
1268 la fonction @code{ly:optimal-breaking}.  Celle-ci tend à trouver une
1269 rupture qui évite d'obtenir à la fois une page trop dense ou exagérément
1270 aérée.  Contrairement à la fonction @code{ly:page-turn-breaking}, elle
1271 n'a aucune notion de ce qu'est une @qq{tourne}.
1272
1273
1274 @seealso
1275 Morceaux choisis :
1276 @rlsrnamed{Spacing,Espacements}.
1277
1278
1279 @node Optimisation des tournes
1280 @subsection Optimisation des tournes
1281 @translationof Optimal page turning
1282
1283 @funindex ly:page-turn-breaking
1284
1285 Aboutir à une configuration des sauts de page de telle sorte que les
1286 pages de droite se terminent toujours par un silence devient souvent une
1287 nécessité.  En effet, l'exécutant pourra alors tourner la page sans
1288 risquer de manquer des notes.  La fonction @code{ly:page-turn-breaking}
1289 tend à trouver une rupture qui évite d'obtenir à la fois une page trop
1290 dense ou exagérément aérée, tout en tenant compte du fait qu'une tourne
1291 ne saurait intervenir qu'à certains endroits.
1292
1293 L'utilisation de cette fonction se fait en deux étapes.  Il vous faut
1294 tout d'abord l'activer au sein du bloc @code{\paper} comme indiqué à la
1295 rubrique @ref{Sauts de page}.  Vous devrez, dans un deuxième temps,
1296 informer la fonction des endroits où les sauts de page sont permis.
1297
1298 Cette deuxième étape se réalise de deux manières différentes.  Vous
1299 pouvez spécifier manuellement chaque tourne potentielle en insérant un
1300 @code{\allowPageTurn} à l'endroit approprié de votre fichier source.
1301
1302 Toutefois, cette option peut vite se révéler fastidieuse selon l'ampleur
1303 de l'œuvre.  Vous pouvez alors recourir au @code{Page_turn_engraver} que
1304 vous mentionnerez dans un contexte de voix ou de portée.  Ce graveur de
1305 tournes recherchera dans le contexte en question les passages sans note.
1306 Notez bien qu'il ne recherche pas des silences, mais l'absence de
1307 notes@tie{}; autrement dit, il ne restera pas inactif dans la cadre
1308 d'une portée polyphonique dont l'une des parties contiendrait des
1309 silences.  Lorsqu'il rencontre un fragement suffisament long ne
1310 contenant aucune note, il insère un @code{\allowPageTurn} à la barre
1311 terminant ce fragment, à moins qu'il ne rencontre en chemin une
1312 @qq{barre spéciale} -- telle une double barre -- auquel cas il y
1313 déposera le @code{\allowPageTurn}.
1314
1315 @funindex minimumPageTurnLength
1316
1317 Le @code{Page_turn_engraver} examine la propriété de contexte
1318 @code{minimumPageTurnLength} pour déterminer quelle doit être la
1319 longueur d'un fragement sans note avant une tourne.  La valeur par
1320 défaut de @code{minimumPageTurnLength} est
1321 @code{#(ly:make-moment@tie{}1@tie{}1)}, soit une ronde, et s'ajuste de
1322 la manière suivante@tie{}:
1323
1324 @example
1325 \new Staff \with @{ \consists "Page_turn_engraver" @}
1326 @{
1327   a4 b c d |
1328   R1 | % une tourne peut se placer ici
1329   a4 b c d |
1330   \set Staff.minimumPageTurnLength = #(ly:make-moment 5 2)
1331   R1 | % il ne peut pas y avoir de tourne ici
1332   a4 b r2 |
1333   R1*2 | % une tourne peut se placer ici
1334   a1
1335 @}
1336 @end example
1337
1338 @funindex minimumRepeatLengthForPageTurn
1339
1340 Le @code{Page_turn_engraver} tient compte des reprises.  C'est pourquoi
1341 il ne permettra une tourne que dans le cas où il y aura suffisamment de
1342 temps au début et à la fin de la reprise pour que l'exécutant ait le
1343 temps de revenir à la page précédente.  Le @code{Page_turn_engraver} est
1344 même capable d'interdire un tourne dans le cas d'une reprise de courte
1345 durée, ajustable au travers de la propriété de contexte
1346 @code{minimumRepeatLengthForPageTurn}.
1347
1348 Les commandes de tourne -- @code{\pageTurn}, @code{\noPageTurn} et
1349 @code{\allowPageTurn} -- peuvent s'utiliser à des niveaux supérieurs,
1350 entre des blocs @code{\score} ou des @emph{markups} de haut niveau.
1351
1352
1353 @predefined
1354 @funindex \pageTurn
1355 @code{\pageTurn},
1356 @funindex \noPageTurn
1357 @code{\noPageTurn},
1358 @funindex \allowPageTurn
1359 @code{\allowPageTurn}.
1360 @endpredefined
1361
1362
1363 @seealso
1364 Morceaux choisis :
1365 @rlsrnamed{Spacing,Espacements}.
1366
1367
1368 @knownissues
1369
1370 Une partition ne devrait contenir qu'une seule instance du
1371 @code{Page_turn_engraver}, au risque de se contredire les uns les autres.
1372
1373
1374 @node Minimisation des sauts de page
1375 @subsection Minimisation des sauts de page
1376 @translationof Minimal page breaking
1377
1378 @funindex ly:minimal-breaking
1379
1380 La fonction @code{ly:minimal-breaking} est celle qui réalise le moins de
1381 calculs pour positionner les sauts de page.  Elle mettra le plus de
1382 systèmes possible sur une page avant de passer à la suivante.  On peut
1383 donc la préférer lorsque la partition s'étend sur beaucoup de pages ou
1384 lorsque les autres fonctions de gestion des sauts de page ralentissent
1385 nettement le traitement, sont trop gourmandes en mémoire ou qu'il y a
1386 beaucoup de texte.  Il suffit de la mentionner au sein du bloc
1387 @code{\paper}@tie{}:
1388
1389 @example
1390 \paper @{
1391   #(define page-breaking ly:minimal-breaking)
1392 @}
1393 @end example
1394
1395
1396 @seealso
1397 Morceaux choisis :
1398 @rlsrnamed{Spacing,Espacements}.
1399
1400
1401 @node Sauts explicites
1402 @subsection Sauts explicites
1403 @translationof Explicit breaks
1404
1405 Il arrive parfois que LilyPond rejette des @code{\break} ou des
1406 @code{\pageBreak} explicites.  Vous pouvez alors prendre le contrôle
1407 avex ces deux instructions dérogatoires@tie{}:
1408
1409 @example
1410 \override NonMusicalPaperColumn #'line-break-permission = ##f
1411 \override NonMusicalPaperColumn #'page-break-permission = ##f
1412 @end example
1413
1414 Lorsque vous désactivez @code{line-break-permission}, LilyPond
1415 ne passera à la ligne suivante qu'en présence d'un @code{\break}
1416 explicite, et nulle part ailleurs.  De la même façon, la désactivation
1417 de @code{page-break-permission} aura pour conséquence que LilyPond ne
1418 changera de page que lorsqu'il rencontrera un @code{\pageBreak}, et
1419 nulle part ailleurs.
1420
1421 @lilypond[quote,verbatim]
1422 \paper {
1423   indent = #0
1424   ragged-right = ##t
1425   ragged-bottom = ##t
1426 }
1427
1428 \score {
1429   \new Staff {
1430     \repeat unfold 2 { c'8 c'8 c'8 c'8 } \break
1431     \repeat unfold 4 { c'8 c'8 c'8 c'8 } \break
1432     \repeat unfold 6 { c'8 c'8 c'8 c'8 } \break
1433     \repeat unfold 8 { c'8 c'8 c'8 c'8 } \pageBreak
1434     \repeat unfold 8 { c'8 c'8 c'8 c'8 } \break
1435     \repeat unfold 6 { c'8 c'8 c'8 c'8 } \break
1436     \repeat unfold 4 { c'8 c'8 c'8 c'8 } \break
1437     \repeat unfold 2 { c'8 c'8 c'8 c'8 }
1438     }
1439   \layout {
1440     \context {
1441       \Score
1442       \override NonMusicalPaperColumn #'line-break-permission = ##f
1443       \override NonMusicalPaperColumn #'page-break-permission = ##f
1444     }
1445   }
1446 }
1447 @end lilypond
1448
1449
1450 @seealso
1451 Morceaux choisis :
1452 @rlsrnamed{Spacing,Espacements}.
1453
1454
1455 @node Recours à une voix supplémentaire pour gérer les sauts
1456 @subsection Recours à une voix supplémentaire pour gérer les sauts
1457 @translationof Using an extra voice for breaks
1458
1459 La plupart du temps, les informations concernant les sauts de ligne ou
1460 de page se retrouvent directement au milieu des notes.
1461
1462 @example
1463 \score @{
1464   \new Staff @{
1465     \repeat unfold 2 @{ c'4 c'4 c'4 c'4 @}
1466     \break
1467     \repeat unfold 3 @{ c'4 c'4 c'4 c'4 @}
1468   @}
1469 @}
1470 @end example
1471
1472 Bien que cela constitue un moyen aisé de saisir les commandes
1473 @code{\break} et @code{\pageBreak}, les données musicales se retrouvent
1474 mélangées à des informations qui concernent plutôt l'agencement de la
1475 musique sur le papier.  Vous pouvez tout à fait séparer ce qui est
1476 purement musical et les informations concernant les sauts de ligne ou de
1477 page en créant une voix supplémentaire dédiée.  Cette voix supécifique
1478 ne contiendra que des blancs -- des silences invisibles @code{\skip} --,
1479 des @code{\break}, des @code{\pageBreak} et autres informations
1480 concernant les ruptures.
1481
1482 @lilypond[quote,verbatim]
1483 \score {
1484   \new Staff <<
1485     \new Voice {
1486       s1 * 2 \break
1487       s1 * 3 \break
1488       s1 * 6 \break
1489       s1 * 5 \break
1490     }
1491     \new Voice {
1492       \repeat unfold 2 { c'4 c'4 c'4 c'4 }
1493       \repeat unfold 3 { c'4 c'4 c'4 c'4 }
1494       \repeat unfold 6 { c'4 c'4 c'4 c'4 }
1495       \repeat unfold 5 { c'4 c'4 c'4 c'4 }
1496     }
1497   >>
1498 }
1499 @end lilypond
1500
1501 Cette manière de procéder est tout à fait indiquée lorsque vous ajustez
1502 les @code{line-break-system-details} et autres propriétés fort
1503 intéressantes de @code{NonMusicalPaperColumnGrob}, comme vous pouvez
1504 le voir au chapitre @ref{Espacement vertical}.
1505
1506 @lilypond[quote,verbatim]
1507 \score {
1508   \new Staff <<
1509     \new Voice {
1510       \overrideProperty "Score.NonMusicalPaperColumn"
1511         #'line-break-system-details #'((Y-offset . 0))
1512       s1 * 2 \break
1513
1514       \overrideProperty "Score.NonMusicalPaperColumn"
1515         #'line-break-system-details #'((Y-offset . 35))
1516       s1 * 3 \break
1517
1518       \overrideProperty "Score.NonMusicalPaperColumn"
1519         #'line-break-system-details #'((Y-offset . 70))
1520       s1 * 6 \break
1521
1522       \overrideProperty "Score.NonMusicalPaperColumn"
1523         #'line-break-system-details #'((Y-offset . 105))
1524       s1 * 5 \break
1525     }
1526     \new Voice {
1527       \repeat unfold 2 { c'4 c'4 c'4 c'4 }
1528       \repeat unfold 3 { c'4 c'4 c'4 c'4 }
1529       \repeat unfold 6 { c'4 c'4 c'4 c'4 }
1530       \repeat unfold 5 { c'4 c'4 c'4 c'4 }
1531     }
1532   >>
1533 }
1534 @end lilypond
1535
1536
1537 @seealso
1538 Manuel de notation :
1539 @ref{Espacement vertical}.
1540
1541 Morceaux choisis :
1542 @rlsrnamed{Spacing,Espacements}.
1543
1544
1545 @node Espacement vertical
1546 @section Espacement vertical
1547 @translationof Vertical spacing
1548
1549 @cindex vertical, espacement
1550 @cindex espacement vertical
1551
1552 L'espacement vertical dépend de trois éléments@tie{}: la surface
1553 disponible -- par exemple format de papier et marges --, l'espace qui
1554 doit séparer les systèmes, et l'espace qui sépare les portées d'un même
1555 système.
1556
1557 @menu
1558 * Espacement vertical au sein d'un système::
1559 * Positionnement explicite des portées et systèmes::
1560 * Résolution des collisions verticales::
1561 @end menu
1562
1563 @node Espacement vertical au sein d'un système
1564 @subsection Espacement vertical au sein d'un système
1565 @translationof Flexible vertical spacing within systems
1566
1567 @cindex distance entre les portées
1568 @cindex portées, espacement
1569 @cindex espacement entre les portées
1570 @cindex espacement au sein d'un système
1571
1572 LilyPond dispose de trois différents mécanismes permettant de contrôler
1573 l'espacement au sein d'un système selon trois catégories@tie{}:
1574
1575 @itemize
1576 @item @emph{portées isolées},
1577 @item @emph{portées regroupées} (portées d'un même groupe, telles celles
1578 d'un @code{ChoirStaff}, etc.), et
1579 @item @emph{lignes de non-portée} (@code{Lyrics}, @code{ChordNames},
1580 etc.).
1581 @end itemize
1582
1583 @c TODO: Clarify this.  This almost implies that non-staff lines
1584 @c       have NO effect on the spacing between staves.  -mp
1585
1586 La hauteur de chaque système se détermine en deux phases.  Les portées
1587 sont tout d'abord espacées selon la surface disponible.  Puis les lignes
1588 autres que des portées, comme les paroles ou les accords, sont réparties
1589 entre les portées.
1590
1591 Les paragraphes qui suivent traitent exclusivement de la manière de
1592 gérer l'espacement entre les lignes d'un système -- portée musicale ou
1593 non.  Pour ce qui a trait aux espacements entre les systèmes,
1594 mouvements, annotations et marge, ils sont contrôlés par des variables
1595 attachées au bloc @code{\paper} et font l'objet du chapitre
1596 @ref{Dimensionnement vertical fluctuant}.
1597
1598 @menu
1599 * Propriétés d'espacement au sein d'un système::
1600 * Espacement de portées isolées::
1601 * Espacement de portées regroupées::
1602 * Espacement des lignes rattachées à des portées::
1603 @end menu
1604
1605
1606 @node Propriétés d'espacement au sein d'un système
1607 @unnumberedsubsubsec Propriétés d'espacement au sein d'un système
1608 @translationof Within-system spacing properties
1609
1610 L'espacement entre les portées est géré par deux jeux de propriétés
1611 d'objet graphique (@emph{grob}).  Le premier, associé à l'objet
1612 graphique @code{VerticalAxisGroup}, est créé pour toute ligne de portée
1613 ou de non-portée.  Le second, associé à l'objet graphique
1614 @code{StaffGrouper}, doit être explicitement créé pour un regroupement
1615 de portées particulier.  Les propriétés qui leur sont attachées sont
1616 abordées en fin de section.
1617
1618 Le nom de ces propriétés, sauf @code{staff-affinity}, suit le schéma
1619 @code{@var{item1}-@var{item2}-spacing} -- @code{@var{item1}} et
1620 @code{@var{item2}} étant les éléments à espacer.  Notez bien que
1621 @code{@var{item2}} n'est pas forcément placé au-dessous@tie{}: c'est le
1622 cas pour la propriété @code{nonstaff-relatedstaff-spacing} qui spécifie
1623 la distance entre une ligne de non-portée alors que sa
1624 @code{staff-affinity} a été déterminée à @code{#UP}.
1625
1626 Toutes ces distances sont mesurées entre les points de référence
1627 respectifs de éléments considérés.
1628 Le @i{point de référence} d'une portée est le centre vertical du
1629 @code{StaffSymbol} -- la ligne médiane si @code{line-count} est impair,
1630 l'interligne médian si @code{line-count} est pair.
1631 Quant aux lignes rattachées à des portées -- lignes de non-portée -- le
1632 tableau suivant présente le @i{point de référence} pour chacun d'entre
1633 eux@tie{}:
1634
1635 @multitable {Non-staff line} {Reference point}
1636 @headitem Non-portée line @tab Point de référence
1637 @item @code{ChordNames}  @tab ligne de base
1638 @item @code{NoteNames}   @tab ligne de base
1639 @item @code{Lyrics}      @tab ligne de base
1640 @item @code{Dynamics}    @tab centre vertical
1641 @item @code{FiguredBass} @tab point le plus haut
1642 @item @code{FretBoards}  @tab ligne supérieure
1643 @end multitable
1644
1645 En voici une représentation graphique@tie{}:
1646
1647 @c KEEP LY
1648 @lilypond[quote,noragged-right,line-width=110\mm]
1649 #(define zero-space '((padding . -inf.0) (space . 0)))
1650
1651 alignToZero = \with {
1652   \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing = #zero-space
1653   \override VerticalAxisGroup #'nonstaff-nonstaff-spacing = #zero-space
1654 }
1655 lowerCaseChords = \with {
1656   chordNameLowercaseMinor = ##t
1657 }
1658 staffAffinityDown = \with {
1659   \override VerticalAxisGroup #'staff-affinity = #DOWN
1660 }
1661 labelContext =
1662 #(define-music-function
1663      (parser location context)
1664      (string?)
1665    #{ s1*0^\markup { \typewriter $context } #})
1666
1667 \layout {
1668   \context { \Dynamics    \alignToZero }
1669   \context { \FiguredBass \alignToZero }
1670   \context { \Lyrics      \alignToZero }
1671   \context { \NoteNames   \alignToZero }
1672   \context { \ChordNames  \alignToZero \lowerCaseChords }
1673   \context { \FretBoards  \alignToZero \staffAffinityDown }
1674   \context { \Score
1675     \override BarLine #'stencil = ##f
1676     \override DynamicText #'self-alignment-X = #-1
1677     \override FretBoard #'X-offset = #1.75
1678     \override InstrumentName #'minimum-Y-extent = #'(-2 . 2)
1679     \override InstrumentName #'extra-offset = #'(0 . -0.5)
1680     \override TextScript #'minimum-Y-extent = #'(-2 . 3)
1681     \override TimeSignature #'stencil = ##f
1682   }
1683 }
1684
1685 %% Contextes dont le point de référence est la ligne de base :
1686 %%   ChordNames, NoteNames, et Lyrics
1687 <<
1688   \new ChordNames { \chords { g1:m } }
1689   \new NoteNames { s1 | g1 | }
1690   \new RhythmicStaff {
1691     \set RhythmicStaff.instrumentName = #"ligne de base (baseline) "
1692     \textLengthOn
1693     \labelContext "ChordNames" s1 |
1694     \labelContext "NoteNames"  s1 |
1695     \labelContext "Lyrics"     s1 |
1696   }
1697   \new Lyrics { \lyrics { \skip 1*2 | ghijk1 | } }
1698 >>
1699
1700 %% Le point de référence de Dynamics est le milieu de la ligne
1701 <<
1702   \new RhythmicStaff {
1703     \set RhythmicStaff.instrumentName = #"centre vertical "
1704     \labelContext "Dynamics" s1*3
1705   }
1706   \new Dynamics { s2\mp s\fp }
1707 >>
1708
1709 %% Le point de référence de FiguredBass est son point le plus haut
1710 <<
1711   \new RhythmicStaff {
1712     \set RhythmicStaff.instrumentName = #"point le plus haut "
1713     \labelContext "FiguredBass" s1
1714   }
1715   \new FiguredBass { \figuremode { <6 5>1 } }
1716 >>
1717
1718 %% Le point de référence de FretBoards est la ligne du haut
1719 \include "predefined-guitar-fretboards.ly"
1720 <<
1721   \new FretBoards { \chordmode { e1 } }
1722   \new RhythmicStaff {
1723     \set RhythmicStaff.instrumentName = #"ligne du haut "
1724     \labelContext "FretBoards " s1
1725   }
1726 >>
1727 @end lilypond
1728
1729 Hormis @code{staff-affinity} -- propriété attachée au @emph{grob}
1730 @code{VerticalAxisGroup} --, chacune de ces propriétés est enregistrée
1731 sous la forme d'une liste associative dont les composantes sont
1732 identiques à celle des variables du bloc @code{\paper} que nous avons
1733 examinées au chapitre @ref{Dimensionnement vertical fluctuant}.
1734
1735 Les particularités en matière de modification d'une liste associative
1736 font l'objet d'un
1737 @rusernamed{Modification de listes associatives,chapitre particulier}.
1738 Les propriétés des objets graphiques se règlent avec un @code{\override}
1739 mentionné dans un bloc @code{\score} ou @code{\layout}, pas dans le bloc
1740 @code{\paper}.
1741
1742 L'exemple suivant illustre deux façons de modifier une liste
1743 associative.  La première déclaration n'agit que sur une seule clé,
1744 alors que la seconde redéfinit la propriété dans son intégralité.
1745
1746 @example
1747 \new Staff \with @{
1748   \override VerticalAxisGroup #'staff-staff-spacing #'space = #10
1749 @} @{ @dots{} @}
1750
1751 \new Staff \with @{
1752   \override VerticalAxisGroup #'staff-staff-spacing =
1753     #'((padding . 1)
1754        (space . 10)
1755        (minimum-distance . 9)
1756        (stretchability . 10))
1757 @} @{ @dots{} @}
1758 @end example
1759
1760 La modification d'un espacement au niveau global se mentionne au sein du
1761 bloc @code{\layout}@tie{}:
1762
1763 @example
1764 \layout @{
1765   \context @{
1766     \Staff
1767     \override VerticalAxisGroup #'staff-staff-spacing #'space = #10
1768   @}
1769 @}
1770 @end example
1771
1772 Les réglages concernant les propriétés d'espacement vertical des objets
1773 graphiques sont répertoriées aux chapitres
1774 @rinternals{VerticalAxisGroup} et @rinternals{StaffGrouper}.
1775 Les propriétés relatives aux lignes de non-portée sont répertoriées
1776 selon la définition de leur contexte dans la
1777 @rinternalsnamed{Contexts,Référence des propriétés internes}.
1778
1779
1780 @subsubheading Propriétés de l'objet @code{VerticalAxisGroup}
1781 @translationof Properties of the @code{VerticalAxisGroup} grob
1782
1783 Les propriétés de l'objet @code{VerticalAxisGroup} s'ajustent à l'aide
1784 d'un @code{\override} au niveau d'un contexte @code{Staff} (ou son
1785 équivalent).
1786
1787 @table @code
1788 @item staff-staff-spacing
1789 Il s'agit de la distance entre la portée en cours et la portée qui suit
1790 au sein du même regroupement, qu'il y ait ou non une ligne de non-portée
1791 (@code{Lyrics} ou autre) entre les deux.  Cette propriété ne s'applique
1792 pas à la dernière portée d'un système.  
1793 Cette propriété écrase les réglages hérités du @emph{grob}
1794 @code{StaffGrouper} d'un éventuel regroupement.  
1795 Lorsque @code{staff-staff-spacing} n'est pas défini et qu'il n'y a pas
1796 de @code{StaffGrouper} dont on pourrait hériter des propriétés, c'est la
1797 propriété @code{default-staff-staff-spacing} qui s'applique.
1798
1799 @item default-staff-staff-spacing
1800 Il s'agit de la distance qui s'appliquera, dans le cas où
1801 @code{staff-staff-spacing} n'aura pas été défini, aussi bien pour les
1802 portées isolées que dans le cas où les portées d'un regroupement
1803 n'hériteraient pas des ajustements du @code{StaffGrouper} concerné.
1804
1805 @item staff-affinity
1806 Il s'agit de la direction -- @code{UP}, @code{DOWN} ou @code{CENTER} --
1807 que prendra une ligne de non-portée pour aller s'accoler aux portées
1808 adjacentes .  Si vous lui attribuez @code{CENTER}, cette ligne de
1809 non-portée ira se placer à équidistance entre les portées qui
1810 l'encadrent, tout en tenant compte des éventuels risques de collision et
1811 des autres contraintes d'espacement.  Des lignes de non-portée
1812 adjacentes devraient avoir une @code{staff-affinity} allant de haut en
1813 bas -- autrement dit, pas de @code{UP} après un @code{DOWN}.
1814 Une ligne de non-portée en dessous d'un système devrait avoir sa
1815 @code{staff-affinity} définie à @code{UP}.  De la même manière, lorsque
1816 cette ligne surplombe un système, sa @code{staff-affinity} devrait être
1817 définie à @code{DOWN}.  Prenez garde à la valeur que vous affectez à
1818 @code{staff-affinity}@tie{}: si vous lui affectez la valeur @code{#f} à
1819 une ligne de non-portée, cette ligne sera considérée comme étant une
1820 portée@tie{}; à l'inverse, utiliser la propriété @code{staff-affinity}
1821 pour une portée lui fera perdre cette qualité.
1822
1823 @c TODO: verify last clause below ("even if other...")
1824
1825 @item nonstaff-relatedstaff-spacing
1826 Il s'agit de la distance entre la ligne de non-portée en cours et la
1827 portée la plus proche selon la @code{staff-affinity}, à la double
1828 condition qu'il n'y a pas déjà une autre ligne de non-portée et que la
1829 valeur de @code{staff-affinity} soit @code{UP} ou @code{DOWN}.  Lorsque
1830 la valeur de @code{staff-affinity} est égale à @code{CENTER}, la valeur
1831 de @code{nonstaff-relatedstaff-spacing} servira à centrer la ligne de
1832 non-portée entre les deux portées adjacentes même si une autre
1833 non-portée est présente (quelque soit le côté).
1834
1835 @item nonstaff-nonstaff-spacing
1836 Il s'agit de la distance entre deux lignes de non-portée selon
1837 l'orientation définie par @code{staff-affinity} et qu'elles ont la même
1838 orientation.  Bien entendu, ceci ne peut concerner que les valeurs
1839 @code{UP} et @code{DOWN} de @code{staff-affinity}.
1840
1841 @item nonstaff-unrelatedstaff-spacing
1842 Il s'agit de la distance entre une ligne de non-portée et la portée à
1843 l'opposé de l'orientation adoptée, à la double condition qu'il n'y a pas
1844 déjà une autre ligne de non-portée et que la valeur de
1845 @code{staff-affinity} soit @code{UP} ou @code{DOWN}.  Cette propriété
1846 trouve toute sa légitimité pour décaler une ligne de @code{Lyrics} de la
1847 portée à laquelle elle ne correspond pas.
1848 @end table
1849
1850
1851 @subsubheading Propriétés de l'objet @code{StaffGrouper}
1852 @translationof Properties of the @code{StaffGrouper} grob
1853
1854 Les propriétés de l'objet @code{StaffGrouper} s'ajustent à l'aide
1855 d'un @code{\override} au niveau d'un contexte @code{StaffGroup} (ou son
1856 équivalent).
1857
1858 @table @code
1859 @item staff-staff-spacing
1860 Il s'agit de la distance entre deux portées consécutives d'un même
1861 système.  Cependant, lorsque l'une des portées d'un regroupement s'est
1862 vue définir la propriété @code{staff-staff-spacing} de son
1863 @code{VerticalAxisGroup}, le @code{VerticalAxisGroup} aura préséance.
1864 Voir aussi la propriété @code{default-staff-staff-spacing}.
1865
1866 @item staffgroup-staff-spacing
1867 Il s'agit de la distance entre la dernière portée d'un regroupement et
1868 la portée suivante, au sein d'un même système, y compris lorsqu'une ou
1869 plusieurs lignes de non-portée (tel @code{Lyrics}) s'insèrent entre les
1870 deux.  Cette propriété ne concerne pas la dernière portée d'un système.
1871 Dans le cas où la propriété @code{staff-staff-spacing} d'une portée du
1872 regroupement a été ajustée au niveau de son @code{VerticalAxisGroup},
1873 cette dernière aura préséance.  Voir aussi la propriété
1874 @code{default-staff-staff-spacing}.
1875 @end table
1876
1877
1878 @seealso
1879 Fichiers d'initialisation :
1880 @file{ly/engraver-init.ly},
1881 @file{scm/define-grobs.scm}.
1882
1883 Référence des propriétés internes :
1884 @rinternals{Contexts},
1885 @rinternals{VerticalAxisGroup},
1886 @rinternals{StaffGrouper}.
1887
1888
1889 @node Espacement de portées isolées
1890 @unnumberedsubsubsec Espacement de portées isolées
1891 @translationof Spacing of ungrouped staves
1892
1893 Les @code{Staff}, @code{DrumStaff}, @code{TabStaff} entre autres sont
1894 des contextes de @qq{portée} pouvant contenir plusieurs voix, mais pas
1895 une portée.
1896
1897 L'espacement de ces @i{portées isolées} est géré par les propriétés
1898 suivantes@tie{}:
1899
1900 @itemize
1901 @item Propriétés du @code{VerticalAxisGroup} :
1902 @itemize
1903 @item @code{staff-staff-spacing}
1904 @end itemize
1905 @end itemize
1906
1907 Ces propriétés d'objet graphique sont expliquées une à une au chapitre
1908 @ref{Propriétés d'espacement au sein d'un système}.
1909
1910 Certaines propriétés supplémentaires s'appliqueront dès lors que
1911 ces portées sont regroupées -- voir
1912 @ref{Espacement de portées regroupées}.
1913
1914 L'exemple suivant illustre la manière de gérer l'espacement de portées
1915 isolées à l'aide de la propriété @code{staff-staff-spacing}@tie{}:
1916
1917 @lilypond[verbatim,quote,staffsize=16]
1918 \layout {
1919   \context {
1920     \Staff
1921     \override VerticalAxisGroup #'staff-staff-spacing =
1922       #'((padding . 1)
1923          (space . 8)
1924          (minimum-distance . 7))
1925   }
1926 }
1927
1928 \new StaffGroup <<
1929   % The very low note here needs more room than 'space can
1930   % provide, so the distance between this staff and the next is
1931   % determined by 'padding.
1932   \new Staff { b,2 r | }
1933
1934   % Here, 'space provides enough room, and there is no need to
1935   % compress the space (towards 'minimum-distance) to make room
1936   % for anything else on the page, so the distance between this
1937   % staff and the next is determined by 'space.
1938   \new Staff { \clef bass g2 r | }
1939
1940   % By setting 'padding to a negative value, staves can be made to
1941   % collide.  The lowest acceptable value for 'space is 0.
1942   \new Staff \with {
1943     \override VerticalAxisGroup #'staff-staff-spacing =
1944       #'((padding . -10)
1945          (space . 3.5))
1946   } { \clef bass g2 r | }
1947   \new Staff { \clef bass g2 r | }
1948 >>
1949 @end lilypond
1950
1951
1952 @seealso
1953 Fichiers d'initialisation :
1954 @file{scm/define-grobs.scm}.
1955
1956 Morceaux choisis :
1957 @rlsrnamed{Spacing,Espacements}.
1958
1959 Référence des propriétés internes :
1960 @rinternals{VerticalAxisGroup}.
1961
1962
1963 @node Espacement de portées regroupées
1964 @unnumberedsubsubsec Espacement de portées regroupées
1965 @translationof Spacing of grouped staves
1966
1967 Dans les partitions orchestrales ou de grande ampleur, il arrive
1968 souvent que des portées soient regroupées.  L'espacement est alors plus
1969 important entre deux regroupements qu'entre les portées d'un même
1970 groupe.  
1971
1972 Les @i{regroupement de portées} tels le @code{StaffGroup} ou le
1973 @code{ChoirStaff} sont des contextes qui peuvent contenir simultanément
1974 une ou plusieurs portées.
1975
1976 L'espacement entre les portées d'un même regroupement est géré par les
1977 propriétés suivantes@tie{}: 
1978
1979 @itemize
1980 @item Propriétés du @code{VerticalAxisGroup} :
1981 @itemize
1982 @item @code{staff-staff-spacing}
1983 @item @code{default-staff-staff-spacing}
1984 @end itemize
1985 @item Propriétés du @code{StaffGrouper} :
1986 @itemize
1987 @item @code{staff-staff-spacing}
1988 @item @code{staffgroup-staff-spacing}
1989 @end itemize
1990 @end itemize
1991
1992 Ces propriétés d'objet graphique sont expliquées une à une au chapitre
1993 @ref{Propriétés d'espacement au sein d'un système}.
1994
1995 L'exemple suivant illustre la manière de gérer l'espacement de portées
1996 regroupes, à l'aide des propriétés de l'objet graphique
1997 @code{StaffGrouper}@tie{}:
1998
1999 @lilypond[verbatim,quote,staffsize=16]
2000 \layout {
2001   \context {
2002     \Score
2003     \override StaffGrouper #'staff-staff-spacing #'padding = #0
2004     \override StaffGrouper #'staff-staff-spacing #'space = #1
2005   }
2006 }
2007
2008 <<
2009   \new PianoStaff \with {
2010     \override StaffGrouper #'staffgroup-staff-spacing #'space = #20
2011   } <<
2012     \new Staff { c'1 }
2013     \new Staff { c'1 }
2014   >>
2015
2016   \new StaffGroup <<
2017     \new Staff { c'1 }
2018     \new Staff { c'1 }
2019   >>
2020 >>
2021 @end lilypond
2022
2023
2024 @seealso
2025 Fichiers d'initialisation :
2026 @file{scm/define-grobs.scm}.
2027
2028 Morceaux choisis :
2029 @rlsrnamed{Spacing,Espacements}.
2030
2031 Référence des propriétés internes:
2032 @rinternals{VerticalAxisGroup},
2033 @rinternals{StaffGrouper}.
2034
2035 @node Espacement des lignes rattachées à des portées
2036 @unnumberedsubsubsec Espacement des lignes rattachées à des portées
2037 @translationof Spacing of non-staff lines
2038
2039 Les @i{lignes de non-portée}, comme les @code{Lyrics} ou les
2040 @code{ChordNames} sont des contextes dont les objets de rendu sont
2041 gravés à l'instar des portées -- une ligne horizontale dans un système.
2042 En fait, les lignes de non-portée sont des contextes qui vont créer un
2043 objet de rendu @code{VerticalAxisGroup}.
2044
2045 L'espacement des lignes de non-portée est géré par les propriétés
2046 suivantes@tie{}:
2047
2048 @itemize
2049 @item Propriétés du @code{VerticalAxisGroup} :
2050 @itemize
2051 @item @code{staff-affinity}
2052 @item @code{nonstaff-relatedstaff-spacing}
2053 @item @code{nonstaff-nonstaff-spacing}
2054 @item @code{nonstaff-unrelatedstaff-spacing}
2055 @end itemize
2056 @end itemize
2057
2058 Ces propriétés d'objet graphique sont expliquées une à une au chapitre
2059 @ref{Propriétés d'espacement au sein d'un système}.
2060
2061 L'exemple suivant utilise la propriété @code{nonstaff-nonstaff-spacing}
2062 pour gérer l'espacement entre des lignes consécutives de non-portée.
2063 Vous noterez que la valeur élevée attribuée à la clé
2064 @code{stretchability} permet aux paroles de s'étirer plus que de raison.
2065
2066 @lilypond[verbatim,quote,staffsize=16]
2067 \layout {
2068   \context {
2069     \Lyrics
2070     \override VerticalAxisGroup
2071       #'nonstaff-nonstaff-spacing #'stretchability = #1000
2072   }
2073 }
2074
2075 \new StaffGroup
2076 <<
2077   \new Staff \with {
2078     \override VerticalAxisGroup #'staff-staff-spacing = #'((space . 30))
2079   } { c'1 }
2080   \new Lyrics \with {
2081     \override VerticalAxisGroup #'staff-affinity = #UP
2082   } \lyricmode { up }
2083   \new Lyrics \with {
2084     \override VerticalAxisGroup #'staff-affinity = #CENTER
2085   } \lyricmode { center }
2086   \new Lyrics \with {
2087     \override VerticalAxisGroup #'staff-affinity = #DOWN
2088   } \lyricmode { down }
2089   \new Staff { c'1 }
2090 >>
2091 @end lilypond
2092
2093
2094 @seealso
2095 Fichiers d'initialisation :
2096 @file{ly/engraver-init.ly},
2097 @file{scm/define-grobs.scm}.
2098
2099 Morceaux choisis :
2100 @rlsrnamed{Spacing,Espacements}.
2101
2102 @c @lsr{spacing,page-spacing.ly},
2103 @c @lsr{spacing,alignment-vertical-spacing.ly}.
2104
2105 Référence des propriétés internes :
2106 @rinternals{Contexts},
2107 @rinternals{VerticalAxisGroup}.
2108
2109
2110 @node Positionnement explicite des portées et systèmes
2111 @subsection Positionnement explicite des portées et systèmes
2112 @translationof Explicit staff and system positioning
2113
2114 Pour bien comprendre comment fonctionnent les réglages de
2115 @code{VerticalAxisGroup} et de @code{\paper} abordés dans les deux
2116 rubriques précédentes, rien ne vaut une collection d'exemples illustrant
2117 les différentes mises au point du décalage vertical appliqué aux portées
2118 et systèmes distribués sur une page.
2119
2120 Une autre approche de l'espacement vertical est le recours à
2121 @code{NonMusicalPaperColumn #'line-break-system-details}.  Alors que
2122 @code{VerticalAxisGroup} et @code{\paper} gèrent un décalage vertical,
2123 @code{NonMusicalPaperColumn #'line-break-system-details} spécifiera le
2124 positionnement vertical absolu sur la page.
2125
2126 @code{NonMusicalPaperColumn #'line-break-system-details} prend en charge
2127 une liste associative de trois mises au point@tie{}:
2128
2129 @itemize
2130 @item @code{X-offset}
2131 @item @code{Y-offset}
2132 @item @code{alignment-distances}
2133 @end itemize
2134
2135 Les dérogations en matière d'objet graphique, y compris celles
2136 concernant les @code{NonMusicalPaperColumn} ci-dessus, peuvent se placer
2137 à trois différents endroits de votre fichier source@tie{}:
2138
2139 @itemize
2140 @item directement au beau milieu des notes
2141 @item au sein d'un bloc @code{\context}
2142 @item dans un bloc @code{\with}
2143 @end itemize
2144
2145 Le réglage de @code{NonMusicalPaperColumn} s'effectue à l'aide d'une
2146 simple commande @code{\override} au sein d'un bloc @code{\context} ou
2147 @code{\with}.  Dans le cas ou il est stipulé au fil des notes, c'est la
2148 commande spécifique @code{\overrideProperty} qui doit intervenir.  Voici
2149 quelques exemples de réglages de @code{NonMusicalPaperColumn} à l'aide
2150 de la commande @code{\overrideProperty}@tie{}:
2151
2152 @example
2153 \overrideProperty NonMusicalPaperColumn
2154   #'line-break-system-details #'((X-offset . 20))
2155
2156 \overrideProperty NonMusicalPaperColumn
2157   #'line-break-system-details #'((Y-offset . 40))
2158
2159 \overrideProperty NonMusicalPaperColumn
2160   #'line-break-system-details #'((X-offset . 20) (Y-offset . 40))
2161
2162 \overrideProperty NonMusicalPaperColumn
2163   #'line-break-system-details #'((alignment-distances . (15)))
2164
2165 \overrideProperty NonMusicalPaperColumn
2166   #'line-break-system-details #'((X-offset . 20) (Y-offset . 40)
2167                                  (alignment-distances . (15)))
2168 @end example
2169
2170 Nous allons maintenant voir ces différents réglages en action.
2171 Commençons par examiner un exemple dépourvu de toute mise au point.
2172
2173 @c \book { } is required in these examples to ensure the spacing
2174 @c overrides can be seen between systems. -np
2175
2176 @lilypond[quote]
2177 \header { tagline = ##f }
2178 \paper { left-margin = 0\mm }
2179 \book {
2180   \score {
2181     <<
2182       \new Staff <<
2183         \new Voice {
2184           s1*5 \break
2185           s1*5 \break
2186           s1*5 \break
2187         }
2188         \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
2189       >>
2190       \new Staff {
2191         \repeat unfold 15 { d'4 d' d' d' }
2192       }
2193     >>
2194   }
2195 }
2196 @end lilypond
2197
2198 Cette partition isole les informations de saut de ligne ou de page dans
2199 une voix spécifique.  La mise en forme est ainsi séparée des événements
2200 musicaux@tie{}; ceci nous permettra d'y voir plus clair au fur et à
2201 mesure que nous avancerons.  Pour plus de précisions, relisez
2202 @ref{Recours à une voix supplémentaire pour gérer les sauts}.
2203
2204 Les @code{\breaks} explicites répartissent la musique en lignes de cinq
2205 mesures chacune.  L'espacement vertical est celui que LilyPond attribue
2206 par défaut.  Nous pouvons, afin de fixer explicitement le point
2207 d'attache vertical de chacun des systèmes, définir un doublet
2208 @code{Y-offset} en tant qu'attribut du @code{line-break-system-details}
2209 de l'objet @code{NonMusicalPaperColumn}@tie{}:
2210
2211 @lilypond[quote]
2212 \header { tagline = ##f }
2213 \paper { left-margin = 0\mm }
2214 \book {
2215   \score {
2216     <<
2217       \new Staff <<
2218         \new Voice {
2219           \overrideProperty #"Score.NonMusicalPaperColumn"
2220             #'line-break-system-details #'((Y-offset . 0))
2221           s1*5 \break
2222           \overrideProperty #"Score.NonMusicalPaperColumn"
2223             #'line-break-system-details #'((Y-offset . 40))
2224           s1*5 \break
2225           \overrideProperty #"Score.NonMusicalPaperColumn"
2226             #'line-break-system-details #'((Y-offset . 80))
2227           s1*5 \break
2228         }
2229         \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
2230       >>
2231       \new Staff {
2232         \repeat unfold 15 { d'4 d' d' d' }
2233       }
2234     >>
2235   }
2236 }
2237 @end lilypond
2238
2239 Vous aurez remarqué que nous n'avons déterminé qu'une seule valeur, même
2240 si la liste associative de @code{line-break-system-details} peut en
2241 comporter un certain nombre.  Vous aurez aussi noté que la propriété
2242 @code{Y-offset} détermine ici le point de départ de chacun des systèmes
2243 de la page.
2244
2245 Maintenant que chaque système est explicitement positionné, nous pouvons
2246 jouer sur la distance séparant les portées de chacun des systèmes, grâce
2247 à la sous-propriété @code{alignment-distances} de
2248 @code{line-break-system-details}.
2249
2250 @lilypond[quote]
2251 \header { tagline = ##f }
2252 \paper { left-margin = 0\mm }
2253 \book {
2254   \score {
2255     <<
2256       \new Staff <<
2257         \new Voice {
2258           \overrideProperty #"Score.NonMusicalPaperColumn"
2259             #'line-break-system-details #'((Y-offset . 20)
2260                                            (alignment-distances . (15)))
2261           s1*5 \break
2262           \overrideProperty #"Score.NonMusicalPaperColumn"
2263             #'line-break-system-details #'((Y-offset . 60)
2264                                            (alignment-distances . (15)))
2265           s1*5 \break
2266           \overrideProperty #"Score.NonMusicalPaperColumn"
2267             #'line-break-system-details #'((Y-offset . 100)
2268                                            (alignment-distances . (15)))
2269           s1*5 \break
2270         }
2271         \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
2272       >>
2273       \new Staff {
2274         \repeat unfold 15 { d'4 d' d' d' }
2275       }
2276     >>
2277   }
2278 }
2279 @end lilypond
2280
2281 Nous avons maintenant assigné deux valeurs différentes à l'attribut
2282 @code{line-break-system-details} de l'objet
2283 @code{NonMusicalPaperColumn}.  @code{line-break-system-details} pourrait
2284 prende bien d'autres paramètres d'espacement, y compris un doublet
2285 @code{X-offset}, mais nous n'avons utilisé que @code{Y-offset} et
2286 @code{alignment-distances} pour contrôler le positionnement de chaque
2287 système et de chaque portée.  Vous noterez enfin que
2288 @code{alignment-distances} traite le positionnement des portées, non
2289 d'un regroupement de portées.
2290
2291 @lilypond[quote]
2292 \header { tagline = ##f }
2293 \paper { left-margin = 0\mm }
2294 \book {
2295   \score {
2296     <<
2297       \new Staff <<
2298         \new Voice {
2299           \overrideProperty #"Score.NonMusicalPaperColumn"
2300             #'line-break-system-details #'((Y-offset . 0)
2301                                            (alignment-distances . (30 10)))
2302           s1*5 \break
2303           \overrideProperty #"Score.NonMusicalPaperColumn"
2304             #'line-break-system-details #'((Y-offset . 60)
2305                                            (alignment-distances . (10 10)))
2306           s1*5 \break
2307           \overrideProperty #"Score.NonMusicalPaperColumn"
2308             #'line-break-system-details #'((Y-offset . 100)
2309                                            (alignment-distances . (10 30)))
2310           s1*5 \break
2311         }
2312         \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
2313       >>
2314       \new StaffGroup <<
2315         \new Staff { \repeat unfold 15 { d'4 d' d' d' } }
2316         \new Staff { \repeat unfold 15 { e'4 e' e' e' } }
2317       >>
2318     >>
2319   }
2320 }
2321 @end lilypond
2322
2323 Quelques points à prendre en considération@tie{}:
2324
2325 @itemize
2326 @item Lorsque vous utilisez @code{alignment-distances}, les paroles et
2327 autres lignes de non-portée ne comptent pas pour une portée.
2328
2329 @item Les nombres fournis à @code{X-offset}, @code{Y-offset} et
2330 @code{alignment-distances} sont considérés comme des multiples de la
2331 distance entre des portées adjacentes.  Des valeurs positives remontent
2332 les portées et paroles, des valeurs négatives les descendent.
2333
2334 @item Dans la mesure où @code{NonMusicalPaperColumn
2335 #'line-break-system-details} permet de positionner systèmes et portées
2336 n'importe où sur une page, vous pourriez être en contradiction avec les
2337 dimensionnements de la feuille ou bien aboutir à des surimpressions.
2338 Soyez donc raisonnables quant aux différentes valeurs que vous affectez
2339 à ces réglages.
2340 @end itemize
2341
2342
2343 @seealso
2344 Morceaux choisis :
2345 @rlsrnamed{Spacing,Espacements}.
2346
2347
2348 @node Résolution des collisions verticales
2349 @subsection Résolution des collisions verticales
2350 @translationof Vertical collision avoidance
2351
2352 @funindex outside-staff-priority
2353 @funindex outside-staff-padding
2354 @funindex outside-staff-horizontal-padding
2355
2356 Vous savez de manière intuitive qu'un certain nombre d'objets en
2357 matière de notation musicale appartiennent à la portée, et que
2358 d'autres se placent en dehors de la portée.  Entre autres objets
2359 externes, nous avons les marques repères, les textes et les
2360 nuances@tie{}; nous les appellerons @qq{objets extérieurs à la portée}.
2361 La règle qu'applique LilyPond pour positionner verticalement ces
2362 objets extérieurs consiste à les placer au plus près de la portée
2363 tout en prenant garde d'éviter qu'il y ait chevauchement.
2364
2365 LilyPond utilise la propriété @code{outside-staff-priority} afin de
2366 déterminer si un objet est ou non un objet extérieur à la portée@tie{}:
2367 lorsque la valeur de @code{outside-staff-priority} est numérique, il
2368 s'agit d'un objet extérieur à la portée.  De plus, la propriété
2369 @code{outside-staff-priority} indique à LilyPond l'ordre dans lequel ces
2370 objets doivent être disposés.
2371
2372 Tout d'abord, LilyPond dispose tous les objets qui ne sont pas externes.
2373 Les objets extérieurs à la portée sont alors triés selon l'ordre
2374 croissant de leur @code{outside-staff-priority}.  Enfin, LilyPond prend
2375 chacun des ces objets et les positionne de telle sorte qu'il n'entrent
2376 pas en collision avec ceux qui on déjà été placés.  Autremnt dit,
2377 lorsque deux objets devraient se placer au même endroit, celui dont la
2378 @code{outside-staff-priority} est la plus faible sera disposé au plus
2379 près de la portée.
2380
2381 @lilypond[quote,ragged-right,relative=2,verbatim]
2382 c4_"Text"\pp
2383 r2.
2384 \once \override TextScript #'outside-staff-priority = #1
2385 c4_"Text"\pp % this time the text will be closer to the staff
2386 r2.
2387 % by setting outside-staff-priority to a non-number,
2388 % we disable the automatic collision avoidance
2389 \once \override TextScript #'outside-staff-priority = ##f
2390 \once \override DynamicLineSpanner #'outside-staff-priority = ##f
2391 c4_"Text"\pp % now they will collide
2392 @end lilypond
2393
2394 Le décalage vertical entre un objet extérieur à la portée et celui qui
2395 le précède se contrôle par la propriété @code{outside-staff-padding}.
2396
2397 @c KEEP LY
2398 @lilypond[quote,ragged-right,relative=2,verbatim]
2399 \once \override TextScript #'outside-staff-padding = #0
2400 a'^"Ce texte est placé au plus près de la note"
2401 \once \override TextScript #'outside-staff-padding = #3
2402 c^"Ce texte est décalé par rapport au texte précédent"
2403 c^"Ce texte est accolé au texte précédent"
2404 @end lilypond
2405
2406 Par défaut, les objets extérieurs à la portée sont positionnés en
2407 évitant les collisions horizontales avec des objets précédemment
2408 positionnés.  Ceci peut cependant générer des situations où des objets
2409 se trouvent horizontalement trop proches.  L'espacement vertical entre
2410 les portées peut dans une certaine mesure permettre de mieux intercaler
2411 les objets extérieurs à la portée.  La propriété
2412 @code{outside-staff-horizontal-padding} repoussera verticalement un
2413 objet pour éviter ce genre de situation.
2414
2415 @lilypond[quote,ragged-right,relative=2,verbatim]
2416 % the markup is too close to the following note
2417 c4^"Text"
2418 c4
2419 c''2
2420 % setting outside-staff-horizontal-padding fixes this
2421 R1
2422 \once \override TextScript #'outside-staff-horizontal-padding = #1
2423 c,,4^"Text"
2424 c4
2425 c''2
2426 @end lilypond
2427
2428
2429 @seealso
2430 Morceaux choisis :
2431 @rlsrnamed{Spacing,Espacements}.
2432
2433
2434 @node Espacement horizontal
2435 @section Espacement horizontal
2436 @translationof Horizontal spacing
2437
2438 @cindex horizontal, espacement
2439 @cindex espacement horizontal
2440
2441 @menu
2442 * Généralités sur l'espacement horizontal::
2443 * Changement d'espacement au cours de la partition::
2444 * Modification de l'espacement horizontal::
2445 * Longueur de ligne::
2446 * Notation proportionnelle::
2447 @end menu
2448
2449 @node Généralités sur l'espacement horizontal
2450 @subsection Généralités sur l'espacement horizontal
2451 @translationof Horizontal spacing overview
2452
2453 Le moteur d'espacement traduit les différences de durée en 
2454 The spacing engine translates differences in durations into stretchable
2455 distances (@q{springs}) of differing lengths.  Longer durations get
2456 more space, shorter durations get less.  The shortest durations get a
2457 fixed amount of space (which is controlled by
2458 @code{shortest-duration-space} in the @rinternals{SpacingSpanner}
2459 object).  The longer the duration, the more space it gets: doubling a
2460 duration adds a fixed amount (this amount is controlled by
2461 @code{spacing-increment}) of space to the note.
2462
2463 For example, the following piece contains lots of half, quarter, and
2464 8th notes; the eighth note is followed by 1 note head width (NHW).
2465 The quarter note is followed by 2 NHW, the half by 3 NHW, etc.
2466
2467 @lilypond[quote,verbatim,relative=1]
2468 c2 c4. c8 c4. c8 c4. c8 c8
2469 c8 c4 c4 c4
2470 @end lilypond
2471
2472 Normally, @code{spacing-increment} is set to 1.2 staff space, which is
2473 approximately the width of a note head, and
2474 @code{shortest-duration-space} is set to 2.0, meaning that the
2475 shortest note gets 2.4 staff space (2.0 times the
2476 @code{spacing-increment}) of horizontal space.  This space is counted
2477 from the left edge of the symbol, so the shortest notes are generally
2478 followed by one NHW of space.
2479
2480 If one would follow the above procedure exactly, then adding a single
2481 32nd note to a score that uses 8th and 16th notes, would widen up the
2482 entire score a lot.  The shortest note is no longer a 16th, but a 32nd,
2483 thus adding 1 NHW to every note.  To prevent this, the shortest
2484 duration for spacing is not the shortest note in the score, but rather
2485 the one which occurs most frequently.
2486
2487
2488 The most common shortest duration is determined as follows: in every
2489 measure, the shortest duration is determined.  The most common shortest
2490 duration is taken as the basis for the spacing, with the stipulation
2491 that this shortest duration should always be equal to or shorter than
2492 an 8th note.  The shortest duration is printed when you run
2493 @code{lilypond} with the @code{--verbose} option.
2494
2495 These durations may also be customized.  If you set the
2496 @code{common-shortest-duration} in @rinternals{SpacingSpanner}, then
2497 this sets the base duration for spacing.  The maximum duration for this
2498 base (normally an 8th), is set through @code{base-shortest-duration}.
2499
2500 @funindex common-shortest-duration
2501 @funindex base-shortest-duration
2502 @funindex stem-spacing-correction
2503 @funindex spacing
2504
2505 Notes that are even shorter than the common shortest note are
2506 followed by a space that is proportional to their duration relative to
2507 the common shortest note.  So if we were to add only a few 16th notes
2508 to the example above, they would be followed by half a NHW:
2509
2510 @lilypond[quote,verbatim,relative=2]
2511 c2 c4. c8 c4. c16[ c] c4. c8 c8 c8 c4 c4 c4
2512 @end lilypond
2513
2514
2515 In the @emph{Essay on automated music engraving}, it was explained
2516 that stem directions influence spacing (see @ressay{Optical
2517 spacing}).  This is controlled with the
2518 @code{stem-spacing-correction} property in the
2519 @rinternals{NoteSpacing}, object.  These are generated for every
2520 @rinternals{Voice} context.  The @code{StaffSpacing} object
2521 (generated in @rinternals{Staff} context) contains the same
2522 property for controlling the stem/bar line spacing.  The following
2523 example shows these corrections, once with default settings, and
2524 once with exaggerated corrections:
2525
2526 @lilypond[quote,ragged-right]
2527 {
2528   c'4 e''4 e'4 b'4 |
2529   b'4 e''4 b'4 e''4 |
2530   \override Staff.NoteSpacing #'stem-spacing-correction = #1.5
2531   \override Staff.StaffSpacing #'stem-spacing-correction = #1.5
2532   c'4 e''4 e'4 b'4 |
2533   b'4 e''4 b'4 e''4 |
2534 }
2535 @end lilypond
2536
2537 Proportional notation is supported; see @ref{Proportional notation}.
2538
2539
2540 @seealso
2541 Morceaux choisis :
2542 @rlsrnamed{Spacing,Espacements}.
2543
2544 Référence des propriétés internes :
2545 @rinternals{SpacingSpanner},
2546 @rinternals{NoteSpacing},
2547 @rinternals{StaffSpacing},
2548 @rinternals{NonMusicalPaperColumn}.
2549
2550
2551 @knownissues
2552
2553 There is no convenient mechanism to manually override spacing.  The
2554 following work-around may be used to insert extra space into a score,
2555 adjusting the padding value as necessary.
2556 @example
2557  \override Score.NonMusicalPaperColumn #'padding = #10
2558 @end example
2559
2560 No work-around exists for decreasing the amount of space.
2561
2562
2563 @node Changement d'espacement au cours de la partition
2564 @subsection Changement d'espacement au cours de la partition
2565 @translationof New spacing area
2566
2567 New sections with different spacing parameters can be started with
2568 @code{newSpacingSection}.  This is useful when there are
2569 sections with a different notions of long and short notes.
2570
2571 In the following example, the time signature change introduces a new
2572 section, and hence the 16ths notes are spaced wider.
2573
2574 @lilypond[relative,verbatim,quote]
2575 \time 2/4
2576 c4 c8 c
2577 c8 c c4 c16[ c c8] c4
2578 \newSpacingSection
2579 \time 4/16
2580 c16[ c c8]
2581 @end lilypond
2582
2583 The @code{\newSpacingSection} command creates a new
2584 @code{SpacingSpanner} object, and hence new @code{\override}s
2585 may be used in that location.
2586
2587
2588 @seealso
2589 Morceaux choisis :
2590 @rlsrnamed{Spacing,Espacements}.
2591
2592 Référence des propriétés internes :
2593 @rinternals{SpacingSpanner}.
2594
2595
2596 @node Modification de l'espacement horizontal
2597 @subsection Modification de l'espacement horizontal
2598 @translationof Changing horizontal spacing
2599
2600 Horizontal spacing may be altered with the
2601 @code{base-shortest-duration} property.  Here
2602 we compare the same music; once without altering
2603 the property, and then altered.  Larger values
2604 of @code{ly:make-moment} will produce smaller
2605 music.  Note that @code{ly:make-moment} constructs
2606 a duration, so @code{1 4} is a longer duration
2607 than @code{1 16}.
2608
2609 @lilypond[verbatim,line-width=12\cm]
2610 \score {
2611   \relative c'' {
2612     g4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
2613     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
2614     d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
2615     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
2616   }
2617 }
2618 @end lilypond
2619
2620 @lilypond[verbatim,line-width=12\cm]
2621 \score {
2622   \relative c'' {
2623     g4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
2624     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
2625     d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
2626     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
2627   }
2628   \layout {
2629     \context {
2630       \Score
2631       \override SpacingSpanner
2632         #'base-shortest-duration = #(ly:make-moment 1 16)
2633     }
2634   }
2635 }
2636 @end lilypond
2637
2638
2639 @snippets
2640
2641 By default, spacing in tuplets depends on various non-duration
2642 factors (such as accidentals, clef changes, etc).  To disregard
2643 such symbols and force uniform equal-duration spacing, use
2644 @code{Score.SpacingSpanner #'uniform-stretching}.  This
2645 property can only be changed at the beginning of a score,
2646
2647 @lilypond[quote,ragged-right,verbatim]
2648 \score {
2649   <<
2650     \new Staff {
2651       \times 4/5 {
2652         c8 c8 c8 c8 c8
2653       }
2654       c8 c8 c8 c8
2655     }
2656     \new Staff {
2657       c8 c8 c8 c8
2658       \times 4/5 {
2659         c8 c8 c8 c8 c8
2660       }
2661     }
2662   >>
2663   \layout {
2664     \context {
2665       \Score
2666       \override SpacingSpanner #'uniform-stretching = ##t
2667     }
2668   }
2669 }
2670 @end lilypond
2671
2672 When @code{strict-note-spacing} is set, notes are spaced without
2673 regard for clefs, bar lines, and grace notes,
2674
2675 @lilypond[quote,ragged-right,relative=2,fragment,verbatim]
2676 \override Score.SpacingSpanner #'strict-note-spacing = ##t
2677 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c]  c32[ c32] }
2678 @end lilypond
2679
2680
2681 @seealso
2682 Morceaux choisis :
2683 @rlsrnamed{Spacing,Espacements}.
2684
2685
2686 @node Longueur de ligne
2687 @subsection Longueur de ligne
2688 @translationof Line length
2689
2690 @cindex page breaks
2691 @cindex breaking pages
2692
2693 @funindex indent
2694 @funindex line-width
2695 @funindex ragged-right
2696 @funindex ragged-last
2697
2698 @c Although line-width can be set in \layout, it should be set in paper
2699 @c block, to get page layout right.
2700 @c Setting indent in \paper block makes not much sense, but it works.
2701
2702 @c Bit verbose and vague, use examples?
2703 The most basic settings influencing the spacing are @code{indent} and
2704 @code{line-width}.  They are set in the @code{\layout} block.  They
2705 control the indentation of the first line of music, and the lengths of
2706 the lines.
2707
2708 If @code{ragged-right} is set to true in the @code{\layout} block, then
2709 systems ends at their natural horizontal length, instead of being spread
2710 horizontally to fill the whole line.  This is useful for
2711 short fragments, and for checking how tight the natural spacing is.
2712 The normal default setting is false, but if the score has only one
2713 system the default value is true.
2714
2715 @cindex page layout
2716 @cindex vertical spacing
2717
2718 The option @code{ragged-last} is similar to @code{ragged-right}, but
2719 only affects the last line of the piece.  No restrictions are put on
2720 that line.  The result is similar to formatting text paragraphs.  In a
2721 paragraph, the last line simply takes its natural horizontal length.
2722 @c Note that for text there are several options for the last line.
2723 @c While Knuth TeX uses natural length, lead typesetters use the same
2724 @c stretch as the previous line.  eTeX uses \lastlinefit to
2725 @c interpolate between both these solutions.
2726
2727 @example
2728 \layout @{
2729   indent = #0
2730   line-width = #150
2731   ragged-last = ##t
2732 @}
2733 @end example
2734
2735
2736 @seealso
2737 Morceaux choisis :
2738 @rlsrnamed{Spacing,Espacements}.
2739
2740
2741 @node Notation proportionnelle
2742 @subsection Notation proportionnelle
2743 @translationof Proportional notation
2744
2745 LilyPond supports proportional notation, a type of horizontal spacing
2746 in which each note consumes an amount of horizontal space exactly
2747 equivalent to its rhythmic duration.  This type of proportional spacing
2748 is comparable to horizontal spacing on top of graph paper.  Some late
2749 20th- and early 21st-century scores use proportional notation to
2750 clarify complex rhythmic relationships or to facilitate the placement
2751 of timelines or other graphics directly in the score.
2752
2753 LilyPond supports five different settings for proportional notation,
2754 which may be used together or alone:
2755
2756 @itemize
2757 @item @code{proportionalNotationDuration}
2758 @item @code{uniform-stretching}
2759 @item @code{strict-note-spacing}
2760 @item @code{\remove Separating_line_group_engraver}
2761 @item @code{\override PaperColumn #'used = ##t}
2762 @end itemize
2763
2764 In the examples that follow, we explore these five different
2765 proportional notation settings and examine how these settings interact.
2766
2767 We start with the following one-measure example, which uses classical
2768 spacing with ragged-right turned on.
2769
2770 @lilypond[quote,verbatim,ragged-right]
2771 \score {
2772   <<
2773     \new RhythmicStaff {
2774       c'2
2775       c'16 c'16 c'16 c'16
2776       \times 4/5 {
2777         c'16 c'16 c'16 c'16 c'16
2778       }
2779     }
2780   >>
2781 }
2782 @end lilypond
2783
2784 Notice that the half note which begins the measure takes up far less
2785 than half of the horizontal space of the measure.  Likewise, the
2786 sixteenth notes and sixteenth-note quintuplets (or twentieth notes)
2787 which end the measure together take up far more than half the
2788 horizontal space of the measure.
2789
2790 In classical engraving, this spacing may be exactly what we want
2791 because we can borrow horizontal space from the half note and conserve
2792 horizontal space across the measure as a whole.
2793
2794 On the other hand, if we want to insert a measured timeline or other
2795 graphic above or below our score, we need proportional notation.  We
2796 turn proportional notation on with the proportionalNotationDuration
2797 setting.
2798
2799 @lilypond[quote,verbatim,ragged-right]
2800 \score {
2801   <<
2802     \new RhythmicStaff {
2803       c'2
2804       c'16 c'16 c'16 c'16
2805       \times 4/5 {
2806         c'16 c'16 c'16 c'16 c'16
2807       }
2808     }
2809   >>
2810  \layout {
2811     \context {
2812       \Score
2813       proportionalNotationDuration = #(ly:make-moment 1 20)
2814     }
2815   }
2816 }
2817 @end lilypond
2818
2819 The half note at the beginning of the measure and the faster notes in
2820 the second half of the measure now occupy equal amounts of horizontal
2821 space.  We could place a measured timeline or graphic above or below
2822 this example.
2823
2824 The @code{proportionalNotationDuration} setting is a context setting
2825 that lives in @code{Score}.  Remember that context settings can appear
2826 in one of three locations within our input file -- in a @code{\with}
2827 block, in a @code{\context} block, or directly in music entry preceded
2828 by the @code{\set} command.  As with all context settings, users can
2829 pick which of the three different locations they would like to
2830 set @code{proportionalNotationDuration} in to.
2831
2832 The @code{proportionalNotationDuration} setting takes a single argument,
2833 which is the reference duration against that all music will be spaced.
2834 The LilyPond Scheme function @code{make-moment} takes two arguments
2835 -- a numerator and denominator which together express some fraction of
2836 a whole note.  The call @code{#(ly:make-moment 1 20)} therefore produces
2837 a reference duration of a twentieth note.  Values such as
2838 @code{#(ly:make-moment 1 16)}, @code{#(ly:make-moment 1 8)}, and
2839 @code{#(ly:make-moment 3 97)} are all possible as well.
2840
2841 How do we select the right reference duration to pass to
2842 @code{proportionalNotationDuration}?  Usually by a process of trial
2843 and error, beginning with a duration close to the fastest (or smallest)
2844 duration in the piece.  Smaller reference durations space music loosely;
2845 larger reference durations space music tightly.
2846
2847 @lilypond[quote,verbatim,ragged-right]
2848 \score {
2849   <<
2850     \new RhythmicStaff {
2851       c'2
2852       c'16 c'16 c'16 c'16
2853       \times 4/5 {
2854         c'16 c'16 c'16 c'16 c'16
2855       }
2856     }
2857   >>
2858   \layout {
2859     \context {
2860       \Score
2861       proportionalNotationDuration = #(ly:make-moment 1 8)
2862     }
2863   }
2864 }
2865
2866 \score {
2867   <<
2868     \new RhythmicStaff {
2869       c'2
2870       c'16 c'16 c'16 c'16
2871       \times 4/5 {
2872         c'16 c'16 c'16 c'16 c'16
2873       }
2874     }
2875   >>
2876   \layout {
2877     \context {
2878       \Score
2879       proportionalNotationDuration = #(ly:make-moment 1 16)
2880     }
2881   }
2882 }
2883
2884 \score {
2885   <<
2886     \new RhythmicStaff {
2887       c'2
2888       c'16 c'16 c'16 c'16
2889       \times 4/5 {
2890         c'16 c'16 c'16 c'16 c'16
2891       }
2892     }
2893   >>
2894   \layout {
2895     \context {
2896       \Score
2897       proportionalNotationDuration = #(ly:make-moment 1 32)
2898     }
2899   }
2900 }
2901 @end lilypond
2902
2903 Note that too large a reference duration -- such as the eighth note,
2904 above -- spaces music too tightly and can cause note head collisions.
2905 Also that proportional notation in general takes up more horizontal
2906 space than classical spacing.  Proportional spacing provides rhythmic
2907 clarity at the expense of horizontal space.
2908
2909 Next we examine how to optimally space overlapping tuplets.
2910
2911 We start by examining what happens to our original example, with
2912 classical spacing, when we add a second staff with a different type of
2913 tuplet.
2914
2915 @lilypond[quote,verbatim,ragged-right]
2916 \score {
2917   <<
2918     \new RhythmicStaff {
2919       c'2
2920       c'16 c'16 c'16 c'16
2921       \times 4/5 {
2922         c'16 c'16 c'16 c'16 c'16
2923       }
2924     }
2925     \new RhythmicStaff {
2926       \times 8/9 {
2927         c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
2928       }
2929     }
2930   >>
2931 }
2932 @end lilypond
2933
2934 The spacing is bad because the evenly spaced notes of the bottom staff
2935 do not stretch uniformly.  Classical engravings include very few complex
2936 triplets and so classical engraving rules can generate this type of
2937 result.  Setting @code{proportionalNotationDuration} fixes this.
2938
2939 @lilypond[quote,verbatim,ragged-right]
2940 \score {
2941   <<
2942     \new RhythmicStaff {
2943       c'2
2944       c'16 c'16 c'16 c'16
2945       \times 4/5 {
2946         c'16 c'16 c'16 c'16 c'16
2947       }
2948     }
2949     \new RhythmicStaff {
2950       \times 8/9 {
2951         c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
2952       }
2953     }
2954   >>
2955   \layout {
2956     \context {
2957       \Score
2958       proportionalNotationDuration = #(ly:make-moment 1 20)
2959     }
2960   }
2961 }
2962 @end lilypond
2963
2964 But if we look very carefully we can see that notes of the second half
2965 of the 9-tuplet space ever so slightly more widely than the notes
2966 of the first half of the 9-tuplet.  To ensure uniform stretching, we
2967 turn on @code{uniform-stretching}, which is a property of
2968 @code{SpacingSpanner}.
2969
2970 @lilypond[quote,verbatim,ragged-right]
2971 \score {
2972   <<
2973     \new RhythmicStaff {
2974       c'2
2975       c'16 c'16 c'16 c'16
2976       \times 4/5 {
2977         c'16 c'16 c'16 c'16 c'16
2978       }
2979     }
2980     \new RhythmicStaff {
2981       \times 8/9 {
2982         c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
2983       }
2984     }
2985   >>
2986   \layout {
2987     \context {
2988       \Score
2989       proportionalNotationDuration = #(ly:make-moment 1 20)
2990       \override SpacingSpanner #'uniform-stretching = ##t
2991     }
2992   }
2993 }
2994 @end lilypond
2995
2996 Our two-staff example now spaces exactly, our rhythmic
2997 relationships are visually clear, and we can include a measured
2998 timeline or graphic if we want.
2999
3000 Note that the LilyPond's proportional notation package expects
3001 that all proportional scores set the SpacingSpanner's
3002 'uniform-stretching attribute to ##t.  Setting
3003 proportionalNotationDuration without also setting the
3004 SpacingSpanner's 'uniform-stretching attribute to ##t will, for
3005 example, cause Skips to consume an incorrect amount of horizontal
3006 space.
3007
3008 The SpacingSpanner is an abstract grob that lives in the Score
3009 context.  As with our settings of proportionalNotationDuration,
3010 overrides to the SpacingSpanner can occur in any of three
3011 different places in our input file – in the Score \with block, in
3012 a Score \context block, or in note entry directly.
3013
3014 There is by default only one @code{SpacingSpanner} per @code{Score}.  This
3015 means that, by default, @code{uniform-stretching} is either turned on for the
3016 entire score or turned off for the entire score.  We can, however,
3017 override this behavior and turn on different spacing features at
3018 different places in the score.  We do this with the command
3019 @code{\newSpacingSection}.  See @ref{New spacing area}, for more info.
3020
3021 Next we examine the effects of the @code{Separating_line_group_engraver} and
3022 see why proportional scores frequently remove this engraver.  The following
3023 example shows that there is a small amount of @qq{preferatory} space
3024 just before the first note in each system.
3025
3026 @lilypond[quote,verbatim,ragged-right]
3027 \paper {
3028   indent = #0
3029 }
3030
3031 \new Staff {
3032   c'1
3033   \break
3034   c'1
3035 }
3036 @end lilypond
3037
3038
3039 The amount of this preferatory space is the same whether after a time
3040 signature, a key signature or a clef.  @code{Separating_line_group_engraver}
3041 is responsible for this space.  Removing @code{Separating_line_group_engraver}
3042 reduces this space to zero.
3043
3044 @lilypond[quote,verbatim,ragged-right]
3045 \paper {
3046   indent = #0
3047 }
3048
3049 \new Staff \with {
3050   \remove Separating_line_group_engraver
3051 } {
3052   c'1
3053   \break
3054   c'1
3055 }
3056 @end lilypond
3057
3058 Nonmusical elements like time signatures, key signatures, clefs and
3059 accidentals are problematic in proportional notation.  None of these
3060 elements has rhythmic duration.  But all of these elements consume
3061 horizontal space.  Different proportional scores approach these
3062 problems differently.
3063
3064 It may be possible to avoid spacing problems with key signatures
3065 simply by not having any.  This is a valid option since most
3066 proportional scores are contemporary music.  The same may be true
3067 of time signatures, especially for those scores
3068 that include a measured timeline or other graphic.  But these scores
3069 are exceptional and most proportional scores include at least some
3070 time signatures.  Clefs and accidentals are even more essential.
3071
3072 So what strategies exist for spacing nonmusical elements in a
3073 proportional context?  One good option is the @code{strict-note-spacing}
3074 property of @code{SpacingSpanner}.  Compare the two scores below:
3075
3076 @lilypond[quote,verbatim,ragged-right]
3077 \new Staff {
3078   \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
3079   c''8
3080   c''8
3081   c''8
3082   \clef alto
3083   d'8
3084   d'2
3085 }
3086
3087 \new Staff {
3088   \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
3089   \override Score.SpacingSpanner #'strict-note-spacing = ##t
3090   c''8
3091   c''8
3092   c''8
3093   \clef alto
3094   d'8
3095   d'2
3096 }
3097 @end lilypond
3098
3099 Both scores are proportional, but the spacing in the first score
3100 is too loose because of the clef change.  The spacing of the second
3101 score remains strict, however, because strict-note-spacing is
3102 turned on.  Turning on strict-note-spacing causes the width of
3103 time signatures, key signatures, clefs and accidentals to play no
3104 part in the spacing algorithm.
3105
3106 In addition to the settings given here, there are other settings
3107 that frequently appear in proportional scores.  These include:
3108
3109 @itemize
3110 @item @code{\override SpacingSpanner #'strict-grace-spacing = ##t}
3111 @item @code{tupletFullLength = ##t}
3112 @item @code{\override Beam #'breakable = ##t}
3113 @item @code{\override Glissando #'breakable = ##t}
3114 @item @code{\override TextSpanner #'breakable = ##t}
3115 @item @code{\remove Forbid_line_break_engraver in the Voice context}
3116 @end itemize
3117
3118 These settings space grace notes strictly, extend tuplet brackets to
3119 mark both rhythmic start- and stop-points, and allow spanning elements
3120 to break across systems and pages.  See the respective parts of the manual
3121 for these related settings.
3122
3123
3124 @seealso
3125 Manuel de notation :
3126 @ref{Changement d'espacement au cours de la partition}.
3127
3128 Morceaux choisis :
3129 @rlsrnamed{Spacing,Espacements}.
3130
3131
3132 @node Réduction du nombre de pages de la partition
3133 @section Réduction du nombre de pages de la partition
3134 @translationof Fitting music onto fewer pages
3135
3136 Sometimes you can end up with one or two staves on a second
3137 (or third, or fourth...) page.  This is annoying, especially
3138 if you look at previous pages and it looks like there is plenty
3139 of room left on those.
3140
3141 When investigating layout issues, @code{annotate-spacing} is an
3142 invaluable tool.  This command prints the values of various layout
3143 spacing variables; for more details see the following section,
3144 @ref{Displaying spacing}.
3145
3146 @menu
3147 * Mise en évidence de l'espacement::
3148 * Modification de l'espacement::
3149 @end menu
3150
3151 @node Mise en évidence de l'espacement
3152 @subsection Mise en évidence de l'espacement
3153 @translationof Displaying spacing
3154
3155 @funindex annotate-spacing
3156 @cindex spacing, display of layout
3157
3158 To graphically display the dimensions of vertical layout variables
3159 that may be altered for page formatting, set
3160 @code{annotate-spacing} in the @code{\paper} block:
3161
3162 @c need to have \book{} otherwise we get the separate systems. -hwn
3163 @lilypond[verbatim,quote]
3164 #(set-default-paper-size "a6" 'landscape)
3165 \book {
3166   \score { { c4 } }
3167   \paper { annotate-spacing = ##t }
3168 }
3169 @end lilypond
3170
3171
3172 @noindent
3173 All layout dimensions are displayed in staff-spaces, regardless
3174 of the units specified in the @code{\paper} or @code{\layout} block.
3175 In the above example, @code{paper-height} has a value of 59.75
3176 @code{staff-spaces}, and the @code{staff-size} is 20 points (the
3177 default value).  Note that:
3178
3179 @multitable {1 staff-space} {staff-size)/4 * (25.4/72.27) mm}
3180
3181 @item 1 point
3182 @tab = (25.4/72.27) mm
3183
3184 @item 1 staff-space
3185 @tab = (@code{staff-size})/4 pts
3186 @item
3187 @tab = (@code{staff-size})/4 * (25.4/72.27) mm
3188
3189 @end multitable
3190
3191 @noindent
3192 In this case, one @code{staff-space} is approximately equal to
3193 1.757mm.  Thus the @code{paper-height} measurement of 59.75
3194 @code{staff-spaces} is equivalent to 105 millimeters, the height
3195 of @code{a6} paper in landscape orientation.  The pairs
3196 (@var{a},@var{b}) are intervals, where @var{a} is the lower
3197 edge and @var{b} the upper edge of the interval.
3198
3199
3200 @seealso
3201 Manuel de notation :
3202 @ref{Définition de la taille de portée}.
3203
3204 Morceaux choisis :
3205 @rlsrnamed{Spacing,Espacements}.
3206
3207
3208 @node Modification de l'espacement
3209 @subsection Modification de l'espacement
3210 @translationof Changing spacing
3211
3212 The output of @code{annotate-spacing} reveals vertical dimensions
3213 in great detail.  For details about modifying margins and other
3214 layout variables, see @ref{Page formatting}.
3215
3216 Other than margins, there are a few other options to save space:
3217
3218 @itemize
3219 @item
3220 Force systems to move as close together as possible (to fit as
3221 many systems as possible onto a page) while being spaced so that
3222 there is no blank space at the bottom of the page.
3223
3224 @example
3225 \paper @{
3226   system-system-spacing = #'((padding . 0) (space . 0.1))
3227   ragged-last-bottom = ##f
3228   ragged-bottom = ##f
3229 @}
3230 @end example
3231
3232 @item
3233 Force the number of systems.  This can help in two ways.  Just
3234 setting a value, even the same value as the number of systems
3235 being typeset by default, will sometimes cause more systems to
3236 be fitted onto each page, as an estimation step is then bypassed,
3237 giving a more accurate fit to each page.  Also, forcing an actual
3238 reduction in the number of systems may save a further page.  For
3239 example, if the default layout has 11 systems, the following
3240 assignment will force a layout with 10 systems.
3241
3242 @example
3243 \paper @{
3244   system-count = #10
3245 @}
3246 @end example
3247
3248 @item
3249 Avoid (or reduce) objects that increase the vertical size of a
3250 system.  For example, volta repeats (or alternate repeats) require
3251 extra space.  If these repeats are spread over two systems, they
3252 will take up more space than one system with the volta repeats and
3253 another system without.  For example, dynamics that @q{stick out} of
3254 a system can be moved closer to the staff:
3255
3256 @lilypond[verbatim,quote,relative=1]
3257 e4 c g\f c
3258 e4 c g-\tweak #'X-offset #-2.7 -\tweak #'Y-offset #2.5 \f c
3259 @end lilypond
3260
3261 @item
3262 Alter the horizontal spacing via @code{SpacingSpanner}.  For more
3263 details, see @ref{Changing horizontal spacing}.  The following
3264 example illustrates the default spacing:
3265
3266 @lilypond[verbatim,quote]
3267 \score {
3268   \relative c'' {
3269     g4 e e2 |
3270     f4 d d2 |
3271     c4 d e f |
3272     g4 g g2 |
3273     g4 e e2 |
3274   }
3275 }
3276 @end lilypond
3277
3278 @noindent
3279 The next example modifies @code{common-shortest-duration} from a
3280 value of @code{1/4} to @code{1/2}.  The quarter note is the most
3281 common and shortest duration in this example, so by making this
3282 duration longer, a @q{squeezing} effect occurs:
3283
3284 @lilypond[verbatim,quote]
3285 \score {
3286   \relative c'' {
3287     g4 e e2 |
3288     f4 d d2 |
3289     c4 d e f |
3290     g4 g g2 |
3291     g4 e e2 |
3292   }
3293   \layout {
3294     \context {
3295       \Score
3296       \override SpacingSpanner
3297         #'common-shortest-duration = #(ly:make-moment 1 2)
3298     }
3299   }
3300 }
3301 @end lilypond
3302
3303 @noindent
3304 The @code{common-shortest-duration} property cannot be modified
3305 dynamically, so it must always be placed in a @code{\context}
3306 block so that it applies to the whole score.
3307
3308 @end itemize
3309
3310
3311 @seealso
3312 Manuel de notation :
3313 @ref{Page formatting},
3314 @ref{Changing horizontal spacing}.
3315
3316 Morceaux choisis :
3317 @rlsrnamed{Spacing,Espacements}.
3318
3319