@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
-
@ignore
- Translation of GIT committish: 44f8873e8cb9533ddb6713c5e79fe2edb59524c7
+ Translation of GIT committish: 952705bbbb000581a13836e6a733df04511e93c5
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
@end example
Ils peuvent s'utiliser partout où vous pouvez écrire du code Scheme.
Le lecteur Scheme est en fait quelque peu adapté pour accepter des blocs
-de code LilyPond@tie{}; il est capable de traiter des expressions Scheme
-intégrées débutant par @code{$} ou@tie{}@code{#}.
+de code LilyPond ; il est capable de traiter des expressions Scheme
+intégrées débutant par @code{$} ou @code{#}.
Le lecteur Scheme extrait le bloc de code LilyPond et déclenche un appel
à l'analyseur grammatical de LilyPond (le @code{parser}) qui réalise en
@funindex define-scheme-function
-D'une manière générale, une fonction Scheme se définit ainsi@tie{}:
+D'une manière générale, une fonction Scheme se définit ainsi :
@example
fonction =
argument optionnels. En l'absence d'argument réel au moment de l'appel
de la fonction, c'est la valeur par défaut qui lui sera substituée. Les
valeurs par défaut sont évaluées dès l'apparition de la définition, y
-compris dans le cas de blocs de code LilyPond@tie{}; vous devrez donc,
+compris dans le cas de blocs de code LilyPond ; vous devrez donc,
si ces valeurs par défaut ne peuvent être déterminées que plus tard,
mentionner une valeur spéciale que vous reconnaîtrez facilement.
Lorsque vous mentionnez un prédicat entre parenthèses sans toutefois
fournir sa valeur par défaut, celle-ci sera considérée comme étant
@code{#f}. Les valeurs par défaut d'un @code{prédicat?} ne sont
-vérifiées ni au moment de la définition, ni à l'exécution@tie{}; il est
+vérifiées ni au moment de la définition, ni à l'exécution ; il est
de votre ressort de gérer les valeurs que vous spécifiez. Une valeur
par défaut constituée d'une expression musicale est recopiée dès la
définition de @code{origin} vers le paramètre @code{location}.
@tab une séquence de formules Scheme évaluées dans l'ordre, la dernière
servant de valeur de retour de la fonction. Il peut contenir des blocs
de code LilyPond, enchâssés dans des accolades et @emph{hashes} --
-@w{@code{#@{@dots{}#@}}}@tie{} -- comme indiqué à la rubrique
+@w{@code{#@{@dots{}#@}}} -- comme indiqué à la rubrique
@ref{Blocs de code LilyPond}. Au sein d'un bloc de code LilyPond, un
@code{#} permet de référencer des arguments de la fonction -- tel
@samp{#arg1} -- ou d'ouvrir une expression Scheme contenant les
certaines formes musicales devraient être bornées par des accolades pour
que LilyPond puisse les reconnaître efficacement. Il existe d'autres
situations pour lesquelles LilyPond lèvera toute ambiguïté grâce aux
-fonctions de prédicat@tie{}: un @samp{-3} est-il un @emph{postévénement}
-de type doigté ou un nombre négatif@tie{}? Un @code{"a"@tie{}4} en mode
+fonctions de prédicat : un @samp{-3} est-il un @emph{postévénement}
+de type doigté ou un nombre négatif@tie{}? Un @code{"a" 4} en mode
paroles est-il une chaîne suivie d'un nombre ou bien un événement
-syllabe de durée @code{4}@tie{}? LilyPond répondra à ces questions
+syllabe de durée @code{4} ? LilyPond répondra à ces questions
après consultation du prédicat. Pour toutes ces raisons, nous vous
enjoignons à éviter d'utiliser des prédicats permissifs tel que
@code{scheme?}, dès que vous voulez les utiliser dans un but particulier
fait pas considérés comme optionnels, sauf à être suivis d'un argument
obligatoire.
-Une exception cependant à cette règle@tie{}: le fait de donner un
+Une exception cependant à cette règle : le fait de donner un
@code{\default} en tant qu'argument optionnel aura pour résultat que cet
argument et tous les autres arguments optionnels qui suivent seront
ignorés et remplacés par leur valeur par défaut. Il en va de même
Il arrive qu'une procédure soit exécutée pour réaliser une action, non
pour renvoyer une valeur. Certains langages de programmation, tels
le C et Scheme, utilisent des fonctions dans les deux cas et se
-débarrassent tout bonnement de la valeur renvoyée@tie{}; en règle
+débarrassent tout bonnement de la valeur renvoyée ; en règle
générale, il suffit que l'expression fasse office de déclaration, et
-d'ignorer le résultat. C'est futé, mais pas sans risque d'erreur@tie{}:
+d'ignorer le résultat. C'est futé, mais pas sans risque d'erreur :
la plupart des compilateurs C actuels déclenchent un avertissement si
l'on se débarrasse de certaines expressions non @emph{void}. Pour de
nombreuses fonctions réalisant une action, les standards Scheme
L'utilisation d'un préfixe @code{\void} permet ainsi d'évaluer une
expression pour ses effets annexes sans interprétation d'une quelconque
-valeur de retour@tie{}:
+valeur de retour :
@example
\void #(hashq-set! une-table une-clé une-valeur)
@cindex musicale, fonction
Les @emph{fonctions musicales} sont des procédures Scheme capables de
-créer automatiquement des expressions musicales@tie{}; elles permettent
+créer automatiquement des expressions musicales ; elles permettent
de grandement simplifier un fichier source.
@menu
@funindex define-music-function
-Une fonction musicale se définit ainsi@tie{}:
+Une fonction musicale se définit ainsi :
@example
fonction =
@item
En tant que post-événement, explicitement introduit par un indicateur de
-positionnement -- à savoir @code{-}, @code{^}, @w{ou @code{_}}. Notez
+positionnement -- à savoir @code{-}, @code{^}, ou@tie{}@code{_}. Notez
bien que le renvoi d'un post-événement est valide lorsque la fonction
-musicale est appelée comme de la musique normale@tie{}; ceci amène à un
+musicale est appelée comme de la musique normale ; ceci amène à un
résultat ressemblant à
@example
s 1*0-\fonction
cellule}.
Cette paire peut se mentionner directement dans la fonction musicale à
-l'aide d'une variable @code{pair?}@tie{}:
+l'aide d'une variable @code{pair?} :
@example
manualBeam =
@end example
Autre manière de procéder, les nombres formant la paire sont transmis
-comme arguments séparés@tie{}; le code Scheme chargé de créer la paire
-pourra alors être inclus dans l'expression musicale@tie{}:
+comme arguments séparés ; le code Scheme chargé de créer la paire
+pourra alors être inclus dans l'expression musicale :
@lilypond[quote,verbatim,ragged-right]
manualBeam =
@noindent
Cette fonction pourrait tout à fait être réécrite de telle sorte qu'elle
-s'applique à une expression musicale@tie{}:
+s'applique à une expression musicale :
@lilypond[quote,verbatim,ragged-right]
withAlt =
\override Stem #'length = #(* 7.0 mag)
\override NoteHead #'font-size =
#(inexact->exact (* (/ 6.0 (log 2.0)) (log mag)))
- $music
+ #music
\revert Stem #'length
\revert NoteHead #'font-size
#})
@translationof Functions without arguments
Dans la plupart des cas, une fonction dépourvue d'argument devrait
-être créée à l'aide d'une variable@tie{}:
+être créée à l'aide d'une variable :
@example
dolce = \markup@{ \italic \bold dolce @}
Une fonction musicale doit renvoyer une expression musicale. Toutefois,
une fonction musicale peut n'être exécutée que dans le but d'en retenir
-les effets annexes@tie{}; vous devrez alors utiliser une procédure
+les effets annexes ; vous devrez alors utiliser une procédure
@code{define-void-function}. Il peut cependant arriver que vous ayez
besoin d'une fonction qui, selon le cas, produise ou non (comme dans
l'exemple de la rubrique précédente) une expression musicale.
-L'utilisation d'un @code{#@{@tie{}#@}} vous permettra de renvoyer une
+L'utilisation d'un @code{#@{ #@}} vous permettra de renvoyer une
expression musicale @code{void}.
lorsque vous voulez écrire une commande de nuance, instruction qui
ne comporte habituellement pas d'indicateur de positionnement, comme
dans @code{c'\pp}. Voici de quoi vous permettre de mentionner n'importe
-quelle nuance@tie{}:
+quelle nuance :
@lilypond[quote,verbatim,ragged-right]
dyn=#(define-event-function (parser location arg) (markup?)
Vous pourriez obtenir le même résultat avec une fonction musicale, à
ceci près que chaque appel à la fonction devra être précédé d'un
-indicateur de positionnement, comme @code{c-\dyn@tie{}pfsss}.
+indicateur de positionnement, comme @code{c-\dyn pfsss}.
@node Fonctions pour markups
@noindent
n'est pas valide. Il vaut mieux, en pareil cas, utiliser les fonctions
@code{make-line-markup}, @code{make-center-markup} ou
-@code{make-column-markup}@tie{}:
+@code{make-column-markup} :
@lisp
(markup (make-line-markup (fonction-qui-retourne-des-markups)))
@end example
Lorsque ce @emph{markup} est converti en objets imprimables (stencils),
-la fonction @code{raise-markup} est appelée ainsi@tie{}:
+la fonction @code{raise-markup} est appelée ainsi :
@example
(apply raise-markup
La fonction @code{raise-markup} commence par créer le stencil pour la
chaîne @code{text example}, puis remonte ce stencil d'un demi espace de
portée. Il s'agit là d'un exemple relativement simple, et nous en
-aborderons de plus complexes au fil des paragraphes suivants@tie{};
+aborderons de plus complexes au fil des paragraphes suivants ;
d'autres exemples se trouvent directement dans le fichier
@file{scm/define-markup-commands.scm}.
..corps de la commande..)
@end lisp
-Quelques commentaires sur les arguments@tie{}:
+Quelques commentaires sur les arguments :
@table @code
@item @var{nom-commande}
@code{props}, le mot-clé @code{#:properties} permet de spécifier ces
différentes propriétés ainsi que leur valeur par défaut.
-Les arguments se distinguent selon leur type@tie{}:
+Les arguments se distinguent selon leur type :
@itemize
@item un @emph{markup}, correspondant au type de prédicat
@code{markup?}@tie{};
la suite des arguments @code{layout} et @code{props}. Néanmoins, les
fonctions @emph{markup} qui ont en dernier argument un @emph{markup} ont
ceci de particulier qu'elles peuvent s'appliquer à des listes de
-@emph{markups}@tie{}; ceci résultera en une liste de @emph{markups} où
+@emph{markups} ; ceci résultera en une liste de @emph{markups} où
tous les éléments de la liste originelle se verront appliquer cette
fonction @emph{markup} avec ses arguments de tête.
Les arguments @code{layout} et @code{props} d'une commande de
@emph{markup} fournissent un contexte à l'interprétation du
-@emph{markup}@tie{}: taille de fonte, longueur de ligne etc.
+@emph{markup} : taille de fonte, longueur de ligne etc.
L'argument @code{layout} permet d'accéder aux propriétés définies dans
les blocs @code{\paper}, grâce à la fonction
L'argument @code{props} rend certaines propriétés accessibles aux
commandes de @emph{markup}. Il en va ainsi lors de l'interprétation
-d'un @emph{markup} de titre d'ouvrage@tie{}: toutes les variables
+d'un @emph{markup} de titre d'ouvrage : toutes les variables
définies dans le bloc @code{\header} sont automatiquement ajoutées aux
@code{props}, de telle sorte que le @emph{markup} de titrage de
l'ouvrage pourra accéder aux différents champs titre, compositeur etc.
Ceci permet aussi de configurer le comportement d'une commande de
-@emph{markup}@tie{}: la taille des fontes, par exemple, est lue à
+@emph{markup} : la taille des fontes, par exemple, est lue à
partir de @code{props} plutôt que grâce à un argument @code{font-size}.
La fonction appelant une commande de @emph{markup} peut altérer la
valeur de la propriété taille des fontes et donc en modifier le
Dans un souci d'esthétique, nous aimerions que le texte et les
encadrements ne soient pas autant accolés. Selon la documentation de
@code{\box}, cette commande utilise la propriété @code{box-padding},
-fixée par défaut à@tie{}0,2. Cette même documentation nous indique
-aussi comment la modifier@tie{}:
+fixée par défaut à 0,2. Cette même documentation nous indique
+aussi comment la modifier :
@lilypond[quote,verbatim,ragged-right]
\markup \box \override #'(box-padding . 0.6) \box A
@end lilypond
-L'espacement des deux liserés est cependant toujours trop réduit@tie{};
-modifions le à son tour@tie{}:
+L'espacement des deux liserés est cependant toujours trop réduit ;
+modifions le à son tour :
@lilypond[quote,verbatim,ragged-right]
\markup \override #'(box-padding . 0.4) \box
"Dessine un double encadrement autour du texte."
(interpret-markup layout props
#@{\markup \override #'(box-padding . 0.4) \box
- \override #'(box-padding . 0.6) \box @{ $text @}#@}))
+ \override #'(box-padding . 0.6) \box @{ #text @}#@}))
@end lisp
ou bien son équivalent
transformation d'une expression @code{\markup} en expression Scheme est
des plus triviales.
-Notre commande personnalisée s'utilise ainsi@tie{}:
+Notre commande personnalisée s'utilise ainsi :
@example
\markup \double-box A
distinguer l'espacement entre les encadrements de l'espacement entre le
texte et ses encadrements. Nous allons donc introduire une propriété
supplémentaire, que nous appellerons @code{inter-box-padding}, chargée
-de gérer l'espacement des encadrements@tie{}; @code{box-padding} ne
+de gérer l'espacement des encadrements ; @code{box-padding} ne
servira alors que pour l'espacement intérieur. Voici le code adapté à
-ces évolutions@tie{}:
+ces évolutions :
@lisp
#(define-markup-command (double-box layout props text) (markup?)
(interpret-markup layout props
#@{\markup \override #`(box-padding . ,inter-box-padding) \box
\override #`(box-padding . ,box-padding) \box
- @{ $text @} #@}))
+ @{ #text @} #@}))
@end lisp
-Ainsi que son équivalent à partir de la macro @emph{markup}@tie{}:
+Ainsi que son équivalent à partir de la macro @emph{markup} :
@lisp
#(define-markup-command (double-box layout props text) (markup?)
Ces valeurs permettront alors d'adapter les propriétés de
@code{box-padding} utilisées par les deux commandes @code{\box}. Vous
aurez remarqué, dans l'argument @code{\override}, la présence de
-l'apostrophe inversée (@code{`}) et de la virgule@tie{}; elles vous
+l'apostrophe inversée (@code{`}) et de la virgule ; elles vous
permettent d'insérer une valeur variable au sein d'une expression
littérale.
(interpret-markup layout props
#{\markup \override #`(box-padding . ,inter-box-padding) \box
\override #`(box-padding . ,box-padding) \box
- { $text } #}))
+ { #text } #}))
\markup \double-box A
\markup \override #'(inter-box-padding . 0.8) \double-box A
Nous pourrions, par exemple, envisager d'adapter la commande
@code{\draw-line} pour dessiner plutôt une ligne double. Voici comment
est définie la commande @code{\draw-line}, expurgée de sa
-documentation@tie{}:
+documentation :
@lisp
(define-markup-command (draw-line layout props dest)
Avant de définir notre propre commande basée sur l'une de celles
fournies par LilyPond, commençons par en recopier la définition, puis
attribuons lui un autre nom. Le mot-clé @code{#:category} peut être
-supprimé sans risque@tie{}; il ne sert que lors de la génération de la
+supprimé sans risque ; il ne sert que lors de la génération de la
documentation et n'est d'aucune utilité pour une commande personnalisée.
@lisp
Nous ajoutons ensuite une propriété pour gérer l'écart entre les deux
lignes, que nous appelons @code{line-gap}, et lui attribuons une valeur
-par défaut de 6 dixièmes@tie{}:
+par défaut de 6 dixièmes :
@lisp
(define-markup-command (draw-double-line layout props dest)
Nous ajoutons enfin le code qui dessinera nos deux lignes. Deux appels
à @code{make-line-stencil} permettrons de dessiner les lignes dont nous
-regrouperons les stencils à l'aide de @code{ly:stencil-add}@tie{}:
+regrouperons les stencils à l'aide de @code{ly:stencil-add} :
@lilypond[quote,verbatim,ragged-right]
#(define-markup-command (my-draw-line layout props dest)
#(define-markup-list-command (paragraph layout props args) (markup-list?)
#:properties ((par-indent 2))
(interpret-markup-list layout props
- #@{\markuplist \justified-lines @{ \hspace #par-indent $args @} #@}))
+ #@{\markuplist \justified-lines @{ \hspace #par-indent #args @} #@}))
@end example
-La version purement Scheme est un peu plus complexe@tie{}:
+La version purement Scheme est un peu plus complexe :
@example
#(define-markup-list-command (paragraph layout props args) (markup-list?)
#:properties ((par-indent 2))
Pour commencer, la fonction récupère la taille de l'alinéa, propriété
ici dénommée @code{par-indent}, à partir de la liste de propriétés
@code{props}. En cas d'absence, la valeur par défaut sera
-de@tie{}@code{2}. Ensuite est créée une liste de lignes justifiées
+de @code{2}. Ensuite est créée une liste de lignes justifiées
grâce à la commande prédéfinie @code{\justified-lines}, liée à la
fonction @code{make-justified-lines-markup-list}. Un espace horizontal
est ajouté en tête, grâce à @code{\hspace} ou à la fonction
@end example
@code{@var{fonction}} est constitué d'une fonction Scheme comportant un
-unique argument@tie{}: le contexte au sein duquel la commande
+unique argument : le contexte au sein duquel la commande
@code{\applyContext} est appelée. Les lignes de code qui suivent auront
pour effet d'afficher à l'écran, en cours de compilation, le numéro de
mesure en cours.
Lors de l'interprétation de cette commande, la fonction
@code{@var{procédure}} est appelée pout tout objet de rendu appartenant
au contexte @code{@var{contexte}} à cet instant précis, avec les
-arguments suivants@tie{}:
+arguments suivants :
@itemize
@item l'objet de rendu en lui-même,
@item le contexte au sein duquel cet objet est créé,
@rinternals{NoteHead}, et d'un objet @rinternals{Stem} pour une hampe.
Voici une fonction utilisable avec la commande
-@code{\applyOutput}@tie{}: elle @qq{blanchit} la tête des notes se
+@code{\applyOutput} : elle @qq{blanchit} la tête des notes se
trouvant sur la ligne médiane ou bien directement à son contact.
@lilypond[quote,verbatim,ragged-right]
Dans le cas où la routine doit faire appel à plusieurs arguments, le
@emph{grob} en cours peut s'insérer à l'aide d'un @emph{grob} enchâssé.
Voici, à titre d'illustration, un réglage pour
-@code{AccidentalSuggestion}@tie{}:
+@code{AccidentalSuggestion} :
@example
`(X-offset .
Au sein d'un @emph{callback}, le meilleur moyen d'évaluer un
@emph{markup} consiste à utiliser la fonction
-@code{grob-interpret-markup}, comme ici@tie{}:
+@code{grob-interpret-markup}, comme ici :
@example
my-callback = #(lambda (grob)
@noindent
En d'autres termes, @code{\tweak} ne se comporte pas comme une
-articulation@tie{}: il ne peut notamment pas être accolé avec les
+articulation : il ne peut notamment pas être accolé avec les
symboles @samp{^} ou @samp{_}.
C'est en se servant du langage Scheme que l'on peut résoudre ce
modifiés par @code{\override}. Parmi ceux-là, les objets
@code{NonMusicalPaperColumn} et @code{PaperColumn}. La commande
@code{\overrideProperty} sert à les modifier, de façon similaire à
-@code{\once \override} mais avec une syntaxe différente@tie{}:
+@code{\once \override} mais avec une syntaxe différente :
@example
\overrideProperty
informations à partir et autour des fluxs de musique.
TODO -- figure out what goes in here and how to organize it
-
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
-
@ignore
- Translation of GIT committish: 446dc1f3ac9bfff6bfee31de929698b0425da6fe
+ Translation of GIT committish: 952705bbbb000581a13836e6a733df04511e93c5
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
indésirables dont nous reparlerons à la rubrique
@ref{Saisie de variables et Scheme} ; aussi est-il préférable
d'utiliser un @code{#} dès que l'analyseur grammatical le supporte.
+Dans le cadre d'une expression musicale, une expression qui aura été
+créée à l'aide d'un @code{#} sera interprétée comme étant de la musique.
+Elle ne sera cependant pas recopiée avant utilisation. Si la structure
+qui l'abrite devait être réutilisée, un appel expicite à
+@code{ly:music-deep-copy} pourrait être requis.
@funindex $@@
@funindex #@@
@example
...
-@{ $@@newLa @}
+@{ #@@newLa @}
@end example
Ici, chaque élément de la liste stockée dans @code{newLa} est pris à
son tour et inséré dans la liste, tout comme si nous avions écrit
@example
-@{ $(premier newLa) $(deuxième newLa) @}
+@{ #(premier newLa) #(deuxième newLa) @}
@end example
-Now in all of these forms, the Scheme code is evaluated while the
-input is still being consumed, either in the lexer or in the parser.
-
-Dans ces deux dernières forme, le code Scheme est évalué alors même que
+Dans ces deux dernières formes, le code Scheme est évalué alors même que
le code initial est en cours de traitement, que ce soit par le
@emph{lexer} ou par le @emph{parser}. Si le code Scheme ne doit être
exécuté que plus tard, consultez la rubrique
@example
@{
- $(with-output-to-file "display.txt"
+ #(with-output-to-file "display.txt"
(lambda () #@{ \displayMusic @{ c'4\f @} #@}))
@}
@end example
@lilypond[quote,verbatim,ragged-right]
tempoPadded = #(define-music-function (parser location padding tempotext)
- (number? string?)
+ (number? markup?)
#{
- \once \override Score.MetronomeMark #'padding = $padding
+ \once \override Score.MetronomeMark #'padding = #padding
\tempo \markup { \bold #tempotext }
#})
\relative c'' {
\tempo \markup { "Low tempo" }
c4 d e f g1
- \tempoPadded #4.0 #"High tempo"
+ \tempoPadded #4.0 "High tempo"
g4 f e d c1
}
@end lilypond
@lilypond[quote,verbatim,ragged-right]
pattern = #(define-music-function (parser location x y) (ly:music? ly:music?)
#{
- $x e8 a b $y b a e
+ #x e8 a b $y b a e
#})
\relative c''{
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
-
@ignore
- Translation of GIT committish: eccc513d15d19b03ed8a9ae776c828fff4dbfbee
+ Translation of GIT committish: 952705bbbb000581a13836e6a733df04511e93c5
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
(parser location padding)
(number?)
#{
- \once \override TextScript #'padding = $padding
+ \once \override TextScript #'padding = #padding
#})
\relative c''' {
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@ignore
- Translation of GIT committish: 0512fcc5db9b050be664413ba0f79a3dcfc1028a
+ Translation of GIT committish: 952705bbbb000581a13836e6a733df04511e93c5
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
@knownissues
+L'ordre dans lequel les graveurs sont spécifiés correspond à leur ordre
+d'apparition dans le processus d'élaboration de la partition.
En règle générale, l'ordre dans lequel les graveurs sont mentionnés
importe peu. Il se peut toutefois qu'un graveur écrive une propriété
qui sera interprétée par un autre, ou qu'un graveur crée un objet
ces graveurs prendra alors tout son importance.
Pour information, les ordonnancements suivants sont importants :
-le @code{Bar_engraver} devrait toujours être le premier ; le
-@code{New_fingering_engraver} doit toujours précéder le
-@code{Script_column_engraver}. Nous vous conseillons, pour les autres,
-de vérifier les éventuelles dépendances.
+
+@itemize
+@item
+le @code{Bar_engraver} devrait toujours être le premier ;
+
+@item
+le @code{New_fingering_engraver} doit toujours précéder le
+@code{Script_column_engraver},
+
+@item
+le @code{Timing_translator} doit toujours précéder le
+@code{Bar_number_engraver}.
+
+@end itemize
+
+@seealso
+Fichiers d'initialisation :
+@file{ly/engraver-init.ly}.
+
@node Modification des réglages par défaut d'un contexte
@item @code{@var{@dots{}musique@dots{}}}
@tab du code LilyPond tout ce qu'il y a de plus ordinaire, avec des
@code{$} (là où seule une construction LilyPond est autorisée) et des
-@code{#} (lorsqu'il s'agit d'une valeur en Scheme ou d'un argument de
-fonction musicale) pour référencer les arguments (par ex. @samp{#arg1}).
+@code{#} (lorsqu'il s'agit d'une valeur en Scheme, d'un argument de
+fonction musicale ou de musique faisant partie d'une liste) pour
+référencer les arguments (par ex. @samp{#arg1}).
@end multitable
Les arguments @code{parser} et @code{location} sont obligatoires ;
\tweak NoteHead #'text
\markup \musicglyph #"custodes.mensural.u0"
\tweak Stem #'stencil ##f
- $note
+ #note
#})
\relative c' { c4 d e f \custosNote g }
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@ignore
- Translation of GIT committish: 65264f1ec906b40c1b281e360d4860f7a6eb8138
+ Translation of GIT committish: 952705bbbb000581a13836e6a733df04511e93c5
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
rendu. La valeur de @code{font-size} est un entier représentant la
taille proportionnellement à la hauteur standard de la portée en
cours. Chaque incrément correspond à une augmentation d'environ
-12@tie{}% de la taille de la police. Un pas de six aboutit exactement
+12 % de la taille de la police. Un pas de six aboutit exactement
au doublement de la taille. La fonction Scheme @code{magstep}
convertit le nombre affecté à @code{font-size} en facteur d'échelle.
Vous pouvez aussi définir directement la propriété @code{font-size} de
Pour changer la taille des caractères, LilyPond met à l'échelle la fonte
dont la taille est la plus proche de la taille voulue. La taille
standard (pour laquelle @w{@code{font-size = #0}}) dépend de la hauteur
-de la portée. À une portée de 20@tie{}points correspond une police de
-10@tie{}points.
+de la portée. À une portée de 20 points correspond une police de
+10 points.
La propriété @code{font-size} ne peut intervenir que pour les objets
qui utilisent des polices, autrement dit ceux qui disposent de
@funindex \finger
@funindex finger
-Les doigtés peuvent être indiqués comme suit@tie{}:
+Les doigtés peuvent être indiqués comme suit :
@var{note}-@var{chiffre_du_doigt}
@lilypond[verbatim,quote,relative=2]
@cindex fantômes, notes
@cindex notes fantômes
@cindex parenthèses, notes entre
+@cindex crochets, notes entre
@funindex \parenthesize
@funindex parenthesize
Vous disposez de deux fonctions musicales, @code{balloonGrobText} et
@code{balloonText}. @code{balloonGrobText} prend en argument
l'objet graphique à agrémenter et s'utilise comme
-@code{\once@tie{}\override}. @code{balloonText}, quant à lui, s'utilise
+@code{\once \override}. @code{balloonText}, quant à lui, s'utilise
comme une simple articulation et fonctionne comme @code{\tweak} pour
attacher du texte à l'une des notes d'un accord. Les autres arguments
sont le décalage et le texte de la bulle.
Les info-bulles ont une influence sur les espacements, que l'on peut
-gérer ainsi@tie{}:
+gérer ainsi :
@c KEEP LY
@lilypond[verbatim,quote,relative=2]
les notes.
LilyPond a recours à deux graveurs distincts afin d'afficher le
-quadrillage@tie{}: le @code{Grid_point_engraver} se charge de
+quadrillage : le @code{Grid_point_engraver} se charge de
déterminer l'envergure du crochet, alors que le
@code{Grid_line_span_engraver} se consacrera au tracé des lignes.
Les lignes sont par défaut centrées horizontalement sous les notes et
}
@end lilypond
-Les crochets d'analyses sont susceptibles d'être imbriqués@tie{}:
+Les crochets d'analyses sont susceptibles d'être imbriqués :
@lilypond[verbatim,quote]
\layout {
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@ignore
- Translation of GIT committish: 0512fcc5db9b050be664413ba0f79a3dcfc1028a
+ Translation of GIT committish: 952705bbbb000581a13836e6a733df04511e93c5
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@ignore
- Translation of GIT committish: 0512fcc5db9b050be664413ba0f79a3dcfc1028a
+ Translation of GIT committish: 952705bbbb000581a13836e6a733df04511e93c5
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
@unnumberedsubsubsec Mise en forme par défaut des titrages
@translationof Default layout of book and score title blocks
-La mise en forme des blocs de titrage est contrôlée par deux variables
-attachées au bloc @code{\paper} : @code{bookTitleMarkup} pour le bloc
-@code{\header} principal, et @code{scoreTitleMarkup} pour les blocs
-@code{\header} relevant des blocs @code{\score}.
+Voici les différentes variables attachées au bloc @code{\header} :
@c KEEP LY
-@lilypond[papersize=a6,quote,verbatim,noragged-right]
-\header {
- % Les champs suivants sont centrés
- dedication = "Dédicace"
- title = "Titre"
- subtitle = "Sous-titre"
- subsubtitle = "Sous-sous-titre"
- instrument = "Instrument"
-
- % Les champs suivants sont alignés par la gauche
- poet = "Librettiste"
- meter = "Tempo"
-
- % Les champs suivants sont alignés par la droite
- composer = "Compositeur"
- arranger = "Arrangeur"
-}
-
-\score {
- { s1 }
+@lilypond[papersize=a7,quote,verbatim,noragged-right]
+\book {
\header {
- % Les champs suivants sont en opposition sur la même ligne
- piece = "Pièce"
- opus = "Opus"
+ % Les champs suivants sont centrés
+ dedication = "Dédicace"
+ title = "Titre"
+ subtitle = "Sous-titre"
+ subsubtitle = "Sous-sous-titre"
+ % Les champs suivants sont répartis sur une même ligne, et
+ % le champ "instrument" apparaîtra sue les pages suivantes
+ instrument = \markup \with-color #green "Instrument"
+ poet = "Librettiste"
+ composer = "Compositeur"
+ % Les champs suivants sont en opposition sur la même ligne
+ meter = "Tempo"
+ arranger = "Arrangeur"
+ % Les champs suivants sont centrés en bas de page
+ tagline = "« tagline » ou mention spéciale en pied de dernière page"
+ copyright = "copyright en pied de première page"
+ }
+ \score {
+ { s1 }
+ \header {
+ % Les champs suivants sont en opposition sur la même ligne
+ piece = "Pièce 1"
+ opus = "Opus 1"
+ }
+ }
+ \score {
+ { s1 }
+ \header {
+ % Les champs suivants sont en opposition sur la même ligne
+ piece = "Pièce 2 sur la même page"
+ opus = "Opus 2"
+ }
+ }
+ \pageBreak
+ \score {
+ { s1 }
+ \header {
+ % Les champs suivants sont en opposition sur la même ligne
+ piece = "Pièce 3 sue une nouvelle page"
+ opus = "Opus 3"
+ }
}
}
@end lilypond
-@c Is the bit about \null markups true? -mp
+Quelques précisions :
+@itemize
+@item
+Le nom de l'instrument sera répété en tête de chaque page.
+
+@item
+Seuls seront imprimés les champs @code{piece} et @code{opus} inclus dans
+un bloc @code{\score} dès lors que la variable @code{print-all-headers}
+reste désactivée (valeur à @code{##f}).
+
+@item
+@c Is the bit about \null markups true? -mp
Les champs d'un bloc @code{\header} qui n'auront pas été alimentés
seront remplacés par un @emph{markup} @code{\null} de façon à ne pas
gaspiller d'espace.
+@item
Par défaut, @code{scoreTitleMarkup} place les champs @code{piece} et
@code{opus} de part et d'autre sur une même ligne.
+@end itemize
+
+Les possibilités de modifier la mise en forme par défaut sont abordées à
+la rubrique @ref{Mise en forme personnalisée des blocs de titrage}.
+
@cindex breakbefore
La variable @code{breakbefore} activée dans un bloc @code{\header} situé
@rlearning{Organisation des fichiers LilyPond}.
Manuel de notation :
+@ref{Mise en forme personnalisée des blocs de titrage},
@ref{Structure de fichier}.
Fichiers d'initialisation :
@unnumberedsubsubsec Mise en forme personnalisée des blocs de titrage
@translationof Custom layout for title blocks
+@cindex bookTitleMarkup
+@cindex scoreTitleMarkup
+@funindex bookTitleMarkup
+@funindex scoreTitleMarkup
+
L'utilisation de commandes @code{\markup} au sein d'un bloc
@code{\header} permet de modifier aisément l'apparence du texte,
mais n'influence en rien le positionnement précis des éléments de
@item @code{scoreTitleMarkup}
@end itemize
-Ces variables sont abordées à la rubrique
+Le positionnement des titres, avec les valeurs par défaut de ces
+variables @code{\markup}, est illustré à la rubrique
@ref{Mise en forme par défaut des titrages}.
Voici les réglages par défaut de @code{scoreTitleMarkup}, tels que
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
-
@ignore
- Translation of GIT committish: 904ea9fed4c66f5b86f3ac6ffb9fa273f082f371
+ Translation of GIT committish: 952705bbbb000581a13836e6a733df04511e93c5
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
@cindex distance entre deux portées de piano
@funindex Stem
-@funindex cross-staff
-@funindex length
-@funindex flag-style
-
-Pour écrire des accords qui enjambent deux portées, on allonge la hampe
-de l'accord de l'une des deux portées de façon à ce qu'elle rejoigne
-celle de l'autre portée.
-
-@lilypond[verbatim,quote]
-\new PianoStaff <<
- \new Staff {
- \relative c' {
- f8 e4 d8 d f e4
- }
- }
- \new Staff {
- \relative c' {
- << {
- \clef bass
- % stems may overlap the other staff
- \override Stem #'cross-staff = ##t
- % extend the stems to reach the other staff
- \override Stem #'length = #12
- % do not print extra flags
- \override Flag #'style = #'no-flag
- % prevent beaming as needed
- a8 g4 f8 f bes\noBeam g4
- }
- \\
- {
- f,2 bes4 c
- } >>
- }
- }
->>
-@end lilypond
+@funindex \crossStaff
+@funindex \autoBeamOff
+@funindex Span_stem_engraver
+
+Pour écrire des accords qui enjambent deux portées, on allonge, à l'aide
+du @code{Span_stem_engraver}, la hampe de l'accord de l'une des deux
+portées de façon à ce qu'elle rejoigne celle de l'autre portée. La
+gestion des ligatures automatiques requiert alors une attention
+particulière ; en effet, une seule portée devrait alors comporter des
+ligatures.
+
+@lilypondfile[verbatim,quote]
+{cross-staff-stems.ly}
@snippets
@lilypondfile[verbatim,quote,texidoc,doctitle]
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@ignore
- Translation of GIT committish: 0512fcc5db9b050be664413ba0f79a3dcfc1028a
+ Translation of GIT committish: 952705bbbb000581a13836e6a733df04511e93c5
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
@lilypond[verbatim,quote]
forget = #(define-music-function (parser location music) (ly:music?) #{
\accidentalStyle "forget"
- $music
+ #music
\accidentalStyle "modern"
#})
{
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@ignore
- Translation of GIT committish: 0512fcc5db9b050be664413ba0f79a3dcfc1028a
+ Translation of GIT committish: 952705bbbb000581a13836e6a733df04511e93c5
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
\MyCadenza c'1
}
\new Staff {
- $(mmrest-of-length MyCadenza)
+ #(mmrest-of-length MyCadenza)
c'1
- $(skip-of-length MyCadenza)
+ #(skip-of-length MyCadenza)
c'1
}
>>
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@ignore
- Translation of GIT committish: 0512fcc5db9b050be664413ba0f79a3dcfc1028a
+ Translation of GIT committish: 952705bbbb000581a13836e6a733df04511e93c5
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
@code{\context}. Pour de plus amples détails, consultez
@ref{Création d'un contexte}.
-Le contexte de portée standard s'appelle @code{Staff}@tie{}:
+Le contexte de portée standard s'appelle @code{Staff} :
@lilypond[verbatim,quote,relative=2]
\new Staff { c4 d e f }
@end lilypond
LilyPond dispose aussi de deux contextes dédiés à la musique
-ancienne@tie{}: @code{MensuralStaff} et @code{VaticanaStaff}. Ils sont
+ancienne : @code{MensuralStaff} et @code{VaticanaStaff}. Ils sont
abordés plus en détails au chapitre @ref{Contextes prédéfinis}.
Le contexte @code{GregorianTranscriptionStaff} permet d'obtenir des
mesure.
Lorsqu'aucun contexte particulier n'est spécifié, les propriétés
-suivantes s'appliqueront par défaut@tie{}: les portées du groupe ne sont
+suivantes s'appliqueront par défaut : les portées du groupe ne sont
pas reliées, hormis par une simple ligne verticale en début de ligne, et
les barres de mesure sont indépendantes.
@cindex système, indicateur de séparation
-Le nombre de systèmes peut varier d'une page à l'autre@tie{}; vous
+Le nombre de systèmes peut varier d'une page à l'autre ; vous
pouvez, en pareil cas, rendre plus évidente la séparation entre les
systèmes en l'indiquant visuellement. Ce @qq{séparateur} est absent par
défaut, mais vous pouvez l'activer par une option au sein du bloc
@translationof Modifying single staves
Cette section explique le réglage de la gravure de chaque portée,
-comme la taille de portée ou le nombre de lignes@tie{}; sont aussi
+comme la taille de portée ou le nombre de lignes ; sont aussi
décrits la suspension et la reprise de portées, ainsi que les portées
d'@emph{ossia}.
Le positionnement de chacune des lignes de la portée est modifiable.
Les valeurs s'expriment en @emph{demi} espace de portée, et la nouvelle
position est déterminée par rapport à la ligne médiane. Une ligne sera
-donc imprimée pour chaque valeur exprimée@tie{}; le nombre de lignes,
+donc imprimée pour chaque valeur exprimée ; le nombre de lignes,
ainsi que leur position dans la portée, peut donc se modifier à l'aide
d'une seule commande.
{ f'4 a, a,, f }
@end lilypond
-L'emplacement des lignes supplémentaires est réglable@tie{}:
+L'emplacement des lignes supplémentaires est réglable :
@lilypond[verbatim,quote,relative=2]
\new Staff \with {
@funindex stopStaff
Une portée d'@notation{ossia} -- ou de variante -- s'obtient en créant,
-à l'endroit approprié, une nouvelle portée simultanée@tie{}:
+à l'endroit approprié, une nouvelle portée simultanée :
@lilypond[verbatim,quote]
\new Staff \relative c'' {
Supprimer le @code{Staff_symbol_engraver} aura pour effet de masquer les
barres de mesure. Forcer leur visibilité peut entraîner des problèmes
de formatage. En pareil cas il vaut mieux, au lieu de supprimer le
-graveur, recourir aux dérogations suivantes@tie{}:
+graveur, recourir aux dérogations suivantes :
@example
\override StaffSymbol #'stencil = ##f
d'instrument, que ce soit sous leur forme développée ou abrégée, sont
par défaut centrés. Si l'un d'entre eux est libellé sur plusieurs
lignes, il faudra reccourrir à l'instruction
-@code{\center-column}@tie{}:
+@code{\center-column} :
@lilypond[verbatim,quote,indent=1.5\cm,relative=2]
<<
Vous pouvez changer le nom d'un instrument en cours de morceau. Notez
cependant que la valeur de @code{instrumentName} ne s'affichera que sur
-la première portée@tie{}:
+la première portée :
@lilypond[verbatim,quote,ragged-right,relative=1]
\new Staff \with {
et contrebasson --, la commande @code{\addInstrumentDefinition},
couplée à l'instruction @code{\instrumentSwitch} permet de spécifier en
détail les modifications intervenant lors du changement. La commande
-@code{\addInstrumentDefinition} prend deux arguments@tie{}: une chaîne
+@code{\addInstrumentDefinition} prend deux arguments : une chaîne
de caractères qui servira d'identifiant, et une liste d'association
de valeurs aux propriétés de ce nouvel instrument. Ces définitions
devront être déclarées avant tout autre élément musical. L'instruction
@code{\instrumentSwitch} se placera dans la musique au moment de la
-subtitution@tie{}:
+subtitution :
@lilypond[verbatim,quote,ragged-right]
\addInstrumentDefinition #"contrabassoon"
Au cours d'une partie, des extraits de répliques peuvent être cités en
utilisant la commande @code{\quoteDuring}. Cette commande prend deux
-arguments@tie{}: le nom de la voix reproduite, tel que défini par
+arguments : le nom de la voix reproduite, tel que défini par
@code{\addQuote}, et une expression musicale qui indique la durée de
cette citation.
Si l'expression musicale utilisée pour @code{\quoteDuring} contenait
autre chose que du silence, il en résulterait une situation
-polyphonique, ce qui n'est pas le but recherché@tie{}:
+polyphonique, ce qui n'est pas le but recherché :
@lilypond[verbatim,quote]
fluteNotes = \relative c'' {
Seul le contenu de la première @code{Voice} rencontrée dans la
partie marquée d'une commande @code{\addQuote} pourra être retenu. Par
voie de conséquence, @code{@var{musique}} ne saurait comprendre de
-@code{\new} ou une instance @code{\context@tie{}Voice} qui la ferait
+@code{\new} ou une instance @code{\context Voice} qui la ferait
passer à une autre voix.
Citer des notes d'ornement ne fonctionne pas, et peut même entraîner