@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@ignore
- Translation of GIT committish: 95b372c451ea1586db8db66d3d00334382e8e103
+ 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.6"
+@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.
Les réglages qui influencent la mise en forme se placent dans deux blocs
différents. Le bloc @w{@code{\paper @{@dots{}@}}} étudié à la rubrique
@ref{Mise en forme de la page} contient les réglages applicables à
-l'intégralité du document -- à toutes les partitions d'un ouvrage --
+toutes les partitions d'une partie ou de l'intégralité d'un ouvrage --
tels que format du papier, impression ou non des numéros de page, etc.
Quant au bloc @w{@code{\layout @{@dots{}@}}}, qui fait l'objet de la
rubrique @ref{Mise en forme de la partition}, il détermine la mise en
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 @code{\paper} block
+@node Le bloc paper
+@subsection Le bloc @code{@bs{}paper}
+@translationof The paper block
-Un bloc @code{\paper} peut apparaître au sein d'un bloc @code{\book}.
-Les réglages effectués à l'aide du bloc @code{\paper} s'appliqueront à
-l'intégralité d'un ouvrage, qui peut comporter plusieurs partitions (des
-blocs @emph{score}) ; il ne doit donc en aucun cas se trouver dans un
-bloc @code{\score}. Peuvent apparaître dans un bloc @code{\paper} :
+Des blocs @code{\paper} peuvent apparaître à trois différents endroits
+et former ainsi une hiérarchie :
+
+@itemize
+
+@item
+En début de fichier source, avant même tout bloc @code{\book},
+@code{\bookpart} ou @code{\score}.
+
+@item
+Au sein d'un bloc @code{\book} et indépendamment de tout bloc
+@code{\bookpart} ou @code{\score} qu'il pourrait contenir.
+
+@item
+Au sein d'un bloc @code{\bookpart}, mais en dehors de tout bloc
+@code{\score}.
+
+@end itemize
+
+Un bloc @code{\paper} ne doit donc en aucun cas prendre place au sein
+d'un bloc @code{\score}.
+
+Les valeurs des différents champs seront filtrées en respectant cette
+hiérarchie ; les valeuers définies le plus haut persisteront à moins
+d'être remplacées à un niveau hiérarchique inférieur.
+
+Plusieurs blocs @code{\paper} peuvent cohabiter à un même niveau,
+notamment en raison de la présence d'inclusion de fichiers. Dans une
+telle éventualité, les champs sont regroupés par niveau, la dernière
+valeur rencontrée ayant préséance en cas de doublon.
+
+Peuvent apparaître dans un bloc @code{\paper} :
@itemize
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}.
@translationof Setting the paper size
LilyPond génère par défaut, et en l'absence de mention explicite d'un
-format de papier, 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} :
+format de papier particulier, un fichier imprimable au format A4.
+Vous pouvez cependant utiliser un autre format à l'aide des deux
+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
Différents formats de papier sont définis dans le fichier
@file{scm/paper.scm}. Bien que vous puissiez y ajouter votre propre
format, sachez cependant que celui-ci est écrasé à chaque mise à jour de
-LilyPond.
+LilyPond. Les différents formats disponibles sont répertoriés à
+l'annexe @ref{Formats de papier prédéfinis}.
@c An appendix entry exists for paper sizes but is not auto-generated
#(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 @code{\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 @code{\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 @code{\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
@menu
* Variables de marge et de largeur::
-* Variables spécifiques pour l'impression recto-verso::
+* Variables spécifiques à l'impression recto-verso::
* Variables d'indentation et de décalage::
@end menu
@node Variables de marge et de largeur
@unnumberedsubsubsec Variables de marge et de largeur
-@translationof @code{\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
Lorsqu'elle est activée, cette variable permet de ne pas étendre le
dernier système de façon à occuper toute la longueur de la ligne. La
-valeur par défaut est @code{#f}. Cette variable peut aussi
-se gérer au sein d'un bloc @code{\layout}.
+valeur par défaut est @code{#f}. Cette variable peut aussi se
+gérer au sein d'un bloc @code{\layout}.
@end table
marges gauche et droite.
-@node Variables spécifiques pour l'impression recto-verso
-@unnumberedsubsubsec Variables spécifiques pour l'impression recto-verso
-@translationof @code{\paper} variables for two-sided mode
+@node Variables spécifiques à l'impression recto-verso
+@unnumberedsubsubsec Variables spécifiques à l'impression recto-verso
+@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 @code{\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}.
Tous les systèmes, ainsi que les titres et séparateurs de systèmes,
seront poussés d'autant vers la droite. La valeur par défaut est
-de @code{0.0}.
+de @code{0.0\mm}.
@item indent
@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 affecterez 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 @code{\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 @code{\paper} variables for line breaking
-
-@c TODO: Mention that ly:optimal-breaking is on by default? -mp
+@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 @code{\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}.
@table @code
-@item blank-after-score-page-penalty
-@funindex blank-after-score-page-penalty
-
-Pénalité pour apparition d'une page blanche entre deux partitions. Sa
-valeur est par défaut inférieure à celle de
-@code{blank-page-penalty} ; nous préférons qu'une page blanche
-s'insère après la fin de la partition plutôt qu'au milieu.
-
-@item blank-last-page-penalty
-@funindex blank-last-page-penalty
-
-Pénalité pour fin de partition intervenant sur une page impaire. La
-valeur par défaut est de @code{0}.
-
-@item blank-page-penalty
-@funindex blank-page-penalty
-
-Pénalité pour apparition d'une page blanche en cours de partition.
-L'algorithme @code{ly:optimal-breaking} n'en tiendra pas compte
-puisqu'il ne conçoit pas la présence d'une page blanche au milieu d'une
-partition. La valeur par défaut est de @code{5}.
-
@item page-breaking
@funindex page-breaking
L'algorithme de calcul des sauts de page à utiliser. Vous avez le choix
-entre @code{ly:minimal-breaking}, @code{ly:page-turn-breaking} et
-@code{ly:optimal-breaking}.
+entre @code{ly:minimal-breaking}, @code{ly:page-turn-breaking},
+@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},
@end table
+Les variables qui suivent ne sont effectives que lorsque
+l'algorithme @code{page-breaking} adopte la fonction
+@code{ly:page-turn-breaking}. Les sauts de page sont alors
+positionnés de sorte à minimiser le nombre de tournes. Dans la
+mesure où il faut tourner la feuille pour passer d'une page
+impaire à une page paire, sera privilégiée une répartition qui
+présente une dernière page impaire. Les endroits où une tourne
+serait appropriée peuvent s'indiquer à l'aide d'un
+@code{\allowPageTurn} ou laissés à l'appréciation du
+@code{Page_turn_engraver} -- voir @ref{Optimisation des tournes}.
+
+Lorsqu'aucune option n'est satisfaisante pour placer
+judicieusement les tournes, LilyPond peut décider d'insérer une
+page blanche au milieu d'une partition ou entre deux partitions
+successives, voire même finir par une page paire. La valeur des
+trois variables qui suivent peut se voir augmentée de façon à
+diminuer ces risques.
+
+Il s'agit ici de pénalité ; autrement dit, au plus la valeur est
+élevée, au moins l'action associée sera favorisée en regard des
+autres choix.
+
+@table @code
+
+@item blank-page-penalty
+@funindex blank-page-penalty
+
+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
+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}.
+
+@item blank-last-page-penalty
+@funindex blank-last-page-penalty
+
+Pénalité pour fin de partition intervenant sur une page paire.
+L'attribution d'une valeur élevée à @code{blank-last-page-penalty}
+alors qu'a été activé @code{ly:page-turn-breaking} forcera
+LilyPond à éviter de terminer la partition sur une page paire,
+quitte à ajuster les espacements jusqu'à obtenir une page de plus
+ou une de moins. La valeur par défaut est de @code{0}.
+
+@item blank-after-score-page-penalty
+@funindex blank-after-score-page-penalty
+
+Pénalité pour apparition d'une page blanche entre deux partitions. Sa
+valeur est par défaut inférieure à celle de
+@code{blank-page-penalty} ; nous préférons qu'une page blanche
+s'insère après la fin de la partition plutôt qu'au milieu. La
+valeur par défaut est de @code{2}.
+
+@end table
+
@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 @code{\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}.
+Les valeurs par défaut sont définies dans le
+fichier @file{ly/paper-defaults-init.ly}.
@table @code
+@cindex pages, numérotation automatique
@item auto-first-page-number
@funindex auto-first-page-number
par un éventuel incrément de un. La valeur par défaut
est @code{#f}.
+@cindex pages, numéro de la première
@item first-page-number
@funindex first-page-number
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 @code{\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 @code{\layout} block
+@node Le bloc layout
+@subsection Le bloc @code{@bs{}layout}
+@translationof The layout block
@funindex \layout
Alors que le bloc @code{\paper} définit le formatage des pages pour
-l'intégralité du document, le bloc @code{\layout} s'occupe de la mise en
+l'intégralité du document, le bloc @code{\layout} gère la mise en
forme spécifique à la partition. La mise en forme de la musique peut
concerner toutes les partitions d'un même ouvrage, auquel cas un bloc
@code{\layout} indépendant se placera en tête de fichier. Dans le cas
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
@end example
qui contient une configuration de @code{\layout} avec
-l'adaptation @code{NoteHead #'font-size}, cette combinaison n'est pas
+l'adaptation @code{NoteHead.font-size}, cette combinaison n'est pas
enregistrée en tant que configuration courante. Notez bien que la
« configuration courante » est lue lorsque la variable est définie, non
lorsqu'elle est utilisée ; par voie de conséquence, le contenu de la
@}
@end example
-Un bloc @code{\layout} qui contient une variable comme ci-dessus, ne
+Un bloc @code{\layout} qui contient une variable comme ci-dessus ne
recopie pas la configuration actuelle ; il utilise en fait le contenu de
@code{layoutVariable} en tant que configuration de base pour les
adaptations ultérieures, en conséquence de quoi toute modification
ci-dessus, le bloc @code{\layout} final contiendra donc :
@example
- TextScript #'padding = #1
- TextScript #'color = #magenta
- Glissando #'thickness = #1.5
- NoteHead #'font-size = #4
- NoteHead #'color = #red
+ TextScript.padding = #1
+ TextScript.color = #magenta
+ Glissando.thickness = #1.5
+ NoteHead.font-size = #4
+ NoteHead.color = #red
@end example
ainsi que les adaptations de @code{indent} et @code{StaffGrouper}.
@code{\layout}, la configuration actuelle ne contiendrait que
@example
- NoteHead #' font-size= #4 % (écrit dans la définition de la variable)
- NoteHead #' color = #red % (ajouté après l'utilisation de la variable)
+ NoteHead.font-size= #4 % (écrit dans la définition de la variable)
+ NoteHead.color = #red % (ajouté après l'utilisation de la variable)
@end example
Une gestion attentive des variables de @code{\layout} se révèle être un
@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. \times 2/3 { 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
a4 b c d |
R1 | % une tourne peut se placer ici
a4 b c d |
- \set Staff.minimumPageTurnLength = #(ly:make-moment 5 2)
+ \set Staff.minimumPageTurnLength = #(ly:make-moment 5/2)
R1 | % il ne peut pas y avoir de tourne ici
a4 b r2 |
R1*2 | % une tourne peut se placer ici
@endpredefined
@seealso
+Manuel de notation :
+@ref{Variables de gestion des sauts de ligne}.
+
Morceaux choisis :
@rlsrnamed{Spacing,Espacements}.
@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
-}
-
-musique = \relative c'' { c8 c c c }
-
-\score {
- \new Staff {
- \repeat unfold 2 { \musique } \break
- \repeat unfold 4 { \musique } \break
- \repeat unfold 6 { \musique } \break
- \repeat unfold 8 { \musique } \pageBreak
- \repeat unfold 8 { \musique } \break
- \repeat unfold 6 { \musique } \break
- \repeat unfold 4 { \musique } \break
- \repeat unfold 2 { \musique }
- }
- \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 }
-
-\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 }
-
-\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 . 35))
- s1 * 3 \break
-
- \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 70))
- s1 * 6 \break
-
- \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 105))
- 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
@cindex espacement vertical
L'espacement vertical dépend de trois éléments : la surface
-disponible -- par exemple format de papier et marges --, l'espace qui
-doit séparer les systèmes, et l'espace qui sépare les portées d'un même
+disponible -- format de papier et marges --, l'espace qui doit
+séparer les systèmes, et l'espace qui sépare les portées d'un même
système.
@menu
@unnumberedsubsubsec Propriétés d'espacement au sein d'un système
@translationof Within-system spacing properties
+@funindex staff-affinity
+@funindex staffgroup-staff-spacing
+@funindex staff-staff-spacing
+@funindex nonstaff-unrelatedstaff-spacing
+@funindex nonstaff-relatedstaff-spacing
+@funindex nonstaff-nonstaff-spacing
+@funindex default-staff-staff-spacing
+@funindex minimum-Y-extent
+@funindex extra-offset
+@funindex self-alignment-X
+@funindex X-offset
+@funindex VerticalAxisGroup
+
L'espacement entre les portées est géré par deux jeux de propriétés
d'objet graphique (@emph{grob}). Le premier, associé à l'objet
graphique @code{VerticalAxisGroup}, est créé pour toute ligne de portée
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
+%% 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
@example
\new Staff \with @{
- \override VerticalAxisGroup.staff-staff-spacing.basic-distance = #10
+ \override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
@} @{ @dots{} @}
\new Staff \with @{
- \override VerticalAxisGroup.staff-staff-spacing =
+ \override VerticalAxisGroup.default-staff-staff-spacing =
#'(('basic-distance . 10)
(minimum-distance . 9)
(padding . 1)
\layout @{
\context @{
\Staff
- \override VerticalAxisGroup.staff-staff-spacing.basic-distance = #10
+ \override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
@}
@}
@end example
@table @code
@item staff-staff-spacing
Il s'agit de la distance entre la portée en cours et la portée qui suit
-au sein du même regroupement, qu'il y ait ou non une ligne de non-portée
+au sein du même regroupement, qu'il y ait ou des lignes de non-portée
(@code{Lyrics} ou autre) entre les deux. Cette propriété ne s'applique
pas à la dernière portée d'un système.
adjacentes . Si vous lui attribuez @code{CENTER}, cette ligne de
non-portée ira se placer à équidistance entre les portées qui
l'encadrent, tout en tenant compte des éventuels risques de collision et
-des autres contraintes d'espacement. Des lignes de non-portée
+autres contraintes d'espacement. Des lignes de non-portée
adjacentes devraient avoir une @code{staff-affinity} allant de haut en
bas -- autrement dit, pas de @code{UP} après un @code{DOWN}.
Une ligne de non-portée en dessous d'un système devrait avoir sa
portée ; à l'inverse, utiliser la propriété @code{staff-affinity}
pour une portée lui fera perdre cette qualité.
-@c TODO: verify last clause below ("even if other...")
-
@item nonstaff-relatedstaff-spacing
Il s'agit de la distance entre la ligne de non-portée en cours et la
portée la plus proche selon la @code{staff-affinity}, à la double
la valeur de @code{staff-affinity} est égale à @code{CENTER}, la valeur
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é).
+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 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
@end table
@seealso
+Manuel de notation :
+@ref{Modification de listes associatives},
+@ref{Variables d'espacement vertical fluctuant}.
+
Fichiers d'initialisation :
@file{ly/engraver-init.ly},
@file{scm/define-grobs.scm}.
@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 :
et systèmes distribués sur une page.
Une autre approche de l'espacement vertical est le recours à
-@code{NonMusicalPaperColumn #'line-break-system-details}. Alors que
+@code{NonMusicalPaperColumn.line-break-system-details}. Alors que
@code{VerticalAxisGroup} et @code{\paper} gèrent un décalage vertical,
-@code{NonMusicalPaperColumn #'line-break-system-details} spécifiera le
+@code{NonMusicalPaperColumn.line-break-system-details} spécifiera le
positionnement vertical absolu sur la page.
-@code{NonMusicalPaperColumn #'line-break-system-details} prend en charge
+@code{NonMusicalPaperColumn.line-break-system-details} prend en charge
une liste associative de trois mises au point :
@itemize
Le réglage de @code{NonMusicalPaperColumn} s'effectue à l'aide d'une
simple commande @code{\override} au sein d'un bloc @code{\context} ou
-@code{\with}. Dans le cas ou il est stipulé au fil des notes, c'est la
+@code{\with}. Dans le cas où il est stipulé au fil des notes, c'est la
commande spécifique @code{\overrideProperty} qui doit intervenir. Voici
quelques exemples de réglages de @code{NonMusicalPaperColumn} à l'aide
de la commande @code{\overrideProperty} :
@example
-\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20))
+\overrideProperty NonMusicalPaperColumn.line-break-system-details
+ #'((X-offset . 20))
-\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40))
+\overrideProperty NonMusicalPaperColumn.line-break-system-details
+ #'((Y-offset . 40))
-\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)
- (Y-offset . 40))
+\overrideProperty NonMusicalPaperColumn.line-break-system-details
+ #'((X-offset . 20)
+ (Y-offset . 40))
-\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((alignment-distances . (15)))
+\overrideProperty NonMusicalPaperColumn.line-break-system-details
+ #'((alignment-distances . (15)))
-\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)
- (Y-offset . 40)
- (alignment-distances . (15)))
+\overrideProperty NonMusicalPaperColumn.line-break-system-details
+ #'((X-offset . 20)
+ (Y-offset . 40)
+ (alignment-distances . (15)))
@end example
Nous allons maintenant voir ces différents réglages en action.
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 cinq
+Les @code{\break} explicites répartissent la musique en lignes de six
mesures chacune. L'espacement vertical est celui que LilyPond attribue
par défaut. Nous pouvons, afin de fixer explicitement le point
d'attache vertical de chacun des systèmes, définir un doublet
<<
\new Staff <<
\new Voice {
- \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0))
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
+ #'((Y-offset . 0))
s1*5 \break
- \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40))
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
+ #'((Y-offset . 40))
s1*5 \break
- \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 80))
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
+ #'((Y-offset . 60))
s1*5 \break
}
\new Voice { \repeat unfold 15 { c'4 c' c' c' } }
<<
\new Staff <<
\new Voice {
- \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 20)
- (alignment-distances . (15)))
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
+ #'((Y-offset . 20)
+ (alignment-distances . (10)))
s1*5 \break
- \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)
- (alignment-distances . (15)))
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
+ #'((Y-offset . 60)
+ (alignment-distances . (15)))
s1*5 \break
- \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100)
- (alignment-distances . (15)))
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
+ #'((Y-offset . 85)
+ (alignment-distances . (20)))
s1*5 \break
}
\new Voice { \repeat unfold 15 { c'4 c' c' c' } }
<<
\new Staff <<
\new Voice {
- \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0)
- (alignment-distances . (30 10)))
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
+ #'((Y-offset . 0)
+ (alignment-distances . (30 10)))
s1*5 \break
- \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)
- (alignment-distances . (10 10)))
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
+ #'((Y-offset . 60)
+ (alignment-distances . (10 10)))
s1*5 \break
- \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100)
- (alignment-distances . (10 30)))
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
+ #'((Y-offset . 100)
+ (alignment-distances . (10 30)))
s1*5 \break
}
\new Voice { \repeat unfold 15 { c'4 c' c' c' } }
les portées et paroles, des valeurs négatives les descendent.
@item
-Dans la mesure où @code{NonMusicalPaperColumn #'line-break-system-details}
+Dans la mesure où @code{NonMusicalPaperColumn.line-break-system-details}
permet de positionner systèmes et portées n'importe où sur une page,
vous pourriez être en contradiction avec les dimensionnements de la
feuille ou bien aboutir à des surimpressions. Soyez donc raisonnable
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
évitant les collisions horizontales avec des objets précédemment
positionnés. Ceci peut cependant générer des situations où des objets
-se trouvent horizontalement trop proches. L'espacement vertical entre
-les portées peut dans une certaine mesure permettre de mieux intercaler
-les objets extérieurs à la portée. La propriété
-@code{outside-staff-horizontal-padding} repoussera verticalement un
-objet pour éviter ce genre de situation.
-
-@lilypond[quote,ragged-right,relative=2,verbatim]
-% the markup is too close to the following note
-c4^"Text"
-c4
-c''2
-% setting outside-staff-horizontal-padding fixes this
-R1
-\once \override TextScript.outside-staff-horizontal-padding = #1
-c,,4^"Text"
-c4
-c''2
+se trouvent horizontalement trop proches. Comme l'illustre l'exemple
+suivant, la propriété @code{outside-staff-horizontal-padding} permet
+d'accroître l'espace horizontal requis et repoussera verticalement un
+objet pour éviter qu'il ne soit trop proche d'ventuelles lignes
+supplémentaires.
+
+@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
-c8 c4 c4 c4
+@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 c8 c4 c4 c4
+@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
-@rinternals{StaffSpacing}, généré au niveau d'un contexte @code{Staff},
+@code{StaffSpacing}, généré au niveau d'un contexte @rinternals{Staff},
possède une même propriété qui contrôlera l'espacement hampe-barre de
mesure. L'exemple suivant montre ces adaptations, tout d'abord selon
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
-Morceaux choisis :
-@rlsrnamed{Spacing,Espacements}.
-
Essai sur la gravure musicale automatisée :
@ressay{Espacement}.
+Morceaux choisis :
+@rlsrnamed{Spacing,Espacements}.
+
Référence des propriétés internes :
@rinternals{SpacingSpanner},
@rinternals{NoteSpacing},
@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.
+
@example
\override Score.NonMusicalPaperColumn.padding = #10
@end example
@subsection Changement d'espacement en cours de partition
@translationof New spacing area
+@cindex espacement, modification en cours de partition
+@cindex notes, espacement horizontal
+@funindex \newSpacingSection
+
Il arrive, au cours d'un même mouvement, qu'une nouvelle partie modifie
substantiellement la notion de valeur brève et valeur longue. La
commande @code{newSpacingSection} permet alors de réinitialiser les
Dans l'exemple qui suit, le changement de métrique marque le début
d'une nouvelle partie ; remarquez comme les doubles-croches sont
-alors plus espacées :
+alors automatiquent un peu plus espacées :
@lilypond[relative,verbatim,quote]
\time 2/4
@end lilypond
La commande @code{\newSpacingSection} crée un nouvel objet
-@code{SpacingSpanner}, ce qui permet d'appliquer de nouveaux
-@code{\override}s à partir de ce point.
+@code{SpacingSpanner} à cet instant musical. Si toutefois les
+ajustements apportés à l'espacement automatique ne se révélent pas
+satisfaisants, ils peuvent s'adapter à l'aide d'@code{\override}s. Ces
+amendements doivent intervenir au même moment que la commande
+@code{\newSpacingSection} ; ils produiront leurs effets jusqu'à ce
+qu'ils soient à nouveau modifiés par une nouvelle section, comme ici :
+
+@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
Morceaux choisis :
@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 |
\layout {
\context {
\Score
- \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1 16)
+ \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/16)
}
}
}
@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.). @w{@code{Score.SpacingSpanner #'uniform-stretching}}
-permet d'ignorer ces symboles et, par voie de conséquence, forcer
+clef, etc.). @code{Score.SpacingSpanner.uniform-stretching}
+permet d'ignorer ces symboles et, par voie de conséquence, de forcer
l'espacement sur la simple durée. Notez bien que cette propriété
s'appliquera à toute la partition, puisque mentionnée au sein d'un bloc
@code{\layout}.
\score {
<<
\new Staff {
- \times 4/5 {
- c8 c8 c8 c8 c8
- }
- c8 c8 c8 c8
+ \tuplet 5/4 { c8 c8 c8 c8 c8 } c8 c8 c8 c8
}
\new Staff {
- c8 c8 c8 c8
- \times 4/5 {
- c8 c8 c8 c8 c8
- }
+ c8 c8 c8 c8 \tuplet 5/4 { c8 c8 c8 c8 c8 }
}
>>
\layout {
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[ c32] }
+\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
@c Setting indent in \paper block makes not much sense, but it works.
@c Bit verbose and vague, use examples?
-Deux réglages de bases ont une influence considérable sur
+Deux réglages de base ont une influence considérable sur
l'espacement : @code{line-width} et @code{indent}. Tous deux se
placent dans le bloc @code{\layout}. Ils contrôleront la longueur des
lignes et l'indentation de la première.
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'16 c'16 c'16
- \times 4/5 {
- c'16 c'16 c'16 c'16 c'16
- }
+ c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
}
>>
}
n'en occupent pas la moitié de l'espace horizontal.
En matière de gravure traditionnelle, cet espacement correspond tout à
-fait à nos attentes, puisque nous pouvons rogner l'espace sur la
+fait à nos attentes, puisque nous pouvons rogner de l'espace sur la
blanche et ainsi gagner en largeur sur toute la mesure qui fait une
ronde.
\score {
<<
\new RhythmicStaff {
- c'2
- c'16 c'16 c'16 c'16
- \times 4/5 {
- c'16 c'16 c'16 c'16 c'16
- }
+ c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
}
>>
\layout {
\context {
\Score
- proportionalNotationDuration = #(ly:make-moment 1 20)
+ proportionalNotationDuration = #(ly:make-moment 1/20)
}
}
}
représentent une fraction de ronde. L'appel de
@w{@code{(ly:make-moment 1 20)}} produit donc une durée de référence
égale à un vingtième de ronde. Vous pourriez tout aussi bien utiliser
-@code{(ly:make-moment 1 16)}, @code{(ly:make-moment 1 8)} ou
-@code{(ly:make-moment 3 97)}.
+@code{(ly:make-moment 1/16)}, @code{(ly:make-moment 1/8)} ou
+@code{(ly:make-moment 3/97)}.
Se pose alors le problème de fournir la juste durée de référence à
@code{proportionalNotationDuration}. Il faut en l'occurrence procéder par
\score {
<<
\new RhythmicStaff {
- c'2
- c'16 c'16 c'16 c'16
- \times 4/5 {
- c'16 c'16 c'16 c'16 c'16
- }
+ c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
}
>>
\layout {
\context {
\Score
- proportionalNotationDuration = #(ly:make-moment 1 8)
+ proportionalNotationDuration = #(ly:make-moment 1/8)
}
}
}
\score {
<<
\new RhythmicStaff {
- c'2
- c'16 c'16 c'16 c'16
- \times 4/5 {
- c'16 c'16 c'16 c'16 c'16
- }
+ c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
}
>>
\layout {
\context {
\Score
- proportionalNotationDuration = #(ly:make-moment 1 16)
+ proportionalNotationDuration = #(ly:make-moment 1/16)
}
}
}
\score {
<<
\new RhythmicStaff {
- c'2
- c'16 c'16 c'16 c'16
- \times 4/5 {
- c'16 c'16 c'16 c'16 c'16
- }
+ c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
}
>>
\layout {
\context {
\Score
- proportionalNotationDuration = #(ly:make-moment 1 32)
+ proportionalNotationDuration = #(ly:make-moment 1/32)
}
}
}
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'16 c'16 c'16
- \times 4/5 {
- c'16 c'16 c'16 c'16 c'16
- }
+ c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
}
\new RhythmicStaff {
- \times 8/9 {
- c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
- }
+ \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'16 c'16 c'16
- \times 4/5 {
- c'16 c'16 c'16 c'16 c'16
- }
+ c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
}
\new RhythmicStaff {
- \times 8/9 {
- c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
- }
+ \tuplet 9/8 { c8 8 8 8 8 8 8 8 8 }
}
>>
\layout {
\context {
\Score
- proportionalNotationDuration = #(ly:make-moment 1 20)
+ proportionalNotationDuration = #(ly:make-moment 1/20)
}
}
}
\score {
<<
\new RhythmicStaff {
- c'2
- c'16 c'16 c'16 c'16
- \times 4/5 {
- c'16 c'16 c'16 c'16 c'16
- }
+ c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
}
\new RhythmicStaff {
- \times 8/9 {
- c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
- }
+ \tuplet 9/8 { c8 8 8 8 8 8 8 8 8 }
}
>>
\layout {
\context {
\Score
- proportionalNotationDuration = #(ly:make-moment 1 20)
+ proportionalNotationDuration = #(ly:make-moment 1/20)
\override SpacingSpanner.uniform-stretching = ##t
}
}
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]
}
@end lilypond
-Les éléments non musicaux tels que métrique, armure et clef, 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 approches permettent
-cependant de gérer ce problème.
+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 « 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 :
il suffit qu'il n'y en ait pas ! C'est bien souvent le cas en
@lilypond[quote,verbatim,ragged-right]
\new Staff {
- \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
- c''8
- c''8
- c''8
- \clef alto
- d'8
- d'2
+ \set Score.proportionalNotationDuration = #(ly:make-moment 1/16)
+ c''8 8 8 \clef alto d' 2
}
\new Staff {
- \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
+ \set Score.proportionalNotationDuration = #(ly:make-moment 1/16)
\override Score.SpacingSpanner.strict-note-spacing = ##t
- c''8
- c''8
- c''8
- \clef alto
- d'8
- d'2
+ c''8 8 8 \clef alto d' 2
}
@end lilypond
@itemize
@item @code{\override SpacingSpanner.strict-grace-spacing = ##t}
-@item @code{tupletFullLength = ##t}
+@item @code{\set tupletFullLength = ##t}
@item @code{\override Beam.breakable = ##t}
@item @code{\override Glissando.breakable = ##t}
@item @code{\override TextSpanner.breakable = ##t}
@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.
@translationof Fitting music onto fewer pages
Vous pourriez un jour être confronté au problème suivant : l'une
-des pages de votre partition ne comporte que deux portées alors que --
-ce qui est d'autant plus frustrant -- l'espace libre sur les autres
+des pages de votre partition ne comporte que deux portées alors que,
+ce qui est d'autant plus frustrant, l'espace libre sur les autres
pages aurait permis une distribution différente.
L'instruction @code{annotate-spacing} se révèle être un outil
@subsection Mise en évidence de l'espacement
@translationof Displaying spacing
-@funindex annotate-spacing
@cindex espacement, affichage des valeurs
+@funindex annotate-spacing
Le meilleur moyen d'appréhender les différentes variables de
dimensionnement vertical sur lesquelles vous pouvez jouer au niveau de
la mise en page consiste à activer, au sein du bloc @code{\paper}, la
fonction @code{annotate-spacing} :
-@c need to have \book{} otherwise we get the separate systems. -hwn
-@lilypond[verbatim,quote]
-#(set-default-paper-size "a6" 'landscape)
+@lilypond[verbatim,quote,papersize=a6landscape]
\book {
\score { { c4 } }
\paper { annotate-spacing = ##t }
(@code{staff-spaces}) et la taille de portée (@code{staff-size}) de
20 points -- sa valeur par défaut. Notez que :
-@multitable {1 staff-space} {staff-size)/4 * (25,4/72,27) mm}
+@multitable {1 staff-space} {(staff-size)/4 * (25,4/72,27) mm}
@item 1 point
@tab = (25,4/72,27) mm
@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és de la portée :
-
-@lilypond[verbatim,quote,relative=1]
-e4 c g\f c
-e4 c g-\tweak X-offset #-2.7 -\tweak Y-offset #2.5 \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 |
\layout {
\context {
\Score
- \override SpacingSpanner.common-shortest-duration = #(ly:make-moment 1 2)
+ \override SpacingSpanner.common-shortest-duration =
+ #(ly:make-moment 1/2)
}
}
}