@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@ignore
- Translation of GIT committish: e6e64de1da49ff8c6005daa5fd81adc8387b2668
+ Translation of GIT committish: 8af56c19cb3ce59568ad4c631c9119bf3590e2bd
- When revising a translation, copy the HEAD committish of the
- version that you are working on. For details, see the Contributors'
- Guide, node Updating translation committishes..
+ When revising a translation, copy the HEAD committish of the
+ version that you are working on. For details, see the Contributors'
+ Guide, node Updating translation committishes..
@end ignore
-@c \version "2.17.11"
+@c \version "2.19.22"
@c Translators: Frédéric Chiasson, Jean-Charles Malahieude
> and prints page number -1 on the second page, for example.
-In 5.2.1 the @refbugs (line 495 in spacing.itely on master) it
-states:
-
-"@code{layout-set-staff-size} does not change the distance between
-the staff lines."
-
-Could we add a sentence:
-"Use instead the pair fontSize = #@var{N}
- \override StaffSymbol.staff-space = #(magstep @var{N})
-inside the Staff context to change the size of the font and the
-distance between staff lines accordingly."
-
-Actually I found, that the @internalsref{StaffSymbol} at line 481
-sends to an incomplete documentation. The property staff-space is not
-explained here. I thought Y-extent might be of help, but it is in turn
-explained by x-space which again is missing from the list. Who has the
-knowledge to fix this?
-
-
Clarify
http://code.google.com/p/lilypond/issues/detail?id=68
En pratique, cette procédure comporte quatre étapes. Dans un premier
temps, des distances élastiques @emph{(springs)} sont déterminées sur la
base des durées. Sont alors calculées différentes possibilités de saut
-de ligne, chacune se voyant attribuer un @qq{coefficient de laideur},
+de ligne, chacune se voyant attribuer un « coefficient de laideur »,
puis est estimée la hauteur de chaque système. LilyPond opte enfin pour
la combinaison entre sauts de page et de ligne qui offre la meilleure
occupation de l'espace, tant horizontalement que verticalement.
particulière selon leur langue d'origine. Ainsi le vocable anglais
@emph{Ragged} signifie en lambeau, en loques ; dans l'univers
typographique, un maître français voit un alignement à gauche -- il dira
-@qq{au fer à gauche} -- alors que son homologue anglophone constate un
+« au fer à gauche » -- alors que son homologue anglophone constate un
@emph{ragged-right} -- donc du vide à droite.}
pages attachées au bloc @code{\paper}.
@menu
-* Le bloc \paper::
+* Le bloc paper::
* Format du papier et adaptation automatique::
* Variables d'espacement vertical fixe::
* Variables d'espacement vertical fluctuant::
* Variables d'espacement horizontal::
-* Autres variables du bloc \paper::
+* Autres variables du bloc paper::
@end menu
-@node Le bloc \paper
-@subsection Le bloc @code{\paper}
-@translationof The \paper block
+@node Le bloc paper
+@subsection Le bloc @code{@bs{}paper}
+@translationof The paper block
Des blocs @code{\paper} peuvent apparaître à trois différents endroits
et former ainsi une hiérarchie :
La plupart des variables gérant le papier ne sont fonctionnelles que
lorsque mentionnées dans un bloc @code{\paper}. Certaines, qui peuvent
toutefois apparaître dans un bloc @code{\layout}, sont référencées à la
-rubrique @ref{Le bloc \layout}.
+rubrique @ref{Le bloc layout}.
Sauf mention contraire, toutes les variables du bloc @code{\paper} qui
correspondent à des dimensions sont exprimées en millimètre -- vous
@seealso
Manuel de notation :
@ref{Format du papier et adaptation automatique},
+@ref{Le bloc layout},
@ref{Titrages personnalisés}.
-@ref{Le bloc \layout}.
Fichiers d'initialisation :
@file{ly/paper-defaults-init.ly}.
LilyPond génère par défaut, et en l'absence de mention explicite d'un
format de papier particulier, un fichier imprimable au format A4.
Vous pouvez cependant utiliser un autre format à l'aide des deux
-fonctions @code{set-default-paper-size} et @code{set-paper-size}
-qui, elle, se place à l'intérieur d'un bloc @code{\paper} :
+fonctions :
+
+@table @code
+@item set-default-paper-size
@example
#(set-default-paper-size "quarto")
@end example
-qui se place en début de fichier, ou @code{set-paper-size},
+qui se place en début de fichier, et
+
+@item set-paper-size
@example
\paper @{
@end example
qui s'inscrit au sein d'un bloc @code{\paper}.
+@end table
-@noindent
La seule restriction à l'utilisation isolée de la fonction
@code{set-default-paper-size} est qu'elle doit intervenir avant le
premier bloc @code{\paper}. @code{set-default-paper-size} fixe le
#(set-paper-size "mon format")
@}
@end example
-
+
Les unités peuvent s'exprimer aussi bien en @code{in} (pouces), qu'en
@code{cm} (centimètres) ou @code{mm} (millimètres).
voir avec la mise à l'échelle.
L'adaptation automatique affecte les dimensionnements verticaux
-@code{top-margin} et @code{bottom-margin} -- voir
+@code{top-margin} et @code{bottom-margin} -- voir
@ref{Variables d'espacement vertical fixe} --, ainsi que les
dimensionnements horizontaux @code{left-margin}, @code{right-margin},
@code{inner-margin}, @code{outer-margin}, @code{binding-offset},
@seealso
Manuel de notation :
-@ref{Variables d'espacement vertical fixe},
-@ref{Variables d'espacement horizontal}.
+@ref{Variables d'espacement horizontal},
+@ref{Variables d'espacement vertical fixe}.
Fichiers d'initialisation :
@file{ly/paper-defaults-init.ly},
@node Variables d'espacement vertical fixe
@subsection Variables d'espacement vertical fixe
-@translationof Fixed vertical spacing \paper variables
+@translationof Fixed vertical spacing paper variables
@warning{Certains dimensionnements attachés au bloc @code{@bs{}paper}
sont automatiquement ajustés selon le format du papier, ce qui peut
@node Variables d'espacement vertical fluctuant
@subsection Variables d'espacement vertical fluctuant
-@translationof Flexible vertical spacing \paper variables
+@translationof Flexible vertical spacing paper variables
Il est souvent judicieux d'apporter un peu de flexibilité à l'espacement
entre différents éléments (marges, titres, systèmes ou mouvements), en
l'absence de dilatation ou compression. Le point de référence d'un
titre ou d'un @emph{markup} est son sommet, celui d'un système est le
centre vertical du @code{StaffSymbol} le plus proche -- même lorsqu'une
-ligne de @qq{non-portée} viendrait à s'intercaler. Une
+ligne de « non-portée » viendrait à s'intercaler. Une
@code{basic-distance} inférieure à @code{padding} ou
@code{minimum-distance} sera sans effet, dans la mesure où l'espacement
résultant ne saurait être inférieur à @code{padding} ou
@c TODO: explain skylines somewhere and xref to it from here.
@item
-@code{padding} @emph{(décalage)} -- la grandeur minimale de @qq{blanc}
+@code{padding} @emph{(décalage)} -- la grandeur minimale de « blanc »
qui sépare deux éléments, exprimée en hauteur de portée. On peut le
voir comme la hauteur minimale d'un rectangle vide qui devrait s'étendre
sur toute la largeur des deux éléments.
@example
\paper @{
- system-system-spacing #'basic-distance = #8
+ system-system-spacing.basic-distance = #8
score-system-spacing =
#'((padding . 1)
@node Liste des variables d'espacement vertical fluctuant
@unnumberedsubsubsec Liste des variables d'espacement fluctuant
-@translationof List of flexible vertical spacing \paper variables
+@translationof List of flexible vertical spacing paper variables
Le nom des dimensionnements à hauteur variable sont de la forme
@code{@var{avant}-@var{après}-spacing}, où @code{@var{avant}} et
@node Variables d'espacement horizontal
@subsection Variables d'espacement horizontal
-@translationof Horizontal spacing \paper variables
+@translationof Horizontal spacing paper variables
@warning{Certains dimensionnements attachés au bloc @code{@bs{}paper}
sont automatiquement ajustés selon le format du papier, ce qui peut
@node Variables de marge et de largeur
@unnumberedsubsubsec Variables de marge et de largeur
-@translationof \paper variables for widths and margins
+@translationof paper variables for widths and margins
Les valeurs par défaut (avant étalonnage) sont définies dans le fichier
@file{ly/paper-defaults-init.ly}.
@item line-width
@funindex line-width
-la longueur d'un système musical sans indentation et justifié sur toute
-la largeur de la page. La valeur par défaut est égale à
+La longueur d'une ligne. Lorsque spécifié dans un bloc @code{\paper},
+ceci définit l'étendue horizontale dont disposeront les lignes de portée
+d'un système non indenté. La valeur par défaut est égale à
@code{paper-width}, auquel sont retranchés @code{left-margin} et
@code{right-margin}. Lorsque vous définissez @code{line-width} sans
modifier les valeurs de @code{left-margin} et @code{right-margin}, les
marges seront alors recalculées de telle sorte que les systèmes soient
-centrés. Voir aussi @code{check-consistency}. La variable
-@code{line-width} peut se définir aussi dans un bloc @code{\layout}.
+centrés. Voir aussi @code{check-consistency}.
+
+La valeur de @code{line-width} peut aussi se spécifier individuellement
+au niveau de la partition, au sein d'un bloc @code{\layout}. Ceci
+permet de contrôler la longueur des lignes partition par partition. Si
+la longueur de ligne n'est pas spécifié dans une partition particulière,
+elle sera valorisée à celle du @code{line-width} mentionné dans le bloc
+@code{\paper}. La détermination de @code{line-width} pour un
+@code{\score} particulier n'a aucun effet sur les marges. Les lignes
+d'une portée dont la longueur est déterminée par le @code{line-width}
+d'une partition seront alignées par la gauche sur la surface de papier
+telle que définie par le @code{line-width} du bloc @code{\paper}. Dès
+lors que les valeurs de @code{line-width} de la partition et du papier
+sont égales, les lignes s'étendront de la marge gauche à la marge
+droite. En cas de @code{line-width} de la partition supérieur au
+@code{line-width} du papier, les lignes de portée déborderont dans la
+marge de droite.
+
@item left-margin
@funindex left-margin
-la marge entre le bord gauche de la feuille et le début de chaque
+La marge entre le bord gauche de la feuille et le début de chaque
système. La valeur par défaut est de @code{10\mm} ; elle sera
ajustée selon le format du papier. Lorsque vous définissez
@code{line-width} et @code{right-margin} sans modifier la valeur de
largeur (non @emph{ragged}). La valeur par défaut est de @code{10\mm}
et s'ajustera selon le format du papier. Lorsque vous définissez
@code{line-width} et @code{left-margin}, sans modifier la valeur de
-@code{right-margin}, cette dernière sera alors égale à
+@code{right-margin}, cette dernière sera alors égale à
@code{(paper-width @minus{} line-width @minus{} left-margin)}.
Lorsque seule @code{line-width} est définie, les deux marges
correspondent à
(@code{paper-width}). La valeur par défaut est @code{#t}. Dans
le cas d'une incohérence, un message d'avertissement est émis et les
trois variables -- marges et longueur de ligne -- rétablies à leur
-valeur par défaut (ajustées selon le format du papier).
+valeur par défaut (ajustées selon le format du papier). La
+désactivation de cette variable (valorisation à @code{#f}, toute
+incohérence sera ignorée, et les systèmes pourront déborder de la page.
@item ragged-right
@funindex ragged-right
Lorsque cette variable est activée, les systèmes ne s'étendront pas sur
la longueur de la ligne, mais s'arrêteront à leur longueur normale.
La valeur par défaut est @code{#f} mais, si la partition ne comporte
-qu'un seul système, elle passe à @code{#t}. Cette variable peut aussi
+qu'un seul système, elle passe à @code{#t}. Cette variable peut aussi
se gérer au sein d'un bloc @code{\layout}.
@item ragged-last
@node Variables spécifiques à l'impression recto-verso
@unnumberedsubsubsec Variables spécifiques à l'impression recto-verso
-@translationof \paper variables for two-sided mode
+@translationof paper variables for two-sided mode
Les valeurs par défaut (avant étalonnage) sont définies dans le fichier
@file{ly/paper-defaults-init.ly}.
@node Variables d'indentation et de décalage
@unnumberedsubsubsec Variables d'indentation et de décalage
-@translationof \paper variables for shifts and indents
+@translationof paper variables for shifts and indents
Les valeurs par défaut (avant étalonnage) sont définies dans le fichier
@file{ly/paper-defaults-init.ly}.
@funindex indent
Le niveau d'indentation du premier système d'une partition. La valeur
-par défaut est de @code{15\mm} et s'ajustera selon le format du
-papier. Cette variable peut aussi se gérer au sein d'un bloc
-@code{\layout}.
+par défaut est de @code{15\mm} en A4 et s'ajustera selon le format du
+papier. L'espace correspondant à @code{line-width} est réduit d'autant
+pour le premier système. Cette variable peut aussi se gérer partition
+par partition au sein d'un bloc @code{\layout}.
@item short-indent
@funindex short-indent
Le niveau d'indentation de tous les systèmes hormis le premier. La
-valeur par défaut est de @code{0}, et s'ajustera selon le format du
-papier dès lors que vous lui aurez affecté une valeur. Cette
-variable peut aussi se gérer au sein d'un bloc @code{\layout}.
+valeur par défaut est de @code{0} pour du A4, et s'ajustera selon le
+format du papier dès lors que vous lui aurez affecté une valeur. Bien
+entendu, l'espace spécifié par @code{line-width} sera réduit d'autant.
+Cette variable peut aussi se gérer partition par partition, au sein d'un
+bloc @code{\layout}.
@end table
@rlsrnamed{Spacing, Espacements}.
-@node Autres variables du bloc \paper
-@subsection Autres variables du bloc @code{\paper}
-@translationof Other \paper variables
+@node Autres variables du bloc paper
+@subsection Autres variables du bloc @code{@bs{}paper}
+@translationof Other paper variables
@menu
* Variables de gestion des sauts de ligne::
@node Variables de gestion des sauts de ligne
@unnumberedsubsubsec Variables de gestion des sauts de ligne
-@translationof \paper variables for line breaking
+@translationof paper variables for line breaking
@table @code
@node Variables de gestion des sauts de page
@unnumberedsubsubsec Variables de gestion des sauts de page
-@translationof \paper variables for page breaking
+@translationof paper variables for page breaking
Les valeurs par défaut sont définies dans le fichier
@file{ly/paper-defaults-init.ly}.
L'algorithme de calcul des sauts de page à utiliser. Vous avez le choix
entre @code{ly:minimal-breaking}, @code{ly:page-turn-breaking},
-@code{ly:one-line-breaking} et @code{ly:optimal-breaking} (activé
-par défaut).
+@code{ly:one-line-breaking}, @code{ly:one-line-auto-height-breaking} et
+@code{ly:optimal-breaking} (activé par défaut).
@item page-breaking-system-system-spacing
@funindex page-breaking-system-system-spacing
-Cette variable permet de @qq{tromper} l'algorithme de gestion des sauts
+Cette variable permet de « tromper » l'algorithme de gestion des sauts
de page quant à la valeur de @code{system-system-spacing}. Ainsi,
lorsque @code{page-breaking-system-system-spacing #'padding} a une
valeur nettement supérieure à @code{system-system-spacing #'padding},
Pénalité pour apparition d'une page blanche en cours de partition.
L'attribution d'une valeur élevée à @code{blank-page-penalty}
alors qu'a été activé @code{ly:page-turn-breaking} forcera
-LilyPond à éviter de placer une page blanche au mileu de la
+LilyPond à éviter de placer une page blanche au mileu de la
partition, quitte à espacer d'autant plus la musique pour remplir
cette page blanche et la suivante. La valeur par défaut est
de @code{5}.
@seealso
Manuel de notation :
-@ref{Sauts de page},
+@ref{Minimisation des sauts de page},
@ref{Optimisation des sauts de page},
@ref{Optimisation des tournes},
-@ref{Minimisation des sauts de page},
-@ref{Présentation en rouleau}.
+@ref{Présentation en rouleau},
+@ref{Sauts de page}.
Fichiers d'initialisation :
@file{ly/paper-defaults-init.ly}.
@node Variables de gestion des numéros de page
@unnumberedsubsubsec Variables de gestion des numéros de page
-@translationof \paper variables for page numbering
+@translationof paper variables for page numbering
Les valeurs par défaut sont définies dans le
fichier @file{ly/paper-defaults-init.ly}.
La désactivation de cette variable permet d'obtenir des pages non
numérotées. La valeur par défaut est @code{#t}.
+@cindex page, numérotation en chiffres romains
+@item page-number-type
+@funindex page-number-type
+
+Le type de chiffres à utiliser pour la numérotation : @code{roman-lower}
+(romains minuscules), @code{roman-upper} (romains majuscules) ou
+@code{arabic} (arabes). La valeur par défaut est @code{'arabic}.
+
@end table
@seealso
@node Variables supplémentaires
@unnumberedsubsubsec Variables supplémentaires
-@translationof Miscellaneous \paper variables
+@translationof Miscellaneous paper variables
@table @code
tagline = ##f
}
\score {
- \relative c'' { c1 \break c1 \break c1 }
+ \relative { c''1 \break c1 \break c1 }
}
}
@end lilypond
partition.
@menu
-* Le bloc \layout::
+* Le bloc layout::
* Définition de la taille de portée::
@end menu
-@node Le bloc \layout
-@subsection Le bloc @code{\layout}
-@translationof The \layout block
+@node Le bloc layout
+@subsection Le bloc @code{@bs{}layout}
+@translationof The layout block
@funindex \layout
suivante, @ref{Définition de la taille de portée}. La modification des
contextes est abordée dans d'autres chapitres -- voir
@ref{Modification des greffons de contexte} et
-@ref{Modification des réglages par défaut d'un contexte}. Les variables
-du bloc @code{\paper} que l'on peut retrouver dans un bloc
+@ref{Modification des réglages par défaut d'un contexte}.
+
+Les variables du bloc @code{\paper} que l'on peut retrouver dans un bloc
@code{\layout} sont :
@itemize
@cindex fonte, définition de la taille
@cindex portée, définition de la taille
@funindex layout file
+@funindex magnification->font-size
+@funindex magstep
+@funindex set-global-staff-size
+@funindex layout-set-staff-size
La @strong{taille de portée} @emph{(staff size)} est fixée par défaut à
-20 points. Il existe deux manières de la modifier :
+20 points, ce qui correspond à 7,03 cm -- 1 point équivaut à
+100/7227 pouce, soit 2 540/7 227 mm. Il existe trois manières de la
+modifier :
+
+@enumerate
+@item
La taille des portées peut se définir globalement pour toutes les
partitions d'un même fichier, ou plus précisément d'un bloc
@code{\book}, à l'aide de @code{set-global-staff-size}.
@end example
@noindent
-Ceci définit donc la hauteur des portées à 14 points par
+Ceci définit donc la hauteur des portées à 14 points (4,92 mm) par
défaut ; toutes les fontes seront ajustées en conséquence.
-Vous pouvez aussi spécifier une taille à une partition en particulier en
-procédant comme ci-dessous :
+@item
+La taille d'une partition particulière au sein d'un ouvrage se définit à
+l'aide d'un @code{layout-set-staff-size} placé dans le bloc
+@code{\layout} approprié :
@example
\score@{
@dots{}
\layout@{
- #(layout-set-staff-size 15)
+ #(layout-set-staff-size 14)
@}
@}
@end example
+@item
+L'affectation d'une taille particulière à l'une des portées d'un
+système, LilyPond dispose de la commande @code{\magnifyStaff}. Par
+exemple, les partitions traditionnelles de musique de chambre avec piano
+présentaient souvent des portées de piano de 7 mm alors que les autres
+portées étaient gravées à une hauteur de cinq septièmes (s'il y avait
+assez de place) ou trois cinquièmes (en cas de présentation resserrée)
+de cette hauteur. Une proportion de 5/7 s'obtient se libelle ainsi :
+
+@example
+\score @{
+ <<
+ \new Staff \with @{
+ \magnifyStaff #5/7
+ @} @{ @dots{} @}
+ \new PianoStaff @{ @dots{} @}
+ >>
+@}
+@end example
+
+Si la valeur de @code{fontSize} à utiliser est connue, la forme suivante
+peut s'employer :
+
+@example
+\score @{
+ <<
+ \new Staff \with @{
+ \magnifyStaff #(magstep -3)
+ @} @{ @dots{} @}
+ \new PianoStaff @{ @dots{} @}
+ >>
+@}
+@end example
+
+Mieux vaut éviter de réduire l'épaisseur des lignes si l'on veut que la
+partition s'approche au plus près des canons de la gravure
+traditionnelle.
+
+@end enumerate
+
+
+@subheading Relation automatique entre fonte et taille
+@c VO Automatic font weight at different sizes
+
La fonte Feta fournit les symboles musicaux dans huit tailles
différentes. Chaque fonte correspond à une hauteur particulière de
portée ; les petites tailles comportent des symboles plus épais
lignes de la portée. Le tableau suivant répertorie les différentes
tailles de police.
-@quotation
@multitable @columnfractions .15 .2 .22 .2
-@item @b{nom de la fonte}
-@tab @b{hauteur de portée (pt)}
-@tab @b{hauteur de portée (mm)}
-@tab @b{utilisation}
-
-@item feta11
-@tab 11,22
-@tab 3,9
-@tab format de poche
-
-@item feta13
-@tab 12,60
-@tab 4,4
-@tab
-
-@item feta14
-@tab 14,14
-@tab 5,0
-@tab
-
-@item feta16
-@tab 15,87
-@tab 5,6
-@tab
-
-@item feta18
-@tab 17,82
-@tab 6,3
-@tab carnet de chant
-
-@item feta20
-@tab 20
-@tab 7,0
-@tab partition standard
-
-@item feta23
-@tab 22,45
-@tab 7,9
-@tab
-
-@item feta26
-@tab 25,2
-@tab 8,9
-@tab
-@c matériel de location moderne ?
+@item @b{nom de la fonte} @tab @b{hauteur de portée (pt)} @tab @b{hauteur de portée (mm)} @tab @b{utilisation}
+@item feta11 @tab 11,22 @tab 3,9 @tab format de poche
+@item feta13 @tab 12,60 @tab 4,4 @tab
+@item feta14 @tab 14,14 @tab 5,0 @tab
+@item feta16 @tab 15,87 @tab 5,6 @tab
+@item feta18 @tab 17,82 @tab 6,3 @tab carnet de chant
+@item feta20 @tab 20 @tab 7,0 @tab partition standard
+@item feta23 @tab 22,45 @tab 7,9 @tab
+@item feta26 @tab 25,2 @tab 8,9 @tab @c matériel de location moderne ?
@end multitable
-@end quotation
-
-Ces fontes sont disponibles dans toutes les tailles. La propriété de
-contexte @code{fontSize} ainsi que la propriété de mise en forme
-@code{staff-space} (voir @rinternals{StaffSymbol}) permettent d'ajuster
-individuellement la taille de chaque portée. La taille de chacune des
-portées est relative à la taille globale.
@seealso
Manuel de notation :
@menu
* Sauts de ligne::
* Sauts de page::
-* Optimisation des sauts de page::
-* Optimisation des tournes::
-* Minimisation des sauts de page::
-* Présentation en rouleau::
-* Sauts explicites::
-* Recours à une voix supplémentaire pour gérer les sauts::
@end menu
@subsection Sauts de ligne
@translationof Line breaking
-@cindex saut de ligne
+@cindex saut de ligne manuel
@cindex ligne, passer à la suivante
+@funindex \break
+@funindex \noBreak
+@funindex \autoBreaksOff
+@funindex \autoBreaksOn
+@funindex \autoLineBreaksOff
+@funindex \autoLineBreaksOn
Les sauts de ligne sont normalement gérés de façon automatique. Ils
interviennent de telle sorte qu'une ligne ne soit ni trop resserrée, ni
densité.
Vous pouvez cependant insérer l'instruction @code{\break} à l'endroit où
-vous le jugez utile pour @qq{forcer} le passage à la ligne suivante :
+vous le jugez utile pour « forcer » le passage à la ligne suivante :
-@lilypond[quote,ragged-right,relative=2,verbatim]
-c4 c c c | \break
-c4 c c c |
+@lilypond[quote,ragged-right,verbatim]
+\relative c'' {
+ c4 c c c | \break
+ c4 c c c |
+}
@end lilypond
Par défaut, un saut de ligne ne saurait intervenir au beau milieu d'une
barre de mesure, vous devrez auparavant insérer une barre invisible -- à
l'aide de @code{\bar ""}.
-@lilypond[quote,ragged-right,relative=2,verbatim]
-c4 c c
-\bar "" \break
-c |
-c4 c c c |
+@lilypond[quote,ragged-right,verbatim]
+\relative c'' {
+ c4 c c
+ \bar "" \break
+ c |
+ c4 c c c |
+}
@end lilypond
LilyPond ignorera un @code{\break} placé sur une barre à la fin d'une
mesure dès lors que la précédente avait une note en suspend -- c'est
-typiquement le cas lorsqu'un nolet est à cheval sur deux mesures.
+typiquement le cas lorsqu'un n-olet est à cheval sur deux mesures.
L'instruction @code{\break} sera alors opérationnelle si vous avez
auparavant désactivé le @code{Forbid_line_break_engraver} du contexte
@code{Voice} concerné. Notez bien qu'en pareil cas, les sauts de ligne
@lilypond[quote,ragged-right,verbatim]
\new Voice \with {
\remove "Forbid_line_break_engraver"
-} \relative c'' {
+} \relative {
<<
- { c2. \tuplet 3/2 { c4 c c } c2. | }
+ { c''2. \tuplet 3/2 { c4 c c } c2. | }
{ s1 | \break s1 | }
>>
}
ligature s'étend sur deux mesures consécutives. Il faut en ce cas là
introduire la dérogation @w{@code{\override Beam.breakable = ##t}}.
-@lilypond[quote,ragged-right,relative=2,verbatim]
-\override Beam.breakable = ##t
-c2. c8[ c | \break
-c8 c] c2. |
+@lilypond[quote,ragged-right,verbatim]
+\relative c'' {
+ \override Beam.breakable = ##t
+ c2. c8[ c | \break
+ c8 c] c2. |
+}
@end lilypond
L'instruction opposée, @code{\noBreak}, interdira toute tentative de
saut de ligne à la fin de la mesure où elle est explicitée.
+Au sein même d'une pièce, les sauts de lignes automatiques sont inhibés
+dans la musique encadrée par les commandes @code{\autoLineBreaksOff} et
+@code{\autoLineBreaksOn}. Dans le cas où les sauts de pages
+automatiques devraient eux aussi être inhibés, ce sont les commandes
+@code{\autoBreaksOff} et @code{\autoBreaksOn} qu'il faudrait utiliser.
+Les sauts de ligne ou de page manuels ne sont pas affectés par ces
+commandes. Notez bien que la désactivation du positionnement
+automatique des sauts des ligne peut avoir pour effet un débordement de
+la musique dans la marge de droite si tout ne peut être contenu sur une
+ligne.
+
+Des sauts de ligne automatiques peuvent cependant être autorisés en un
+point particulier à l'aide d'un @code{\once \autoLineBreaksOn} sur une
+barre de mesure. Ceci ne concerne pas les sauts de page. Ceci indique
+qu'un saut de ligne peut intervenir à cet endroit précis, mais ne le
+force en aucun cas.
+
LilyPond dispose de deux variables de base pour influencer l'espacement
au niveau des lignes. Toutes deux se définissent dans un bloc
@code{\layout}, @code{indent} réglant l'indentation de la première
@end example
@predefined
-@funindex \break
@code{\break},
-@funindex \noBreak
-@code{\noBreak}.
+@code{\noBreak},
+@code{\autoBreaksOff},
+@code{\autoBreaksOn},
+@code{\autoLineBreaksOff},
+@code{\autoLineBreaksOn}.
@endpredefined
+@snippets
+
+@lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
+{using-an-extra-voice-for-breaks.ly}
+
@seealso
Manuel de notation :
+@ref{Le bloc layout},
@ref{Variables de gestion des sauts de ligne}.
Référence des propriétés internes :
Morceaux choisis :
@rlsrnamed{Spacing,Espacements}.
+@knownissues
+
+Les commandes @code{\autoLineBreaksOff} et @code{\autoBreaksOff} doivent
+impérativement se placer après le début de la musique pour éviter tout
+message d'erreur.
+
@node Sauts de page
@subsection Sauts de page
@translationof Page breaking
+Cette section présente les différentes méthodes de gestion des sauts de
+page, ainsi que les moyens de les modifier.
+
+@menu
+* Saut de page manuel::
+* Optimisation des sauts de page::
+* Minimisation des sauts de page::
+* Présentation en ligne continue::
+* Présentation en rouleau::
+* Optimisation des tournes::
+@end menu
+
+
+@node Saut de page manuel
+@unnumberedsubsubsec Saut de page manuel
+@translationof Manual page breaking
+
+@cindex manuel, saut de page
+@funindex \pageBreak
+@funindex \noPageBreak
+@funindex \autoPageBreaksOn
+@funindex \autoPageBreaksOff
+
La gestion automatique des sauts de page se contrôle à l'aide des
commandes @code{\pageBreak} et @code{\noPageBreak}. Ces commandes
fonctionnent de manière analogue à @code{\break} et @code{\noBreak} pour
les sauts de ligne et se placent donc au moment d'une barre de mesure.
-Elles permettent de forcer, ou d'interdire, un saut de page à l'endroit
-indiqué. Comme on peut s'y attendre, @code{\pageBreak} force le saut de
-ligne.
+Elles permettent de forcer, ou d'interdire, un saut de page à la
+prochaine barre de mesure. Comme on peut s'y attendre,
+@code{\pageBreak} force aussi le saut de ligne.
Les commandes @code{\pageBreak} et @code{\noPageBreak} peuvent se
trouver à des niveaux supérieurs, entre deux partitions ou
@emph{markups} de premier rang.
+Au sein même d'une pièce, les sauts de page automatiques sont inhibés
+dans la musique encadrée par les commandes @code{\autoPageBreaksOff} et
+@code{\autoPageeBreaksOn}. Les sauts de page manuels ne sont pas
+affectés par ces commandes.
+
Tout comme @code{ragged-right} et @code{ragged-last} qui permettent de
gérer la répartition horizontale, LilyPond dispose de commutateurs
-équivalents au niveau de la verticalité : @code{ragged-bottom} et
-@code{ragged-last-bottom}. Lorsqu'ils sont tous deux activés --
-affectés de @code{#t} -- les systèmes ne seront pas répartis sur les
-pages y compris la dernière. Pour de plus amples détails, reportez-vous
-à @ref{Variables d'espacement vertical fixe}.
+équivalents au niveau de la verticalité. @code{ragged-bottom}, une fois
+activé, empèchera les systmèes de se répartir sur la page. Quant à
+@code{ragged-last-bottom} (valorisé à @code{#t} par défaut), il laissera
+un espace vide en dernière page, y compris pour cahque @code{\bookpart}.
+Pour de plus amples détails, reportez-vous à
+@ref{Variables d'espacement vertical fixe}.
Les sauts de page sont générés par la fonction @code{page-breaking}.
-LilyPond dispose de trois différents algorithmes en la matière :
+LilyPond dispose de plusieurs algorithmes en la matière :
@code{ly:optimal-breaking}, @code{ly:page-turn-breaking} et
@code{ly:minimal-breaking}. C'est @code{ly:optimal-breaking} qui est
activé par défaut, mais rien ne vous empêche d'en changer, par
@end example
@predefined
-@funindex \pageBreak
@code{\pageBreak},
-@funindex \noPageBreak
-@code{\noPageBreak}.
+@code{\noPageBreak},
+@code{\autoPageBreaksOn},
+@code{\autoPageBreaksOff}.
@endpredefined
@seealso
Morceaux choisis :
@rlsrnamed{Spacing,Espacements}.
+@knownissues
+
+Le préfixe @code{\once} est ineffectif en ce qui concerne les commandes
+@code{\autoPageBreaksOn} et @code{\autoPageBreaksOff}. Si le
+positionnement automatique des sauts de page est désactivé et qu'il est
+réactivé pour permettre un saut de page, il doit le rester pendant
+quelques mesures (le nombre précis de mesures dépendant de la pièce)
+avant d'être à nouveau désactivé, autrement l'opportunité de passer à la
+page suivante ne sera pas saisie.
+
@node Optimisation des sauts de page
-@subsection Optimisation des sauts de page
+@unnumberedsubsubsec Optimisation des sauts de page
@translationof Optimal page breaking
@funindex ly:optimal-breaking
la fonction @code{ly:optimal-breaking}. Celle-ci tend à trouver une
rupture qui évite d'obtenir à la fois une page trop dense ou exagérément
aérée. Contrairement à la fonction @code{ly:page-turn-breaking}, elle
-n'a aucune notion de ce qu'est une @qq{tourne}.
+n'a aucune notion de ce qu'est une « tourne ».
@seealso
Morceaux choisis :
@rlsrnamed{Spacing,Espacements}.
+@node Minimisation des sauts de page
+@unnumberedsubsubsec Minimisation des sauts de page
+@translationof Minimal page breaking
+
+@funindex ly:minimal-breaking
+
+La fonction @code{ly:minimal-breaking} est celle qui réalise le moins de
+calculs pour positionner les sauts de page. Elle mettra le plus de
+systèmes possible sur une page avant de passer à la suivante. On peut
+donc la préférer lorsque la partition s'étend sur beaucoup de pages ou
+lorsque les autres fonctions de gestion des sauts de page ralentissent
+nettement le traitement, sont trop gourmandes en mémoire ou qu'il y a
+beaucoup de texte. Il suffit de la mentionner au sein du bloc
+@code{\paper} :
+
+@example
+\paper @{
+ page-breaking = #ly:minimal-breaking
+@}
+@end example
+
+@seealso
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
+
+@node Présentation en ligne continue
+@unnumberedsubsubsec Présentation en ligne continue
+@translationof One-line page breaking
+
+@funindex ly:one-line-breaking
+
+La fonction @code{ly:one-line-breaking} constitue un algorithme de
+calcul des sauts de pages particulier en ceci que chaque partition fait
+l'objet d'une page unique, d'une seule ligne. Cette fonctionnalité
+s'affranchit de l'impression des titres et marges ; seule la partition
+est affichée.
+
+La largeur de page est ajustée de telle sorte que la pièce la plus
+longue tienne sur une seule ligne. En particulier, les variables
+@code{paper-width}, @code{line-width} et @code{indent} du bloc
+@code{\paper} seront ignorées ; les @code{left-margin} et
+@code{right-margin} seront honorées. La hauteur de page ne sera pas
+modifiée.
+
+
+@node Présentation en rouleau
+@unnumberedsubsubsec Présentation en rouleau
+@translationof One-line-auto-height page breaking
+
+@funindex ly:one-line-auto-height-breaking
+
+La fonction @code{ly:one-line-auto-height-breaking} opère comme
+@code{ly:one-line-breaking}, à ceci près que la hauteur de page s'adapte
+automatiquement à la hauteur de la musique. Dans les faits, la variable
+@code{paper-height} du bloc @code{\paper} s'ajuste de façon à englober
+la hauteur de la partition la plus étendue, plus les @code{top-margin}
+et @code{bottom-margin}.
+
+L'affectation d'une valeur à @code{top-system-spacing} influencera le
+positionnement vertical de la musique. Sa désactivation -- valorisation
+à @code{##f} au sein du bloc @code{\paper} -- aura pour effet de
+simplement placer la musique entre les marges supérieure et inférieure.
+
+
@node Optimisation des tournes
-@subsection Optimisation des tournes
+@unnumberedsubsubsec Optimisation des tournes
@translationof Optimal page turning
@funindex ly:page-turn-breaking
silences. Lorsqu'il rencontre un fragment suffisamment long ne
contenant aucune note, il insère un @code{\allowPageTurn} à la barre
terminant ce fragment, à moins qu'il ne rencontre en chemin une
-@qq{barre spéciale} -- telle une double barre -- auquel cas il y
+« barre spéciale » -- telle une double barre -- auquel cas il y
déposera le @code{\allowPageTurn}.
@funindex minimumPageTurnLength
@code{Page_turn_engraver}, au risque de les voir se contredire.
-@node Minimisation des sauts de page
-@subsection Minimisation des sauts de page
-@translationof Minimal page breaking
-
-@funindex ly:minimal-breaking
-
-La fonction @code{ly:minimal-breaking} est celle qui réalise le moins de
-calculs pour positionner les sauts de page. Elle mettra le plus de
-systèmes possible sur une page avant de passer à la suivante. On peut
-donc la préférer lorsque la partition s'étend sur beaucoup de pages ou
-lorsque les autres fonctions de gestion des sauts de page ralentissent
-nettement le traitement, sont trop gourmandes en mémoire ou qu'il y a
-beaucoup de texte. Il suffit de la mentionner au sein du bloc
-@code{\paper} :
-
-@example
-\paper @{
- page-breaking = #ly:minimal-breaking
-@}
-@end example
-
-@seealso
-Morceaux choisis :
-@rlsrnamed{Spacing,Espacements}.
-
-
-@node Présentation en rouleau
-@subsection Présentation en rouleau
-@translationof One-line page breaking
-
-@funindex ly:one-line-breaking
-
-La fonction @code{ly:one-line-breaking} constitue un algorithme de
-calcul des sauts de pages particulier en ceci que chaque partition fait
-l'objet d'une page unique, d'une seule ligne. Cette fonctionnalité
-s'affranchit de l'impression des titres et marges ; seule la partition
-est affichée.
-
-La largeur de page est ajustée de telle sorte que la pièce la plus
-longue tienne sur une seule ligne. En particulier, les variables
-@code{paper-width}, @code{line-width} et @code{indent} du bloc
-@code{\paper} seront ignorées ; les @code{left-margin} et
-@code{right-margin} seront honorées. La hauteur de page ne sera pas
-modifiée.
-
-
-@node Sauts explicites
-@subsection Sauts explicites
-@translationof Explicit breaks
-
-Il arrive parfois que LilyPond rejette des @code{\break} ou des
-@code{\pageBreak} explicites. Vous pouvez alors prendre le contrôle
-avec ces deux instructions dérogatoires :
-
-@example
-\override NonMusicalPaperColumn.line-break-permission = ##f
-\override NonMusicalPaperColumn.page-break-permission = ##f
-@end example
-
-Lorsque vous désactivez @code{line-break-permission}, LilyPond
-ne passera à la ligne suivante qu'en présence d'un @code{\break}
-explicite, et nulle part ailleurs. De la même façon, la désactivation
-de @code{page-break-permission} aura pour conséquence que LilyPond ne
-changera de page que lorsqu'il rencontrera un @code{\pageBreak}, et
-nulle part ailleurs.
-
-@lilypond[quote,verbatim]
-\paper {
- indent = #0
- ragged-right = ##t
- ragged-bottom = ##t
-}
-
-music = \relative c'' { c8 c c c }
-
-\score {
- \new Staff {
- \repeat unfold 2 { \music } \break
- \repeat unfold 4 { \music } \break
- \repeat unfold 6 { \music } \break
- \repeat unfold 8 { \music } \pageBreak
- \repeat unfold 8 { \music } \break
- \repeat unfold 6 { \music } \break
- \repeat unfold 4 { \music } \break
- \repeat unfold 2 { \music }
- }
- \layout {
- \context {
- \Score
- \override NonMusicalPaperColumn.line-break-permission = ##f
- \override NonMusicalPaperColumn.page-break-permission = ##f
- }
- }
-}
-@end lilypond
-
-@seealso
-Morceaux choisis :
-@rlsrnamed{Spacing,Espacements}.
-
-
-@node Recours à une voix supplémentaire pour gérer les sauts
-@subsection Recours à une voix supplémentaire pour gérer les sauts
-@translationof Using an extra voice for breaks
-
-La plupart du temps, les informations concernant les sauts de ligne ou
-de page se retrouvent directement au milieu des notes.
-
-@example
-musique = \relative c'' @{ c4 c c c @}
-
-\score @{
- \new Staff @{
- \repeat unfold 2 @{ \musique @} \break
- \repeat unfold 3 @{ \musique @}
- @}
-@}
-@end example
-
-Bien que cela constitue un moyen aisé de saisir les commandes
-@code{\break} et @code{\pageBreak}, les données musicales se retrouvent
-mélangées à des informations qui concernent plutôt l'agencement de la
-musique sur le papier. Vous pouvez tout à fait séparer ce qui est
-purement musical et les informations concernant les sauts de ligne ou de
-page en créant une voix supplémentaire dédiée. Cette voix spécifique
-ne contiendra que des blancs -- des silences invisibles @code{\skip} --,
-des @code{\break}, des @code{\pageBreak} et autres informations
-concernant les ruptures.
-
-@lilypond[quote,verbatim]
-music = \relative c'' { c4 c c c }
-
-\header { tagline = ##f }
-\paper { left-margin = 0\mm }
-\book {
- \score {
- \new Staff <<
- \new Voice {
- s1 * 2 \break
- s1 * 3 \break
- s1 * 6 \break
- s1 * 5 \break
- }
- \new Voice {
- \repeat unfold 2 { \music }
- \repeat unfold 3 { \music }
- \repeat unfold 6 { \music }
- \repeat unfold 5 { \music }
- }
- >>
- }
-}
-@end lilypond
-
-Cette manière de procéder est tout à fait indiquée lorsque vous ajustez
-les @code{line-break-system-details} et autres propriétés fort
-intéressantes de @code{NonMusicalPaperColumnGrob}, comme vous pouvez
-le voir au chapitre @ref{Espacement vertical}.
-
-@lilypond[quote,verbatim]
-music = \relative c'' { c4 c c c }
-
-\header { tagline = ##f }
-\paper { left-margin = 0\mm }
-\book {
- \score {
- \new Staff <<
- \new Voice {
- \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
- #'((Y-offset . 0))
- s1 * 2 \break
-
- \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
- #'((Y-offset . 5))
- s1 * 3 \break
-
- \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
- #'((Y-offset . 15))
- s1 * 6 \break
-
- \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
- #'((Y-offset . 30))
- s1 * 5 \break
- }
- \new Voice {
- \repeat unfold 2 { \music }
- \repeat unfold 3 { \music }
- \repeat unfold 6 { \music }
- \repeat unfold 5 { \music }
- }
- >>
- }
-}
-@end lilypond
-
-@seealso
-Manuel de notation :
-@ref{Espacement vertical}.
-
-Morceaux choisis :
-@rlsrnamed{Spacing,Espacements}.
-
-
@node Espacement vertical
@section Espacement vertical
@translationof Vertical spacing
abordées en fin de section.
Le nom de ces propriétés, sauf @code{staff-affinity}, suit le schéma
-@code{@var{item1}-@var{item2}-spacing} -- @code{@var{item1}} et
+@w{@code{@var{item1}-@var{item2}-spacing}} -- @code{@var{item1}} et
@code{@var{item2}} étant les éléments à espacer. Notez bien que
@code{@var{item2}} n'est pas forcément placé au-dessous : c'est le
cas pour la propriété @code{nonstaff-relatedstaff-spacing} qui spécifie
@item @code{ChordNames} @tab ligne de base
@item @code{NoteNames} @tab ligne de base
@item @code{Lyrics} @tab ligne de base
-@item @code{Dynamics} @tab centre vertical
+@item @code{Dynamics} @tab mi-hauteur du « m »
@item @code{FiguredBass} @tab point le plus haut
@item @code{FretBoards} @tab ligne supérieure
@end multitable
alignToZero = \with {
\override VerticalAxisGroup.nonstaff-relatedstaff-spacing = #zero-space
\override VerticalAxisGroup.nonstaff-nonstaff-spacing = #zero-space
+ \override VerticalAxisGroup.staff-affinity = #DOWN
+ \remove Text_engraver % avoid having two
+ \consists Text_engraver
}
lowerCaseChords = \with {
chordNameLowercaseMinor = ##t
}
-staffAffinityDown = \with {
- \override VerticalAxisGroup.staff-affinity = #DOWN
-}
labelContext =
#(define-music-function
- (parser location context)
+ (context)
(string?)
- #{ s1*0^\markup { \typewriter #context } #})
+ #{ s1*0^\markup { \upright {\typewriter #context } } #})
\layout {
\context { \Dynamics \alignToZero }
\context { \FiguredBass \alignToZero }
\context { \Lyrics \alignToZero }
- \context { \NoteNames \alignToZero \staffAffinityDown }
- \context { \ChordNames \alignToZero
- \staffAffinityDown
- \lowerCaseChords }
- \context { \FretBoards \alignToZero \staffAffinityDown }
+ \context { \NoteNames \alignToZero }
+ \context { \ChordNames \alignToZero \lowerCaseChords }
+ \context { \FretBoards \alignToZero }
\context { \Score
- \override BarLine.stencil = ##f
+ \omit BarLine
\override DynamicText.self-alignment-X = #-1
\override FretBoard.X-offset = #1.75
- \override InstrumentName.minimum-Y-extent = #'(-2 . 2)
- \override InstrumentName.extra-offset = #'(0 . -0.5)
- \override TextScript.minimum-Y-extent = #'(-2 . 3)
- \override TimeSignature.stencil = ##f
+ \override InstrumentName.minimum-Y-extent = #'(-1 . 2)
+ \textLengthOn
+ \omit TimeSignature
}
}
%% Contextes dont le point de référence est la ligne de base :
%% ChordNames, NoteNames et Lyrics
<<
- \new ChordNames { \chords { g1:m } }
- \new NoteNames { s1 | g1 | }
- \new RhythmicStaff {
- \set RhythmicStaff.instrumentName = #"ligne de base (baseline) "
- \textLengthOn
- \labelContext "ChordNames" s1 |
- \labelContext "NoteNames" s1 |
- \labelContext "Lyrics" s1 |
- }
- \new Lyrics { \lyrics { \skip 1*2 | ghijk1 | } }
+ \new ChordNames { \chords { \labelContext "ChordNames" g1:m } }
+ \new NoteNames { s1 |\labelContext "NoteNames" g1 | }
+ \new Lyrics { \lyrics { \skip 1*2 | \labelContext "Lyrics" ghijk1 | } }
+ \new RhythmicStaff \with { instrumentName = #"ligne de base (baseline) " } s1*3
>>
-%% Le point de référence de Dynamics est le milieu de la ligne
+%% Le point de référence de Dynamics est le milieu du « m » dans la fonte
<<
- \new RhythmicStaff {
- \set RhythmicStaff.instrumentName = #"centre vertical "
- \labelContext "Dynamics" s1*3
- }
- \new Dynamics { s1\mp s\fp }
+ \new Dynamics { \labelContext "Dynamics" s1\mp s\fp }
+ \new RhythmicStaff \with { instrumentName = #"mid-hauteur " } s1*3
>>
%% Le point de référence de FiguredBass est son point le plus haut
<<
- \new RhythmicStaff {
- \set RhythmicStaff.instrumentName = #"point le plus haut "
- \labelContext "FiguredBass" s1
- }
- \new FiguredBass { \figuremode { <6 5>1 } }
+ \new FiguredBass { \labelContext "FiguredBass" \figuremode { <6 5>1 } }
+ \new RhythmicStaff \with { instrumentName = #"point le plus haut " } s1
>>
%% Le point de référence de FretBoards est la ligne du haut
\include "predefined-guitar-fretboards.ly"
<<
- \new FretBoards { \chordmode { e1 } }
- \new RhythmicStaff {
- \set RhythmicStaff.instrumentName = #"ligne du haut "
- \labelContext "FretBoards " s1
- }
+ \new FretBoards { \labelContext "FretBoards" \chordmode { e1 } }
+ \new RhythmicStaff \with { instrumentName = #"ligne du haut " } s1
>>
@end lilypond
de @code{nonstaff-relatedstaff-spacing} servira à centrer la ligne de
non-portée entre les deux portées adjacentes même si une autre
non-portée est présente (quelque soit le côté). Le positionnement
-d'une ligne de non-portée dépend donc à la fois des portées tout
-comme des autres lignes de non-portée adjacentes. L'affectation
-d'une faible valeur à la propriété @code{stretchability} de l'un
-de ces types d'espacement les avantagera ; leur affecter une
-grande valeur aura pour conséquence de diminuer leur influence.
-
-@c FIXME
-@c traduction approximative des dernières phrases, qui manquent de
-@c précision : QUI EST AVANTAGÉ OU NON ?
-@ignore
- This means that the placement of a non-staff line depends
-on both the surrounding staves and the surrounding non-staff lines.
-Setting the @code{stretchability} of one of these types of spacing to
-a small value will make that spacing dominate. Setting the
-@code{stretchability} to a large value will make that spacing have
-little effect.
-@end ignore
+d'une ligne de non-portée dépend donc à la fois des portées qui
+l'entourent tout comme des autres lignes de non-portée adjacentes.
+L'affectation d'une faible valeur à la propriété @code{stretchability}
+de l'un de ces types d'espacement l'avantagera ; lui affecter une
+valeur élevée aura pour conséquence de diminuer l'influence de
+l'espacement considéré.
@item nonstaff-nonstaff-spacing
Il s'agit de la distance entre deux lignes de non-portée selon
@seealso
Manuel de notation :
-@ref{Variables d'espacement vertical fluctuant},
-@ref{Modification de listes associatives}.
+@ref{Modification de listes associatives},
+@ref{Variables d'espacement vertical fluctuant}.
Fichiers d'initialisation :
@file{ly/engraver-init.ly},
@translationof Spacing of ungrouped staves
Les @code{Staff}, @code{DrumStaff}, @code{TabStaff} entre autres sont
-des contextes de @qq{portée} pouvant contenir plusieurs voix, mais pas
+des contextes de « portée » pouvant contenir plusieurs voix, mais pas
une portée.
L'espacement de ces @i{portées isolées} est géré par les propriétés
Dans les partitions orchestrales ou de grande ampleur, il arrive
souvent que des portées soient regroupées. L'espacement est alors plus
important entre deux regroupements qu'entre les portées d'un même
-groupe.
+groupe.
Les @i{regroupements de portées} tels le @code{StaffGroup} ou le
@code{ChoirStaff} sont des contextes qui peuvent contenir simultanément
une ou plusieurs portées.
L'espacement entre les portées d'un même regroupement est géré par les
-propriétés suivantes :
+propriétés suivantes :
@itemize
@item Propriétés du @code{VerticalAxisGroup} :
@code{ChordNames} sont des contextes dont les objets de rendu sont
gravés à l'instar des portées -- une ligne horizontale dans un système.
En fait, les lignes de non-portée sont des contextes qui vont créer un
-objet de rendu @code{VerticalAxisGroup}.
+objet de rendu @code{VerticalAxisGroup} auxquel est attaché le
+@rinternals{Axis_group_engraver}.
L'espacement des lignes de non-portée est géré par les propriétés
suivantes :
une voix spécifique. La mise en forme est ainsi séparée des événements
musicaux ; ceci nous permettra d'y voir plus clair au fur et à
mesure que nous avancerons. Pour plus de précisions, relisez
-@ref{Recours à une voix supplémentaire pour gérer les sauts}.
+@ref{Sauts}.
Les @code{\break} explicites répartissent la musique en lignes de six
mesures chacune. L'espacement vertical est celui que LilyPond attribue
matière de notation musicale appartiennent à la portée, et que
d'autres se placent en dehors de la portée. Entre autres objets
externes, nous avons les marques repères, les textes et les
-nuances ; nous les appellerons @qq{objets extérieurs à la portée}.
+nuances ; nous les appellerons « objets extérieurs à la portée ».
La règle adoptée par LilyPond pour positionner verticalement ces
objets extérieurs consiste à les placer au plus près de la portée
tout en prenant garde d'éviter qu'il y ait chevauchement.
@code{outside-staff-priority} est la plus faible sera disposé au plus
près de la portée.
-@lilypond[quote,ragged-right,relative=2,verbatim]
-c4_"Text"\pp
-r2.
-\once \override TextScript.outside-staff-priority = #1
-c4_"Text"\pp % this time the text will be closer to the staff
-r2.
-% by setting outside-staff-priority to a non-number,
-% we disable the automatic collision avoidance
-\once \override TextScript.outside-staff-priority = ##f
-\once \override DynamicLineSpanner.outside-staff-priority = ##f
-c4_"Text"\pp % now they will collide
+Une liste des @code{outside-staff-priorities} est disponible à la
+rubrique @rlearning{La propriété outside-staff-priority}.
+
+@lilypond[quote,ragged-right,verbatim]
+\relative c'' {
+ c4_"Text"\pp
+ r2.
+ \once \override TextScript.outside-staff-priority = #1
+ c4_"Text"\pp % this time the text will be closer to the staff
+ r2.
+ % by setting outside-staff-priority to a non-number,
+ % we disable the automatic collision avoidance
+ \once \override TextScript.outside-staff-priority = ##f
+ \once \override DynamicLineSpanner.outside-staff-priority = ##f
+ c4_"Text"\pp % now they will collide
+}
@end lilypond
-Le décalage vertical entre un objet extérieur à la portée et celui qui
-le précède se contrôle par la propriété @code{outside-staff-padding}.
+Le décalage vertical entre des objets extérieurs à la portée se contrôle
+par la propriété @code{outside-staff-padding}.
@c KEEP LY
-@lilypond[quote,ragged-right,relative=2,verbatim,staffsize=18]
-\once \override TextScript.outside-staff-padding = #0
-a'^"Ce texte est placé au plus près de la note"
-\once \override TextScript.outside-staff-padding = #3
-c^"Ce texte est décalé par rapport au texte précédent"
-c^"Ce texte est accolé au texte précédent"
+@lilypond[quote,ragged-right,verbatim,staffsize=18]
+\relative {
+ \once \override TextScript.outside-staff-padding = #0
+ a'4-"outside-staff-padding = #0"
+ \once \override TextScript.outside-staff-padding = #3
+ d-"outside-staff-padding = #3"
+ c-"outside-staff-padding par défaut"
+ b-"outside-staff-padding par défaut"
+ R1
+}
@end lilypond
Par défaut, les objets extérieurs à la portée sont positionnés en
objet pour éviter qu'il ne soit trop proche d'ventuelles lignes
supplémentaires.
-@lilypond[quote,ragged-right,relative=2,verbatim]
-c4^"Word" c c''2
-R1
-\once \override TextScript.outside-staff-horizontal-padding = #1
-c,,4^"Word" c c''2
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+ c''4^"Word" c c''2
+ R1
+ \once \override TextScript.outside-staff-horizontal-padding = #1
+ c,,4^"Word" c c''2
+}
@end lilypond
@seealso
* Généralités sur l'espacement horizontal::
* Changement d'espacement en cours de partition::
* Modification de l'espacement horizontal::
-* Longueur de ligne::
+* Largeur de ligne::
* Notation proportionnelle::
@end menu
de note ; pour la noire , cet espace est de deux têtes ; il
est de trois pour la blanche.
-@lilypond[quote,verbatim,relative=1]
-c2 c4. c8
-c4. c8 c4. c8
-c8 c c4 c c
+@lilypond[quote,verbatim]
+\relative c' {
+ c2 c4. c8
+ c4. c8 c4. c8
+ c8 c c4 c c
+}
@end lilypond
@code{spacing-increment} est normalement défini à 1,2 espace de
La courte durée la plus fréquente est déterminée à partir de la note la
plus courte de chaque mesure. C'est elle qui servira de base pour
l'espacement, à cette nuance près que la plus courte durée ne saurait
-être strictement supérieure à la croche. Cette @qq{durée de référence}
-est d'ailleurs affichée lorsque vous lancez @code{lilypond} avec l'option
-@option{--verbose}.
+être strictement supérieure à la croche.
Ces durées peuvent être adaptées. Vous pouvez définir la durée de base
pour les espacements grâce à la propriété
doubles croches à l'exemple précédent, elles seraient suivies d'une
demie largeur de tête :
-@lilypond[quote,verbatim,relative=2]
-c2 c4. c8 | c4. c16[ c] c4. c8 | c8 c c4 c c
+@lilypond[quote,verbatim]
+\relative { c''2 c4. c8 | c4. c16[ c] c4. c8 | c8 c c4 c c }
@end lilypond
Dans notre @emph{Essai sur la gravure musicale automatisée}, nous avons
-vu comment la direction des hampes peut influencer l'espacement -- voir
+vu comment la direction des hampes peut influencer l'espacement -- voir
@ressay{Espacement}. Ceci est contrôlé par la propriété
@code{stem-spacing-correction} de l'objet @rinternals{NoteSpacing}, créé
pour chaque contexte @rinternals{Voice}. L'objet
les réglages par défaut, puis avec des corrections forcées.
@lilypond[quote,ragged-right]
-{
- c'4 e''4 e'4 b'4 |
- b'4 e''4 b'4 e''4 |
+\fixed c' {
+ c4 e'4 e4 b4 |
+ b4 e'4 b4 e'4 |
\override Staff.NoteSpacing.stem-spacing-correction = #1.5
\override Staff.StaffSpacing.stem-spacing-correction = #1.5
- c'4 e''4 e'4 b'4 |
- b'4 e''4 b'4 e''4 |
+ c4 e'4 e4 b4 |
+ b4 e'4 b4 e'4 |
}
@end lilypond
-L'espacement spécifique à la notation proportionnelle fait l'objet d'une
+L'espacement spécifique à la notation proportionnelle fait l'objet d'une
@rusernamed{Notation proportionnelle,rubrique dédiée}.
@seealso
@knownissues
Il n'existe pas de mécanisme simple et efficace qui permette de
forcer manuellement l'espacement. La solution ci-dessous permet
-cependant @qq{d'aérer} artificiellement une partition ; il vous
+cependant « d'aérer » artificiellement une partition ; il vous
suffit d'ajuster la valeur du décalage @emph{(padding)} autant que de
besoin.
@code{\newSpacingSection} ; ils produiront leurs effets jusqu'à ce
qu'ils soient à nouveau modifiés par une nouvelle section, comme ici :
-@lilypond[relative=1,verbatim,quote]
-\time 4/16
-c16[ c c8]
-\newSpacingSection
-\override Score.SpacingSpanner.spacing-increment = #2
-c16[ c c8]
-\newSpacingSection
-\revert Score.SpacingSpanner.spacing-increment
-c16[ c c8]
+@lilypond[verbatim,quote]
+\relative c' {
+ \time 4/16
+ c16[ c c8]
+ \newSpacingSection
+ \override Score.SpacingSpanner.spacing-increment = #2
+ c16[ c c8]
+ \newSpacingSection
+ \revert Score.SpacingSpanner.spacing-increment
+ c16[ c c8]
+}
@end lilypond
@seealso
@lilypond[verbatim,line-width=12\cm]
\score {
- \relative c'' {
- g4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
+ \relative {
+ g'4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
g4 e e2 | f4 d d2 | c4 e g g | c,1 |
d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
g4 e e2 | f4 d d2 | c4 e g g | c,1 |
@lilypond[verbatim,line-width=12\cm]
\score {
- \relative c'' {
- g4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
+ \relative {
+ g'4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
g4 e e2 | f4 d d2 | c4 e g g | c,1 |
d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
g4 e e2 | f4 d d2 | c4 e g g | c,1 |
@end lilypond
@snippets
-L'espacement au sein d'un nolet dépend par défaut d'un certain nombre de
+L'espacement au sein d'un n-olet dépend par défaut d'un certain nombre de
facteurs qui ne sont pas liés à la durée (altération, changement de
clef, etc.). @code{Score.SpacingSpanner.uniform-stretching}
permet d'ignorer ces symboles et, par voie de conséquence, de forcer
les notes sans tenir compte des clefs, barres de mesure ou notes
d'ornement qui pourraient apparaître :
-@lilypond[quote,ragged-right,relative=2,verbatim]
+@lilypond[quote,ragged-right,fragment,verbatim]
\override Score.SpacingSpanner.strict-note-spacing = ##t
-\new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c] }
+\new Staff \relative {
+ c''8[ c \clef alto c \grace { c16 c } c8 c c] c32[ c] }
@end lilypond
@seealso
@rlsrnamed{Spacing,Espacements}.
-@node Longueur de ligne
-@subsection Longueur de ligne
-@translationof Line length
+@node Largeur de ligne
+@subsection Largeur de ligne
+@translationof Line width
@cindex saut de page
@cindex pages, saut
Commençons par cette mesure toute simple qui utilise l'espacement
classique et justifiée à gauche.
+@c The initial pitch is not necessary as long as RhythmicStaff is
+@c not preceded by other material in the score, but we don't want
+@c to explain that.
@lilypond[quote,verbatim,ragged-right]
\score {
<<
\new RhythmicStaff {
- c'2 c'16 c' c' c' \tuplet 5/4 { c'16 c' c' c' c' }
+ c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
}
>>
}
\score {
<<
\new RhythmicStaff {
- c'2 c'16 c' c' c' \tuplet 5/4 { c' c' c' c' c' }
+ c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
}
>>
\layout {
\score {
<<
\new RhythmicStaff {
- c'2 c'16 c' c' c' \tuplet 5/4 { c'16 c' c' c' c' }
+ c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
}
>>
\layout {
\score {
<<
\new RhythmicStaff {
- c'2 c'16 c' c' c' \tuplet 5/4 { c'16 c' c' c' c' }
+ c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
}
>>
\layout {
\score {
<<
\new RhythmicStaff {
- c'2 c'16 c' c' c' \tuplet 5/4 { c'16 c' c' c' c' }
+ c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
}
>>
\layout {
notation proportionnelle met en évidence le rythme au détriment de
l'espacement horizontal.
-Examinons à présent le moyen d'optimiser l'espacement de nolets en
+Examinons à présent le moyen d'optimiser l'espacement de n-olets en
tuilage.
Reprenons notre exemple de départ, avec son espacement traditionnel, et
-ajoutons lui une portée incluant un autre type de nolet.
+ajoutons lui une portée incluant un autre type de n-olet.
@lilypond[quote,verbatim,ragged-right]
\score {
<<
\new RhythmicStaff {
- c'2 c'16 c' c' c' \tuplet 5/4 { c'16 c' c' c' c' }
+ c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
}
\new RhythmicStaff {
- \tuplet 9/8 { c'8 c' c' c' c' c' c' c' c' }
+ \tuplet 9/8 { c8 8 8 8 8 8 8 8 8 }
}
>>
}
L'espacement est loin d'être idéal, pour la simple raison que
l'espacement régulier des notes de la portée inférieure ne s'étire pas
uniformément. Il est vrai que de telles constructions complexes en
-nolets sont assez rares en gravure traditionnelle, ce qui explique que
+n-olets sont assez rares en gravure traditionnelle, ce qui explique que
les règles qu'elle applique peuvent amener à ce résultat. Le recours à
@code{proportionalNotationDuration} permet d'arranger les choses.
\score {
<<
\new RhythmicStaff {
- c'2 c'16 c' c' c' \tuplet 5/4 { c'16 c' c' c' c' }
+ c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
}
\new RhythmicStaff {
- \tuplet 9/8 { c'8 c' c' c' c' c' c' c' c' }
+ \tuplet 9/8 { c8 8 8 8 8 8 8 8 8 }
}
>>
\layout {
\score {
<<
\new RhythmicStaff {
- c'2 c'16 c' c' c' \tuplet 5/4 { c'16 c' c' c' c' }
+ c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
}
\new RhythmicStaff {
- \tuplet 9/8 { c'8 c' c' c' c' c' c' c' c' }
+ \tuplet 9/8 { c8 8 8 8 8 8 8 8 8 }
}
>>
\layout {
Intéressons-nous maintenant au @code{Separating_line_group_engraver},
qui est désactivé pour la plupart des partitions en notation
proportionnelle. Voici ce qui apparaît dans une partition
-traditionnelle : il y a toujours un @qq{espace préservé} juste
+traditionnelle : il y a toujours un « espace préservé » juste
avant la première note de chaque portée.
@lilypond[quote,verbatim,ragged-right]
Les éléments non musicaux tels que métrique, armure, clef et
altérations, posent problème lorsqu'on travaille en notation
proportionnelle. Bien qu'aucune notion de durée ne leur soit
-attachée, ces éléments @qq{consomment} de l'espace. Différentes
+attachée, ces éléments « consomment » de l'espace. Différentes
approches permettent cependant de gérer ce problème.
Éviter les problèmes d'espacement avec l'armure est chose aisée :
@lilypond[quote,verbatim,ragged-right]
\new Staff {
\set Score.proportionalNotationDuration = #(ly:make-moment 1/16)
- c''8 c'' c'' \clef alto d' d'2
+ c''8 8 8 \clef alto d' 2
}
\new Staff {
\set Score.proportionalNotationDuration = #(ly:make-moment 1/16)
\override Score.SpacingSpanner.strict-note-spacing = ##t
- c''8 c'' c'' \clef alto d' d'2
+ c''8 8 8 \clef alto d' 2
}
@end lilypond
@end itemize
Ces différents réglages permettent un espacement strict des notes
-d'ornement, d'étendre les indications de nolet afin d'indiquer de façon
+d'ornement, d'étendre les indications de n-olet afin d'indiquer de façon
évidente leurs bornes et d'autoriser le tronçonnement des extenseurs à
l'occasion d'un saut de ligne ou de page. Nous vous renvoyons aux
différentes rubriques associées du manuel pour chacun de ces réglages.
@item
Éviter ou réduire les objets qui augmentent la hauteur des systèmes.
-Par exemple, un crochet de reprise ou d'alternative consomme de
-l'espace. Le fait de les reporter sur plusieurs systèmes regroupés
-diminue d'autant l'espace disponible que si seul le premier ne
-comportait l'indication. Autre exemple, les indications de nuance qui
-se @qq{détachent} d'un système peuvent être rapprochées de la portée :
-
-@lilypond[verbatim,quote,relative=1]
-e4 c g\f c
-e4 c g-\tweak X-offset #-2.7 \f c
+Par exemple, un crochet d'alternative en fin de reprise consomme de
+l'espace. Dans le cas où il s'étend sur deux systèmes, il occupera
+plus d'espace que si seul le premier comportait l'indication. Autre
+exemple, les indications de nuance qui se « détachent » d'un système
+peuvent être rapprochées de la portée :
+
+@lilypond[verbatim,quote]
+\relative e' {
+ e4 c g\f c
+ e4 c g-\tweak X-offset #-2.7 \f c
+}
@end lilypond
@item
@lilypond[verbatim,quote]
\score {
- \relative c'' {
- g4 e e2 |
+ \relative {
+ g'4 e e2 |
f4 d d2 |
c4 d e f |
g4 g g2 |
Par contre, le fait de modifier la valeur de la propriété
@code{common-shortest-duration} en passant de @code{1/4} à @code{1/2}
-- bien que la noire soit la durée la plus courante, nous prenons une
-valeur plus longue -- donnera un effet @qq{resserré} à la musique :
+valeur plus longue -- donnera un effet « resserré » à la musique :
@lilypond[verbatim,quote]
\score {
- \relative c'' {
- g4 e e2 |
+ \relative {
+ g'4 e e2 |
f4 d d2 |
c4 d e f |
g4 g g2 |