@c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 3121682025660b6c85fbf3f22bb9cd8396699ad1
+ Translation of GIT committish: 718cc970304f6b9a3bb990259a048c06e56f4e48
When revising a translation, copy the HEAD committish of the
@c -*- coding: utf-8; mode: texinfo; -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 3121682025660b6c85fbf3f22bb9cd8396699ad1
+ Translation of GIT committish: 718cc970304f6b9a3bb990259a048c06e56f4e48
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
Siehe @ref{Chord names} für mehr Information.
-
+@c I don't like having this here, but I can't think of
+@c anywhere else to put it. :( -gp
@node Stems
@subsection Stems
hinein- noch aus hier hinaus ragen können. Die parallelen
Notenabschnitte aus unterschiedlichen @code{<< \\ >>}-Umgebungen
hingegen gehören der gleichen Stimme an. Hier noch einmal das
-gleiche Beispiel mit unterschiedlichen Notenköpfen für jede Stimme.
+gleiche Beispiel mit unterschiedlichen Notenköpfen und Farben
+für jede Stimme.
Die Veränderung der Notenköpfe in der Hauptstimme hat keine
Auswirkung auf die Stimmen innerhalb der @code{<< \\ >>}-Umgebungen,
und die Veränderung der Notenköpfe für die untere Stimme setzt
@lilypond[quote,verbatim,fragment]
\new Staff \relative c' {
\override NoteHead #'style = #'cross
+ \override NoteHead #'color = #red
c16 d e f
<<
{ g4 f e } \\
{ \override NoteHead #'style = #'triangle
+ \override NoteHead #'color = #blue
r8 e4 d c8 ~ }
>> |
<<
{ d2 e2 } \\
{ c8 b16 a b8 g ~ g2 } \\
- { \override NoteHead #'style = #'slash s4 b4 c2 }
+ { \override NoteHead #'style = #'slash
+ \override NoteHead #'color = #green
+ s4 b4 c2 }
>>
}
@end lilypond
auftritt, gehört der Hauptstimme an. Das ist nützlich, wenn zusätzliche
Stimme auftreten, während die Hauptstimme sich fortsetzt. Hier also
eine bessere Version des Beispiels aus dem vorigen Abschnitt. Die
-Kreuz-Notenköpfe zeigen, dass die Hauptstimme sich jetzt in einem
-einzigen Stimmen (@code{voice})-Kontext befindet.
+farbigen Kreuz-Notenköpfe zeigen, dass die Hauptstimme sich jetzt in
+einem einzigen Stimmen (@code{voice})-Kontext befindet.
@lilypond[quote,ragged-right,verbatim]
\new Staff \relative c' {
\override NoteHead #'style = #'cross
+ \override NoteHead #'color = #red
c16 d e f
\voiceOne
<<
@c -*- coding: utf-8; mode: texinfo; -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 3121682025660b6c85fbf3f22bb9cd8396699ad1
+ Translation of GIT committish: 718cc970304f6b9a3bb990259a048c06e56f4e48
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@node About this manual
@section About this manual
-Das Handbuch ist in vier Bücher geteilt:
+Es gibt zwei Handbücher zu LilyPond: das @emph{Benutzerhandbuch} (dieses
+Dokument) und das @emph{Handbuch über die Programmbenutzung}.
-@subsubheading Handbuch zum Lernen
+
+@subheading User manual
+
+Das Handbuch ist in drei Bücher geteilt.
+
+@subsubheading Learning manual
In diesem Buch wird erklärt, wie man das Programm LilyPond erlernt; mit
-einfachen Begriffen werden einige Schlüsselkonzepte erklärt.
+einfachen Begriffen werden einige Schlüsselkonzepte erklärt. Die Kapitel
+sollten hintereinander gelsen werden.
@itemize @bullet
@ifhtml
Die
@end ifhtml
-@emph{@ref{Tutorial}}
+@emph{@ref{Tutorial}},
stellt eine einfache Einführung in den Musiksatz dar. Neulinge sollten hiermit
beginnen.
@item
-@emph{@ref{Putting it all together}}
+@emph{@ref{Putting it all together}},
erklärt generelle Konzepte des LilyPond-Dateiformates. Wenn Sie sich nicht
sicher sind, wohin ein Befehl gesetzt werden soll, lesen Sie hier nach.
@item
-@emph{@ref{Working on LilyPond projects}}
+@emph{@ref{Working on LilyPond projects}},
zeigt den wirklichen Einsatz von LilyPond und gibt Hinweise, wie einige
Probleme vermieden werden können.
@item
-@emph{@ref{Tweaking output}}
+@emph{@ref{Tweaking output}},
stellt dar, wie die Standardeinstellungen von LilyPond verändert werden können.
@end itemize
-@subsubheading Alles über die Notation
+
+@subsubheading Notation reference
In diesem Buch werden alle LilyPond-Befehle erklärt, die Notationszeichen
produzieren. Es geht von der Annahme aus, dass der Leser sich mit den
@itemize @bullet
@item
-@emph{@ref{Basic notation}}
+@emph{@ref{Basic notation}},
erklärt alles über die grundlegenden Notationskonstruktionen. Dieses Kapitel
ist für fast jedes Notationsprojekt nützlich.
@item
-@emph{@ref{Instrument-specific notation}}
+@emph{@ref{Instrument-specific notation}},
erklärt spezifische Schwierigkeiten, die sich bei bestimmten Notationstypen
ergeben. Dieses Kapitel ist nur in entsprechenden Fällen bestimmter Instrumente
oder bei Gesang zu konsultieren.
@item
-@emph{@ref{Advanced notation}}
+@emph{@ref{Advanced notation}},
erklärt komplizierte oder unübliche Anwendungen nach Notationsgegenstand geordnet.
@item
-@emph{@ref{Changing defaults}}
+@emph{@ref{Changing defaults}},
erklärt, wie des Layout getrimmt werden kann.
@item
-@emph{@ref{Non-musical notation}}
+@emph{@ref{Non-musical notation}},
zeigt alles, was nicht direkt mit den Noten zu tun hat wie Titel, mehrere Sätze oder
wie man ein MIDI-Instrument auswählt.
@item
-@emph{@ref{Spacing issues}}
+@emph{@ref{Spacing issues}},
befasst sich mit globalen Fragen wie der Definition von Papierformaten
oder wie man Seitenumbrüche definiert.
@item
-@emph{@ref{Interfaces for programmers}}
+@emph{@ref{Interfaces for programmers}},
demonstriert die Erstellung von musikalischen Funktionen.
@end itemize
-@subsubheading Programmbenutzung
-
-In diesem Buch wird erklärt, wie das Programm aufgerufen wird und wie sich
-die von LilyPond erstellte Notation in andere Programm integrieren lässt.
-
-@itemize @bullet
-
-
-@item
-@emph{@rprogram{Running LilyPond}}
-zeigt, wie LilyPond und die Hilfsprogramme gestartet werden. Zusätzlich
-wird hier gezeigt, wie Quelldateien von älteren LilyPond-Versionen
-aktualisiert werden können.
-
-@item
-@emph{@rprogram{LilyPond-book}}
-zeigt die Details der Integration von Noten in Texte wie etwa dieses
-Handbuch.
-
-@item
-@emph{@rprogram{Converting from other formats}}
-erklärt die Funktionsweise der Konvertierungsprogramme. Diese Programme
-sind im LilyPond-Paket enthalten und können ein ganze Anzahl von Formaten
-in das @code{.ly}-Format umwandeln.
-
-@end itemize
-
-
-@subsubheading Anhänge
+@subsubheading Appendices
In diesem Buch werden nützliche Referenztabellen gezeigt.
@ifhtml
Die
@end ifhtml
-@emph{@ref{Literature list}}
+@emph{@ref{Literature list}},
enthält einige wichtige Quellen für alle, die mehr über Notation und
den Notensatz erfahren wollen.
@item
-Das
-@emph{@ref{Scheme tutorial}}
+Die
+@emph{@ref{Scheme tutorial}},
stellt eine kurze Einleitung in die Scheme-Sprache dar, mit dem
die musikalischen Funktionen gebildet werden.
@item
-@emph{@ref{Notation manual tables}}
+@emph{@ref{Notation manual tables}},
sind Tabellen, in denen Akkordbezeichnungen, MIDI-Instrumente,
Farbbezeichnungen und die Zeichen der Feta-Schriftart gesammelt sind.
@item
-@emph{@ref{Templates}}
+@emph{@ref{Templates}},
von LilyPond-Stücken. Kopieren Sie einfach hier, fügen Sie in ihre Datei
ein und schreiben Sie noch die Noten dazu. Das ist alles!
@item
Die
-@emph{@ref{Cheat sheet}}
+@emph{@ref{Cheat sheet}},
zeigt die wichtigsten LilyPond-Befehle.
@item
Der
-@emph{@ref{LilyPond command index}}
+@emph{@ref{LilyPond command index}},
listet alle Befehle auf, die mit @code{\} anfangen.
@item
Der
-@emph{@ref{LilyPond index}}
+@emph{@ref{LilyPond index}},
ist ein vollständiger Index.
@end itemize
-@subsubheading Andere Information
+
+@subheading Program usage
+
+In diesem Buch wird erklärt, wie das Programm ausgeführt wird und
+wie die Notation von LilyPond in andere Programme integriert werden
+kann.
+
+@itemize @bullet
+
+@item
+@emph{@rprogram{Install}},
+erklärt wie LilyPond installiert wird (inclusive Kompilation, wenn es
+nötig sein sollte).
+
+@item
+@emph{@rprogram{Setup}},
+erklärt wie der Computer eingerichtet wird, damit LilyPond optimal genutzt
+werden kann. Hierzu gehören etwa spezielle Umgebungen für bestimmte
+Texteditoren.
+
+@item
+@emph{@rprogram{Running LilyPond}},
+zeigt, wie LilyPond und seine Hilfprogramme gestartet werden. Zusätzlich
+wird hier erklärt, wie Quelldateien von alten LilyPond-Versionen aktualisiert
+werden können.
+
+@item
+@emph{@rprogram{LilyPond-book}},
+erklärt die Details, um einen Text mit eingefügten Notenbeispielen (wie
+etwa dieses Handbuch) zu
+erstellen.
+
+@item
+@emph{@rprogram{Converting from other formats}},
+erklärt, wie die Konvertierungsprogramme aufgerufen werden. Diese
+Programme kommen mit LilyPond zusammen und konvertieren eine Vielzahl
+von Notensatzformaten in das @code{.ly}-Format.
+
+@end itemize
+
+
+@subsubheading Other information
Es gibt einige andere Orte, die sehr wertvolle Information enthalten.
@itemize @bullet
@item
@ifnottex
-Das @ref{Top,Music glossary,,Musik-Glossar}, erklärt musikalische Ausdrücke
+Das @ref{Top,Musik-Glossar,,music-glossary}, erklärt musikalische Ausdrücke
und stellt Übersetzungen für einige Sprachen bereit. Es ist auch als PDF
erhältlich.
@end ifnottex
Programmreferenz
@end iftex
@ifnottex
-@ref{Top,Program reference,,lilypond-internals}
+@ref{Top,Programmreferenz,,lilypond-internals}
@end ifnottex
ist eine Sammlung intensiv verlinkter HTML-Seiten,
die alle Details jeder einzelnen LilyPond-Klasse, jedes Objektes und
große HTML-Seite erhältlich,
@end iftex
@ifhtml
-@uref{source/Documentation/user/lilypond-big-page.html, eine große Seite erhältlich},
+@uref{source/Documentation/user/lilypond-big-page.html, eine große Seite
+erhältlich},
@end ifhtml
die auf einfache Art mit der Suchfunktion Ihres Browsers durchsucht werden kann.
@c -*- coding: utf-8; mode: texinfo; -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 3db3697bb5109201192c9cecdd2e4b7a5520421a
+ Translation of GIT committish: 718cc970304f6b9a3bb990259a048c06e56f4e48
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@subsection Version number
@cindex Versionsnummern
-Der @code{\version}-Befehl zeigt an, für welche LilyPond-Version
-eine Quelldatei geschrieben worden ist. Um etwa eine Datei für die
-Version 2.11.23 zu markieren, wird einfach
+Der @code{\version}-Befehl zeigt an, welche LilyPond-Version
+für eine bestimmte Quelldatei benutzt worden ist:
@example
\version "2.11.23"
@end example
@noindent
-am Anfang der Textdatei eingefügt.
+Üblicherweise wird dieser Befehl am Anfang der Textdatei eingefügt.
Durch diese Versionsmarkierung werden zukünftige Aktualisierungen
des LilyPond-Programmes einfacher gemacht. Syntax-Änderungen
Sie auf die Notenbilder, um die dazugehörige Textdatei anzuschauen,
mit der dieses Notenbild erstellt worden ist.
+Mehr Information über die Struktur des restlichen Benutzerhandbuches
+erhalten Sie im Abschnitt @ref{About this manual}.
+
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of ../user/lilypond.tely
@ignore
- Translation of GIT committish: d5b91d83f5dfec811302de39dbabdb189024f67a
+ Translation of GIT committish: 3b48b5e31e0e8fe0a01b539dcb19e23e9fbf89de
When revising a translation, copy the HEAD committish of the
@node Advanced notation
@chapter Advanced notation
-UNTRANSLATED NODE: IGNORE ME
+Ce chapitre traite de fonctions avancées ou moins usuelles de la notation.
+
+@menu
+* Text::
+* Preparing parts::
+* Orchestral music::
+* Contemporary notation::
+* Educational use::
+@end menu
+
+
-@menu
-* Text::
-* Preparing parts::
-* Orchestral music::
-* Contemporary notation::
-* Educational use::
-@end menu
@node Text
@section Text
-UNTRANSLATED NODE: IGNORE ME
+Nous allons voir ici comment insérer du texte, selon différents
+formatages, dans vos partitions.
+
+@cindex Texte, autres langues
+Pour écrire des accents et autres caractères spéciaux, il suffit de
+les insérer directement dans votre fichier LilyPond. Ce fichier devra
+être sauvegardé avec l'encodage UTF-8. Pour plus d'informations, voir
+@ref{Text encoding}.
+
+@menu
+* Text scripts::
+* Text and line spanners::
+* Text spanners::
+* Text marks::
+* Text markup::
+* Nested scores::
+* Page wrapping text::
+* Overview of text markup commands::
+* Overview of text markup list commands::
+* Font selection::
+* New dynamic marks::
+@end menu
+
-@menu
-* Text scripts::
-* Text and line spanners::
-* Text spanners::
-* Text marks::
-* Text markup::
-* Nested scores::
-* Page wrapping text::
-* Overview of text markup commands::
-* Overview of text markup list commands::
-* Font selection::
-* New dynamic marks::
-@end menu
@node Text scripts
@subsection Text scripts
-UNTRANSLATED NODE: IGNORE ME
+@c I'm not fond of this "étiquette" wording of yours Jean-Charles;
+@c j'utiliserais simplement l'expression "bloc \markup" afin
+@c d'éviter toute confusion avec les \tags (qui méritent davantage
+@c le titre d'étiquette, stricto sensu) -vv
+
+@cindex Étiquette de texte
+@cindex blocs de texte
+@cindex ajout de texte
+
+Vous pouvez placer arbitrairement des chaînes de caractères, ou
+@ref{Text markup} en langage LilyPond, au dessus ou au dessous des
+notes en employant la syntaxe @code{c^"text"}. Par défaut, ces
+indications n'affecteront en rien l'espacement des notes, sauf à
+utiliser la commande @code{\fatText}.
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+c4^"longtext" \fatText c4_"longlongtext" c4
+@end lilypond
+
+@noindent
+Pour revenir à l'espacement par défaut, utilisez @code{\emptyText}.
+
+Des constructions plus élaborées d'étiquette peuvent être obtenues en
+ayant recours à la commande @emph{markup} :
+@lilypond[fragment,ragged-right,verbatim,quote]
+c'4^\markup { bla \bold bla }
+@end lilypond
+
+La commande @code{\markup} est décrite plus en détails dans la section
+@ref{Text markup}.
+
+
+@refcommands
+
+@funindex \fatText
+@code{\fatText},
+@funindex \emptyText
+@code{\emptyText}.
+
+
+@commonprop
+
+S'assurer que tous les éléments textuels et les paroles respectent
+les marges du document requiert des calculs relativement lourds ; c'est
+la raison pour laquelle LilyPond, par défaut, ne s'en préoccupe pas.
+Vous pouvez cependant l'y forcer en définissant
+
+@example
+\override Score.PaperColumn #'keep-inside-line = ##t
+@end example
+
+
+@seealso
+
+Dans ce manuel : @ref{Text markup}.
+
+Référence du programme : @internalsref{TextScript}.
+
@node Text and line spanners
@subsection Text and line spanners
-UNTRANSLATED NODE: IGNORE ME
+Certaines indications d'interprétation comme @i{rallentando},
+@i{accelerando} ou @i{trilles}, s'incrivent textuellement et se
+prolongent sur plusieurs mesures à l'aide d'une ligne pleine, pointillée
+ou ondulée.
+
+Les routines chargées de matérialiser un @emph{glissando} sont tout à
+fait adaptées à une gestion précise, à la fois du placement du texte, et
+du calcul de l'envergure de sa ligne d'extension. La routine
+@code{ly:line-interface::print} est plus particulièrement en charge de
+déterminer les points d'ancrage de la ligne et de la dessiner selon le
+style requis.
+
+Voici un exemple qui illustre les différents styles de ligne
+disponibles, ainsi que la manière de les personnaliser.
+
+@lilypond[relative=2,ragged-right,verbatim,fragment]
+d2 \glissando d'2
+\once \override Glissando #'dash-fraction = #0.5
+d,2 \glissando d'2
+\override Glissando #'style = #'dotted-line
+d,2 \glissando d'2
+\override Glissando #'style = #'zigzag
+d,2 \glissando d'2
+\override Glissando #'style = #'trill
+d,2 \glissando d'2
+@end lilypond
+
+L'information qui va déterminer les extrémités est calculée à la
+volée pour chaque objet graphique. Il est tout à fait possible de les
+régler vous-même :
+
+@lilypond[relative=2,ragged-right,verbatim,fragment]
+e2 \glissando f
+\once \override Glissando #'bound-details #'right #'Y = #-2
+e2 \glissando f
+@end lilypond
+
+L'objet @code{Glissando}, comme tous ceux qui utilisent la routine
+@code{ly:line-interface::print}, comporte une liste
+d'associations. Dans le code ci-dessus, la valeur de @code{Y} est
+fixée, dans la liste d'associations, à @code{-2} pour l'ancrage à
+droite. Vous pouvez naturellement ajuster l'extrémité gauche en
+remplaçant @code{right} (pour @code{droite}) par @code{left}.
+
+Si @code{Y} n'est pas fixé, sa valeur sera calculée en fonction de la
+hauteur du point de référence droite de la ligne.
+
+Lorsque survient un saut de ligne, la liste des ancrages est
+augmentée d'une liste complémentaire contenant @code{left-broken}
+(brisure à gauche) et @code{right-broken} (brisure à droite), comme
+dans l'exemple suivant :
+
+@lilypond[relative=2,ragged-right,verbatim,fragment]
+\override Glissando #'breakable = ##T
+\override Glissando #'bound-details #'right-broken #'Y = #-3
+c1 \glissando \break
+f1
+@end lilypond
+
+Vous disposez des propriétés suivantes :
+
+@table @code
+@item Y
+Fixe l'ordonnée (coordonnée-Y) de l'extrémité, mesurée en taille de
+portée. Il s'agit par défaut du centre de l'objet de rattachement ;
+pour un glissando, ce sera le milieu de la tête de note.
+
+Pour des marques horizontales, telles du texte ou le trait d'un
+trille, cette valeur est figée à 0.
+
+@item attach-dir
+Détermine l'endroit où la ligne commence et finit, relativement à
+l'objet de rattachement. Autrement dit, une valeur de @code{-1} (ou
+@code{LEFT} pour gauche) fera commencer ou finir la ligne du côté
+gauche de la tête de note de référence.
+
+@item X
+Coordonnée absolue du point final. Dans la mesure où elle est calculée
+à la volée, il n'y a pas vraiment de raison de l'outrepasser.
+
+@item stencil
+Sous-propriété contenant les éventuels symboles présents avant ou
+après la ligne. Destinée à un usage interne, nous vous recommendons
+d'utiliser plutôt @code{text}.
+
+@item text
+Marqueur qui sera analysé pour alimenter @code{stencil}. On y trouve
+habituellement les @i{cresc.} ou @i{tr} des extenseurs horizontaux.
+
+@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
+\override TextSpanner #'bound-details #'left #'text
+ = \markup { \small \bold Slower }
+c2\startTextSpan b c a\stopTextSpan
+@end lilypond
+
+@item stencil-align-dir-y
+@item stencil-offset
+Lorsqu'ils ne sont pas définis, le tracé est tout simplement
+positionné conformément aux sous-propriétés @code{X} et @code{Y}. En
+fixant soit @code{stencil-align-dir-y}, soit @code{stencil-offset},
+vous pouvez décaler le coin du marqueur par rapport à l'extrémité de
+la ligne.
+
+@lilypond[relative=1,fragment,verbatim]
+\override TextSpanner #'bound-details #'left #'stencil-align-dir-y = #DOWN
+\override TextSpanner #'bound-details #'right #'stencil-align-dir-y = #UP
+
+\override TextSpanner #'bound-details #'left #'text = #"gggg"
+\override TextSpanner #'bound-details #'right #'text = #"hhhh"
+c4^\startTextSpan c c c \stopTextSpan
+@end lilypond
+
+@item arrow
+Assigner à cette sous-propriété la valeur @code{vrai} (@code{#t})
+produira une terminaison en pointe de flèche.
+
+@item padding
+Cette sous-propriété contrôle l'espace entre les extrémités de la
+ligne, telles que définies, et la réalité. Sans ce léger décalage, le
+début et la fin d'un glissando seraient en plein milieu des têtes de note.
+
+@end table
+
+@seealso
+
+Référence du programme : @internalsref{TextSpanner},
+@internalsref{Glissando}, @internalsref{VoiceFollower},
+@internalsref{TrillSpanner}, @internalsref{line-spanner-interface}.
+
+Exemples : @lsr{expressive,line-styles.ly}, @lsr{expressive,line-arrows.ly}
+
@node Text spanners
@subsection Text spanners
-UNTRANSLATED NODE: IGNORE ME
+@cindex Prolongateurs de texte
+
+Certaines indications d'interprétation comme @i{rallentando} ou
+@i{accelerando} s'incrivent en toutes lettres et se prolongent sur
+plusieurs mesures grâce à une ligne pointillée. Les commandes
+@code{\startTextSpan} et @code{\stopTextSpan}, respectivement
+attachées à la première et à la dernière note qu'elles concernent,
+déterminent l'envergure de ces prolongateurs, ou extenseurs.
+
+La chaîne à imprimer, ainsi que son style, sont définis par des
+propriétés, comme ici :
+
+@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
+c1
+\textSpannerDown
+\override TextSpanner #'bound-details #'left #'text =
+ \markup { \upright "rall" }
+c2\startTextSpan b c\stopTextSpan a
+\break
+\textSpannerUp
+\override TextSpanner #'bound-details #'left #'text =
+ \markup { \italic "rit" }
+c2\startTextSpan b c\stopTextSpan a
+@end lilypond
+
+@refcommands
+
+@funindex textSpannerUp
+@code{\textSpannerUp},
+@funindex textSpannerDown
+@code{\textSpannerDown},
+@funindex textSpannerNeutral
+@code{\textSpannerNeutral}.
+
+
+@commonprop
+
+Pour obtenir une ligne pleine, utilisez
+
+@example
+\override TextSpanner #'dash-fraction = #'()
+@end example
+
+
+@seealso
+
+Référence du programme : @internalsref{TextSpanner}.
+
@node Text marks
@subsection Text marks
-UNTRANSLATED NODE: IGNORE ME
+@cindex coda sur une barre de mesure
+@cindex segno sur une barre de mesure
+@cindex point d'orgue sur une barre de mesure
+@cindex barres de mesure, symboles au dessus de
+@funindex \mark
+
+La commande @code{\mark} est tout d'abord conçue pour les
+@ref{Rehearsal marks}. Elle peut néanmoins servir à insérer des
+signes de coda ou de segno, ou bien un point d'orgue, au dessus d'une
+barre de mesure. Couplez-la alors à la commande @code{\markup} pour
+avoir accès au symbole approprié (ils sont répertoriés dans
+@ref{The Feta font}).
+
+
+@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
+c1 \mark \markup { \musicglyph #"scripts.ufermata" }
+c1
+@end lilypond
+
+@noindent
+Le résultat de @code{\mark} n'apparaîtra que sur la portée supérieure
+d'un système. Si vous introduisez la commande @code{\mark} au moment
+d'une barre de mesure, la marque se placera au dessus de la barre. Si
+vous y faites appel au milieu d'une mesure, cette marque sera
+positionnée entre les notes. Si elle intervient en début de ligne,
+elle sera placée juste avant la première note de cette portée. Enfin,
+une marque qui tomberait sur un saut de ligne sera imprimée au début
+de la ligne suivante.
+@c IMO this is a bug; hopefully it'll be fixed soon, so I can
+@c delete this sentence. -gp
+Au cas où il n'y aurait pas de ligne à suivre, la marque ne sera pas imprimée.
+
+
+@commonprop
+
+Pour imprimer une marque à la fin de la portée en cours, procédez
+ainsi :
+
+@example
+\override Score.RehearsalMark
+ #'break-visibility = #begin-of-line-invisible
+@end example
+
+@code{\mark} est souvent bien utile pour porter une indication à la
+fin d'une mesure. Pensez alors à modifier la propriété
+@code{#'self-alignment}.
+
+@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
+\override Score.RehearsalMark
+ #'break-visibility = #begin-of-line-invisible
+c1 c c c4 c c c
+\once \override Score.RehearsalMark #'self-alignment-X = #right
+\mark "D.S. al Fine "
+@end lilypond
+
+Les indications textuelles peuvent s'aligner par rapport à d'autres
+objets que des barres de mesure, tels que l'armure, la clé ou le chiffre de
+mesure :
+
+@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
+\relative {
+ c1
+ \key cis \major
+ \clef alto
+ \override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
+ \mark "on key"
+ cis
+ \key ces \major
+ \override Score.RehearsalMark #'break-align-symbols = #'(clef)
+ \clef treble
+ \mark "on clef"
+ ces
+ \override Score.RehearsalMark #'break-align-symbols = #'(time-signature)
+ \key d \minor
+ \clef tenor
+ \time 3/4
+ \mark "on time"
+ c
+}
+@end lilypond
+
+Les symboles pris en charge par @code{break-align-symbols} sont :
+@code{ambitus}, @code{breathing-sign}, @code{clef}, @code{custos},
+@code{staff-bar}, @code{left-edge}, @code{key-cancellation},
+@code{key-signature}, et @code{time-signature}.
+
+Par défaut, les indications textuelles sont alignées avec le milieu
+des objets de notation. Bien entendu, vous pouvez modifier les
+propriétés @code{break-align-anchor-alignment} ou
+@code{break-align-anchor} des objets en question pour obtenir un autre
+résultat.
+
+@c KEEP LY
+@lilypond[fragment,quote,ragged-right,verbatim]
+{
+ \override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
+ c1
+ \key cis \major
+
+ % La marque sera alignée sur le côté gauche de l'armure
+ \once \override Staff.KeySignature #'break-align-anchor-alignment = #LEFT
+ \mark \default
+ cis1
+ \key ces \major
+
+ % La marque sera alignée sur le côté droit de l'armure
+ \once \override Staff.KeySignature #'break-align-anchor-alignment = #RIGHT
+ \mark \default
+ ces1
+ \key cis \major
+
+ % La marque sera alignée sur le côté droit de l'armure,
+ % puis décalée vers la droite de 2 unités.
+ \once \override Staff.KeySignature #'break-align-anchor = #2
+ \mark \default
+ ces1
+}
+@end lilypond
+
+Bien que ces indications textuelles ne soient habituellement imprimées
+qu'au niveau de la portée supérieure, vous pouvez forcer leur
+affectation à chacune des portées :
+
+@lilypond[quote,ragged-right,verbatim,relative=2]
+{
+ \new Score \with {
+ \remove "Mark_engraver"
+ }
+ <<
+ \new Staff \with {
+ \consists "Mark_engraver"
+ }
+ { c''1 \mark "foo" c'' }
+ \new Staff \with {
+ \consists "Mark_engraver"
+ }
+ { c'1 \mark "foo" c' }
+ >>
+}
+@end lilypond
+
+
+@seealso
+
+Référence du programme : @internalsref{RehearsalMark}.
+
@node Text markup
@subsection Text markup
-UNTRANSLATED NODE: IGNORE ME
+@cindex étiquette
+@cindex commentaire textuel
+@cindex étiquette textuelle
+@cindex texte ajouté
+
+La commande @code{\markup} permet d'ajouter du texte. Vous pouvez y
+inclure des commandes, précédées d'un antislash @code{\} ; les
+caractères @code{\} et @code{#} doivent être encadrés de guillemets
+informatiques @code{"}.
+
+@lilypond[quote,verbatim,fragment,relative=1]
+c1^\markup { hello }
+c1_\markup { hi there }
+c1^\markup { hi \bold there, is \italic {anyone home?} }
+c1_\markup { "\special {weird} #characters" }
+@end lilypond
+
+@noindent
+Pour une liste des différentes commandes disponibles, consultez
+@ref{Overview of text markup commands}.
+
+
+@code{\markup} est avant tout conçu pour gérer les
+@internalsref{TextScript}s, mais rien ne s'oppose à son utilisation
+pour traiter du texte avec LilyPond.
+
+@lilypond[quote,verbatim]
+\header{ title = \markup{ \bold { foo \italic { bar! } } } }
+\score{
+ \relative c'' {
+ \override Score.RehearsalMark
+ #'break-visibility = #begin-of-line-invisible
+ \override Score.RehearsalMark #'self-alignment-X = #right
+
+ \set Staff.instrumentName = \markup{ \column{ Alto solo } }
+ c2^\markup{ don't be \flat }
+ \override TextSpanner #'bound-details #'left #'text = \markup{\italic rit }
+ b2\startTextSpan
+ a2\mark \markup{ \large \bold Fine }
+ r2\stopTextSpan
+ \bar "||"
+ }
+ \addlyrics { bar, foo \markup{ \italic bar! } }
+}
+@end lilypond
+
+La commande @code{\markup} peut intervenir à tout moment, y compris en
+dehors d'un bloc @code{\score}. Voir à ce sujet
+@ref{Multiple scores in a book}.
+
+@lilypond[quote,ragged-right,verbatim]
+\markup{ Here is some text. }
+@end lilypond
+
+@cindex changer de police
+
+Le @emph{markup} de l'exemple précédent montre comment utiliser les
+commandes de changement de police. Les commandes @code{\bold} et
+@code{\italic} n'affectent que le premier mot qui les suit ; encadrez
+les par des accolades si vous désirez que ces commandent s'appliquent
+à plusieurs mots.
+
+@example
+\markup @{ \bold @{ c'est moi @} @}
+@end example
+
+@noindent
+Une bonne habitude à prendre consiste à utiliser des accolades même
+pour un seul mot, comme ici :
+@example
+\markup @{ qui \italic @{ est @} là ? @}
+@end example
+
+En mode @emph{markup}, vous pouvez composer des expressions comme
+en mathématiques, des documents XML ou bien les expressions musicales.
+Vous pouvez empiler ces expressions grâce à la commande
+@code{\column}, ou les centrer par rapport à leur milieu avec
+@code{\center-align}.
+
+@lilypond[quote,verbatim,fragment,relative=1]
+c1^\markup { \column { a bbbb \line { c d } } }
+c1^\markup { \center-align { a bbbb c } }
+c1^\markup { \line { a b c } }
+@end lilypond
+
+Des listes non précédées de commande ne sont pas isolées. Ainsi,
+@example
+\center-align @{ @{ a b @} @{ c d @} @}
+@end example
+
+@noindent
+
+est la même expression que
+
+@example
+\center-align @{ a b c d @}
+@end example
+
+@noindent
+
+L'utilisation des @code{"} ou de la commande @code{\line} permet de
+différencier les listes de mots.
+
+@lilypond[quote,verbatim,fragment,relative=1]
+\fatText
+c4^\markup{ \center-align { on three lines } }
+c4^\markup{ \center-align { "all one line" } }
+c4^\markup{ \center-align { { on three lines } } }
+c4^\markup{ \center-align { \line { on one line } } }
+@end lilypond
+
+Vous pouvez stocker les étiquettes textuelles en tant que variables,
+et attacher ces identificateurs à des notes, comme
+@example
+allegro = \markup @{ \bold \large @{ Allegro @} @}
+ @{ a^\allegro b c d @}
+@end example
+
+Certains objets possèdent leurs propres procédures d'alignement, qui
+annuleront toute spécification d'alignement que vous pourriez affecter
+à un argument de type @emph{markup} que vous leur auriez fourni. Par
+exemple, les @internalsref{RehearsalMark} sont centrées
+horizontalement ; de fait, utiliser
+@code{\mark \markup @{ \left-align .. @}} sera sans effet.
+
+Par ailleurs, le placement vertical n'est effectué qu'après la
+création de l'objet @emph{étiquette textuelle}. Si donc vous souhaitez
+déplacer une étiquette, il vous faudra utiliser la propriété
+@code{#'padding} ou créer un @qq{point d'ancrage} à l'intérieur même
+de l'étiquette (généralement avec @code{\hspace #0}).
+
+@lilypond[quote,verbatim,fragment,relative=1]
+\fatText
+c'4^\markup{ \raise #5 "not raised" }
+\once \override TextScript #'padding = #3
+c'4^\markup{ raised }
+c'4^\markup{ \hspace #0 \raise #1.5 raised }
+@end lilypond
+
+Certaines situations particulières, telles que les indications de
+nuance, possèdent des propriétés prédéfinies quant à leur police.
+Nous vous conseillons, en pareil cas, de réinitialiser ces propriétés
+en utilisant @code{normal-text}. Pour plus d'informations, consultez
+@ref{Overview of text markup commands}.
+
+
+@seealso
+
+Dans ce manuel : @ref{Overview of text markup commands}.
+
+Référence du programme : @internalsref{TextScript}.
+
+Fichiers d'initialisation : @file{scm/@/new@/-markup@/.scm}.
+
+
+@refbugs
+
+Le crénage ou la génération de ligatures ne sont accessibles que lors
+d'un retraitement par @TeX{}. Dans ce cas, LilyPond n'en tient pas
+compte, et l'espacement de tels textes sera trop large.
+
+Les erreurs de syntaxe sont peu loquaces.
+
@node Nested scores
@subsection Nested scores
-UNTRANSLATED NODE: IGNORE ME
+Rien ne s'oppose à ce qu'une étiquette ne comporte de la musique. Il
+suffit que l'expression en question contienne un bloc @code{\score} et
+un bloc @code{\layout}.
+
+@lilypond[quote,verbatim,ragged-right]
+\relative {
+ c4 d^\markup {
+ \score {
+ \relative { c4 d e f }
+ \layout { }
+ }
+ }
+ e f
+}
+@end lilypond
@node Page wrapping text
@subsection Page wrapping text
-
-UNTRANSLATED NODE: IGNORE ME
+Alors que @code{\markup} s'utilise pour traiter un bloc de texte
+insécable, @code{\markuplines} permet, employé en tête de partition,
+d'obtenir un bloc de lignes réparties différemment et au cas où sur
+plusieurs pages.
+
+@verbatim
+\markuplines {
+ \justified-lines {
+ Un long texte constitué de lignes justifiées.
+ ...
+ }
+ \justified-lines {
+ Un autre grand paragraphe justifié.
+ ...
+ }
+ ...
+}
+@end verbatim
+
+@code{\markuplines} prend en argument une liste de lignes de texte,
+qui peut elle-même consister en une suite de commandes générant à leur
+tour des lignes de texte, comme ici :
+
+@verbatim
+\markuplines {
+ \line { ... } % une ligne alignée à gauche
+ \fill-line { \line { ... } } % une ligne centrée
+ \wordwrap-lines { ... } % une liste de lignes alignées à gauche
+ \justified-lines { ... } % une liste de lignes justifiées
+}
+@end verbatim
+
+Les différentes commandes permettant de générer des listes de lignes
+se trouve dans @ref{Overview of text markup list commands}.
+
+@seealso
+
+Dans ce manuel : @ref{Overview of text markup list commands},
+@ref{New markup list command definition}.
+
+@refcommands
+
+@funindex \markuplines
+@code{\markuplines}
@node Overview of text markup commands
@subsection Overview of text markup commands
-UNTRANSLATED NODE: IGNORE ME
+Vous pouvez utiliser les commandes suivantes au sein d'un bloc
+@code{\markup @{ @}}.
@include markup-commands.tely
+
@node Overview of text markup list commands
@subsection Overview of text markup list commands
-UNTRANSLATED NODE: IGNORE ME
+Vous pouvez utiliser les commandes suivantes avec @code{\markuplines}.
@include markup-list-commands.tely
+
@node Font selection
@subsection Font selection
-UNTRANSLATED NODE: IGNORE ME
+@cindex sélection de polices
+@cindex grossissement des polices
+@funindex font-interface
+
+C'est en jouant sur les propriétés des objets décrites ci-après que
+vous pourrez sélectionner une police parmi les familles de fontes
+préconfigurées. LilyPond utilise par défaut la police musicale feta.
+Pour le texte, les polices sont sélectionnées par Pango/Fontconfig.
+C'est New Century Schoolbook qui sert de police sérif par défaut, et
+celles définies lors de l'installation de Pango pour ce qui est du
+sans-serif et du @q{typewriter}.
+
+
+@itemize @bullet
+@item @code{font-encoding}
+symbolise le tracé des glyphes. N'utilisez cette propriété que pour
+traiter des éléments non textuels, comme :
+
+
+@code{fetaBraces} pour les accolades de partition pianistique,
+@code{fetaMusic} pour de la musique (y compris musique ancienne),
+@code{fetaDynamic} pour les nuances et @code{fetaNumber} pour les
+chiffres.
+
+@item @code{font-family}
+symbolise les différentes familles de police : @code{roman} (Computer
+Modern), @code{sans}-serif et @code{typewriter} (espacement fixe).
+
+@item @code{font-shape}
+symbolise le style des caractères. En pratique, chaque famille de
+police dispose de @code{italic}, @code{caps} (petites capitales) ou
+@code{upright} (droit).
+
+@item @code{font-series}
+symbolise le niveau de gras des caractères. Chaque style dispose, pour
+chaque famille, de @code{medium} et @code{bold} (gras).
+
+@end itemize
+
+Les variantes ci-dessus mentionnées font référence à une feuille de
+style prédéfinie. Vous pouvez cependant faire appel à une autre
+police, en utilisant la propriété @code{font-name} :
+
+@lilypond[fragment,verbatim]
+{
+ \override Staff.TimeSignature #'font-name = #"Charter"
+ \override Staff.TimeSignature #'font-size = #2
+ \time 3/4
+ c'1_\markup {
+ \override #'(font-name . "Vera Bold")
+ { This text is in Vera Bold }
+ }
+}
+@end lilypond
+
+@noindent
+Vous pouvez utiliser n'importe quelle police, du moment qu'elle est
+accessible par Pango/Fontconfig. Pour obtenir la liste de toutes
+les polices disponibles sur votre machine, lancez
+@example
+lilypond -dshow-available-fonts blabla
+@end example
+(quel qu'il soit, le dernier argument est obligatoire).
+
+
+La propriété @code{font-size} permet de régler la taille de la police.
+La taille effective que vous obtiendrez dépend de
+@code{text-font-size} tel que défini dans le bloc @code{\paper}.
+
+@cindex taille de police
+@cindex police, augmenter la taille
+
+
+Vous pouvez aussi changer la police par défaut au niveau du document.
+Il suffit alors de faire appel à @code{make-pango-font-tree} au sein
+du bloc @code{paper}. Vous définirez alors la police à utiliser pour
+du texte respectivement en roman, sans serif et monospace, comme ici :
+
+@cindex polices, définir
+@cindex Pango
+
+
+@lilypond[verbatim]
+\paper {
+ myStaffSize = #20
+
+ #(define fonts
+ (make-pango-font-tree "Times New Roman"
+ "Nimbus Sans"
+ "Luxi Mono"
+ (/ myStaffSize 20)))
+}
+
+{
+ c'^\markup { roman: foo \sans bla \typewriter bar }
+}
+@end lilypond
+
+@c we don't do Helvetica / Courier, since GS incorrectly loads
+@c Apple TTF fonts
+
+
+
+@seealso
+
+Exemples : @lsr{text,font@/-family@/-override.ly}.
+
@node New dynamic marks
@subsection New dynamic marks
-UNTRANSLATED NODE: IGNORE ME
+Grâce à la commande @code{make-dynamic-script}, vous pouvez créer de
+nouvelles marques textuelles de nuances que vous combinerez
+éventuellement avec les signes de nuances.
+Notez bien que la police des nuances en contient que les caractères
+@code{f,m,p,r,s} and @code{z}.
+
+Certains composants, tels que les marques de nuances, possèdent des
+propriétés particulières et prédéfinies quant à leur police. Lorsque
+vous créez du texte en pareille situation, nous vous recommandons
+d'utiliser @code{normal-text} pour annuler ces propriétés. Voir
+@ref{Overview of text markup commands} pour plus de détails.
+
+@cindex make-dynamic-script
+
+@lilypond[quote,verbatim,ragged-right]
+sfzp = #(make-dynamic-script "sfzp")
+\relative c' {
+ c4 c c\sfzp c
+}
+@end lilypond
+
+@cindex Nuances éditoriales
+@cindex Nuances, entre parenthèses
+
+Vous pouvez aussi encadrer les nuances entre parenthèses ou entre
+crochets. Ceci est souvent utilisé pour ajouter des nuances propres à
+une édition donnée.
+
+@lilypond[quote,verbatim,ragged-right]
+rndf = \markup{ \center-align {\line { \bold{\italic (}
+ \dynamic f \bold{\italic )} }} }
+boxf = \markup{ \bracket { \dynamic f } }
+{ c'1_\rndf c'1_\boxf }
+@end lilypond
+
+
@node Preparing parts
@section Preparing parts
-UNTRANSLATED NODE: IGNORE ME
+Cette section décrit plusieurs fonctions qui permettent de préparer
+un matériel d'orchestre, autrement dit une partition par pupitre.
+
+@menu
+* Multi measure rests::
+* Metronome marks::
+* Rehearsal marks::
+* Bar numbers::
+* Instrument names::
+* Instrument transpositions::
+* Ottava brackets::
+* Different editions from one source::
+@end menu
+
-@menu
-* Multi measure rests::
-* Metronome marks::
-* Rehearsal marks::
-* Bar numbers::
-* Instrument names::
-* Instrument transpositions::
-* Ottava brackets::
-* Different editions from one source::
-@end menu
@node Multi measure rests
@subsection Multi measure rests
-UNTRANSLATED NODE: IGNORE ME
+@cindex mesures à compter
+@cindex mesure entière de silence
+@cindex Silences, multi-mesures
+@cindex Silences, mesure entère
+@cindex une pause par mesure
+@funindex R
+
+Un silence valant une ou plusieurs mesures entières s'entre avec un
+@samp{R} majuscule. Ceci ne peut être utile que pour une mesure complètement
+vide, et pour générer des parties séparées : ce silence sera alors
+répété sur autant de mesures que nécessaire, ou bien imprimé une seule
+fois. La répétition est contrôlée par la propriété
+@code{Score.skipBars}. Au cas où ce commutateur est défini comme
+vrai (lettre @code{##t} pour @q{true}), les mesures vides ne seront pas répétées, et le nombre exact de
+mesures sera ajouté.
+
+@lilypond[quote,ragged-right,fragment,verbatim]
+\time 4/4 r1 | R1 | R1*2 \time 3/4 R2. \time 2/4 R2 \time 4/4
+\set Score.skipBars = ##t R1*17 R1*4
+@end lilypond
+
+Le @code{1} de @code{R1} est le même que celui utilisé pour la durée
+des notes. Vous devrez donc, si le morceau n'est pas à 4/4, stipuler
+un autre durée, qui pourra contenir des points d'augmentation ou être
+libellé sous forme de fraction :
+
+@lilypond[quote,ragged-right,fragment,verbatim]
+\set Score.skipBars = ##t
+\time 3/4
+R2. | R2.*2
+\time 13/8
+R1*13/8
+R1*13/8*12 |
+\time 10/8 R4*5*4 |
+@end lilypond
+
+Un @code{R} qui s'étend sur une seule mesure s'imprime tantôt comme
+une pause, tantôt comme une brève, et sera centré sur la mesure
+quelle que soit la métrique.
+
+Dans le cas où ce silence ne dure que quelques mesures, LilyPond
+imprime sur la portée des @qq{ silences d'église }, simple suite de
+rectangles. La propriété @code{MultiMeasureRest.expand-limit} permet
+d'obtenir un silence unique.
+
+@lilypond[quote,ragged-right,fragment,verbatim]
+\set Score.skipBars = ##t
+R1*2 | R1*5 | R1*9
+\override MultiMeasureRest #'expand-limit = 1
+R1*2 | R1*5 | R1*9
+@end lilypond
+
+@cindex texte et silence multi-mesures
+@cindex script et silence multi-mesures
+@cindex point d'orgue et silence multi-measures
+
+Vous pouvez aussi ajouter du texte à un silence multi-mesures en utilisant
+la syntaxe @var{note}-@code{markup} (cf. @ref{Text markup}). La
+variable @code{\fermataMarkup} permet d'ajouter un point d'orgue.
+
+@lilypond[quote,ragged-right,verbatim,fragment]
+\set Score.skipBars = ##t
+\time 3/4
+R2.*10^\markup { \italic "ad lib." }
+R2.^\fermataMarkup
+@end lilypond
+
+Attention ! c'est @code{MultiMeasureRestText} qui créera le texte, et
+non @code{TextScript}.
+
+@lilypond[quote,ragged-right,verbatim,fragment]
+\override TextScript #'padding = #5
+R1^"low"
+\override MultiMeasureRestText #'padding = #5
+R1^"high"
+@end lilypond
+
+Pour aligner votre texte sur le début de la mesure, rattachez-le à un
+silence invisible de longueur zéro comme ceci :
+
+@example
+s1*0^"Allegro"
+R1*4
+@end example
+
+
+@seealso
+
+Référence du programme : @internalsref{MultiMeasureRestMusic},
+@internalsref{MultiMeasureRest}.
+
+L'objet de rendu @internalsref{MultiMeasureRestNumber} traite les
+nombres, et @internalsref{MultiMeasureRestText} le texte ajouté par
+l'utilisateur.
+
+
+@refbugs
+
+Vous ne pouvez pas utiliser de doigtés (p.ex. @code{R1-4}) pour
+positionner des nombres au dessus d'un silence multi-mesures, ni
+modifier la hauteur.
+
+@cindex condenser les silences
+
+Condenser plusieurs silences en un unique silence multi-mesures ne peut
+être automatisé. Les silences multi-mesures peuvent générer des
+collisions avec d'autres silences.
+
+Pensez à indiquer explicitement la durée de la note qui suit un
+silence multi-mesures, car elle sera par défaut égale à la durée totale
+des mesures à compter. Ainsi, dans l'exemple ci-après, les deux do
+dièses vaudront chacun quatre mesures à 4/4.
+@example
+R1*4 cis cis
+@end example
+Lorsque @code{skipBars} est activé, le résultat semblera correct, mais
+la numérotation des mesures sera suspendue.
+
+
@node Metronome marks
@subsection Metronome marks
-UNTRANSLATED NODE: IGNORE ME
+@cindex Tempo
+@cindex battements par minute
+@cindex indication métronomique
+
+Le métronome se règle de la manière suivante,
+@example
+\tempo @var{durée} = @var{par minute}
+@end example
+
+Les indications métronomiques seront interprétées, dans le fichier
+MIDI, comme des changements de tempo. Ils seront imprimés sur la
+partition comme ici :
+@funindex \tempo
+@lilypond[quote,ragged-right,verbatim,fragment]
+\tempo 8.=120 c''1
+@end lilypond
+
+
+@commonprop
+
+Vous pouvez indiquer un changement de tempo pour le fichier MIDI sans
+pour autant l'imprimer. Il suffit alors de le rendre invisible pour
+l'impression :
+@example
+\once \override Score.MetronomeMark #'transparent = ##t
+@end example
+
+Vous pouvez imprimer d'autres indications métronomiques, telles que
+des équivalences, en utilisant ce type d'étiquette textuelle :
+@lilypond[quote,ragged-right,verbatim,relative,fragment]
+c4^\markup {
+ (
+ \smaller \general-align #Y #DOWN \note #"16." #1
+ =
+ \smaller \general-align #Y #DOWN \note #"8" #1
+ ) }
+@end lilypond
+
+@noindent
+Pour plus de détails, voir @ref{Text markup}.
+
+
+@seealso
+
+Référence du programme : @internalsref{MetronomeMark}.
+
+
+@refbugs
+
+Les risques de collision ne sont pas vérifiés. Dans le cas où il y
+aurait des notes au dessus de la portée ou d'autres objets
+(articulations, liaisons, texte, etc), l'indication métronomique peut
+venir en surimpression. Augmentez alors le décalage de cette
+indication par rapport à la portée :
+
+@example
+\override Score.MetronomeMark #'padding = #2.5
+@end example
+
@node Rehearsal marks
@subsection Rehearsal marks
-UNTRANSLATED NODE: IGNORE ME
+@cindex Repères, indication de
+@funindex \mark
+
+Indiquer un repère s'obtient grâce à la commande @code{\mark}.
+
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+c1 \mark \default
+c1 \mark \default
+c1 \mark #8
+c1 \mark \default
+c1 \mark \default
+@end lilypond
+
+@noindent
+La lettre@tie{}@q{I} n'est pas utilisée, conformément aux usages de la
+gravure. Cependant, vous pourrez intégrer la lettre @q{I} en utilisant
+
+@example
+\set Score.markFormatter = #format-mark-alphabet
+@end example
+
+Lorsque vous utilisez @code{\mark \default}, le repère s'incrémente
+automatiquement ; toutefois donner un nombre en argument permet de
+spécifier manuellement le repère en question. La valeur à utiliser
+est enregistrée dans la propriété @code{rehearsalMark}.
+
+Le style du repère est déterminé par la propriété
+@code{markFormatter}. Il s'agit d'une fonction qui prend en arguments
+le repère en cours (un entier) ainsi que le contexte en cours, et
+retournera un objet de type étiquette. Dans l'exemple qui suit,
+@code{markFormatter} est réglé pour une procédure type. Quelques
+mesure plus loin, son comportement est modifié pour imprimer un
+repère encadré.
+
+@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
+\set Score.markFormatter = #format-mark-numbers
+c1 \mark \default
+c1 \mark \default
+\set Score.markFormatter = #format-mark-box-numbers
+c1 \mark \default
+c1 \mark \default
+c1
+@end lilypond
+
+Le fichier @file{scm/@/translation@/-functions@/.scm} comporte les
+définitions de @code{format-mark-numbers} (comportement par défaut),
+@code{format-mark-box-numbers},
+@code{format-mark-letters} et @code{format-mark-box-letters}. Vous
+pouvez vous en inspirer pour d'autres fonctions de formatage.
+
+@code{format-mark-barnumbers}, @code{format-mark-box-barnumbers} et
+@code{format-mark-circle-barnumbers} permettent d'imprimer le numéro
+de mesure au lieu des compteurs alphabétique ou numérique.
+
+On peut aussi spécifier manuellement une marque de repère :
+
+@example
+\mark "A1"
+@end example
+
+@noindent
+@code{Score.markFormatter} sera sans effet sur des repères ainsi
+définis. Un @code{\markup} peut néanmoins s'utiliser en argument.
+
+@example
+\mark \markup@{ \box A1 @}
+@end example
+
+@cindex segno
+@cindex coda
+@cindex D.S al Fine
+
+Un @code{\mark} peut contenir un glype musical tel que le signe
+@emph{segno}.
+
+@lilypond[fragment,quote,ragged-right,verbatim,relative]
+c1 \mark \markup { \musicglyph #"scripts.segno" }
+c1 \mark \markup { \musicglyph #"scripts.coda" }
+c1 \mark \markup { \musicglyph #"scripts.ufermata" }
+c1
+@end lilypond
+
+@noindent
+Pour connaître les différents symboles accessibles par
+@code{\musicglyph}, consultez @ref{The Feta font}.
+
+Pour affiner le positionnement des repères, veuillez vous référer à
+@ref{Text marks}.
+
+@seealso
+
+Dans ce manuel : @ref{Text marks}.
+
+Référence du programme : @internalsref{RehearsalMark}.
+
+Fichiers d'initialisation : @file{scm/@/translation@/-functions@/.scm}
+contient les définitions de @code{format-mark-numbers} et
+@code{format-mark-letters}. Elles seront source d'inspiration pour
+d'autres fonctions de formatage.
+
+Exemples : @lsr{parts,rehearsal-mark-numbers.ly}
+
@node Bar numbers
@subsection Bar numbers
-UNTRANSLATED NODE: IGNORE ME
+@cindex Mesure, numéro de
+@cindex numéros de mesure
+@funindex currentBarNumber
+
+Les numéros de mesure sont imprimés par défaut à chaque début de
+ligne. Ce nombre est stocké par la propriété @code{currentBarNumber}
+qui sera mis à jour à chaque mesure.
+
+@lilypond[verbatim,ragged-right,quote,fragment,relative]
+\repeat unfold 4 {c4 c c c} \break
+\set Score.currentBarNumber = #50
+\repeat unfold 4 {c4 c c c}
+@end lilypond
+
+L'impression d'un numéro de mesure ne peut intervenir que s'il y a une
+barre. Aussi, pour pouvoir le faire au début d'un morceau,
+devrez-vous ajouter une barre vide :
+
+@lilypond[verbatim,ragged-right,quote,fragment,relative]
+\set Score.currentBarNumber = #50
+\bar ""
+\repeat unfold 4 {c4 c c c} \break
+\repeat unfold 4 {c4 c c c}
+@end lilypond
+
+Vous pouvez imprimer un numéro de mesure à intervalles réguliers plutôt
+qu'en tête de chaque ligne. C'est ce qu'illustre l'exemple suivant,
+dont la source complète est
+@lsr{staff,making-bar-numbers-appear-at-regular-intervals.ly}.
+
+@lilypondfile[ragged-right,quote]{bar-number-regular-interval.ly}
+
+Désactiver le graveur concerné --- @code{Bar_number_engraver} ---
+donnera une partition sans numéros de mesure.
+
+@lilypond[verbatim,ragged-right,quote]
+\layout {
+ \context {
+ \Score
+ \remove "Bar_number_engraver"
+ }
+}
+\relative c''{
+c4 c c c \break
+c4 c c c
+}
+@end lilypond
+
+
+@seealso
+
+Référence du programme : @internalsref{BarNumber}.
+
+Exemples : @lsrdir{staff}
+
+
+@refbugs
+
+Les numéros de mesure peuvent entrer en collision avec les crochets de
+@internalsref{StaffGroup}. La propriété @code{padding} --- décalage
+--- de l'objet @internalsref{BarNumber} permet alors d'ajuster leur
+positionnement.
+
@node Instrument names
@subsection Instrument names
-UNTRANSLATED NODE: IGNORE ME
+Dans un conducteur, les noms d'instrument sont portés en regard de
+chacune des portées.
+
+Ce résultat s'obtient en spécifiant
+@internalsref{Staff}.@code{instrumentName} et
+@internalsref{Staff}.@code{shortInstrumentName}, ou
+@internalsref{PianoStaff}.@code{instrumentName} et
+@internalsref{PianoStaff}.@code{shortInstrumentName}. L'argument
+textuel apparaîtra avant le début de la portée. La première ligne
+affichera @code{instrumentName}, et les suivantes
+@code{shortInstrumentName}.
+
+@lilypond[quote,verbatim,ragged-right,relative=1,fragment]
+\set Staff.instrumentName = "Ploink "
+\set Staff.shortInstrumentName = "Plk "
+c1
+\break
+c''
+@end lilypond
+
+Le recours à la commande @code{\markup} permet de construire des noms
+d'instruments particuliers, tels que
+
+@lilypond[quote,fragment,verbatim,ragged-right]
+\set Staff.instrumentName = \markup {
+ \column { "Clarinetti"
+ \line { "in B" \smaller \flat } } }
+c''1
+@end lilypond
+
+Si vous centrez le nom d'un instrument, il faudra le faire pour tous
+
+@lilypond[quote,verbatim,ragged-right]
+{ <<
+\new Staff {
+ \set Staff.instrumentName = \markup {
+ \center-align { "Clarinetti"
+ \line { "in B" \smaller \flat } } }
+ c''1
+}
+\new Staff {
+ \set Staff.instrumentName = \markup{ \center-align { Vibraphone }}
+ c''1
+}
+>>
+}
+@end lilypond
+
+Losque le nom d'un instrument est relativement long, il est judicieux
+d'augmenter le retrait --- @code{indent} --- au sein du bloc
+@code{\layout}.
+
+Procédez comme suit pour centrer des noms d'instruments tout en
+préservant un décalage par rapport à la portée :
+
+@lilypond[quote,verbatim,ragged-right]
+\new StaffGroup \relative
+<<
+ \new Staff {
+ \set Staff.instrumentName = \markup { \hcenter-in #10 "blabla" }
+ c1 c1
+ }
+ \new Staff {
+ \set Staff.instrumentName = \markup { \hcenter-in #10 "blo" }
+ c1 c1
+ }
+>>
+@end lilypond
+
+Des noms d'instruments peuvent s'utiliser dans d'autres contextes, tels
+que @code{GrandStaff}, @code{ChoirStaff}, ou @code{StaffGroup}, à
+condition de leur affecter le graveur approprié :
+
+@example
+\layout@{
+ \context @{\GrandStaff \consists "Instrument_name_engraver"@}
+@}
+@end example
+
+@noindent
+Pour de plus amples informations sur la manière d'activer ou
+désactiver un graveur, voir @ref{Modifying context plug-ins}.
+
+Vous pouvez changer d'instrument en cours de morceau :
+
+@lilypond[quote,fragment,verbatim,ragged-right]
+\set Staff.instrumentName = "First"
+\set Staff.shortInstrumentName = "one"
+c1 c c c \break
+c1 c c c \break
+\set Staff.instrumentName = "Second"
+\set Staff.shortInstrumentName = "two"
+c1 c c c \break
+c1 c c c \break
+@end lilypond
+
+
+@seealso
+
+Référence du programme : @internalsref{InstrumentName}.
+
+
@node Instrument transpositions
@subsection Instrument transpositions
-UNTRANSLATED NODE: IGNORE ME
+@cindex transposition, MIDI
+@cindex transposition, instrument
+
+Vous pouvez spécifier la tonalité d'un instrument transpositeur, ce
+qui est le cas pour de nombreux instruments à vent comme la clarinette
+(si bémol, la ou mi bémol), le cor (fa), ou la trompette (si bémol,
+ut, ré ou mi bémol).
+
+Cette transposition s'indique après le mot-clé @code{\transposition}.
+
+@example
+\transposition bes %% clarinette en si bémol
+@end example
+
+@noindent
+Cette commande détermine la propriété @code{instrumentTransposition},
+dont la valeur sera utilisée pour le fichier MIDI et en cas de
+citation. Elle n'affecte en rien la manière dont les notes seront
+imprimées sur la portée. Référez-vous à la section @ref{Transpose}
+pour obtenir un autre résultat.
+
+La hauteur donnée en argument à @code{\transposition} doit
+correspondre à la note entendue lorsqu'un @code{do} écrit sur la
+portée est joué par l'instrument transpositeur. Par exemple, lorsque
+vous saisissez une partition en notes réelles, toutes les voix
+devraient être en ut ; pour les instruments transpositeurs, il faudra
+procéder de cette manière :
+
+@example
+clarinet = @{
+ \transposition c'
+ ...
+@}
+saxophone = @{
+ \transposition c'
+ ...
+@}
+@end example
+
+Lorsque vous entrez de la musique à partir d'une partie transposée,
+utilisez la commande @code{\transposition}. Si l'on prend l'exemple
+des parties de cor, leur tonalité change souvent au cours d'un morceau ;
+en recopiant cette partie, utilisez @code{\transposition} ainsi :
+
+@example
+\transposition d'
+c'4^"en RÉ"
+...
+\transposition g'
+c'4^"en SOL"
+...
+@end example
+
@node Ottava brackets
@subsection Ottava brackets
-UNTRANSLATED NODE: IGNORE ME
+Les marques d'octaviation, @emph{Ottava}, permettent d'introduire une
+transposition spécifique d'une octave pour la portée en cours. C'est
+la fonction @code{set-octavation} qui s'en charge.
+
+@cindex ottava
+@cindex 15ma
+@cindex octaviation
+
+@lilypond[quote,ragged-right,verbatim,fragment]
+\relative c''' {
+ a2 b
+ #(set-octavation 1)
+ a b
+ #(set-octavation 0)
+ a b
+}
+@end lilypond
+
+La fonction @code{set-octavation} peut aussi prendre en argument les
+valeurs -1@tie{}(pour 8va bassa), 2@tie{}(pour 15ma --- 2 octaves) ou
+-2@tie{}(pour 15ma bassa). En interne, cette fonction détermine les
+propriétés @code{ottavation} (p.ex. en @code{"8va"} ou @code{"8vb"})
+et @code{centralCPosition}. Vous pouvez modifier le texte d'une marque
+d'octaviation en définissant @code{ottavation} après avoir fait appel
+à @code{set-octavation} :
+
+@lilypond[quote,ragged-right,verbatim]
+{
+ #(set-octavation 1)
+ \set Staff.ottavation = #"8"
+ c'''
+}
+@end lilypond
+
+
+@seealso
+
+Référence du programme : @internalsref{OttavaBracket}.
+
+
+@refbugs
+
+@code{set-octavation} gère difficilement les changements de clé qui
+pourraient intervenir alors qu'elle est effective.
+
@node Different editions from one source
@subsection Different editions from one source
-UNTRANSLATED NODE: IGNORE ME
+@funindex \tag
+@cindex tag
+
+La commande @code{\tag} affecte un nom à des expressions musicales.
+Les expressions ainsi balisées pourront être filtrées par la suite.
+Ce mécanisme permet d'obtenir différentes versions à partir d'une même
+source musicale.
+
+Dans l'exemple qui suit, nous obtenons deux versions du même extrait,
+l'une pour le conducteur, l'autre pour l'instrumentiste, et qui
+comportera les ornements.
+
+@example
+c1
+<<
+ \tag #'partie <<
+ R1 \\
+ @{
+ \set fontSize = #-1
+ c4_"cue" f2 g4 @}
+ >>
+ \tag #'conducteur R1
+>>
+c1
+@end example
+
+Ce principe peut s'appliquer aux articulations, textes, etc. Il
+suffit de positionner
+@example
+-\tag #@var{votre-balise}
+@end example
+avant l'articulation, comme ici :
+@example
+c1-\tag #'part ^4
+@end example
+
+Ceci définira une note avec une indication de doigté conditionnelle.
+
+@cindex keepWithTag
+@cindex removeWithTag
+C'est grâce aux commandes @code{\keepWithTag} et @code{\removeWithTag}
+que vous filtrerez les expressions balisées. Par exemple :
+@example
+<<
+ @var{de la musique}
+ \keepWithTag #'score @var{de la musique}
+ \keepWithTag #'part @var{de la musique}
+>>
+@end example
+donnerait :
+
+@lilypondfile[ragged-right,quote]{tag-filter.ly}
+
+Les arguments de la commande @code{\tag} doivent être un symbole (tel
+que @code{#'score} ou @code{#'part}), suivi d'une expression musicale.
+Vous pouvez utiliser de multiples balises dans un morceau en
+saisissant plusieurs @code{\tag}.
+
+@example
+ \tag #'original-part \tag #'transposed-part @dots{}
+@end example
+
+
+@seealso
+
+Exemples : @lsr{parts,tag@/-filter@/.ly}
+
+
+@refbugs
+
+Lorsqu'elles comportent des silences, ceux-ci ne seront pas fusionnés
+si vous imprimez une partition avec les deux sections balisées.
+
@node Orchestral music
@section Orchestral music
-UNTRANSLATED NODE: IGNORE ME
+La musique pour orchestre implique certaines spécificités, que ce soit
+au niveau du conducteur --- la partition du chef --- ou pour les
+partitions de chaque pupitre. Cette section vous apprendra à gérer
+certains problèmes courants de la musique orchestrale.
@menu
* Automatic part combining::
* Formatting cue notes::
* Aligning to cadenzas::
@end menu
+
+
+
@node Automatic part combining
@subsection Automatic part combining
+@cindex regroupement automatique de parties
+@cindex parties, combiner des
+
+Le regroupement automatique de parties vous permet de fusionner deux
+pupitres sur une seule portée, ceci dans le but de créer des
+partitions d'orchestre. Lorsque les deux parties sont identiques sur
+une certaine durée, une seule s'affiche. Lorsqu'elles diffèrent,
+deux voix séparées apparaissent, avec des hampes dont la direction est
+gérée automatiquement. Vous pouvez aussi identifier et faire
+ressortir les solos et parties @emph{a due}.
+
+Voici la syntaxe qui permet de combiner des parties :
+
+@example
+\partcombine @var{musicexpr1} @var{musicexpr2}
+@end example
+
+
+L'exemple suivant illustre les fonctionnalités élémentaires du
+combinateur de parties : positionner les parties sur une portée, gérer
+la direction des hampes et de la polyphonie.
+
+@lilypond[quote,verbatim,ragged-right,fragment]
+\new Staff \partcombine
+ \relative g' { g g a( b) c c r r }
+ \relative g' { g g r4 r e e g g }
+@end lilypond
+
+Le premier @code{sol} n'apparaît qu'une seule fois, alors qu'il a été
+spécifié deux fois (une fois dans chacune des parties). La direction
+des hampes et des liaisons de tenue ou de phrasé est gérée
+automatiquement, selon qu'il s'agisse d'un solo ou d'un unisson. La
+première partie, dont le contexte s'appellera @code{one}, aura toujours
+ses hampes dirigées vers le haut et sera notée @q{Solo}, alors que la
+deuxième, appelée @code{two}, aura des hampes vers le bas et sera
+notée @q{Solo@tie{}II}.
+
+Si votre intention n'est que de fusionner les parties, sans ajouter de
+texte, assignez faux à la propriété @code{printPartCombineTexts}.
+
+@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
+\new Staff <<
+ \set Staff.printPartCombineTexts = ##f
+ \partcombine
+ \relative g' { g a( b) r }
+ \relative g' { g r4 r f }
+>>
+@end lilypond
+
+Le texte imprimé pour les sections solo ou à l'unisson se règle par
+les propriétés @code{soloText}, @code{soloIIText}, et @code{aDueText}.
+
+@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
+\new Staff <<
+ \set Score.soloText = #"ichi"
+ \set Score.soloIIText = #"ni"
+ \set Score.aDueText = #"tachi"
+ \partcombine
+ \relative g' { g4 g a( b) r }
+ \relative g' { g4 g r r f }
+>>
+@end lilypond
+
+LilyPond interprète dans un contexte @internalsref{Voice} les
+arguments fournis à @code{\partcombine}. Si vous travaillez avec des
+octaves relatives, spécifiez @code{\relative} dans chacune des
+expressions musicales, comme ceci :
+
+@example
+\partcombine
+ \relative @dots{} @var{musicexpr1}
+ \relative @dots{} @var{musicexpr2}
+@end example
+
+@noindent
+Une section @code{\relative} en dehors de @code{\partcombine} sera
+sans effet sur les hauteurs de @var{musicexpr1} et @var{musicexpr2}.
+
+@seealso
+
+Référence du programme : @internalsref{PartCombineMusic}.
+
+@refbugs
+
+Lorsque @code{printPartCombineTexts} est actif et que les deux voix
+jouent souvent les mêmes notes, le combinateur peut afficher @code{a2}
+plus d'une fois par mesure.
+
+@code{\partcombine} ne peut s'inscrire dans un bloc @code{\times}.
+
+@code{\partcombine} ne peut s'inscrire dans un bloc @code{\relative}.
+
+En interne, @code{\partcombine} interprète les deux arguments en tant
+que @code{Voice}s, dénommées @code{one} et @code{two}, puis décide de
+quand les parties seront fusionnées. Par conséquent, si les arguments
+changent pour d'autres noms de contexte @internalsref{Voice}, les
+événements qu'ils contiendraient seront ignorés.
-UNTRANSLATED NODE: IGNORE ME
@node Hiding staves
@subsection Hiding staves
-UNTRANSLATED NODE: IGNORE ME
+@cindex Frenched scores
+@cindex Masquer des portées
+
+Dans les partitions d'orchestre, les portées qui n'ont que des
+silences sont habituellement masquées afin de gagner de la place. Ce
+style d'édition s'appelle en anglais @qq{French Score}.
+Cette fonctionnalité est activée par défaut dans les contextes
+@internalsref{Lyrics}, @internalsref{ChordNames} et
+@internalsref{FiguredBass}. Lorsque des lignes appartenant à ces
+contextes se retrouvent vides après placement des sauts de ligne,
+elles sont effacées.
+
+En ce qui concerne les portées normales, il existe un contexte
+@internalsref{Staff} spécifique qui permet d'arriver à ce résultat :
+les portées ne contenant rien ou uniquement des silences multi-mesures
+seront retirées. La définition de ce contexte est enregistrée dans la
+variable @code{\RemoveEmptyStaffContext}. Voyez comment la deuxième
+portée disparaît du deuxième système :
+
+@lilypond[quote,ragged-right,verbatim]
+\layout {
+ \context { \RemoveEmptyStaffContext }
+}
+
+{
+ \relative c' <<
+ \new Staff { e4 f g a \break c1 }
+ \new Staff { c4 d e f \break R1 }
+ >>
+}
+@end lilypond
+
+Le premier système comportera absolument toutes les portées. Si vous
+voulez masquer les portées vides y compris pour le premier système,
+vous devrez assigner vrai à la propriété @code{remove-first} dans
+@internalsref{VerticalAxisGroup}.
+
+@example
+\override Score.VerticalAxisGroup #'remove-first = ##t
+@end example
+
+Pour masquer d'autres types de contextes, vous pouvez utiliser
+@code{\AncientRemoveEmptyStaffContext} ou
+@code{\RemoveEmptyRhythmicStaffContext}.
+
+Une application particulière de cette fonctionnalité est la création
+d'une @emph{ossia} --- variante d'une partie de la mélodie --- affichée à
+l'aide d'une portée supplémentaire.
+
@node Quoting other voices
@subsection Quoting other voices
-UNTRANSLATED NODE: IGNORE ME
+@cindex cues
+@cindex citation
+
+Grâce aux citations de répliques, vous pouvez insérer directement dans une partie
+des fragments d'une autre partie. Avant qu'une partie ne puisse être
+mentionnée ailleurs, elle doit être considérée comme reproductible.
+C'est le but de la commande @code{\addQuote}.
+
+@example
+\addQuote @var{nom} @var{musique}
+@end example
+
+
+@noindent
+Ici, @var{nom} représente une chaîne d'identification, et
+@var{musique} n'importe quelle musique. Voici un exemple de
+@code{\addQuote} :
+
+@example
+\addQuote clarinet \relative c' @{
+ f4 fis g gis
+@}
+@end example
+
+Vous devez placer cette commande au niveau le plus haut, c'est à dire
+en dehors de tout bloc de musique.
+
+Après avoir fait appel à @code{\addquote}, la citation interviendra
+en utilisant @code{\quoteDuring} ou @code{\cueDuring} :
+
+@example
+\quoteDuring #@var{nom} @var{musique}
+@end example
+
+Au cours d'une partie, des extraits de répliques peuvent être cités en
+utilisant la commande @code{\quoteDuring}.
+
+@example
+\quoteDuring #"clarinet" @{ s2. @}
+@end example
+
+Cela citera trois noires (la durée de @code{s2.}) appartenant à la
+voix @code{clarinette} précédemment générée.
+
+Plus précisément, on s'arrête à cet instant de la partie en cours
+d'impression, et l'on extrait les notes à ce même instant dans la voix
+citée --- celle qui contient @code{\addQuote}. C'est la raison pour
+laquelle l'argument de @code{\addQuote} doit englober toute la voix en
+question, y compris les éventuels silences à son début.
+
+Les citations tiennent compte des transpositions, aussi bien celle de
+l'instrument d'origine que celle de la partie où elle intervient, dans
+la mesure où elles sont spécifiées par la commande @code{\transposition}.
+
+@lilypond[quote,ragged-right,verbatim]
+\addQuote clarinet \relative c' {
+ \transposition bes
+ f4 fis g gis
+}
+
+{
+ e'8 f'8 \quoteDuring #"clarinet" { s2 }
+}
+@end lilypond
+
+Le type d'événements pris en charge pour la citation peut se régler
+avec la propriété @code{quotedEventTypes}. Par défaut, sa valeur est
+fixée à @code{(note-event rest-event)}, ce qui signifie que seuls les
+notes et silences seront mentionnés par @code{\quoteDuring}.
+Définir
+
+@example
+\set Staff.quotedEventTypes =
+ #'(note-event articulation-event dynamic-event)
+@end example
+
+@noindent
+reproduira les notes (mais pas les silences), ainsi que les scripts
+et nuances.
+
+@refbugs
+
+Seul le contenu de la première @internalsref{Voice} rencontrée dans la
+partie marquée d'une commande @code{\addQuote} pourra être retenu. Par
+voie de conséquence, @code{music} ne saurait comprendre de @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
+un blocage de LilyPond.
+
+Citer des triolets imbriqués peut entraîner un résultat de médiocre qualité.
+
+
+@seealso
+
+Dans ce manuel : @ref{Instrument transpositions}.
+
+Exemples : @lsr{parts,quote.ly}, @lsr{parts,quote-transportation.ly}
+
+Référence du programme : @internalsref{QuoteMusic}.
+
@node Formatting cue notes
@subsection Formatting cue notes
-UNTRANSLATED NODE: IGNORE ME
+@cindex petites notes, formater des
+
+La section précédente indiquait comment insérer des notes d'une autre
+voix. Nous allons maintenant voir une fonction musicale avancée,
+@code{\cueDuring}, qui facilite le formatage des petites notes.
+
+Sa syntaxe est :
+
+@example
+ \cueDuring #@var{nom} #@var{updown} @var{musique}
+@end example
+
+Des notes issues de la partie @var{nom} s'insèreront dans une
+@internalsref{Voice} nommée @code{cue}, simultanément avec
+@var{musique} --- habituellement un silence. L'apparition des petites
+notes initialise une polyphonie temporaire pour la portée concernée.
+L'argument @var{updown} détermine si ces petites notes seront
+attachées à la première ou à la seconde voix.
+
+
+@lilypond[verbatim,ragged-right]
+smaller = {
+ \set fontSize = #-2
+ \override Stem #'length-fraction = #0.8
+ \override Beam #'thickness = #0.384
+ \override Beam #'length-fraction = #0.8
+}
+
+\addQuote clarinet \relative {
+ R1*20
+ r2 r8 c' f f
+}
+
+\new Staff \relative <<
+
+ % setup a context for cue notes.
+ \new Voice = "cue" { \smaller \skip 1*21 }
+
+ \set Score.skipBars = ##t
+
+ \new Voice {
+ R1*20
+ \cueDuring #"clarinet" #UP {
+ R1
+ }
+ g4 g2.
+ }
+>>
+@end lilypond
+
+
+Quelques indications pour une citation efficace :
+
+@itemize @bullet
+@item
+ Les notes de la citation sont dans une police plus petite.
+@item
+ La citation comporte une étiquette indiquant l'instrument qui joue.
+@item
+ Lorsque la partie originale reprend sa place, rappeler l'instrument.
+
+@c really? Are you sure about that last point? I'll check after 3.0 -gp
+
+@c Yes, this is good practice. Otherwise, the start of the original
+@c part can only be seen from the font size. This is not good enough
+@c for sight-reading. It is possilbe to use other
+@c markers (e.g. a big close-bracket over the staff) to indicate the cue
+@c notes are
+@c finished.
+@c -hwn
+
+
+Tout autre modification introduite par la citation devrait être
+annulée. Par exemple, si l'instrument cité utilise une autre clé, il
+faudra revenir à la clé habituelle.
+
+@end itemize
+
+La macro @code{\transposedCueDuring} est particulièrement adaptée pour
+des instrument ayant une tessiture éloignée, comme dans le cas d'un
+piccolo cité dans une partie de contrebasson.
+
+@lilypond[verbatim,ragged-right,quote]
+picc = \relative c''' {
+ \clef "treble^8"
+ R1 |
+ c8 c c e g2 |
+ a4 g g2 |
+}
+\addQuote "picc" { \picc }
+
+cbsn = \relative c, {
+ \clef "bass_8"
+ c4 r g r
+ \transposedCueDuring #"picc" #UP c,, { R1 } |
+ c4 r g r |
+}
+
+<<
+ \context Staff = "picc" \picc
+ \context Staff = "cbsn" \cbsn
+>>
+@end lilypond
+
+
@node Aligning to cadenzas
@subsection Aligning to cadenzas
-UNTRANSLATED NODE: IGNORE ME
+Dans un contexte orchestral, une cadence constitue un problème
+spécifique. Lors du montage d'une partition contenant une cadence,
+tous les autres instruments doivent sauter autant de notes que ce
+qu'en comporte la cadence, faute de quoi il démarreraient trop tôt ou
+trop tard.
+
+Les fonctions @code{mmrest-of-length} ou @code{skip-of-length}
+permettent de résoudre ce problème. Ces fonctions Scheme prennent en
+argument un fragment de musique, et génèrent un @code{\skip} ou un
+silence multi-mesures d'une durée correspondant à ce fragment.
+L'exemple qui suit illustre l'utilisation de @code{mmrest-of-length}.
+
+@lilypond[verbatim,ragged-right,quote]
+cadenza = \relative c' {
+ c4 d8 << { e f g } \\ { d4. } >>
+ g4 f2 g4 g
+}
+
+\new GrandStaff <<
+ \new Staff { \cadenza c'4 }
+ \new Staff {
+ #(ly:export (mmrest-of-length cadenza))
+ c'4
+ }
+>>
+@end lilypond
+
+
+
@node Contemporary notation
@section Contemporary notation
-UNTRANSLATED NODE: IGNORE ME
+Les compositeurs du XXe siècle ont largement étendu le vocabulaire
+musical. Face à cette expansion, de nombreuses innovations ont été
+tentées en matière de notation musicale. L'ouvrage de Kurt Stone,
+@q{Music Notation in the 20th century} (cf. @ref{Literature
+list}), nous en propose une vue d'ensemble.
+
+Cette section aborde des aspects que l'on ne rencontre pas en notation
+traditionnelle, tels que hauteurs, ligatures de triolets ou
+articulations. Pour tout ce qui relève de la notation traditionnelle
+au sein de la musique contemporaine, comme les microintervalles, les
+n-olets imbriqués ou les points d'orgue inhabituels, référez-vous aux
+sections appropriées de la documentation.
@menu
* Polymetric notation::
* Improvisation::
* Selecting notation font size::
@end menu
+
+
@node Polymetric notation
@subsection Polymetric notation
-UNTRANSLATED NODE: IGNORE ME
+@cindex métrique composite
+@cindex composite, métrique
+@cindex métrique polymétrique
+@cindex polymétrie
+
+LilyPond ne gère pas les métriques composites de manière explicite,
+mais on peut contourner ce problème. Dans l'exemple suivant,
+l'indicateur de métrique est obtenu grâce à une étiquette textuelle.
+Cette étiquette vient s'insérer dans l'objet graphique (@emph{grob})
+@internalsref{TimeSignature}. Voir aussi
+@lsr{contemporary,compound-time-signature}.
+
+
+@lilypond[verbatim,ragged-right]
+% create 2/4 + 5/8
+tsMarkup =\markup {
+ \override #'(baseline-skip . 2) \number {
+ \column { "2" "4" }
+ \vcenter "+"
+ \bracket \column { "5" "8" }
+ }
+}
+
+{
+ \override Staff.TimeSignature #'stencil = #ly:text-interface::print
+ \override Staff.TimeSignature #'text = #tsMarkup
+ \time 3/2
+ c'2 \bar ":" c'4 c'4.
+}
+@end lilypond
+
+Il arrive aussi que chaque portée ait sa propre métrique. Vous y
+parviendrez en déplaçant le @internalsref{Timing_translator} dans le
+contexte @internalsref{Staff}.
+
+@example
+\layout @{
+ \context @{ \Score
+ \remove "Timing_translator"
+ \remove "Default_bar_line_engraver"
+ @}
+ \context @{
+ \Staff
+ \consists "Timing_translator"
+ \consists "Default_bar_line_engraver"
+ @}
+
+@}
+@end example
+
+
+Maintenant, chacune des portées dispose de sa propre métrique.
+@example
+<<
+ \new Staff @{
+ \time 3/4
+ c4 c c | c c c |
+ @}
+ \new Staff @{
+ \time 2/4
+ c4 c | c c | c c
+ @}
+ \new Staff @{
+ \time 3/8
+ c4. c8 c c c4. c8 c c
+ @}
+>>
+@end example
+
+@lilypond[quote,ragged-right]
+\layout{
+ \context{
+ \Score
+ \remove "Timing_translator"
+ \remove "Default_bar_line_engraver"
+ }
+ \context{ \Staff
+ \consists "Timing_translator"
+ \consists "Default_bar_line_engraver"
+ }
+}
+
+\relative c' <<
+ \new Staff {
+ \time 3/4
+ c4 c c | c c c |
+ }
+ \new Staff {
+ \time 2/4
+ c4 c | c c | c c
+ }
+ \new Staff {
+ \time 3/8
+ c4. c8 c c c4. c8 c c
+ }
+>>
+@end lilypond
+
+
+Une autre forme de notation polymétrique consiste dans le fait que des
+notes aient une durée relative différente selon la portée.
+
+Vous pouvez créer une telle notation en définissant une métrique
+commune à toutes les portées, que vous proratiserez manuellement
+selon le cas en utilisant @code{timeSignatureFraction} pour obtenir la
+division adéquate pour chaque portée. Les durées, dans chacune des
+portées, seront alors échelonnées par rapport à la métrique commune.
+L'échelle de représentation se règle avec @code{\compressMusic} ---
+qui fonctionne comme @code{\times}, sans toutefois créer de crochet.
+La syntaxe appropriée est :
+@example
+\compressMusic #'(@var{numérateur} . @var{dénominateur}) @var{exprmusicale}
+@end example
+
+
+L'exemple suivant utilise parallèlement des mesures à 3/4, 9/8 et
+10/8. Pour la deuxième portée, les durées sont multipliées par 2/3,
+de telle sorte que @w{2/3 * 9/8 = 3/4} ; pour la troisième, elles sont
+multipliées par 3/5, de telle sorte que @w{3/5 * 10/8 = 3/4}.
+
+@lilypond[quote,ragged-right,verbatim,fragment]
+\relative c' { <<
+ \new Staff {
+ \time 3/4
+ c4 c c | c c c |
+ }
+ \new Staff {
+ \time 3/4
+ \set Staff.timeSignatureFraction = #'(9 . 8)
+ \compressMusic #'(2 . 3)
+ \repeat unfold 6 { c8[ c c] }
+ }
+ \new Staff {
+ \time 3/4
+ \set Staff.timeSignatureFraction = #'(10 . 8)
+ \compressMusic #'(3 . 5) {
+ \repeat unfold 2 { c8[ c c] }
+ \repeat unfold 2 { c8[ c] }
+ | c4. c4. \times 2/3 { c8 c c } c4
+ }
+ }
+>> }
+@end lilypond
+
+
+
+
+@refbugs
+
+L'utilisation de métriques différentes en parallèle entraine un
+alignement vertical. De ce fait, les barres de mesure ont tendance à
+fausser l'espacement régulier.
+
@node Time administration
@subsection Time administration
-UNTRANSLATED NODE: IGNORE ME
+@cindex Temps, gestion du
+
+Le temps est administré par le @internalsref{Time_signature_engraver},
+qui réside en principe dans le contexte @internalsref{Score}. Sa
+gestion traite les variables suivantes :
+
+@table @code
+@item currentBarNumber
+Le numéro de mesure.
+
+@item measureLength
+La longueur de la mesure, dans la métrique en cours. Pour une mesure
+à 4/4, elle est de@tie{}1, et de 3/4 pour une mesure à 6/8.
+
+@item measurePosition
+Le moment où l'on en est dans la mesure en cours. Cette quantité est
+remise à@tie{}0 dès lors qu'on dépasse @code{measureLength} ; la variable
+@code{currentBarNumber} est alors incrémentée.
+
+@item timing
+Lorsqu'on lui assigne la valeur @emph{vrai}, les valeurs ci-dessus
+mentionnées sont mises à jour à chaque pas. Fixée à @emph{faux}, le
+graveur restera indéfiniment dans la mesure en cours.
+@end table
+
+Le calage peut être modifié en réglant explicitement l'une de ces
+variables. Dans l'exemple qui suit, nous réglons la métrique à 4/4,
+tout en fixant @code{measureLength} à 5/4. Un peu plus loin, nous
+raccourcissons la mesure de 1/8, en assignant 7/8 à
+@code{measurePosition}, alors que nous en sommes à 2/4 dans la
+mesure ; la barre de mesure tombera donc à @w{2/4 + 3/8}. Les 3/8
+résultent du fait que 5/4 équivaut à 10/8, mais nous nous sommes recalés
+à 7/8 de la mesure ; donc @w{10/8 @minus{} 7/8 = 3/8}.
+
+@lilypond[quote,ragged-right,verbatim,relative,fragment]
+\set Score.measureLength = #(ly:make-moment 5 4)
+c1 c4
+c1 c4
+c4 c4
+\set Score.measurePosition = #(ly:make-moment 7 8)
+b8 b b
+c4 c1
+@end lilypond
+
+@noindent
+Comme le montre cet exemple, @code{ly:make-moment n m} construit une
+durée de n/m fois une ronde.
+Par conséquent, @code{ly:make-moment 1 8} correspond à une croche, et
+@code{ly:make-moment 7 16} à la durée de sept doubles croches.
+
@node Proportional notation (introduction)
@subsection Proportional notation (introduction)
+@cindex Notation proportionnelle
+
+Voir @ref{Proportional notation}.
+
+
+@c À faire : supprimer tout ça ?
+
+Les notes peuvent s'espacer proportionnellement en assignant une durée
+à @code{proportionalNotationDuration}
+
+@lilypond[quote,ragged-right,verbatim,relative=2,fragment]
+<<
+ \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
+ \new Staff { c8[ c c c c c] c4 c2 r2 }
+ \new Staff { c2 \times 2/3 { c8 c c } c4 c1 }
+>>
+@end lilypond
+
+Manipuler cette propriété affectera l'espacement idéal uniquement pour
+des notes consécutives. Pour obtenir une véritable notation
+proportionnelle, vous devrez tenir compte des réglages suivants :
+
+@itemize @bullet
+
+@item La véritable notation proportionnelle exige que des symboles
+puissent en écraser d'autres. Pour y parvenir, il faut retirer le
+@internalsref{Separating_line_group_engraver} du contexte
+@internalsref{Staff}.
+
+@item L'influence en matière d'espacement induite par le formatage
+(clés, barres de mesure, etc) s'annule en assignant
+@emph{vrai}@tie{}(#t) à la propriété @code{strict-note-spacing} de
+l'objet @internalsref{SpacingSpanner}.
+
+@item Les affinages optiques se règlent en assignant @emph{vrai} à la
+propriété @code{uniform-stretching} du @internalsref{SpacingSpanner}.
+
+
+@end itemize
+
+@seealso
+
+Exemples : @lsr{spacing,proportional@/-spacing@/.ly},
+@lsr{spacing,proportional@/-strict@/-grace@/-notes@/.ly}, et
+@lsr{spacing,proportional@/-strict@/-notespacing@/.ly}
+
+Le fichier @file{input/proportional.ly} illustre la notation
+proportionnelle stricte.
-UNTRANSLATED NODE: IGNORE ME
@node Clusters
@subsection Clusters
-UNTRANSLATED NODE: IGNORE ME
+@cindex cluster
+
+Un cluster indique un agrégat de sons. On peut le représenter par une
+plage limitée par un ambitus (notes extrêmes). On obtient une telle notation en
+appliquant la fonction @code{makeClusters} à une séquence d'accords,
+comme
+@lilypond[quote,ragged-right,relative=2,fragment,verbatim]
+\makeClusters { <c e > <b f'> }
+@end lilypond
+
+Des notes ordinaires et des clusters peuvent cohabiter sur une même
+portée, y compris simultanément --- en pareil cas, rien ne sera fait
+pour tenter d'empécher les chevauchements entre notes et clusters.
+
+@seealso
+
+Référence du programme : @internalsref{ClusterSpanner},
+@internalsref{ClusterSpannerBeacon},
+@internalsref{Cluster_spanner_engraver}.
+
+Exemples : @lsr{contemporary,cluster@/.ly}.
+
+@refbugs
+
+Les expressions musicales du type @code{<< @{ g8 e8 @} a4 >>} ne
+seront pas imprimées de façon acceptable. utilisez plutôt
+@code{<g a>8 <e a>8} .
+
@node Special noteheads
@subsection Special noteheads
-UNTRANSLATED NODE: IGNORE ME
+@cindex têtes de note, spéciales
+
+Certains instruments utilisent des têtes de note différentes à des
+fins spécifiques ---ds croix pour le @q{parlato} des chanteurs ou les
+notes étouffées des guitares ; des losanges pour les harmoniques des
+cordes. Il existe un raccourci (@code{\harmonic}) pour les notes en
+losange ; pour les autres styles de tête, il vous faudra jouer avec la
+propriété
+
+@lilypond[ragged-right,relative=1,fragment,verbatim,quote]
+c4 d
+\override NoteHead #'style = #'cross
+e f
+\revert NoteHead #'style
+e d <c f\harmonic> <d a'\harmonic>
+@end lilypond
+
+@noindent
+Pour une liste exhaustive des styles de tête de note, consultez
+@ref{Note head styles}.
+
+
+@seealso
+
+Référence du programme : @internalsref{NoteHead}.
+
@node Feathered beams
@subsection Feathered beams
-UNTRANSLATED NODE: IGNORE ME
+Les ligatures en soufflet s'obtiennent en définissant la propriété
+@code{grow-direction} d'une barre de ligature. La fonction
+@code{\featherDurations} sert à ajuster la durée des notes.
+
+@lilypond[ragged-right,relative=1,fragment,verbatim,quote]
+\override Beam #'grow-direction = #LEFT
+\featherDurations #(ly:make-moment 5 4)
+{
+ c16[ c c c c c c]
+}
+@end lilypond
+
+@refbugs
+
+La commande @code{\featherDurations} ne permet de traiter que de très
+courts extraits.
@node Improvisation
@subsection Improvisation
-UNTRANSLATED NODE: IGNORE ME
+L'improvisation peut quelquefois s'indiquer à l'aide de notes de forme
+allongée (@emph{slash}). Ces têtes de notes sont créées par
+l'adjonction du graveur @internalsref{Pitch_squash_engraver} au
+contexte @internalsref{Voice}, de telle sorte que la commande
+
+@example
+\set squashedPosition = #0
+\override NoteHead #'style = #'slash
+@end example
+
+@noindent
+active les notes penchées.
+
+Vous disposez des raccourcis @code{\improvisationOn} et son corollaire
+@code{\improvisationOff} pour cette séquence, comme l'illustre
+l'exemple ci dessous.
+
+@lilypond[verbatim,ragged-right,quote]
+\new Voice \with {
+ \consists Pitch_squash_engraver
+} \transpose c c' {
+ e8 e g a a16(bes)(a8) g \improvisationOn
+ e8
+ ~e2~e8 f4 fis8
+ ~fis2 \improvisationOff a16(bes) a8 g e
+}
+@end lilypond
+
@node Selecting notation font size
@subsection Selecting notation font size
-UNTRANSLATED NODE: IGNORE ME
+Le plus sûr moyen de régler la taille de la police, quelque soit le
+contexte, consiste à définir la propriété @code{fontSize}.
+
+@lilypond[quote,fragment,relative=1,verbatim]
+c8
+\set fontSize = #-4
+c f
+\set fontSize = #3
+g
+@end lilypond
+
+@noindent
+Ceci ne modifiera en rien la taille des différents symboles tels que
+ligatures ou liaisons.
+
+En interne, la propriété @code{fontSize} d'un contexte aura pour effet
+de définir la propriété @code{font-size} pour tous les objets de
+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
+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
+manière à n'affecter seulement que certains objets de rendu.
+
+@lilypond[quote,fragment,relative=1,verbatim]
+c8
+\override NoteHead #'font-size = #-4
+c f
+\override NoteHead #'font-size = #3
+g
+@end lilypond
+
+Pour changer la taille des symboles musicaux (police Feta), LilyPond met
+à l'échelle la fonte dont la taille est la plus proche de la taille voulue ---
+cf. @ref{Setting the staf size}. La taille standard, pour laquelle
+@code{font-size} vaut 0, dépend de la hauteur 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
+l'interface de rendu @internalsref{font-interface}.
+
+@refcommands
+
+Les commandes suivantes définissent @code{fontSize} pour la voix en
+cours :
+
+@funindex \tiny
+@code{\tiny},
+@funindex \small
+@code{\small},
+@funindex \normalsize
+@code{\normalsize}.
+
+
@node Educational use
@section Educational use
UNTRANSLATED NODE: IGNORE ME
-
--- SKELETON FILE --
-When you actually translate this file, please remove these lines as
-well as all `UNTRANSLATED NODE: IGNORE ME' lines.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of ../user/lilypond.tely
@ignore
- Translation of GIT committish: d5b91d83f5dfec811302de39dbabdb189024f67a
-
+ Translation of GIT committish: da55a1ec3c4b8195efc910b0c986c27f244def85
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
-
@node Changing defaults
@chapter Changing defaults
-UNTRANSLATED NODE: IGNORE ME
-@menu
-* Automatic notation::
-* Interpretation contexts::
-* The \override command::
-@end menu
+LilyPond est conçu pour engendrer, par défaut, des partitions de la
+plus haute qualité. Cependant, on peut parfois avoir à modifier cette
+mise en page par défaut. Celle-ci est réglée par tout un ensemble de
+@qq{leviers et manettes}, dont ce chapitre ne cherche pas à faire
+l'inventaire exhaustif. Le propos est plutôt ici de mettre en évidence
+les différents groupes auxquels s'apparentent ces contrôles, et d'expliquer
+comment trouver le bon levier pour obtenir tel ou tel effet en particulier.
+
+@cindex Référence du programme
+
+Les moyens de contrôle des différents réglages sont décrits dans un document
+à part entière, la
+@iftex
+référence du programme
+@end iftex
+@ifnottex
+@ref{Top,Référence du programme,,lilypond-internals}.
+@end ifnottex
+Ce guide répertorie toutes les variables, fonctions et autre options que
+LilyPond met à votre disposition. Il est consultable en ligne, au format HTML,
+@c leave the @uref as one long line.
+@uref{http://@/lilypond@/.org/@/doc/@/stable/@/Documentation/@/user/@/lilypond@/-internals/,on@/-line},
+mais est également inclus dans la documentation fournie avec le logiciel.
+
+Il est quatre domaines dans lesquels on peut modifier les réglages par défaut :
+
+@itemize @bullet
+@item
+La notation automatique, ce qui revient à modifier la manière dont les éléments
+de notation sont automatiquement créés -- par exemple, les règles de ligatures.
+
+@item
+L'apparence, qui se rapporte aux objets pris individuellement -- ainsi de la direction
+des hampes, du placement des indications textuelles.
+
+@item
+Les contextes, qui recouvrent la manière dont les évènements musicaux sont représentés sous forme de
+notation -- par exemple, le fait d'attribuer un chiffre de mesure distinct à chaque portée.
+
+@item
+La mise en page, autrement dit les marges, l'espacement, la taille du papier ; tous ces facteurs
+font l'objet des chapitres @ref{Non-musical notation} et @ref{Spacing issues}.
+@end itemize
+
+En sous-main, LilyPond se sert du langage Scheme (un dérivé du LISP) comme
+infrastructure. Modifier les choix de mise en page revient à pénétrer dans
+les entrailles du programme, et de ce fait requiert l'emploi du Scheme.
+Les fragments de Scheme, dans un fichier @code{.ly}, sont introduits par le
+caractère @q{hash}, (@code{#}, improprement surnommé @q{dièse}).@footnote{Le
+@ref{Scheme tutorial} fournit quelques notions de base pour saisir des nombres,
+des listes, des chaînes de caractères ou des symboles, en Scheme.}
+
+
+@menu
+* Automatic notation::
+* Interpretation contexts::
+* The \override command::
+@end menu
+
+
@node Automatic notation
@section Automatic notation
-UNTRANSLATED NODE: IGNORE ME
+Cette section s'intéresse à la manière dont les altérations accidentelles
+et les ligatures sont automatiquement ajoutées.
+
+@menu
+* Automatic accidentals::
+* Setting automatic beam behavior::
+@end menu
-@menu
-* Automatic accidentals::
-* Setting automatic beam behavior::
-@end menu
@node Automatic accidentals
@subsection Automatic accidentals
+@cindex Altérations accidentelles automatiques
+
+Une fonction a été créée pour regrouper les règles suivant lesquelles
+s'impriment les altérations. Elle s'invoque de la manière suivante :
+
+@funindex set-accidental-style
+@example
+#(set-accidental-style 'REGLE)
+@end example
+
+@c TODO: check the context stuff below
+@c -does it *really* work?
+@c -the default contexts as specified in
+@c scm/music-function.scm seem to be different -vv
+
+Cette fonction prend pour argument le nom de la règle d'altérations,
+auquel peut s'ajouter, comme argument facultatif, le contexte
+devant être affecté :
+
+@example
+#(set-accidental-style 'REGLE #('CONTEXTE#))
+@end example
+
+Si aucun contexte n'est spécifié, le contexte @code{Staff} sera affecté ;
+cependant on peut souhaiter l'appliquer au contexte @code{Voice} en lieu
+et place.
+
+Les régles d'altérations suivantes sont possibles :
+
+@table @code
+@item default
+C'est la règle d'impression par défaut, qui se rapporte à l'usage
+en vigueur au XVIIIème siècle : les altérations accidentelles sont valables toute
+une mesure, et uniquement à leur propre octave.
+
+
+@lilypond[quote,ragged-right]
+musicA = { << \relative { cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
+ \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
+
+musicB = { \clef bass \new Voice { \voiceTwo \relative { < fis, a cis>4
+ \change Staff = up cis' \change Staff = down <fis, a>
+ \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
+ <f a d>2 | } }}
+
+\score {
+ \new PianoStaff {
+ << \context Staff = "up" {
+ %#(set-accidental-style 'default)
+ \musicA }
+ \context Staff = "down"{
+ %#(set-accidental-style 'default)
+ \musicB } >> }
+ \header { piece = \markup {\fill-line { \fontsize #3 "'default" }}}
+}
+@end lilypond
+
+@item voice
+En principe, LilyPond se souvient de toutes les altérations présentes sur la
+portée (contexte Staff). Avec cette règle, cependant, les altérations sont indépendantes
+pour chacune des voix.
+
+
+@example
+ \new Staff <<
+ #(set-accidental-style 'voice)
+ @{ @dots{} @}
+ >>
+@end example
+
+De ce fait, les altérations d'une voix sont ignorées dans les autres voix,
+ce qui peut donner lieu à un résultat malencontreux. Dans l'exemple suivant,
+il est difficile de dire si le deuxième @samp{la} est dièse ou naturel.
+
+@lilypond[quote,ragged-right]
+musicA = { << \relative { cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
+ \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
+
+musicB = { \clef bass \new Voice { \voiceTwo \relative { < fis, a cis>4
+ \change Staff = up cis' \change Staff = down <fis, a>
+ \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
+ <f a d>2 | } }}
+
+\score {
+ \new PianoStaff {
+ << \context Staff = "up" {
+ #(set-accidental-style 'voice)
+ \musicA }
+ \context Staff = "down"{
+ #(set-accidental-style 'voice)
+ \musicB } >> }
+ \header { piece = \markup {\fill-line { \fontsize #3 "'voice" }}}
+}
+@end lilypond
+
+La règle @code{voice} n'est à envisager que dans le cas de voix devant être lues par
+des musiciens différents. S'il s'agit d'un @q{conducteur}, ou d'une portée destinée
+à un seul musicien, il vaut mieux utiliser @code{modern} ou @code{modern-cautionary}.
+
+
+@item modern
+@funindex modern style accidentals
+Cette règle est la plus courante au XXème siècle. Les altérations accidentelles
+sont imprimées comme avec le style @code{default}, mais lorsque une note non-altérée
+apparaît à une octave différente, ou bien dans la mesure suivante, des bécarres de précaution
+sont ajoutés. Dans l'exemple suivant, notez ainsi les deux bécarres dans la
+deuxième mesure de la main droite.
+
+@lilypond[quote,ragged-right]
+musicA = { << \relative { cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
+ \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
+
+musicB = { \clef bass \new Voice { \voiceTwo \relative { < fis, a cis>4
+ \change Staff = up cis' \change Staff = down <fis, a>
+ \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
+ <f a d>2 | } }}
+
+\score {
+ \new PianoStaff {
+ << \context Staff = "up" {
+ #(set-accidental-style 'modern)
+ \musicA }
+ \context Staff = "down"{
+ #(set-accidental-style 'modern)
+ \musicB } >> }
+ \header { piece = \markup {\fill-line { \fontsize #3 "'modern" }}}
+}
+@end lilypond
+
+@item @code{modern-cautionary}
+@funindex modern-cautionary
+Cette règle est équivalente à @code{modern}, mais les bécarres de précaution sont
+imprimés de façon particulière : soit plus petits, soit (par défaut) entre parenthèses.
+Il est possible de le définir au moyen de la propriété @code{cautionary-style}
+pour l'objet @internalsref{AccidentalSuggestion}.
+
+@lilypond[quote,ragged-right]
+musicA = { << \relative { cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
+ \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
+
+musicB = { \clef bass \new Voice { \voiceTwo \relative { < fis, a cis>4
+ \change Staff = up cis' \change Staff = down <fis, a>
+ \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
+ <f a d>2 | } }}
+
+\score {
+ \new PianoStaff {
+ << \context Staff = "up" {
+ #(set-accidental-style 'modern-cautionary)
+ \musicA }
+ \context Staff = "down"{
+ #(set-accidental-style 'modern-cautionary)
+ \musicB } >> }
+ \header { piece = \markup {\fill-line { \fontsize #3 "'modern-cautionary" }}}
+}
+@end lilypond
+
+@funindex modern-voice
+@item modern-voice
+Cette règle sert aux altérations dans de la musique polyphonique destinée
+autant à des musiciens différents qu'à quelqu'un qui lirait l'ensemble des voix.
+Les altérations sont imprimées voix par voix, mais les autres voix, dans le même
+contexte @internalsref{Staff}, en @emph{tiennent compte} cette fois.
+
+@lilypond[quote,ragged-right]
+musicA = { << \relative { cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
+ \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
+
+musicB = { \clef bass \new Voice { \voiceTwo \relative { < fis, a cis>4
+ \change Staff = up cis' \change Staff = down <fis, a>
+ \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
+ <f a d>2 | } }}
+
+\score {
+ \new PianoStaff {
+ << \context Staff = "up" {
+ #(set-accidental-style 'modern-voice)
+ \musicA }
+ \context Staff = "down"{
+ #(set-accidental-style 'modern-voice)
+ \musicB } >> }
+ \header { piece = \markup {\fill-line { \fontsize #3 "'modern-voice" }}}
+}
+@end lilypond
+
+@funindex modern-voice-cautionary
+@item modern-voice-cautionary
+Cette régle est similaire à la précédente, mais les altérations de précautions
+(celles que n'aurait pas ajoutées @code{voice}), sont imprimées de façon
+particulière. On retrouve donc toutes les altérations qu'imprimerait
+@code{default}, mais certaines sont considérées comme étant @qq{de précaution}.
+
+@lilypond[quote,ragged-right]
+musicA = { << \relative { cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
+ \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
+
+musicB = { \clef bass \new Voice { \voiceTwo \relative { < fis, a cis>4
+ \change Staff = up cis' \change Staff = down <fis, a>
+ \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
+ <f a d>2 | } }}
+
+\score {
+ \new PianoStaff {
+ << \context Staff = "up" {
+ #(set-accidental-style 'modern-voice-cautionary)
+ \musicA }
+ \context Staff = "down"{
+ #(set-accidental-style 'modern-voice-cautionary)
+ \musicB } >> }
+ \header { piece = \markup {\fill-line { \fontsize #3 "'modern-voice-cautionary" }}}
+}
+@end lilypond
+
+@item piano
+@funindex piano accidentals
+Cette règle est adaptée aux contextes GrandStaff -- ce qui n'empêche pas de devoir la spécifier
+pour chaque portée individuelle au sein du contexte GrandStaff.
+
+@example
+\new GrandStaff @{ <<
+ \new Staff = "up" @{ <<
+ #(set-accidental-style 'piano)
+ @{ @dots{} @}
+ >> @}
+ \new Staff = "down"@{ <<
+ #(set-accidental-style 'piano)
+ @{ @dots{} @}
+ >> @}
+>> @}
+@end example
+
+Cette règle est communément employée pour les partitions de piano au XXème siècle.
+Très similaire à @code{modern} de par son comportement, elle s'en distingue en ce que
+les altérations tiennent compte des autre portées du contexte @internalsref{GrandStaff} ou
+@internalsref{PianoStaff}.
+
+@lilypond[quote,ragged-right]
+musicA = { << \relative { cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
+ \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
+
+musicB = { \clef bass \new Voice { \voiceTwo \relative { < fis, a cis>4
+ \change Staff = up cis' \change Staff = down <fis, a>
+ \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
+ <f a d>2 | } }}
+
+\score {
+ \new PianoStaff {
+ << \context Staff = "up" {
+ #(set-accidental-style 'piano)
+ \musicA }
+ \context Staff = "down"{
+ #(set-accidental-style 'piano)
+ \musicB } >> }
+ \header { piece = \markup {\fill-line { \fontsize #3 "'piano" }}}
+}
+@end lilypond
+
+@item piano-cautionary
+@funindex #(set-accidental-style 'piano-cautionary)
+Identique à @code{#(set-accidental-style 'piano)}, mais les altérations de précaution
+sont imprimées différemment.
+
+@lilypond[quote,ragged-right]
+musicA = { << \relative { cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
+ \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
+
+musicB = { \clef bass \new Voice { \voiceTwo \relative { < fis, a cis>4
+ \change Staff = up cis' \change Staff = down <fis, a>
+ \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
+ <f a d>2 | } }}
+
+\score {
+ \new PianoStaff {
+ << \context Staff = "up" {
+ #(set-accidental-style 'piano-cautionary)
+ \musicA }
+ \context Staff = "down"{
+ #(set-accidental-style 'piano-cautionary)
+ \musicB } >> }
+ \header { piece = \markup {\fill-line { \fontsize #3 "'piano-cautionary" }}}
+}
+@end lilypond
+
+@item no-reset
+@funindex no-reset accidental style
+C'est la même règle que @code{default}, mais l'effet des altérations accidentelles
+ne cesse jamais, même dans les mesures suivantes.
+@lilypond[quote,ragged-right]
+musicA = { << \relative { cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
+ \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
+
+musicB = { \clef bass \new Voice { \voiceTwo \relative { < fis, a cis>4
+ \change Staff = up cis' \change Staff = down <fis, a>
+ \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
+ <f a d>2 | } }}
+
+\score {
+ \new PianoStaff {
+ << \context Staff = "up" {
+ #(set-accidental-style 'no-reset)
+ \musicA }
+ \context Staff = "down"{
+ #(set-accidental-style 'no-reset)
+ \musicB } >> }
+ \header { piece = \markup {\fill-line { \fontsize #3 "'no-reset" }}}
+}
+@end lilypond
+
+@item forget
+Tout le contraire de @code{no-reset}: l'effet des altérations cesse aussitôt,
+et de ce fait, toutes les altérations, quelque soit leur place dans la mesure, sont
+imprimées, en fonction de l'armure éventuelle.
+
+@lilypond[quote,ragged-right]
+musicA = { << \relative { cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
+ \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
+
+musicB = { \clef bass \new Voice { \voiceTwo \relative { < fis, a cis>4
+ \change Staff = up cis' \change Staff = down <fis, a>
+ \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis
+ <f a d>2 | } }}
+
+\score {
+ \new PianoStaff {
+ << \context Staff = "up" {
+ #(set-accidental-style 'forget)
+ \musicA }
+ \context Staff = "down"{
+ #(set-accidental-style 'forget)
+ \musicB } >> }
+ \header { piece = \markup {\fill-line { \fontsize #3 "'forget" }}}
+}
+@end lilypond
+@end table
+
+
+@seealso
+
+Référence du programme : @internalsref{Accidental_engraver},
+@internalsref{Accidental}, @internalsref{AccidentalSuggestion} et @internalsref{AccidentalPlacement}.
+
+
+@refbugs
+
+Les notes simultanées sont considérées comme des évènements séquentiels.
+Ce qui implique que, dans un accord, les altérations accidentelles sont
+imprimées comme si les notes de l'accords apparaissaient une par une, en fonction
+de l'ordre dans lequels elles ont été saisies -- ce qui peut poser problème lorsqu'au
+sein d'un accord certaines altérations dépendent les unes des autres. Ce problème
+est à résoudre manuellement, en insérant des @code{!} et des @code{?} après les notes
+concernées.
-UNTRANSLATED NODE: IGNORE ME
@node Setting automatic beam behavior
@subsection Setting automatic beam behavior
-UNTRANSLATED NODE: IGNORE ME
+@funindex autoBeamSettings
+@funindex (end * * * *)
+@funindex (begin * * * *)
+@cindex ligatures automatiques, réglage
+@cindex réglage des ligatures automatiques
+
+@c [TODO: use \applyContext]
+
+Dans les métriques courantes, les ligatures automatiques peuvent commencer
+sur n'importe quelle note, mais ne peuvent se terminer qu'à certains points précis
+dans la mesure : sur une pulsation, ou après toute durée spécifiée par les propriétés
+nommées @code{autoBeamSettings}. Ces propriétés consistent en une liste de règles
+relatives au début ou à la fin des ligatures. Par défaut, elles sont définies dans
+le fichier
+@file{scm/@/auto@/-beam@/.scm}.
+
+On peut ajouter à cette liste une nouvelle règle, au moyen de la commande
+@example
+#(override-auto-beam-setting '(extrémité p q n m) a b [contexte])
+@end example
+
+@itemize @bullet
+
+@item @code{extrémité} désigne le début (@code{begin}) ou la fin (@code{end}) de la ligature.
+
+@item @code{p/q} désigne la valeur rythmique de la note que l'on veut affecter, ou de la
+plus brève des notes concernées. Si cette règle doit s'appliquer à toutes les ligatures,
+remplacez @code{p} et @code{q} par des étoiles @qq{@code{*}}.
+
+
+@item @code{n/m} est le chiffre de mesure dans lequel la règle doit s'appliquer. Si
+celle-ci doit s'appliquer dans toutes les métriques, remplacez @code{n} et @code{m}
+par des étoiles @qq{@code{*}}.
+
+@item @code{a/b} est l'emplacement, dans la mesure, auquel les ligatures doivent
+débuter ou s'achever (suivant la valeur @q{extrémité} que nous venons de voir).
+
+
+@item @code{contexte} est un argument facultatif, qui détermine le contexte dans lequel
+la règle doit s'appliquer. Par défaut, il s'agit de @code{'Voice}.
+@code{#(score-override-auto-beam-setting '(A B C D) E F)} équivaut à
+@code{#(override-auto-beam-setting '(A B C D) E F 'Score)}.
+
+@end itemize
+
+Par exemple, si l'on veut que les ligatures s'achèvent toujours après la première noire :
+
+
+@example
+#(override-auto-beam-setting '(end * * * *) 1 4)
+@end example
+
+On peut obliger une règle de ligatures à ne s'appliquer qu'à des groupes dont la note
+la plus brève est d'une valeur précise :
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\time 2/4
+#(override-auto-beam-setting '(end 1 16 * *) 1 16)
+a16 a a a a a a a |
+a32 a a a a16 a a a a a |
+#(override-auto-beam-setting '(end 1 32 * *) 1 16)
+a32 a a a a16 a a a a a |
+@end lilypond
+
+On peut obliger une règle de ligatures à ne s'appliquer que pour un chiffre de mesure
+précis :
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\time 5/8
+#(override-auto-beam-setting '(end * * 5 8) 2 8)
+c8 c d d d
+\time 4/4
+e8 e f f e e d d
+\time 5/8
+c8 c d d d
+@end lilypond
+
+Enfin, on peut désactiver une règle de ligatures au moyen du réglage suivant :
+
+@example
+#(revert-auto-beam-setting '(extrémité p q n m) a b [contexte])
+@end example
+
+@noindent
+@code{extrémité}, @code{p}, @code{q}, @code{n}, @code{m}, @code{a}, @code{b} et @code{contexte}
+étant les mêmes que plus haut. Il est même possible de désactiver des règles que l'on n'a pas
+explicitement créées : les règles par défaut, qui se trouvent dans le fichier @file{scm/@/auto@/-beam@/.scm}.
+
+
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\time 4/4
+a16 a a a a a a a a a a a a a a a
+#(revert-auto-beam-setting '(end 1 16 4 4) 1 4)
+a16 a a a a a a a a a a a a a a a
+@end lilypond
+
+La commande @code{revert-auto-beam-setting} requiert exactement les mêmes arguments
+que la règle d'origine. En d'autres termes, les étoiles ne seront pas prises en compte ici.
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\time 1/4
+#(override-auto-beam-setting '(end 1 16 1 4) 1 8)
+a16 a a a
+#(revert-auto-beam-setting '(end 1 16 * *) 1 8) % ceci ne désactive pas la règle !
+a a a a
+#(revert-auto-beam-setting '(end 1 16 1 4) 1 8) % ceci marche
+a a a a
+@end lilypond
+
+
+
+@c TODO: old material -- not covered by above stuff, I think.
+Si, dans une mesure à 5/4, l'on veut que les ligatures soient regroupées temps par temps,
+il est nécessaire d'indiquer toutes les terminaisons de ligatures.
+@example
+#(override-auto-beam-setting '(end * * * *) 1 4 'Staff)
+#(override-auto-beam-setting '(end * * * *) 1 2 'Staff)
+#(override-auto-beam-setting '(end * * * *) 3 4 'Staff)
+#(override-auto-beam-setting '(end * * * *) 5 4 'Staff)
+@dots{}
+@end example
+
+La même syntaxe peut servir à définir les points de départ des ligatures.
+Dans l'exemple suivant, les ligatures automatiques ne peuvent se terminer
+que sur une noire pointée.
+@example
+#(override-auto-beam-setting '(end * * * *) 3 8)
+#(override-auto-beam-setting '(end * * * *) 1 2)
+#(override-auto-beam-setting '(end * * * *) 7 8)
+@end example
+@c ???? Je n'y comprends rien --vv
+Dans une mesure à 4/4, cela implique que les ligatures ne peuvent se terminer que sur
+la troisième croche, ou sur le quatrième temps (après la valeur de deux fois trois croches).
+
+Si une ligature se fait de manière inattendue, pensez à vérifer les règles automatiques
+dans le fichier @file{scm/@/auto@/-beam@/.scm} pour rechercher d'éventuels conflits, dans
+la mesure ou les règles par défaut s'ajoutent à vos propres règles. Il est alors nécessaire
+de désactiver toute règle par défaut conduisant à des ligatures indésirables.
+
+Ainsi, pour obtenir des ligatures en groupes de @code{(3 4 3 2)} notes, dans une mesure à 12/8,
+il faudra préalablement utiliser :
+
+@example
+%%% annulons les réglages par défaut relatifs à 12/8, dans scm/auto-beam.scm
+#(revert-auto-beam-setting '(end * * 12 8) 3 8)
+#(revert-auto-beam-setting '(end * * 12 8) 3 4)
+#(revert-auto-beam-setting '(end * * 12 8) 9 8)
+
+%%% puis ajoutons nos propres règles
+#(override-auto-beam-setting '(end 1 8 12 8) 3 8)
+#(override-auto-beam-setting '(end 1 8 12 8) 7 8)
+#(override-auto-beam-setting '(end 1 8 12 8) 10 8)
+@end example
+
+@cindex ligatures automatiques
+@cindex groupes de notes
+@funindex autoBeaming
+@cindex paroles
+
+Si des ligatures sont utilisées dans les paroles d'une chanson (pour indiquer des mélismes),
+les ligatures automatiques doivent être désactivées, avec @code{\autoBeamOff}.
+
+
+@refcommands
+
+@funindex \autoBeamOff
+@code{\autoBeamOff},
+@funindex \autoBeamOn
+@code{\autoBeamOn}.
+
+@commonprop
+
+Les groupes de notes reliées par les ligatures peuvent être spécifiés au moyen
+de la propriété @code{beatGrouping}.
+
+@lilypond[quote,verbatim,relative=2,fragment,ragged-right]
+\time 5/16
+\set beatGrouping = #'(2 3)
+c8[^"(2+3)" c16 c8]
+\set beatGrouping = #'(3 2)
+c8[^"(3+2)" c16 c8]
+@end lilypond
+
+
+@refbugs
+
+Si une partition se termine alors qu'une ligature automatique est restée inachevée,
+cette dernière ligature ne sera pas imprimée du tout. C'est également valable dans
+le cas d'une musique polyphonique, saisie avec la syntaxe @code{<< @dots{} \\ @dots{}
+>>}, où une voix se terminerait sans que la dernière ligature
+soit achevée.
@node Interpretation contexts
@section Interpretation contexts
-UNTRANSLATED NODE: IGNORE ME
-
-@menu
-* Contexts explained::
-* Creating contexts::
-* Changing context properties on the fly::
-* Modifying context plug-ins::
-* Layout tunings within contexts::
-* Changing context default settings::
-* Defining new contexts::
-* Aligning contexts::
-* Vertical grouping of grobs::
-@end menu
+This section describes what contexts are, and how to modify them.
+
+@menu
+* Contexts explained::
+* Creating contexts::
+* Changing context properties on the fly::
+* Modifying context plug-ins::
+* Layout tunings within contexts::
+* Changing context default settings::
+* Defining new contexts::
+* Aligning contexts::
+* Vertical grouping of grobs::
+@end menu
+
+
@node Contexts explained
@subsection Contexts explained
-UNTRANSLATED NODE: IGNORE ME
+When music is printed, a lot of notational elements must be added to the
+output. For example, compare the input and output of the following example:
+
+@lilypond[quote,verbatim,relative=2,fragment]
+cis4 cis2. g4
+@end lilypond
+
+The input is rather sparse, but in the output, bar lines, accidentals,
+clef, and time signature are added. LilyPond @emph{interprets} the
+input. During this step, the musical information is inspected in time
+order, similar to reading a score from left to right. While reading
+the input, the program remembers where measure boundaries are, and which
+pitches require explicit accidentals. This information can be presented on
+several levels. For example, the effect of an accidental is limited
+to a single staff, while a bar line must be synchronized across the
+entire score.
+
+Within LilyPond, these rules and bits of information are grouped in
+@emph{Contexts}. Some examples of contexts are @context{Voice},
+@context{Staff}, and @context{Score}. They are hierarchical, for
+example: a @context{Staff} can contain many @context{Voice}s, and a
+@context{Score} can contain many @context{Staff} contexts.
+
+@quotation
+@image{context-example,5cm,,}
+@end quotation
+
+Each context has the responsibility for enforcing some notation rules,
+creating some notation objects and maintaining the associated
+properties. For example, the @context{Voice} context may introduce an
+accidental and then the @context{Staff} context maintains the rule to
+show or suppress the accidental for the remainder of the measure. The
+synchronization of bar lines is handled at @context{Score} context.
+
+However, in some music we may not want the bar lines to be
+synchronized -- consider a polymetric score in 4/4 and 3/4 time. In
+such cases, we must modify the default settings of the @context{Score}
+and @context{Staff} contexts.
+
+For very simple scores, contexts are created implicitly, and you need
+not be aware of them. For larger pieces, such as anything with more
+than one staff, they must be
+created explicitly to make sure that you get as many staves as you
+need, and that they are in the correct order. For typesetting pieces
+with specialized notation, it can be useful to modify existing or
+to define new contexts.
+
+
+A complete description of all available contexts is in the program
+reference, see
+@ifhtml
+@internalsref{Contexts}.
+@end ifhtml
+@ifnothtml
+Translation @arrow{} Context.
+@end ifnothtml
+
+@c [TODO: describe propagation]
+
@node Creating contexts
@subsection Creating contexts
-UNTRANSLATED NODE: IGNORE ME
+For scores with only one voice and one staff, contexts are
+created automatically. For more complex scores, it is necessary to
+create them by hand. There are three commands that do this.
+
+@itemize @bullet
+
+@item
+The easiest command is @code{\new}, and it also the quickest to type.
+It is prepended to a music expression, for example
+
+@funindex \new
+@cindex new contexts
+@cindex Context, creating
+
+@example
+\new @var{type} @var{music expression}
+@end example
+
+@noindent
+where @var{type} is a context name (like @code{Staff} or
+@code{Voice}). This command creates a new context, and starts
+interpreting the @var{music expression} with that.
+
+A practical application of @code{\new} is a score with many
+staves. Each part that should be on its own staff, is preceded with
+@code{\new Staff}.
+
+@lilypond[quote,verbatim,relative=2,ragged-right,fragment]
+<<
+ \new Staff { c4 c }
+ \new Staff { d4 d }
+>>
+@end lilypond
+
+The @code{\new} command may also give a name to the context,
+
+@example
+\new @var{type} = @var{id} @var{music}
+@end example
+However, this user specified name is only used if there is no other
+context already earlier with the same name.
+
+
+@funindex \context
+
+@item
+Like @code{\new}, the @code{\context} command also directs a music
+expression to a context object, but gives the context an explicit name. The
+syntax is
+
+@example
+\context @var{type} = @var{id} @var{music}
+@end example
+
+This form will search for an existing context of type @var{type}
+called @var{id}. If that context does not exist yet, a new
+context with the specified name is created. This is useful if
+the context is referred to later on. For example, when
+setting lyrics the melody is in a named context
+
+@example
+\context Voice = "@b{tenor}" @var{music}
+@end example
+
+@noindent
+so the texts can be properly aligned to its notes,
+
+@example
+\new Lyrics \lyricsto "@b{tenor}" @var{lyrics}
+@end example
+
+@noindent
+
+Another possible use of named contexts is funneling two different
+music expressions into one context. In the following example,
+articulations and notes are entered separately,
+
+@example
+music = @{ c4 c4 @}
+arts = @{ s4-. s4-> @}
+@end example
+
+They are combined by sending both to the same @context{Voice} context,
+
+@example
+<<
+ \new Staff \context Voice = "A" \music
+ \context Voice = "A" \arts
+>>
+@end example
+@lilypond[quote,ragged-right]
+music = { c4 c4 }
+arts = { s4-. s4-> }
+\relative c'' <<
+ \new Staff \context Voice = "A" \music
+ \context Voice = "A" \arts
+>>
+@end lilypond
+
+With this mechanism, it is possible to define an Urtext (original
+edition), with the option to put several distinct articulations on the
+same notes.
+
+@cindex creating contexts
+
+@item
+The third command for creating contexts is
+@example
+\context @var{type} @var{music}
+@end example
+
+
+@noindent
+This is similar to @code{\context} with @code{= @var{id}}, but matches
+any context of type @var{type}, regardless of its given name.
+
+This variant is used with music expressions that can be interpreted at
+several levels. For example, the @code{\applyOutput} command (see
+@ref{Running a function on all layout objects}). Without an explicit
+@code{\context}, it is usually applied to @context{Voice}
+
+@example
+\applyOutput #'@var{context} #@var{function} % apply to Voice
+@end example
+
+To have it interpreted at the @context{Score} or @context{Staff} level use
+these forms
+
+@example
+\applyOutput #'Score #@var{function}
+\applyOutput #'Staff #@var{function}
+@end example
+
+@end itemize
+
@node Changing context properties on the fly
@subsection Changing context properties on the fly
-UNTRANSLATED NODE: IGNORE ME
+@cindex properties
+@funindex \set
+@cindex changing properties
+
+Each context can have different @emph{properties}, variables contained
+in that context. They can be changed during the interpretation step.
+This is achieved by inserting the @code{\set} command in the music,
+
+@example
+\set @var{context}.@var{prop} = #@var{value}
+@end example
+
+For example,
+@lilypond[quote,verbatim,relative=2,fragment]
+R1*2
+\set Score.skipBars = ##t
+R1*2
+@end lilypond
+
+This command skips measures that have no notes. The result is that
+multi-rests are condensed. The value assigned is a Scheme object. In
+this case, it is @code{#t}, the boolean True value.
+
+If the @var{context} argument is left out, then the current bottom-most
+context (typically @context{ChordNames}, @context{Voice}, or
+@context{Lyrics}) is used. In this example,
+
+@lilypond[quote,verbatim,relative=2,fragment]
+c8 c c c
+\set autoBeaming = ##f
+c8 c c c
+@end lilypond
+
+@noindent
+the @var{context} argument to @code{\set} is left out, so automatic
+beaming is switched off in the current @internalsref{Voice}. Note that
+the bottom-most context does not always contain the property that you
+wish to change -- for example, attempting to set the @code{skipBars}
+property (of the bottom-most context, in this case @code{Voice}) will
+have no effect.
+
+@lilypond[quote,verbatim,relative=2,fragment]
+R1*2
+\set skipBars = ##t
+R1*2
+@end lilypond
+
+Contexts are hierarchical, so if a bigger context was specified, for
+example @context{Staff}, then the change would also apply to all
+@context{Voice}s in the current stave. The change is applied
+@q{on-the-fly}, during the music, so that the setting only affects the
+second group of eighth notes.
+
+@funindex \unset
+
+There is also an @code{\unset} command,
+@example
+\unset @var{context}.@var{prop}
+@end example
+
+@noindent
+which removes the definition of @var{prop}. This command removes
+the definition only if it is set in @var{context}, so
+
+@example
+\set Staff.autoBeaming = ##f
+@end example
+
+@noindent
+introduces a property setting at @code{Staff} level. The setting also
+applies to the current @code{Voice}. However,
+
+@example
+\unset Voice.autoBeaming
+@end example
+
+@noindent
+does not have any effect. To cancel this setting, the @code{\unset}
+must be specified on the same level as the original @code{\set}. In
+other words, undoing the effect of @code{Staff.autoBeaming = ##f}
+requires
+@example
+\unset Staff.autoBeaming
+@end example
+
+Like @code{\set}, the @var{context} argument does not have to be
+specified for a bottom context, so the two statements
+
+@example
+\set Voice.autoBeaming = ##t
+\set autoBeaming = ##t
+@end example
+
+@noindent
+are equivalent.
+
+
+@cindex \once
+Settings that should only apply to a single time-step can be entered
+with @code{\once}, for example in
+
+@lilypond[quote,verbatim,relative=2,fragment]
+c4
+\once \set fontSize = #4.7
+c4
+c4
+@end lilypond
+
+the property @code{fontSize} is unset automatically after the second
+note.
+
+A full description of all available context properties is in the
+program reference, see
+@ifhtml
+@internalsref{Tunable context properties}.
+@end ifhtml
+@ifnothtml
+Translation @arrow{} Tunable context properties.
+@end ifnothtml
+
@node Modifying context plug-ins
@subsection Modifying context plug-ins
-UNTRANSLATED NODE: IGNORE ME
+Notation contexts (like @code{Score} and @code{Staff}) not only
+store properties,
+they also contain plug-ins called @q{engravers} that create notation
+elements. For example, the @code{Voice} context contains a
+@code{Note_head_engraver} and the @code{Staff} context contains a
+@code{Key_signature_engraver}.
+
+For a full a description of each plug-in, see
+@ifhtml
+@internalsref{Engravers}.
+@end ifhtml
+@ifnothtml
+Program reference @arrow Translation @arrow{} Engravers.
+@end ifnothtml
+Every context described in
+@ifhtml
+@internalsref{Contexts}
+@end ifhtml
+@ifnothtml
+Program reference @arrow Translation @arrow{} Context.
+@end ifnothtml
+lists the engravers used for that context.
+
+
+It can be useful to shuffle around these plug-ins. This is done by
+starting a new context with @code{\new} or @code{\context}, and
+modifying it,
+
+@funindex \with
+
+@example
+\new @var{context} \with @{
+ \consists @dots{}
+ \consists @dots{}
+ \remove @dots{}
+ \remove @dots{}
+ @emph{etc.}
+@}
+@{
+ @emph{..music..}
+@}
+@end example
+
+@noindent
+where the @dots{} should be the name of an engraver. Here is a simple
+example which removes @code{Time_signature_engraver} and
+@code{Clef_engraver} from a @code{Staff} context,
+
+@lilypond[quote,relative=1,verbatim,fragment]
+<<
+ \new Staff {
+ f2 g
+ }
+ \new Staff \with {
+ \remove "Time_signature_engraver"
+ \remove "Clef_engraver"
+ } {
+ f2 g2
+ }
+>>
+@end lilypond
+
+In the second staff there are no time signature or clef symbols. This
+is a rather crude method of making objects disappear since it will affect
+the entire staff. This method also influences the spacing, which may or
+may not be desirable. A more
+sophisticated method of blanking objects is shown in @ref{Common tweaks}.
+
+The next example shows a practical application. Bar lines and time
+signatures are normally synchronized across the score. This is done
+by the @code{Timing_translator} and @code{Default_bar_line_engraver}.
+This plug-in keeps an administration of time signature, location
+within the measure, etc. By moving thes engraver from @code{Score} to
+@code{Staff} context, we can have a score where each staff has its own
+time signature.
+
+@cindex polymetric scores
+@cindex Time signatures, multiple
+
+@lilypond[quote,relative=1,ragged-right,verbatim,fragment]
+\new Score \with {
+ \remove "Timing_translator"
+ \remove "Default_bar_line_engraver"
+} <<
+ \new Staff \with {
+ \consists "Timing_translator"
+ \consists "Default_bar_line_engraver"
+ } {
+ \time 3/4
+ c4 c c c c c
+ }
+ \new Staff \with {
+ \consists "Timing_translator"
+ \consists "Default_bar_line_engraver"
+ } {
+ \time 2/4
+ c4 c c c c c
+ }
+>>
+@end lilypond
+
@node Layout tunings within contexts
@subsection Layout tunings within contexts
-UNTRANSLATED NODE: IGNORE ME
+Each context is responsible for creating certain types of graphical
+objects. The settings used for printing these objects are also stored by
+context. By changing these settings, the appearance of objects can be
+altered.
+
+The syntax for this is
+
+@example
+\override @var{context}.@var{name} #'@var{property} = #@var{value}
+@end example
+
+Here @var{name} is the name of a graphical object, like @code{Stem} or
+@code{NoteHead}, and @var{property} is an internal variable of the
+formatting system (@q{grob property} or @q{layout property}). The latter is a
+symbol, so it must be quoted. The subsection @ref{Constructing a
+tweak}, explains what to fill in for @var{name}, @var{property}, and
+@var{value}. Here we only discuss the functionality of this command.
+
+The command
+
+@verbatim
+\override Staff.Stem #'thickness = #4.0
+@end verbatim
+
+@noindent
+makes stems thicker (the default is 1.3, with staff line thickness as a
+unit). Since the command specifies @context{Staff} as context, it only
+applies to the current staff. Other staves will keep their normal
+appearance. Here we see the command in action:
+
+@lilypond[quote,verbatim,relative=2,fragment]
+c4
+\override Staff.Stem #'thickness = #4.0
+c4
+c4
+c4
+@end lilypond
+
+The @code{\override} command changes the definition of the @code{Stem}
+within the current @context{Staff}. After the command is interpreted
+all stems are thickened.
+
+Analogous to @code{\set}, the @var{context} argument may be left out,
+causing the default context @context{Voice} to be used. Adding
+@code{\once} applies the change during one timestep only.
+
+@lilypond[quote,fragment,verbatim,relative=2]
+c4
+\once \override Stem #'thickness = #4.0
+c4
+c4
+@end lilypond
+
+The @code{\override} must be done before the object is
+started. Therefore, when altering @emph{Spanner} objects such as slurs
+or beams, the @code{\override} command must be executed at the moment
+when the object is created. In this example,
+
+@lilypond[quote,fragment,verbatim,relative=2]
+\override Slur #'thickness = #3.0
+c8[( c
+\override Beam #'thickness = #0.6
+c8 c])
+@end lilypond
+
+@noindent
+the slur is fatter but the beam is not. This is because the command for
+@code{Beam} comes after the Beam is started, so it has no effect.
+
+Analogous to @code{\unset}, the @code{\revert} command for a context
+undoes an @code{\override} command; like with @code{\unset}, it only
+affects settings that were made in the same context. In other words, the
+@code{\revert} in the next example does not do anything.
+
+@example
+\override Voice.Stem #'thickness = #4.0
+\revert Staff.Stem #'thickness
+@end example
+
+Some tweakable options are called @q{subproperties} and reside inside
+properties. To tweak those, use commands of the form
+
+@c leave this as a long long
+@example
+\override @var{context}.@var{name} #'@var{property} #'@var{subproperty} = #@var{value}
+@end example
+
+@noindent
+such as
+
+@example
+\override Stem #'details #'beamed-lengths = #'(4 4 3)
+@end example
+
+
+@seealso
+
+Internals: @internalsref{OverrideProperty}, @internalsref{RevertProperty},
+@internalsref{PropertySet}, @internalsref{Backend}, and
+@internalsref{All layout objects}.
+
+
+@refbugs
+
+The back-end is not very strict in type-checking object properties.
+Cyclic references in Scheme values for properties can cause hangs
+or crashes, or both.
+
@node Changing context default settings
@subsection Changing context default settings
-UNTRANSLATED NODE: IGNORE ME
+The adjustments of the previous subsections (@ref{Changing context
+properties on the fly}, @ref{Modifying context plug-ins}, and
+@ref{Layout tunings within contexts}) can also be entered separately
+from the music in the @code{\layout} block,
+
+@example
+\layout @{
+ @dots{}
+ \context @{
+ \Staff
+
+ \set fontSize = #-2
+ \override Stem #'thickness = #4.0
+ \remove "Time_signature_engraver"
+ @}
+@}
+@end example
+
+The @code{\Staff} command brings in the existing definition of the
+staff context so that it can be modified.
+
+The statements
+@example
+\set fontSize = #-2
+\override Stem #'thickness = #4.0
+\remove "Time_signature_engraver"
+@end example
+
+@noindent
+affect all staves in the score. Other contexts can be modified
+analogously.
+
+The @code{\set} keyword is optional within the @code{\layout} block, so
+
+@example
+\context @{
+ @dots{}
+ fontSize = #-2
+@}
+@end example
+
+@noindent
+will also work.
+
+
+
+@refbugs
+
+It is not possible to collect context changes in a variable and apply
+them to a @code{\context} definition by referring to that variable.
+
+The @code{\RemoveEmptyStaffContext} will overwrite your current
+@code{\Staff} settings. If you wish to change the defaults for a
+staff which uses @code{\RemoveEmptyStaffContext}, you must do so
+after calling @code{\RemoveemptyStaffContext}, ie
+
+@example
+\layout @{
+ \context @{
+ \RemoveEmptyStaffContext
+
+ \override Stem #'thickness = #4.0
+ @}
+@}
+@end example
+
@node Defining new contexts
@subsection Defining new contexts
-UNTRANSLATED NODE: IGNORE ME
+Specific contexts, like @context{Staff} and @code{Voice}, are made of
+simple building blocks. It is possible to create new types of
+contexts with different combinations of engraver plug-ins.
+
+The next example shows how to build a different type of
+@context{Voice} context from scratch. It will be similar to
+@code{Voice}, but only prints centered slash noteheads. It can be used
+to indicate improvisation in jazz pieces,
+
+@lilypond[quote,ragged-right]
+\layout { \context {
+ \name ImproVoice
+ \type "Engraver_group"
+ \consists "Note_heads_engraver"
+ \consists "Text_engraver"
+ \consists Pitch_squash_engraver
+ squashedPosition = #0
+ \override NoteHead #'style = #'slash
+ \override Stem #'transparent = ##t
+ \alias Voice
+}
+\context { \Staff
+ \accepts "ImproVoice"
+}}
+
+\relative c'' {
+ a4 d8 bes8 \new ImproVoice { c4^"ad lib" c
+ c4 c^"undress" c_"while playing :)" c }
+ a1
+}
+@end lilypond
+
+
+These settings are defined within a @code{\context} block inside a
+@code{\layout} block,
+
+@example
+\layout @{
+ \context @{
+ @dots{}
+ @}
+@}
+@end example
+
+In the following discussion, the example input shown should go in place
+of the @dots{} in the previous fragment.
+
+First it is necessary to define a name for the new context:
+
+@example
+\name ImproVoice
+@end example
+
+Since it is similar to the @context{Voice}, we want commands that work
+on (existing) @context{Voice}s to remain working. This is achieved by
+giving the new context an alias @context{Voice},
+
+@example
+\alias Voice
+@end example
+
+The context will print notes and instructive texts, so we need to add
+the engravers which provide this functionality,
+
+@example
+\consists Note_heads_engraver
+\consists Text_engraver
+@end example
+
+but we only need this on the center line,
+
+@example
+\consists Pitch_squash_engraver
+squashedPosition = #0
+@end example
+
+The @internalsref{Pitch_squash_engraver} modifies note heads (created
+by @internalsref{Note_heads_engraver}) and sets their vertical
+position to the value of @code{squashedPosition}, in this case@tie{}@code{0},
+the center line.
+
+The notes look like a slash, and have no stem,
+
+@example
+\override NoteHead #'style = #'slash
+\override Stem #'transparent = ##t
+@end example
+
+All these plug-ins have to cooperate, and this is achieved with a
+special plug-in, which must be marked with the keyword @code{\type}.
+This should always be @internalsref{Engraver_group},
+
+@example
+\type "Engraver_group"
+@end example
+
+Put together, we get
+
+@example
+\context @{
+ \name ImproVoice
+ \type "Engraver_group"
+ \consists "Note_heads_engraver"
+ \consists "Text_engraver"
+ \consists Pitch_squash_engraver
+ squashedPosition = #0
+ \override NoteHead #'style = #'slash
+ \override Stem #'transparent = ##t
+ \alias Voice
+@}
+@end example
+
+@funindex \accepts
+Contexts form hierarchies. We want to hang the @context{ImproVoice}
+under @context{Staff}, just like normal @code{Voice}s. Therefore, we
+modify the @code{Staff} definition with the @code{\accepts}
+command,
+
+@example
+\context @{
+ \Staff
+ \accepts ImproVoice
+@}
+@end example
+
+@funindex \denies
+The opposite of @code{\accepts} is @code{\denies},
+which is sometimes needed when reusing existing context definitions.
+
+Putting both into a @code{\layout} block, like
+
+@example
+\layout @{
+ \context @{
+ \name ImproVoice
+ @dots{}
+ @}
+ \context @{
+ \Staff
+ \accepts "ImproVoice"
+ @}
+@}
+@end example
+
+Then the output at the start of this subsection can be entered as
+
+@example
+\relative c'' @{
+ a4 d8 bes8
+ \new ImproVoice @{
+ c4^"ad lib" c
+ c4 c^"undress"
+ c c_"while playing :)"
+ @}
+ a1
+@}
+@end example
+
@node Aligning contexts
@subsection Aligning contexts
-UNTRANSLATED NODE: IGNORE ME
+New contexts may be aligned above or below exisiting contexts. This
+could be useful in setting up a vocal staff (@ref{Vocal ensembles}) and
+in ossia,
+
+@cindex ossia
+@findex alignAboveContext
+@findex alignBelowContext
+
+@lilypond[quote,ragged-right]
+ossia = { f4 f f f }
+\score{
+ \relative c' \new Staff = "main" {
+ c4 c c c
+ <<
+ \new Staff \with {alignAboveContext=main} \ossia
+ { d8 f d f d f d f }
+ >>
+ }
+}
+@end lilypond
+
@node Vertical grouping of grobs
@subsection Vertical grouping of grobs
-UNTRANSLATED NODE: IGNORE ME
+The VerticalAlignment and VerticalAxisGroup grobs work together.
+VerticalAxisGroup groups together different grobs like Staff, Lyrics,
+etc. VerticalAlignment then vertically aligns the different grobs
+grouped together by VerticalAxisGroup. There is usually only one
+VerticalAlignment per score but every Staff, Lyrics, etc. has its own
+VerticalAxisGroup.
+
@node The \override command
@section The @code{\override} command
-UNTRANSLATED NODE: IGNORE ME
-
-@menu
-* Constructing a tweak::
-* Navigating the program reference::
-* Layout interfaces::
-* Determining the grob property::
-* Objects connected to the input::
-* Using Scheme code instead of \tweak::
-* \set versus \override::
-* Difficult tweaks::
-@end menu
+In the previous section, we have already touched on a command that
+changes layout details: the @code{\override} command. In this section,
+we will look in more detail at how to use the command in practice. The
+general syntax of this command is:
+
+@example
+\override @var{context}.@var{layout_object} #'@var{layout_property} = #@var{value}
+@end example
+
+This will set the @var{layout_property} of the specified @var{layout_object},
+which is a member of the @var{context}, to the @var{value}.
+
+@menu
+* Constructing a tweak::
+* Navigating the program reference::
+* Layout interfaces::
+* Determining the grob property::
+* Objects connected to the input::
+* Using Scheme code instead of \tweak::
+* \set versus \override::
+* Difficult tweaks::
+@end menu
+
+
+
@node Constructing a tweak
@subsection Constructing a tweak
-UNTRANSLATED NODE: IGNORE ME
+Commands which change output generally look like
+
+@example
+\override Voice.Stem #'thickness = #3.0
+@end example
+
+@noindent
+To construct this tweak we must determine these bits of information:
+
+@itemize
+@item the context: here @context{Voice}.
+@item the layout object: here @code{Stem}.
+@item the layout property: here @code{thickness}.
+@item a sensible value: here @code{3.0}.
+@end itemize
+
+Some tweakable options are called @q{subproperties} and reside inside
+properties. To tweak those, use commands in the form
+
+@example
+\override Stem #'details #'beamed-lengths = #'(4 4 3)
+@end example
+
+@cindex internal documentation
+@cindex finding graphical objects
+@cindex graphical object descriptions
+@cindex tweaking
+@funindex \override
+@cindex internal documentation
+
+For many properties, regardless of the data type of the property, setting the
+property to false ( @code{##f} ) will result in turning it off, causing
+Lilypond to ignore that property entirely. This is particularly useful for
+turning off grob properties which may otherwise be causing problems.
+
+We demonstrate how to glean this information from the notation manual
+and the program reference.
+
+
+
@node Navigating the program reference
@subsection Navigating the program reference
-UNTRANSLATED NODE: IGNORE ME
+Suppose we want to move the fingering indication in the fragment
+below:
+
+@lilypond[quote,fragment,relative=2,verbatim]
+c-2
+\stemUp
+f
+@end lilypond
+
+If you visit the documentation on fingering instructions (in
+@ref{Fingering instructions}), you will notice:
+
+@quotation
+@seealso
+
+Program reference: @internalsref{Fingering}.
+
+@end quotation
+
+
+@c outdated info; probably will delete.
+@ignore
+This fragment points to two parts of the program reference: a page
+on @code{FingerEvent} and one on @code{Fingering}.
+
+The page on @code{FingerEvent} describes the properties of the music
+expression for the input @code{-2}. The page contains many links
+forward. For example, it says
+
+@quotation
+Accepted by: @internalsref{Fingering_engraver},
+@end quotation
+
+@noindent
+That link brings us to the documentation for the Engraver, the
+plug-in, which says
+
+@quotation
+This engraver creates the following layout objects: @internalsref{Fingering}.
+@end quotation
+
+In other words, once the @code{FingerEvent}s are interpreted, the
+@code{Fingering_engraver} plug-in will process them.
+@end ignore
+
+@ignore
+@c I can't figure out what this is supposed to mean. -gp
+
+The @code{Fingering_engraver} is also listed to create
+@internalsref{Fingering} objects,
+
+@c old info? it doesn't make any sense to me with our current docs.
+This is also the
+second bit of information listed under @b{See also} in the Notation
+manual.
+@end ignore
+
+@ifnothtml
+The programmer's reference is available as an HTML document. It is
+highly recommended that you read it in HTML form, either online or
+by downloading the HTML documentation. This section will be much more
+difficult to understand if you are using the
+PDF manual.
+@end ifnothtml
+
+Follow the link to @internalsref{Fingering}. At the top of the
+page, you will see
+
+@quotation
+Fingering objects are created by: @internalsref{Fingering_engraver} and
+@internalsref{New_fingering_engraver}.
+@end quotation
+
+By following related links inside the program reference, we can follow the
+flow of information within the program:
+
+@itemize @bullet
+
+@item @internalsref{Fingering}:
+@internalsref{Fingering} objects are created by:
+@internalsref{Fingering_engraver}
+
+@item @internalsref{Fingering_engraver}:
+Music types accepted: @internalsref{fingering-event}
+
+@item @internalsref{fingering-event}:
+Music event type @code{fingering-event} is in Music expressions named
+@internalsref{FingerEvent}
+@end itemize
+
+This path goes against the flow of information in the program: it
+starts from the output, and ends at the input event. You could
+also start at an input event, and read with the flow of
+information, eventually ending up at the output object(s).
+
+The program reference can also be browsed like a normal document. It
+contains chapters on
+@ifhtml
+@internalsref{Music definitions},
+@end ifhtml
+@ifnothtml
+@code{Music definitions}
+@end ifnothtml
+on @internalsref{Translation}, and the @internalsref{Backend}. Every
+chapter lists all the definitions used and all properties that may be
+tuned.
+
@node Layout interfaces
@subsection Layout interfaces
-UNTRANSLATED NODE: IGNORE ME
+@cindex interface, layout
+@cindex layout interface
+@cindex grob
+
+The HTML page that we found in the previous section describes the
+layout object called @internalsref{Fingering}. Such an object is a
+symbol within the score. It has properties that store numbers (like
+thicknesses and directions), but also pointers to related objects. A
+layout object is also called a @emph{Grob}, which is short for Graphical
+Object. For more details about Grobs, see @internalsref{grob-interface}.
+
+The page for @code{Fingering} lists the definitions for the
+@code{Fingering} object. For example, the page says
+
+@quotation
+@code{padding} (dimension, in staff space):
+
+@code{0.5}
+@end quotation
+
+@noindent
+which means that the number will be kept at a distance of at least 0.5
+of the note head.
+
+
+Each layout object may have several functions as a notational or
+typographical element. For example, the Fingering object
+has the following aspects
+
+@itemize @bullet
+@item
+Its size is independent of the horizontal spacing, unlike slurs or beams.
+
+@item
+It is a piece of text. Granted, it is usually a very short text.
+
+@item
+That piece of text is typeset with a font, unlike slurs or beams.
+
+@item
+Horizontally, the center of the symbol should be aligned to the
+center of the notehead.
+
+@item
+Vertically, the symbol is placed next to the note and the staff.
+
+@item
+The vertical position is also coordinated with other superscript
+and subscript symbols.
+@end itemize
+
+Each of these aspects is captured in so-called @emph{interface}s,
+which are listed on the @internalsref{Fingering} page at the bottom
+
+@quotation
+This object supports the following interfaces:
+@internalsref{item-interface},
+@internalsref{self-alignment-interface},
+@internalsref{side-position-interface}, @internalsref{text-interface},
+@internalsref{text-script-interface}, @internalsref{font-interface},
+@internalsref{finger-interface}, and @internalsref{grob-interface}.
+@end quotation
+
+Clicking any of the links will take you to the page of the respective
+object interface. Each interface has a number of properties. Some of
+them are not user-serviceable (@q{Internal properties}), but others
+can be modified.
+
+We have been talking of @emph{the} @code{Fingering} object, but actually it
+does not amount to much. The initialization file (see
+@ref{Default files})
+@file{scm/@/define@/-grobs@/.scm} shows the soul of the @q{object},
+
+@example
+(Fingering
+ . ((padding . 0.5)
+ (avoid-slur . around)
+ (slur-padding . 0.2)
+ (staff-padding . 0.5)
+ (self-alignment-X . 0)
+ (self-alignment-Y . 0)
+ (script-priority . 100)
+ (stencil . ,ly:text-interface::print)
+ (direction . ,ly:script-interface::calc-direction)
+ (font-encoding . fetaNumber)
+ (font-size . -5) ; don't overlap when next to heads.
+ (meta . ((class . Item)
+ (interfaces . (finger-interface
+ font-interface
+ text-script-interface
+ text-interface
+ side-position-interface
+ self-alignment-interface
+ item-interface))))))
+@end example
+
+@noindent
+As you can see, the @code{Fingering} object is nothing more than a
+bunch of variable settings, and the webpage in the Program Reference
+is directly generated from this definition.
+
@node Determining the grob property
@subsection Determining the grob property
-UNTRANSLATED NODE: IGNORE ME
+Recall that we wanted to change the position of the @b{2} in
+
+@lilypond[quote,fragment,relative=2,verbatim]
+c-2
+\stemUp
+f
+@end lilypond
+
+Since the @b{2} is vertically positioned next to its note, we have to
+meddle with the interface associated with this positioning. This is
+done using @code{side-position-interface}. The page for this interface
+says
+
+@quotation
+@code{side-position-interface}
+
+Position a victim object (this one) next to other objects (the
+support). The property @code{direction} signifies where to put the
+victim object relative to the support (left or right, up or down?)
+@end quotation
+
+@cindex padding
+@noindent
+Below this description, the variable @code{padding} is described as
+
+@quotation
+@table @code
+@item padding
+(dimension, in staff space)
+
+Add this much extra space between objects that are next to each other.
+@end table
+@end quotation
+
+By increasing the value of @code{padding}, we can move the
+fingering away from the notehead. The following command inserts
+3 staff spaces of white
+between the note and the fingering:
+@example
+\once \override Voice.Fingering #'padding = #3
+@end example
+
+Inserting this command before the Fingering object is created,
+i.e., before @code{c2}, yields the following result:
+
+@lilypond[quote,relative=2,fragment,verbatim]
+\once \override Voice.Fingering #'padding = #3
+c-2
+\stemUp
+f
+@end lilypond
+
+
+In this case, the context for this tweak is @context{Voice}. This
+fact can also be deduced from the program reference, for the page for
+the @internalsref{Fingering_engraver} plug-in says
+
+@quotation
+Fingering_engraver is part of contexts: @dots{} @internalsref{Voice}
+@end quotation
+
@node Objects connected to the input
@subsection Objects connected to the input
-UNTRANSLATED NODE: IGNORE ME
+@funindex \tweak
+
+In some cases, it is possible to take a short-cut for tuning graphical
+objects. For objects that result directly from a piece of the input,
+you can use the @code{\tweak} function, for example
+
+@lilypond[relative=2,fragment,verbatim,ragged-right]
+<
+ c
+ \tweak #'color #red d
+ g
+ \tweak #'duration-log #1 a
+>4-\tweak #'padding #10 -.
+@end lilypond
+
+As you can see, properties are set in the objects directly,
+without mentioning the grob name or context where this should be
+applied.
+
+This technique only works for objects that are directly connected to
+an @internalsref{event} from the input, for example
+
+@itemize @bullet
+@item note heads, caused by chord-pitch (i.e., notes inside a chord)
+@item articulation signs, caused by articulation instructions
+@end itemize
+
+It notably does not work for stems and accidentals (these are caused
+by note heads, not by music events) or clefs (these are not caused by
+music inputs, but rather by the change of a property value).
+
+There are very few objects which are @emph{directly} connected to
+output. A normal note (like @code{c4}) is not directly connected
+to output, so
+
+@example
+\tweak #'color #red c4
+@end example
+
+@noindent
+does not change color. See @ref{Displaying music expressions}, for
+details.
+
@node Using Scheme code instead of \tweak
@subsection Using Scheme code instead of @code{\tweak}
-UNTRANSLATED NODE: IGNORE ME
+The main disadvantage of @code{\tweak} is its syntactical
+inflexibility. For example, the following produces a syntax error.
+
+@example
+F = \tweak #'font-size #-3 -\flageolet
+
+\relative c'' @{
+ c4^\F c4_\F
+@}
+@end example
+
+@noindent
+With other words, @code{\tweak} doesn't behave like an articulation
+regarding the syntax; in particular, it can't be attached with
+@samp{^} and @samp{_}.
+
+Using Scheme, this problem can be circumvented. The route to the
+result is given in @ref{Adding articulation to notes (example)},
+especially how to use @code{\displayMusic} as a helping guide.
+
+@example
+F = #(let ((m (make-music 'ArticulationEvent
+ 'articulation-type "flageolet")))
+ (set! (ly:music-property m 'tweaks)
+ (acons 'font-size -3
+ (ly:music-property m 'tweaks)))
+ m)
+
+\relative c'' @{
+ c4^\F c4_\F
+@}
+@end example
+
+@noindent
+Here, the @code{tweaks} properties of the flageolet object
+@samp{m} (created with @code{make-music}) are extracted with
+@code{ly:music-property}, a new key-value pair to change the
+font size is prepended to the property list with the
+@code{acons} Scheme function, and the result is finally
+written back with @code{set!}. The last element of the
+@code{let} block is the return value, @samp{m} itself.
+
@node \set versus \override
@subsection @code{\set} vs. @code{\override}
-UNTRANSLATED NODE: IGNORE ME
+We have seen two methods of changing properties: @code{\set} and
+@code{\override}. There are actually two different kinds of
+properties.
+
+Contexts can have properties, which are usually named in
+@code{studlyCaps}. They mostly control the translation from
+music to notatino, eg. @code{localKeySignature} (for determining
+whether to print accidentals), @code{measurePosition} (for
+determining when to print a barline). Context properties can
+change value over time while interpreting a piece of music;
+@code{measurePosition} is an obvious example of
+this. Context properties are modified with @code{\set}.
+
+There is a special type of context property: the element
+description. These properties are named in @code{StudlyCaps}
+(starting with capital letters). They contain the
+@q{default settings} for said graphical object as an
+association list. See @file{scm/@/define@/-grobs@/.scm}
+to see what kind of settings there are. Element descriptions
+may be modified with @code{\override}.
+
+@code{\override} is actually a shorthand;
+
+@example
+\override @var{context}.@var{name} #'@var{property} = #@var{value}
+@end example
+
+@noindent
+is more or less equivalent to
+
+@c leave this long line -gp
+@example
+\set @var{context}.@var{name} #'@var{property} = #(cons (cons '@var{property} @var{value}) <previous value of @var{context})
+@end example
+
+The value of @code{context} (the alist) is used to initalize
+the properties of individual grobs. Grobs also have
+properties, named in Scheme style, with
+@code{dashed-words}. The values of grob properties change
+during the formatting process: formatting basically amounts
+to computing properties using callback functions.
+
+@code{fontSize} is a special property: it is equivalent to
+entering @code{\override ... #'font-size} for all pertinent
+objects. Since this is a common change, the special
+property (modified with @code{\set}) was created.
+
@node Difficult tweaks
@subsection Difficult tweaks
-UNTRANSLATED NODE: IGNORE ME
+There are a few classes of difficult adjustments.
+
+@itemize @bullet
+
+
+@item
+One type of difficult adjustment is the appearance of spanner objects,
+such as slur and tie. Initially, only one of these objects is created,
+and they can be adjusted with the normal mechanism. However, in some
+cases the spanners cross line breaks. If this happens, these objects
+are cloned. A separate object is created for every system that it is
+in. These are clones of the original object and inherit all
+properties, including @code{\override}s.
+
+
+In other words, an @code{\override} always affects all pieces of a
+broken spanner. To change only one part of a spanner at a line break,
+it is necessary to hook into the formatting process. The
+@code{after-line-breaking} callback contains the Scheme procedure that
+is called after the line breaks have been determined, and layout
+objects have been split over different systems.
+
+In the following example, we define a procedure
+@code{my-callback}. This procedure
+
+@itemize @bullet
+@item
+determines if we have been split across line breaks
+@item
+if yes, retrieves all the split objects
+@item
+checks if we are the last of the split objects
+@item
+if yes, it sets @code{extra-offset}.
+@end itemize
+
+This procedure is installed into @internalsref{Tie}, so the last part
+of the broken tie is translated up.
+
+@lilypond[quote,verbatim,ragged-right]
+#(define (my-callback grob)
+ (let* (
+ ; have we been split?
+ (orig (ly:grob-original grob))
+
+ ; if yes, get the split pieces (our siblings)
+ (siblings (if (ly:grob? orig)
+ (ly:spanner-broken-into orig) '() )))
+
+ (if (and (>= (length siblings) 2)
+ (eq? (car (last-pair siblings)) grob))
+ (ly:grob-set-property! grob 'extra-offset '(-2 . 5)))))
+
+\relative c'' {
+ \override Tie #'after-line-breaking =
+ #my-callback
+ c1 ~ \break c2 ~ c
+}
+@end lilypond
+
+@noindent
+When applying this trick, the new @code{after-line-breaking} callback
+should also call the old one @code{after-line-breaking}, if there is
+one. For example, if using this with @code{Hairpin},
+@code{ly:hairpin::after-line-breaking} should also be called.
+
+
+@item Some objects cannot be changed with @code{\override} for
+technical reasons. Examples of those are @code{NonMusicalPaperColumn}
+and @code{PaperColumn}. They can be changed with the
+@code{\overrideProperty} function, which works similar to @code{\once
+\override}, but uses a different syntax.
+
+@example
+\overrideProperty
+#"Score.NonMusicalPaperColumn" % Grob name
+#'line-break-system-details % Property name
+#'((next-padding . 20)) % Value
+@end example
+Note, however, that @code{\override}, applied to
+@code{NoteMusicalPaperColumn} and @code{PaperColumn}, still works as
+expected within @code{\context} blocks.
--- SKELETON FILE --
-When you actually translate this file, please remove these lines as
-well as all `UNTRANSLATED NODE: IGNORE ME' lines.
+@end itemize
#. @node in ../../../Documentation/user/advanced-notation.itely
#. @subsection in ../../../Documentation/user/advanced-notation.itely
msgid "Overview of text markup list commands"
-msgstr "Überblick über Textbeschriftungslistenbefehle"
+msgstr "Überblick über Textbeschriftungsbefehle für Listen"
#. @node in ../../../Documentation/user/advanced-notation.itely
#. @subsection in ../../../Documentation/user/advanced-notation.itely
# symlinking lily-*...
$(outdir)/user-ln: $(top-build-dir)/Documentation/user/$(outdir)
touch -mr $(top-build-dir)/Documentation/user/$(outdir) $@
- $(PYTHON) $(buildscript-dir)/mass-link.py symbolic $(top-build-dir)/Documentation/user/$(outdir) $(outdir) 'lily-*.pdf' 'lily-*.tex' 'lily-*.texi' 'lily-*.ly' 'lily-*.txt' 'lily-*.png' 'henle-flat-gray.*' 'baer-flat-gray.*' 'lily-flat-bw.*'
+ $(PYTHON) $(buildscript-dir)/mass-link.py symbolic $(top-build-dir)/Documentation/user/$(outdir) $(outdir) 'lily-*.pdf' 'lily-*.tex' 'lily-*.texi' 'lily-*.ly' 'lily-*.txt' 'lily-*.png' 'henle-flat-gray.*' 'baer-flat-gray.*' 'lily-flat-bw.*' 'context-example.*'
mkdir -p $(outdir)/lilypond
cd $(outdir)/lilypond && $(foreach i, $(LINKED_PNGS), ln -sf ../../$(depth)/Documentation/user/$(i) $(i) &&) true