@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@ignore
- Translation of GIT committish: f77212d801fa4603bf596a19cecf5a068f1d9d85
+ Translation of GIT committish: 3875d98e9a2a3f0953b46e2726fdc4c7fb43c14f
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
Guide, node Updating translation committishes..
@end ignore
-@c \version "2.13.36"
+@c \version "2.15.25"
@c Translators: Jean-Charles Malahieude, Valentin Villenave
* Travail sur des fichiers texte::
* Contrôle des sorties::
* Sortie MIDI::
+* Extraction d'informations musicales::
@end menu
@node Agencement du code
LilyPond traite des fichiers textuels. Ces fichiers portent par
convention une extension @code{.ly}.
-
@menu
* Structure d'une partition::
* Plusieurs partitions dans un même ouvrage::
* Structure de fichier::
@end menu
+
@node Structure d'une partition
@subsection Structure d'une partition
@translationof Structure of a score
d'un fichier source permet la production d'au moins un fichier dont le
nom sera, par défaut, déduit du fichier source@tie{}: le traitement de
@file{fandangopourelephants.ly} produira donc
-@file{fandangopourelephants.pdf}. Pour de plus amples informations à
-propos du bloc @code{\book}, lisez
+@file{fandangopourelephants.pdf}.
+
+Pour de plus amples informations à propos du bloc @code{\book}, lisez
@ref{Plusieurs partitions dans un même ouvrage},
@ref{Plusieurs éditions pour une même source} et
@ref{Structure de fichier}.
@seealso
Manuel d'initiation :
-@rlearning{Travail sur les fichiers d'entrée},
+@rlearning{La partition est une (unique) expression musicale composée},
@rlearning{Les expressions musicales en clair},
-@rlearning{La partition est une (unique) expression musicale composée}.
+@rlearning{Travail sur les fichiers d'entrée}.
@node Plusieurs partitions dans un même ouvrage
@funindex \bookpart
Plusieurs pièces seront regroupées dans un même @qq{chapitre} à l'aide
-d'un bloc @code{\bookpart}. Les différentes parties sont séparées par
-un saut de page et peuvent comporter un titre à l'instar de l'ouvrage
-dès lors que vous y insérez un bloc @code{\header}.
+d'un bloc @code{\bookpart}. Ces différents @qq{chapitres} sont séparés
+par un saut de page et peuvent comporter un titre à l'instar de
+l'ouvrage dès lors que vous y insérez un bloc @code{\header}.
@example
\bookpart @{
@subsection Nom des fichiers de sortie
@translationof Output file names
+@funindex \bookOutputSuffix
+@funindex \bookOutputName
+
LilyPond vous permet de prendre le contrôle dans la dénomination des
fichiers que vous voulez générer, quel que soit le moteur de rendu
utilisé.
d'un bloc @code{\book} est aussi nécessaire lorsque vous travaillez sur
un document lilypond-book qui reprendrait plusieurs @code{\score}s ou
@code{\markup}s dans un même extrait. Vous pouvez modifier ce
-comportement à l'aide de la variable @code{toplevel-score-handler}
+comportement à l'aide de la variable @code{toplevel-book-handler}
placée en tête.
@ignore
@c FIXME - I cannot read "toplevel-book-handler" in scm/lily.scm -jcm
@{ c'4 d' e'2 @}
@}
@}
+ \layout @{ @}
@}
- \layout @{ @}
- \header @{ @}
+ \paper @{ @}
+ \header @{ @}
@}
@end example
@{ c'4 d' e2 @}
@end example
-Vous pouvez placer, n'importe où dans votre fichier, les instruction
+Vous pouvez placer, n'importe où dans votre fichier, les instructions
suivantes@tie{}:
@itemize
@item
Après chaque commande ou variable, autrement dit tout élément qui
-commence par un @code{\}@tie{};
+commence par un@tie{}@code{\}@tie{};
@item
Après tout élément qui sera interprété comme une expression Scheme,
En mode parole -- @code{lyricmode} -- pour séparer les termes des
commandes @code{\override} et @code{\set}. Précisons à ce sujet qu'en
plus d'ajouter une espace avant et après l'intégralité de la commande,
-vous devrez encadrer d'espace le point et le signe égal qu'elle peut
+vous devrez encadrer d'espaces le point et le signe égal qu'elle peut
contenir, comme dans
@w{@code{\override Score . LyricText #'font-size = #5}}.
son compositeur@tie{}; certains ouvrages divulguent beaucoup plus
d'information.
-
@menu
-* Création de titres::
+* Création de titres et entête ou pied de page::
* Titrages personnalisés::
+* Notes de bas de page::
* Référencement des numéros de page::
* Table des matières::
@end menu
-@node Création de titres
-@subsection Création de titres
-@translationof Creating titles
-Des éléments de titrage peuvent s'attacher à un bloc @code{\score}, une
-partie -- créée par un bloc @code{\bookpart} -- ou bien un ouvrage
-entier créé par un bloc @code{\book}.
+@node Création de titres et entête ou pied de page
+@subsection Création de titres et entête ou pied de page
+@translationof Creating titles headers and footers
-Les différents éléments du titrage sont contenus dans un bloc
-@code{\header}. Un ouvrage complet peut comporter@tie{}:
+@menu
+* Contenu des blocs de titrage::
+* Mise en forme par défaut des titrages::
+* Mise en forme par défaut des entête et pied de page::
+@end menu
-@table @code
-@funindex dedication
-@item dedication
-Le dédicataire de l'œuvre, centré en haut de la première page.
+@node Contenu des blocs de titrage
+@unnumberedsubsubsec Contenu des blocs de titrage
+@translationof Title blocks explained
-@funindex title
-@item title
-Le titre de l'œuvre, centré en dessous de la dédicace.
+@c TODO: figure out how \bookpart titles work
-@funindex subtitle
-@item subtitle
-Le sous-titre, centré sous le titre.
+Il existe en fait deux types de blocs de titrage@tie{}: un bloc pour
+contenir le titre principal qui doit apparaître avant le tout premier
+@code{\score} d'un ouvrage, et un autre attaché à chacun des blocs
+@code{\score} qui le composent. Dans les deux cas, les champs qui
+composent un bloc de titrage se saisissent dans un bloc @code{\header}.
-@funindex subsubtitle
-@item subsubtitle
-Un niveau supplémentaire de sous-titre, centré en dessous du sous-titre.
+Lorsque l'ouvrage ne comporte qu'un seul morceau, le bloc @code{\header}
+peut se placer en dehors ou au sein même du bloc @code{\score}.
-@funindex poet
-@item poet
-Le poète, parolier ou librétiste, aligné à gauche en dessous du
-deuxième sous-titre.
+Dans le cas où le bloc @code{\header} est défini à l'intérieur du bloc
+@code{\score}, seuls les champs @code{piece} et @code{opus} seront
+imprimés.
-@funindex instrument
-@item instrument
-L'instrument, centré en dessous du deuxième sous-titre. Il sera rappelé
-sur les pages suivant la première, centré sur la ligne d'entête.
+@lilypond[papersize=a5,quote,verbatim,noragged-right]
+\score {
+ { c'4 }
+ \header {
+ title = "title" % not printed
+ piece = "piece"
+ opus = "opus"
+ }
+}
+@end lilypond
-@funindex composer
-@item composer
-Le compositeur, aligné à droite en dessous du deuxième sous-titre.
+@funindex print-all-headers
+@noindent
+Vous pouvez modifer ce comportement et imprimer tous les champs d'un
+bloc @code{\header} défini dans un bloc @code{\score} en ajoutant
-@funindex meter
-@item meter
-Le libellé du tempo, aligné à gauche sous le poète.
+@example
+\paper@{
+ print-all-headers = ##t
+@}
+@end example
-@funindex arranger
-@item arranger
-L'arrangeur, aligné à droite sous le compositeur.
+@warning{N'oubliez pas que lorsqu'il est placé à l'intérieur d'un bloc
+@code{@bs{}score}, le bloc @code{@bs{}header} doit impérativement se
+trouver @strong{à la suite} de l'expression musicale.}
-@funindex piece
-@item piece
-La pièce ou le mouvement, aligné à gauche sous le tempo.
+@lilypond[papersize=a5,quote,verbatim,noragged-right]
+\header {
+ title = "SUITE I."
+ composer = "J. S. Bach."
+}
-@funindex opus
-@item opus
-L'opus ou le numéro au catalogue, aligné à droite sous l'arrangeur.
+\score {
+ \new Staff \relative g, {
+ \clef bass
+ \key g \major
+ \repeat unfold 2 { g16( d' b') a b d, b' d, } |
+ \repeat unfold 2 { g,16( e' c') b c e, c' e, } |
+ }
+ \header {
+ piece = "Prélude."
+ }
+}
-@cindex page breaks, forcing
-@funindex breakbefore
-@item breakbefore
-Ce commutateur (activé par ##t@tie{}; ##f pour le désactiver) permet de
-forcer le saut de page avant d'afficher les titres.
+\score {
+ \new Staff \relative b {
+ \clef bass
+ \key g \major
+ \partial 16 b16 |
+ <g, d' b'~>4 b'16 a( g fis) g( d e fis) g( a b c) |
+ d16( b g fis) g( e d c) b(c d e) fis( g a b) |
+ }
+ \header {
+ piece = "Allemande."
+ }
+}
+@end lilypond
-@funindex copyright
-@item copyright
-La notice de droits d'auteur, centrée en pied de la première page. Pour
-imprimer le symbole @emph{copyright}, consultez la rubrique
-@ref{Codage du texte}.
+Tous les champs appartenant au titrage principal d'un ouvrage peuvent se
+reporter dans chaque bloc @code{\score} ou être supprimés
+manuellement@tie{}:
-@funindex tagline
-@item tagline
-Mention spéciale imprimée en pied de la dernière page.
+@c KEEP LY
+@lilypond[papersize=a5,quote,verbatim,noragged-right]
+\book {
+ \paper {
+ print-all-headers = ##t
+ }
+ \header {
+ title = "DAS WOHLTEMPERIRTE CLAVIER"
+ subtitle = "TEIL I"
+ % Pas de mention spéciale pour cet ouvrage
+ tagline = ##f
+ }
+ \markup { \vspace #1 }
+ \score {
+ \new PianoStaff <<
+ \new Staff { s1 }
+ \new Staff { \clef "bass" s1 }
+ >>
+ \header {
+ title = "PRAELUDIUM I"
+ opus = "BWV 846"
+ % Pas de sous-titre pour ce morceau
+ subtitle = ##f
+ }
+ }
+ \score {
+ \new PianoStaff <<
+ \new Staff { s1 }
+ \new Staff { \clef "bass" s1 }
+ >>
+ \header {
+ title = "FUGA I"
+ subsubtitle = "A 4 VOCI"
+ opus = "BWV 846"
+ % Pas de sous-titre pour ce morceau
+ subtitle = ##f
+ }
+ }
+}
+@end lilypond
-@end table
+@seealso
+Manuel de notation :
+@ref{Structure de fichier},
+@ref{Mise en forme personnalisée des blocs de titrage}.
-Voici ce que cela peut donner lorsque tout ces champs sont utilisés.
-Les différentes commandes mentionnées à la rubrique
-@ref{Mise en forme du texte} sont opérationnelles pour tous ces
-éléments.
+
+@node Mise en forme par défaut des titrages
+@unnumberedsubsubsec Mise en forme par défaut des titrages
+@translationof Default layout of book and score title blocks
+
+La mise en forme des blocs de titrage est contrôlée par deux variables
+attachées au bloc @code{\paper}@tie{}: @code{bookTitleMarkup} pour le
+bloc @code{\header} principal, et @code{scoreTitleMarkup} pour les blocs
+@code{\header} relevant des blocs @code{\score}.
@c KEEP LY
-@lilypond[quote,verbatim,line-width=11.0\cm]
-\paper {
- line-width = 9.0\cm
- paper-height = 10.0\cm
+@lilypond[papersize=a6,quote,verbatim,noragged-right]
+\header {
+ % Les champs suivants sont centrés
+ dedication = "Dédicace"
+ title = "Titre"
+ subtitle = "Sous-titre"
+ subsubtitle = "Sous-sous-titre"
+ instrument = "Instrument"
+
+ % Les champs suivants sont alignés par la gauche
+ poet = "Librettiste"
+ meter = "Tempo"
+
+ % Les champs suivants sont alignés par la droite
+ composer = "Compositeur"
+ arranger = "Arrangeur"
}
-\book {
+\score {
+ { s1 }
\header {
- dedication = "dédié à moi-même"
- title = \markup \center-column { "Première ligne de titre" "Deuxième
- ligne de titre, plus longue" }
- subtitle = "un sous-titre,"
- subsubtitle = #(string-append "sous-sous-titre LilyPond version "
-(lilypond-version))
- poet = "Auteur"
- composer = \markup \center-column { "compositeur" \small "(1847-1973)" }
- texttranslator = "Traduit par"
- meter = \markup { \teeny "m" \tiny "e" \normalsize "t" \large "e" \huge
-"r" }
- arranger = \markup { \fontsize #8.5 "a" \fontsize #2.5 "r" \fontsize
-#-2.5 "r" \fontsize #-5.3 "a" \fontsize #7.5 "ngeur" }
- instrument = \markup \bold \italic "instrument"
+ % Les champs suivants sont en opposition sur la même ligne
piece = "Pièce"
+ opus = "Opus"
}
+}
+@end lilypond
+
+@c Is the bit about \null markups true? -mp
+
+Les champs d'un bloc @code{\header} qui n'auront pas été alimentés
+seront remplacés par un @emph{markup} @code{\null} de façon à ne pas
+gaspiller d'espace.
+
+Par défaut, @code{scoreTitleMarkup} place les champs @code{piece} et
+@code{opus} de part et d'autre sur une même ligne.
+@cindex breakbefore
+
+La variable @code{breakbefore} activée dans un bloc @code{\header} situé
+dans un bloc @code{\score} force le saut de page avant le morceau
+contenu dans ce @code{\score}. Vous pourrez ainsi séparer le titre
+principal de la musique.
+
+@lilypond[papersize=a8landscape,verbatim,noragged-right]
+\book {
+ \header {
+ title = "This is my Title"
+ subtitle = "This is my Subtitle"
+ copyright = "This is the bottom of the first page"
+ }
\score {
- { c'1 }
+ \repeat unfold 4 { e'' e'' e'' e'' }
\header {
- piece = "pièce1"
- opus = "opus1"
+ piece = "This is the Music"
+ breakbefore = ##t
+ }
+ }
+}
+@end lilypond
+
+@seealso
+Manuel d'initiation :
+@rlearning{Organisation des fichiers LilyPond}.
+
+Manuel de notation :
+@ref{Structure de fichier}.
+
+Fichiers d'initialisation :
+@file{ly/titling-init.ly}.
+
+
+@node Mise en forme par défaut des entête et pied de page
+@unnumberedsubsubsec Mise en forme par défaut des entête et pied de page
+@translationof Default layout of headers and footers
+
+Les entête et pied -- @emph{headers} et @emph{footers} -- sont des
+lignes de textes qui apparaîssent en haut et en bas de chaque page,
+indépendamment du texte de l'ouvrage. Ils sont contrôlés par les
+variables suivantes, attachées au bloc @code{\paper}@tie{}:
+
+@itemize
+@item @code{oddHeaderMarkup} -- entête de page impaire
+@item @code{evenHeaderMarkup} -- entête de page paire
+@item @code{oddFooterMarkup} -- pied de page impaire
+@item @code{evenFooterMarkup} -- pied de page paire
+@end itemize
+
+Ces variables @emph{markup} n'accèdent qu'au contenu des champs du bloc
+@code{\header} principal, celui qui s'appliquera à tous les blocs
+@code{\score} du document. Ces variables sont définies dans le fichier
+@file{ly/titling-init.ly}, et sont par défaut@tie{}:
+
+@itemize
+
+@item
+les numéros sont placés en haut à gauche (si pair) ou à droite (si
+impair) de chaque page à compter de la deuxième@tie{};
+
+@item
+le contenu du champ @code{instrument} est centré en haut de chaque page
+à compter de la deuxième@tie{};
+
+@item
+le texte du @code{copyright} est centré au bas de la première
+page@tie{};
+
+@item
+le @code{tagline} -- mention spéciale -- se place au bas de la dernière
+page, ou bien sous le @code{copyright} s'il n'y a qu'une seule page.
+
+@end itemize
+
+@lilypond[papersize=a8landscape]
+\book {
+ \score {
+ \relative c' {
+ c4 d e f
}
}
- \markup {
- et puis...
+}
+@end lilypond
+
+La mention spéciale se modifie en alimentant le champ @code{tagline} au
+niveau du bloc @code{\header} principal.
+
+@lilypond[papersize=a8landscape,verbatim]
+\book {
+ \header {
+ tagline = "... music notation for Everyone"
}
\score {
- { c'1 }
- \header {
- piece = "pièce2"
- opus = "opus2"
+ \relative c' {
+ c4 d e f
}
}
}
@end lilypond
-Comme nous venons de la voir, vous pouvez multiplier les blocs
-@code{\header}. Lorsqu'un même champ apparaît dans plusieurs blocs,
-LilyPond utilisera le dernier mentionné@tie{}:
+Pour supprimer le @code{tagline}, il suffit de lui assigner la valeur
+@code{##f}.
+
+
+@node Titrages personnalisés
+@subsection Titrages personnalisés
+@translationof Custom headers footers and titles
+
+@c TODO: somewhere put a link to header spacing info
+@c (you'll have to explain it more in NR 4).
+
+@menu
+* Mise en forme personnalisée des champs de titrage::
+* Mise en forme personnalisée des blocs de titrage::
+* Mise en forme personnalisée des entête et pied de page::
+@end menu
+
+
+@node Mise en forme personnalisée des champs de titrage
+@unnumberedsubsubsec Mise en forme personnalisée des champs de titrage
+@translationof Custom text formatting for title blocks
+
+Toutes les commandes de mise en forme d'un @code{\markup} permettent de
+personnaliser le texte des entête, pied de page et éléments de titre
+contenus dans un bloc @code{\header}.
+
+@lilypond[quote,verbatim,noragged-right]
+\score {
+ { s1 }
+ \header {
+ piece = \markup { \fontsize #4 \bold "PRAELUDIUM I" }
+ opus = \markup { \italic "(Excerpt)" }
+ }
+}
+@end lilypond
+
+@seealso
+Manuel de notation :
+@ref{Mise en forme du texte}.
+
+
+@node Mise en forme personnalisée des blocs de titrage
+@unnumberedsubsubsec Mise en forme personnalisée des blocs de titrage
+@translationof Custom layout for title blocks
+
+L'utilisation de commandes @code{\markup} au sein d'un bloc
+@code{\header} permet de modifier aisément l'apparence du texte,
+mais n'influence en rien le positionnement précis des éléments de
+titrage. L'accès au positionnement des champs de titrage est géré par
+les deux variables suivantes, attachées au bloc @code{\paper}@tie{}:
+
+@itemize
+@item @code{bookTitleMarkup}
+@item @code{scoreTitleMarkup}
+@end itemize
+
+Ces variables sont abordées à la rubrique
+@ref{Mise en forme par défaut des titrages}.
+
+Voici les réglages par défaut de @code{scoreTitleMarkup}, tels que
+définis dans le fichier @file{ly/titling-init.ly}@tie{}:
@example
-\header @{
- composer = "Compositeur"
-@}
-\header @{
- piece = "Morceau"
-@}
-\score @{
- \new Staff @{ c'4 @}
- \header @{
- piece = "Nouveau morceau" % remplace le précédent
+scoreTitleMarkup = \markup @{ \column @{
+ \on-the-fly #print-all-headers @{ \bookTitleMarkup \hspace #1 @}
+ \fill-line @{
+ \fromproperty #'header:piece
+ \fromproperty #'header:opus
@}
@}
+@}
@end example
-Lorsque le bloc @code{\header} est défini à l'intérieur du bloc
-@code{\score}, seul les champs @code{piece} et @code{opus} seront
-imprimés. Attention cependant à toujours placer le bloc @code{\header}
-après l'expression musicale.
+Ceci aura donc pour effet de positionner les champs @code{piece} et
+@code{opus} sur la même ligne, en opposition@tie{}:
-@lilypond[quote,verbatim,line-width=11.0\cm]
+@lilypond[quote,verbatim,noragged-right]
\score {
- { c'4 }
+ { s1 }
\header {
- title = "title" % not printed
- piece = "piece"
- opus = "opus"
+ piece = "PRAELUDIUM I"
+ opus = "BWV 846"
}
}
@end lilypond
-@funindex print-all-headers
-@noindent
-Vous pouvez modifer ce comportement et imprimer tous les champs d'un
-bloc @code{\header} défini dans un bloc @code{\score} en ajoutant
+Voici comment positionner le champ @code{piece}, dont nous modifions
+la taille et la graisse, au centre de cette ligne@tie{}:
-@example
-\paper@{
- print-all-headers = ##t
-@}
-@end example
+@lilypond[papersize=a5,quote,verbatim,noragged-right]
+\book {
+ \paper {
+ indent = 0\mm
+ scoreTitleMarkup = \markup {
+ \fill-line {
+ \null
+ \fontsize #4 \bold \fromproperty #'header:piece
+ \fromproperty #'header:opus
+ }
+ }
+ }
+ \header { tagline = ##f }
+ \score {
+ { s1 }
+ \header {
+ piece = "PRAELUDIUM I"
+ opus = "BWV 846"
+ }
+ }
+}
+@end lilypond
-@cindex copyright
-@cindex tagline
+Les champs normalement réservés au bloc de titrage principal seront
+reportés au niveau au niveau inférieur dès lors que vous aurez activé
+l'instruction @code{print-all-headers} au sein du bloc @code{\paper}.
+Le principal inconvénient de cette fonction réside dans le fait que les
+champs réservés au bloc @code{\header} principal devront être supprimés
+dans chacun des blocs @code{\score} de votre fichier source -- voir
+@ref{Contenu des blocs de titrage}.
+
+Afin d'éviter ce désagrément, ajoutez le champ que vous désirez voir
+apparaître à la définition de @code{scoreTitleMarkup}. Nous allons,
+dans l'exemple suivant, ajouter au @code{scoreTitleMarkup} le champ
+@code{composer}, normalement associé au @code{bookTitleMarkup}@tie{};
+chaque @code{\score} pourra mentionner un compositeur différent.
+
+@lilypond[papersize=a5,quote,verbatim,noragged-right]
+\book {
+ \paper {
+ indent = 0\mm
+ scoreTitleMarkup = \markup {
+ \fill-line {
+ \null
+ \fontsize #4 \bold \fromproperty #'header:piece
+ \fromproperty #'header:composer
+ }
+ }
+ }
+ \header { tagline = ##f }
+ \score {
+ { s1 }
+ \header {
+ piece = "MENUET"
+ composer = "Christian Petzold"
+ }
+ }
+ \score {
+ { s1 }
+ \header {
+ piece = "RONDEAU"
+ composer = "François Couperin"
+ }
+ }
+}
+@end lilypond
-Les pieds de page sont vides, hormis pour la première page qui portera
-la champ @code{copyright} du @code{\header}, et pour la dernière page où
-apparaîtra le @code{tagline}. Celui-ci est par défaut @qq{Music
-engraving by LilyPond (@var{version})}.@footnote{Afin que l'on sache qui
-est capable d'une telle qualité, nous vous saurons gré de ne pas
-suprimer cette mention spéciale, autant que faire se peut.}
+Rien ne vous empêche de créer votre propre champ personnalisé, puis d'y
+faire référence dans la définition du @emph{markup}.
-Un champ de titrage peut être désactivé@tie{}:
+@lilypond[papersize=a5,quote,verbatim,noragged-right]
+\book {
+ \paper {
+ indent = 0\mm
+ scoreTitleMarkup = \markup {
+ \fill-line {
+ \null
+ \override #`(direction . ,UP) {
+ \dir-column {
+ \center-align \fontsize #-1 \bold
+ \fromproperty #'header:mycustomtext %% User-defined field
+ \center-align \fontsize #4 \bold
+ \fromproperty #'header:piece
+ }
+ }
+ \fromproperty #'header:opus
+ }
+ }
+ }
+ \header { tagline = ##f }
+ \score {
+ { s1 }
+ \header {
+ piece = "FUGA I"
+ mycustomtext = "A 4 VOCI" %% User-defined field
+ opus = "BWV 846"
+ }
+ }
+}
+@end lilypond
-@example
-\header @{
- tagline = ##f
- composer = ##f
-@}
-@end example
+@seealso
+Manuel de notation :
+@ref{Contenu des blocs de titrage}.
-@node Titrages personnalisés
-@subsection Titrages personnalisés
-@translationof Custom headers footers and titles
+@node Mise en forme personnalisée des entête et pied de page
+@unnumberedsubsubsec Mise en forme personnalisée des entête et pied de page
+@translationof Custom layout for headers and footers
-Vous pouvez personnaliser, dans le bloc @code{\paper}, la définition des
-variables listées ci-dessous. Leur mise en forme par défaut est
-inscrite dans le fichier d'initialisation @file{../ly/titling-init.ly}.
+@c can make-header and make-footer be removed from
+@c paper-defaults-init.ly? -mp
-@table @code
-@funindex bookTitleMarkup
-@item bookTitleMarkup
-Ce titre est apposé au début du document final. Il comprend normalement
-le compositeur et le titre de l'œuvre.
+L'utilisation de commandes @code{\markup} au sein d'un bloc
+@code{\header} permet de modifier aisément l'apparence du texte,
+mais n'influence en rien le positionnement précis des entête et pied
+de page. L'accès au positionnement des champs concernés est géré par
+les quatre variables suivantes, attachées au bloc @code{\paper}@tie{}:
-@funindex scoreTitleMarkup
-@item scoreTitleMarkup
-Ce titre est attaché à un bloc @code{\score}. Il comprend normalement
-le nom du mouvement -- le champ @code{piece}.
+@itemize
+@item @code{oddHeaderMarkup}
+@item @code{evenHeaderMarkup}
+@item @code{oddFooterMarkup}
+@item @code{evenFooterMarkup}
+@end itemize
-@funindex oddHeaderMarkup
-@item oddHeaderMarkup
-L'entête des pages impaires.
+L'exemple suivant illustre la manière de centrer son numéro au bas de
+chaque page. Il nous faut tout d'abord annuler la définition de
+@code{oddHeaderMarkup} et @code{evenHeaderMarkup} à l'aide d'un
+@emph{markup} @code{\null}. Nous redéfinissons ensuite
+@code{oddFooterMarkup} pour qu'il contienne le numéro de page, centré.
+Enfin, nous appliquons le même paramétrage au @code{\oddFooterMarkup}.
-@funindex evenHeaderMarkup
-@item evenHeaderMarkup
-L'entête des pages paires. Lorsqu'il n'est pas défini, LilyPond utilise
-celui des pages impaires.
+@lilypond[papersize=a8,quote,verbatim,noragged-right]
+\book {
+ \paper {
+ print-page-number = ##t
+ print-first-page-number = ##t
+ oddHeaderMarkup = \markup \null
+ evenHeaderMarkup = \markup \null
+ oddFooterMarkup = \markup {
+ \fill-line {
+ \on-the-fly #print-page-number-check-first
+ \fromproperty #'page:page-number-string
+ }
+ }
+ evenFooterMarkup = \oddFooterMarkup
+ }
+ \score {
+ \new Staff { s1 \break s1 \break s1 }
+ }
+}
+@end lilypond
-Les entêtes comportent par défaut le nom de l'instrument, au centre, et
-le numéro de page, sur le bord extérieur de la page.
+@seealso
+Manuel de notation :
+@ref{Contenu des blocs de titrage},
+@ref{Mise en forme par défaut des titrages}.
-@funindex oddFooterMarkup
-@item oddFooterMarkup
-Le pied de page impaire.
-@funindex evenFooterMarkup
-@item evenFooterMarkup
-Le pied de page paire. Lorsqu'il n'est pas défini, LilyPond utilise
-celui des pages impaires.
+@node Notes de bas de page
+@subsection Notes de bas de page
+@translationof Creating footnotes
-Par défaut, le pied de la première page comporte la notice de droits
-d'auteur, et celui de la dernière page la @qq{mention spéciale} -- le
-@code{tagline}.
-@end table
+LilyPond dispose de deux méthodes pour créer des notes de bas de page,
+l'une automatisée, et l'autre manuelle.
+@menu
+* Considérations générales en matière de note de bas de page::
+* Notes de bas de page automatiques::
+* Notes de bas de page manuelles::
+@end menu
-@cindex \paper
-@cindex header
-@cindex entête
-@cindex footer
-@cindex pied de page
-@cindex mise en page
-@cindex titres
+@node Considérations générales en matière de note de bas de page
+@unnumberedsubsubsec Considérations générales en matière de note de bas de page
+@translationof Footnotes overview
-La définition suivante permt d'obtenir, sur la même ligne, le titre
-aligné à gauche et le compositeur aligné à droite.
+Il est parfois judicieux, notamment lorsqu'une annotation ou un
+commentaire gènerait la lecture de la partition, de les reporter en bas
+de page.
-@example
-\paper @{
- bookTitleMarkup = \markup @{
- \fill-line @{
- \fromproperty #'header:title
- \fromproperty #'header:composer
- @}
- @}
-@}
-@end example
+Les notes de bas de page automatiques font appel à un compteur
+numérique incrémenté automatiquement@tie{}; les notes de bas de page
+manuelles vous laissent le libre choix de l'appel (l'indicateur). Tout
+objet graphique, @code{\markup} de haut niveau ou les notes d'un accord
+peuvent faire l'objet d'une annotation.
-Les entêtes et pieds de page sont créés respectivement par les fonctions
-@code{make-header} and @code{make-footer}, que vous pouvez définir au
-sein du bloc @code{\paper}. Leur implémentation est contenue dans les
-fichiers d'initialisation @file{ly/paper-defaults-init.ly} et
-@file{ly/titling-init.ly}.
+L'ordre dans lequel les objets seront dessinés détermine l'ordre des
+appels et comment les annotations seront créées lors de la compilation.
-Voici comment centrer le numéro en pied de chaque page@tie{}:
-@example
-\paper @{
- print-page-number = ##t
- print-first-page-number = ##t
- oddHeaderMarkup = \markup \fill-line @{ " " @}
- evenHeaderMarkup = \markup \fill-line @{ " " @}
- oddFooterMarkup = \markup @{
- \fill-line @{
- \bold \fontsize #3
- \on-the-fly #print-page-number-check-first
- \fromproperty #'page:page-number-string
- @}
- @}
- evenFooterMarkup = \markup @{
- \fill-line @{
- \bold \fontsize #3
- \on-the-fly #print-page-number-check-first
- \fromproperty #'page:page-number-string
- @}
- @}
-@}
-@end example
+@node Notes de bas de page automatiques
+@unnumberedsubsubsec Notes de bas de page automatiques
+@translationof Automatic footnotes
+
+@cindex note de bas de page automatique
+@cindex bas de page, note automatique
+
+@funindex \footnote
+
+La commande @code{\footnote} permet de générer automatiquement des notes
+de bas de page. Elle requiert trois arguments@tie{}: l'@var{Objet de
+Rendu} auquel s'applique le commentaire rapporté en bas de page, la
+position @var{(x@tie{}.@tie{}y)} de l'appel de note, et enfin un
+@code{\markup} contenant l'annotation qui apparaîtra en bas de la page.
+
+La commande @code{\footnote} doit être mentionnée @strong{avant}
+l'objet auquel la note est attachée.
+
+@c KEEP LY
+@lilypond[verbatim,quote,ragged-right,papersize=a8]
+\book {
+ \header { tagline = ##f }
+ \relative c' {
+ \footnote #'(0.5 . -2) #'NoteHead
+ \markup { La première note }
+ a'4 b8
+ \footnote #'(0.5 . 1) #'NoteHead
+ \markup { La troisième note }
+ e c4 d4
+ }
+}
+@end lilypond
+
+Lorsqu'il s'agit de notes inscrites dans un accord, la commande
+@code{\footnote} doit être mentionnée @strong{après} la note à laquelle
+le @code{TextScript} fait référence.
+
+@c KEEP LY
+@lilypond[verbatim,quote,ragged-right,papersize=a8]
+\book {
+ \header { tagline = ##f }
+ \relative c' {
+ <
+ c-\footnote #'(1 . -1.25) "Voici un do"
+ es-\footnote #'(2 . -0.25) \markup { \italic "Un mi bémol" }
+ g-\footnote #'(2 . 3) \markup { \bold "Ceci est un sol" }
+ >1
+ }
+}
+@end lilypond
+
+@warning{Lorsque plusieurs notes de bas de page se rapportent à un même
+empilement vertical, les notes apparaîtront dans l'ordre vertical des
+appels, autrement dit celui positionné le plus haut en premier, et ainsi
+de suite.}
+
+Voici quelques exemples d'objets annotés automatiquement. Vous pouvez
+constater l'agencement des annotations correspondantes avec le copyright
+et le pied de page.
+
+@lilypond[verbatim,quote,ragged-right,papersize=a8]
+\book {
+ \header { copyright = \markup { "Copyright 1970" } }
+ \relative c' {
+ \footnote #'(-3 . 0) #'DynamicText
+ \markup { \bold Forte }
+
+ \footnote #'(0 . 1.5) #'Slur
+ \markup { A slur }
+ a'4\f(
+
+ \footnote #'(0 . -2) #'Beam
+ \markup { Beam }
+ b8)[ e]
+
+ \footnote #'(1 . -1) #'Stem
+ \markup { \teeny { This is a stem } }
+ c4
+
+ \footnote #'(0 . 0.5) #'AccidentalCautionary
+ \markup \italic { A cautionary accidental }
+
+ \footnote #'(0.5 . -0.5) #'TextScript
+ \markup \italic { Slow Down }
+ dis?4_"rit."
+ }
+}
+@end lilypond
+
+Une note de bas de page affectant un @code{\markup} de haut niveau
+s'introduit par la commande @code{\auto-footnote}@tie{}:
+
+@lilypond[verbatim,quote,ragged-right,papersize=a8]
+\book {
+ \header { tagline = ##f }
+ \markup { \auto-footnote "A simple tune" \italic "By me" }
+ \relative c' {
+ a'4 b8 e c4 d
+ }
+}
+@end lilypond
+
+
+@node Notes de bas de page manuelles
+@unnumberedsubsubsec Notes de bas de page manuelles
+@translationof Manual footnotes
+
+@cindex note de bas de page manuelle
+@cindex bas de page, note manuelle
+
+@funindex \footnote
+@funindex \footnoteGrob
+
+LilyPond permet aussi de créer des notes de bas de page manuelles@tie{}:
+la commande @code{\footnote} prend alors quatre arguments@tie{}:
+l'@var{Objet de Rendu} devant être annoté, la position
+@var{(x@tie{}.@tie{}y)} de l'appel de note, et deux @code{\markup} -- le
+premier contient l'appel qui s'attache à la note ou à l'objet référencé,
+le second contient l'annotation qui est reportée en bas de page.
+
+Tout comme dans le cas d'une note de bas de page automatique, la commande
+@code{\footnote} doit être mentionnée @strong{après} l'objet auquel
+l'annotation fait référence, comme s'il s'agissait d'une articulation.
+
+@lilypond[verbatim,quote,ragged-right,papersize=a8]
+\book {
+ \header { tagline = ##f }
+ \relative c' {
+ a'4-\footnote
+ "1" #'(0.5 . -2) #'NoteHead \markup { \italic "1. The first note" }
+ b8
+ e-\footnote
+ \markup { \bold "2" } #'(0.5 . 1) #'NoteHead "2. The second note"
+ c4
+ d\p-\footnote "3" #'(0.5 . -1) #'DynamicText "3. Piano"
+ }
+}
+@end lilypond
+
+S'agissant d'annoter l'une des notes d'un accord, la commande
+@code{\footnote} doit être mentionnée @strong{après} la note à laquelle
+l'annotation fait référence, comme s'il s'agissait d'une articulation.
+
+@lilypond[verbatim,quote,ragged-right,papersize=a8]
+\book {
+ \header { tagline = ##f }
+ \relative c' {
+ <
+ c-\footnote "1" #'(1 . -1.25) "1. C"
+ es-\footnote
+ \markup { \bold "b" } #'(2 . -0.25) "b. E-flat"
+ g-\footnote "3" #'(2 . 3) \markup { \italic "iii. G" }
+ >1
+ }
+}
+@end lilypond
+
+@warning{Lorsque plusieurs notes de bas de page se rapportent à un même
+empilement vertical, les notes apparaîtront dans l'ordre vertical des
+appels, autrement dit celui positionné le plus haut en premier, et ainsi
+de suite.}
+
+Voici quelques exemples d'objets annotés manuellement. Vous pouvez
+constater l'agencement des annotations correspondantes avec le copyright
+et le pied de page.
+
+@lilypond[verbatim,quote,ragged-right,papersize=a8]
+\book {
+ \header { tagline = ##f }
+ \relative c' {
+ \footnote
+ \markup { \teeny 1 } #'(-3 . 0) #'DynamicText
+ \markup { 1. \bold Forte }
+
+ \footnote
+ \markup { \teeny b } #'(0 . 1.5) #'Slur
+ \markup { b. A slur }
+ a'4\f(
+
+ \footnote
+ \markup { \teeny 3 } #'(0 . -2) #'Beam
+ \markup { 3. Beam }
+ b8)[ e]
+
+ \footnote
+ \markup { 4 } #'(1 . -1) #'Stem
+ \markup { \bold 4. { This is a stem } }
+ c4
+
+ \footnote
+ \markup \concat \teeny { "sharp (v)" }
+ #'(0 . 0.5) #'AccidentalCautionary
+ \markup \italic { v. A cautionary accidental }
+
+ \footnote
+ \markup \concat \teeny { "a" } #'(0.5 . -0.5) #'TextScript
+ \markup \italic { a. Slow Down }
+ dis?4_"rit."
+
+ \breathe
+ \footnote
+ \markup { \teeny \musicglyph #"rests.4" }
+ #'(1.5 . -0.25) #'BreathingSign
+ \markup { \null }
+ }
+}
+@end lilypond
+
+L'annotation manuelle d'un @code{\markup} de haut niveau répond à la
+syntaxe suivante@tie{}:
+
+@lilypond[verbatim,quote,ragged-right,papersize=a8]
+\book {
+ \header { tagline = ##f }
+ \markup { "A simple tune" \footnote "*" \italic "* By me" }
+ \relative c' {
+ a'4 b8 e c4 d4
+ }
+}
+@end lilypond
+
+@seealso
+Manuel d'initiation :
+@rlearning{Objets et interfaces}.
+
+Manuel de notation :
+@ref{Commentaires textuels},
+@ref{Indications textuelles},
+@ref{Info-bulle},
+@ref{Mise en forme de la page},
+@ref{Titres et entêtes}.
+
+Référence des propriétés internes :
+@rinternals{FootnoteEvent},
+@rinternals{FootnoteItem},
+@rinternals{FootnoteSpanner},
+@rinternals{Footnote_engraver}.
+
+@knownissues
+Un silence multi-mesures ne peut se voir affecter une note de bas de
+page.
+
+Les notes de bas de page ne peuvent que s'empiler l'une au-dessus de
+l'autre@tie{}; elles ne seront jamais présentées à la queue leu leu.
+Les notes de bas de page peuvent générer des chevauchements quand elles
+sont trop nombreuses sur une même page.
+
+Dès lors que vous utilisez une commande de note de bas de page manuelle,
+le bloc @code{\paper} doit contenir la mention
+@w{@code{footnote-auto-number@tie{}=@tie{}##f}}.
@node Référencement des numéros de page
numéro de page grâce à la commande de @emph{markup} @code{\page-ref}.
@c KEEP LY
-@lilypond[verbatim,line-width=11.0\cm]
+@lilypond[verbatim]
\header { tagline = ##f }
\book {
\label #'firstScore
@subsection Table des matières
@translationof Table of contents
-La commande @code{\markuplines \table-of-contents} vous permettra de
+La commande @code{\markuplist \table-of-contents} vous permettra de
générer une table des matières. Les éléments qui la composeront sont
créés par la commande @code{\tocItem}, insérée indépendamment ou au sein
d'une expression musicale.
@verbatim
-\markuplines \table-of-contents
+\markuplist \table-of-contents
\pageBreak
\tocItem \markup "Premier mouvement"
(add-toc-item! 'tocActMarkup text))
\book {
- \markuplines \table-of-contents
+ \markuplist \table-of-contents
\tocAct \markup { Atto Primo }
\tocItem \markup { Coro. Viva il nostro Alcide }
\tocItem \markup { Cesare. Presti omai l'Egizzia terra }
}
\book {
- \markuplines \table-of-contents
+ \markuplist \table-of-contents
\tocItem \markup { Allegro }
\tocItem \markup { Largo }
\markup \null
@menu
* Insertion de fichiers LilyPond::
* Différentes éditions à partir d'une même source::
-* Codage du texte::
-* Affichage de notation au format LilyPond::
+* Caractères spéciaux::
@end menu
@node Insertion de fichiers LilyPond
@code{\include} suffit. S'il se trouve ailleurs, vous devrez indiquer
le chemin d'accès, absolu ou relatif, en respectant toutefois la syntaxe
UNIX -- autrement dit, le séparateur de répertoire est une oblique
-normale @code{/} et non l'oblique inverse @code{\} de DOS/Windows. Par
-exemple, si le fichier @file{truc.ly} se trouve dans le répertoire
+normale @code{/} et non l'oblique inverse @code{\} de DOS ou Windows.
+Par exemple, si le fichier @file{truc.ly} se trouve dans le répertoire
supérieur au répertoire de travail, la ligne devra être
@example
-\include "../stuff.ly"
+\include "../truc.ly"
@end example
@noindent
@code{\include}. Ces instructions @code{\include} de second niveau ne
pourront, par défaut, être interprétées qu'une fois intégrées dans le
fichier principal@tie{}; leur argument doit donc comporter le chemin
-relativement au fichier principal et non par rapport au fichier dan
-lesquel cette inclusion est mentionnée. Vous pouvez toutefois influer
-sur ce comportement à l'aide de l'option @code{-drelative-includes} en
-ligne de commande ou en ajoutant une clause
+relativement au fichier principal et non par rapport au fichier dans
+lequel cette inclusion est mentionnée. Vous pouvez toutefois influer
+sur ce comportement à l'aide de l'option @w{@code{-drelative-includes}}
+en ligne de commande ou en ajoutant une clause
@code{@w{#(ly:set-option 'relative-includes #t)}} en tête du fichier
principal. Une fois @code{relative-include} activé, le chemin à suivre
pour chacune des commandes @code{\include} sera pris relativement au
-fichier qui la contient.
+fichier qui la contient. Cette option est vouée à être activée par
+défaut dans une future version de LilyPond.
Vous pouvez inclure des fichiers dont vous spécifierez le chemin d'accès
sur la ligne de commande au moment de lancer la compilation. L'appel à
Au moment où vous lancez LilyPond, un certain nombre de fichiers se
retrouvent inclus par défaut@tie{}; il suffit d'activer le mode verbeux
-en faisant @code{lilypond --verbose} pour s'en rendre compte. Vous
+en faisant @w{@code{lilypond --verbose}} pour s'en rendre compte. Vous
verrez ainsi défiler, en plus de nombreuses informations, le nom d'un
-certain nombre de fichier et de chemins d'accès. Les fichiers les plus
+certain nombre de fichiers et de chemins d'accès. Les fichiers les plus
important sont mentionnés au chapitre
@rlearning{Autres sources de documentation}. Si vous venez à les
modifier, rappelez-vous qu'ils seront écrasés à l'installation d'une
@knownissues
-
Lorsque vous incluez un fichier qui porte le même nom que l'un des
fichiers d'initialisation de LilyPond, le fichier de la distribution de
LilyPond aura préséance.
@subsection Différentes éditions à partir d'une même source
@translationof Different editions from one source
-Différents mécanismes permettent de générer plusieurs versions d'une
+Plusieurs méthodes permettent de générer différentes versions d'une
partition à partir d'une même source. Les variables -- ou
idendificateurs -- sont sûrement le moyen le plus simple de combiner de
différente manière des passages relativement longs, alors que les
balises permettront de sélectionner de courts fragments selon leur
-utilisation. Quelle que soit la méthode utilisée, séparer la notation
-de la structure de la partition vous donnera plus de liberté dans
-l'agencement de l'ouvrage final, puisque vous ne reviendrez pas sur la
-musique qui le compose.
+utilisation.
+
+Quelle que soit la méthode utilisée, séparer la notation de la structure
+de la partition vous donnera plus de liberté dans l'agencement de
+l'ouvrage final, puisque vous ne reviendrez pas sur la musique qui le
+compose.
@menu
* Utilisation de variables::
@funindex \tag
@funindex \keepWithTag
@funindex \removeWithTag
+@funindex \pushToTag
+@funindex \appendToTag
@cindex tag
@cindex balise
@item
Musique balisée précédée de @code{\keepWithTag #'@var{nom}}
- @tab Musique non balisée et musique balisée par @var{nom} seront
- incluses@tie{}; la musique balisée autrement est exclue.
+ @tab Musique non balisée et musique balisée par @var{nom} seront
+ incluses@tie{}; la musique balisée autrement est exclue.
@item
Musique balisée précédée de @code{\removeWithTag #'@var{nom}}
seront inclus@tie{}; la musique balisée par @var{nom} est exclue.
@item
-Musiqeu balisée non précédée de @code{\keepWithTag} ou
+Musique balisée non précédée de @code{\keepWithTag} ou
@code{\removeWithTag}
@tab Musique balisée et non balisée seront incluses.
En effet, si le premier filtre exclut tous les autres balisages,
l'application du second exclura les effets du premier.
+Il peut arriver que vous ayez besoin de raccorder quelque chose en un
+point particulier d'une expression musicale. Les commandes
+@code{\pushToTag} et @code{\appendToTag} permettent d'insérer du
+matériau, qu'il soit antérieur ou postérieur à des @code{éléments}
+d'une construction musicale existante. La musique séquentielle ou
+simultanée comporte assurément des @code{éléments}@tie{}:
+
+@lilypond[verbatim,quote]
+test = { \tag #'here { \tag #'here <<c''>> } }
+
+{
+ \pushToTag #'here c'
+ \pushToTag #'here e'
+ \pushToTag #'here g' \test
+ \appendToTag #'here c'
+ \appendToTag #'here e'
+ \appendToTag #'here g' \test
+}
+@end lilypond
+
+Ces deux instructions sont afféctées d'une balise, le matériau à
+raccorder à chaque instance de la balise, et l'expression balisée.
+Ces instructions prennent soin de recopier tout ce qui doit être
+modifié, de telle sorte que l'expression @code{\test} originale conserve
+tout son sens.
+
@seealso
Manuel d'initiation :
@ref{Insertion de fichiers LilyPond}.
+@node Caractères spéciaux
+@subsection Caractères spéciaux
+@translationof Special characters
+
+@cindex caractères spéciaux
+@cindex non-ASCII, caractères
+
+@menu
+* Codage du texte::
+* Unicode::
+* Équivalents ASCII::
+@end menu
+
+
@node Codage du texte
-@subsection Codage du texte
+@unnumberedsubsubsec Codage du texte
@translationof Text encoding
-@cindex Unicode
@cindex UTF-8
-@cindex non-ASCII characters
LilyPond utilise le jeu de caractères défini par le consortium Unicode
et la norme ISO/CEI@tie{}10646. Chaque caractère est identifié par un
LilyPond n'effectue aucune conversion d'encodage que ce soit. Ceci
implique donc que tout texte, qu'il s'agisse d'un titre, de paroles ou
-même d'instruction musicale, comportant des caractères non ASCII soit
+même d'instruction musicale, comportant des caractères non ASCII, soit
codé en UTF-8. Le plus sûr moyen de saisir du texte de la sorte
consiste à utiliser un éditeur supportant l'unicode et à enregistrer vos
fichier en UTF-8. C'est le cas pour la plupart des éditeurs actuels,
\addlyrics { \portuguese }
@end lilypond
+
+@node Unicode
+@unnumberedsubsubsec Unicode
+@translationof Unicode
+
+@cindex Unicode
+
Lorsque vous avez besoin d'un caractère dont vous connaissez le point de
code mais que votre éditeur ne permet pas de saisir directement, vous
pouvez utitliser les instructions @code{\char@tie{}##xhhhh} ou
}
\addlyrics { O \markup { \concat { Ph \char ##x0153 be! } } }
}
-\markup { "Copyright 2008--2011" \char ##x00A9 }
+\markup { "Copyright 2008--2012" \char ##x00A9 }
@end lilypond
@cindex copyright
@end example
-@node Affichage de notation au format LilyPond
-@subsection Affichage de notation au format LilyPond
-@translationof Displaying LilyPond notation
+@node Équivalents ASCII
+@unnumberedsubsubsec Équivalents ASCII
+@translationof ASCII aliases
-@funindex \displayLilyMusic
+Dès lors que vous aurez inclus la liste de leur équivalent ASCII,
+LilyPond reconnaitra un certain nombre de caractères spéciaux@tie{}:
-La fonction musicale @code{\displayLilyMusic}, disponible uniquement
-pour un traitement en ligne de commande, permet d'afficher en
-notation LilyPond une expression musicale. Par exemple,
+@lilypond[quote,verbatim]
+\paper {
+ #(include-special-characters)
+}
-@example
-@{
- \displayLilyMusic \transpose c a, @{ c4 e g a bes @}
-@}
-@end example
+\markup "&flqq; – &OE;uvre incomplète… &frqq;"
-affichera
+\score {
+ \new Staff { \repeat unfold 9 a'4 }
+ \addlyrics {
+ This is al -- so wor -- kin'~in ly -- rics: –_&OE;…
+ }
+}
-@example
-@{ a,4 cis e fis g @}
-@end example
+\markup \column {
+ "The replacement can be disabled:"
+ "– &OE; …"
+ \override #'(replacement-alist . ()) "– &OE; …"
+}
+@end lilypond
-LilyPond affichera le résultat sous forme de message en console, au
-milieu de toutes les informations de compilation. Afin d'isoler ces
-messages et enregistrer le résultat de la fonction
-@code{\display@{STUFF@}}, pensez à rediriger la sortie vers un fichier.
+L'extension de cette liste est possible aussi bien de manière globale :
-@example
-lilypond fichier.ly >display.txt
-@end example
+@lilypond[quote,verbatim]
+\paper {
+ #(add-text-replacements!
+ '(("100" . "hundred")
+ ("dpi" . "dots per inch")))
+}
+\markup "A 100 dpi."
+@end lilypond
+
+qu'en un point particulier de votre source :
+
+@lilypond[quote,verbatim]
+\markup \replace #'(("100" . "hundred")
+ ("dpi" . "dots per inch")) "A 100 dpi."
+@end lilypond
+
+@seealso
+Manuel de notation :
+@ref{Liste des caractères spéciaux}.
+
+Fichiers d'initialisation :
+@file{ly/text-replacements.ly}.
@node Contrôle des sorties
définissez dans la liste d'autres paires d'emplacements ryhtmiques.
Cette fonctionnalité n'est toutefois effective que lorsque vous lancez
-LilyPond avec l'option @code{-dclip-systems}. Les @qq{coupures} seront
-générées sous la forme de fichiers EPS, convertis en PDF ou PNG selon le
-format que vous aurez stipulé.
+LilyPond avec l'option @w{@code{-dclip-systems}}. Les @qq{coupures}
+seront générées sous la forme de fichiers EPS, convertis en PDF ou PNG
+selon le format que vous aurez stipulé.
Pour de plus amples informations quant au format des résultats,
consultez le chapitre @rprogram{Lancement de lilypond}.
œuvre, pour y ajouter une partie par exemple, auquel cas c'est la
propriété @code{showFirstLength} que vous utiliserez.
-Vous pouvez contrôler très finement les parties à escamoter, grâce u
+Vous pouvez contrôler très finement les parties à escamoter, grâce au
commutateur @code{Score.skipTypesetting}@tie{}: lorsqu'il est activé,
aucune gravure n'est réalisée.
@cindex EPS, format de sortie
En matière de partition imprimable, LilyPond génère par défaut des
-documents au format PstScript (PS) et Portable Document Format (PDF).
+documents au format PostScript (PS) et Portable Document Format (PDF).
Vous pouvez aussi obtenir des documents au format Scalable Vector
Graphics (SVG), Encapsulated PostScript (EPS) ou Portable Network
Graphics (PNG) dès lors que vous aurez lancé LilyPond en ligne de
@subsection Changement des fontes musicales
@translationof Replacing the notation font
-Gonville est ube alternative à la fonte Feta que LilyPond utilise par
+Gonville est une alternative à la fonte Feta que LilyPond utilise par
défaut. Vous pouvez la télécharger à partir de
@example
@uref{http://www.chiark.greenend.org.uk/~sgtatham/gonville/ ,http://www.chiark.greenend.org.uk/~sgtatham/gonville/}
Téléchargez puis décompressez l'archive zip. Recopiez le répertoire
@code{lilyfonts} dans @file{@var{SHARE_DIR}/lilypond/current} -- voir
@rlearning{Autres sources de documentation} à ce sujet. Renommez le
-répertoire @code{fonts} qui s'y trouve en @code{fonts_orig}, puis les
+répertoire @code{fonts} qui s'y trouve en @code{fonts_orig}, puis le
répertoire @code{lilyfonts} en @code{fonts}. Il vous suffira, pour
retrouver la fonte Feta, de renommer @code{fonts_orig} en @code{fonts}.
@knownissues
-Gonville ne permet pas de générer de la notation ancienne. Consultez le
-site de l'auteur pour de plus amples informations ainsi qu'à propos des
-conditions d'utilisation.
+Gonville ne permet pas de générer de la notation ancienne, et certains
+glyphes ajoutés depuis lors aux jeux de caractères en soient absent.
+Consultez le site de l'auteur pour de plus amples informations ainsi
+qu'à propos des conditions d'utilisation.
@node Sortie MIDI
@section Sortie MIDI
@translationof MIDI output
+@cindex son
+@cindex MIDI
+
MIDI (Musical Instrument Digital Interface) constitue un standard en
matière de connexion et de contrôle des instruments électroniques. Un
fichier MIDI contient une série de notes réparties dans différentes
pistes. Il ne s'agit en rien d'un fichier sonore@tie{}; il vous faudra
-un logiciel capable de traduire ces séries de notes en sons.
+un logiciel capable de traduire ces séries de notes en sons réels.
Vous pouvez convertir vos partition en fichier MIDI de manière à
entendre ce que vous avez saisi. Ceci vous permet de contrôler aisément
ce que vous avez saisi@tie{}: octaves et altérations erronées heuteront
votre oreille avertie grâce au MIDI.
-@c TODO Check this
-Dans une sortie MIDI, LilyPond alloue un canal à chaque portée, plus un
-pour les réglages globaux. Par voie de conséquence, un fichier MIDI ne
-peut comporter au maximmum que quinze portées (quatorze en l'absence de
-percussions)@tie{}; les portées supplémentaires seront tout simplement
-silencieuses.
+Le fichier MIDI généré par LilyPond est relativement brut. Vous pouvez
+cependant obtenir un meilleur rendu avec @ref{Le script Articulate}.
+
+Dans une sortie MIDI, LilyPond alloue un canal à chaque portée, tout en
+réservant le canal@tie{}10 aux percussions. Dans la mesure ou un
+périphérique MIDI ne comprend que 16 canaux, un fichier MIDI qui
+comportera plus de quinze portées verra le même canal réutilisé.
@menu
* Création de fichiers MIDI::
* Répétitions et MIDI::
* Gestion des nuances en MIDI::
* MIDI et percussions::
+* Le script Articulate::
@end menu
@snippets
-@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+@lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
{changing-midi-output-to-one-channel-per-voice.ly}
@knownissues
le bloc @code{\midi} est la plupart du temps laissé vide, il peut
contenir des aménagements pour certains contextes, la définition de
contextes particuliers ou du code permettant de déterminer la valeur de
-certianes propriétés. L'exemple suivant détermine le tempo initial du
+certaines propriétés. L'exemple suivant détermine le tempo initial du
fichier MIDI tout en se passant de son indication sur la partition
imprimée.
@cindex MIDI, accords nommés
@cindex Rythme en MIDI
@cindex MIDI, Rythme
+@cindex articulations et MIDI
+@cindex MIDI et articulations
+@cindex trilles et MIDI
+@cindex MIDI et trilles
@c TODO etc
Un fichier MIDI généré par LilyPond comprendra les éléments de notation
les liaisons de prolongation ;
@item
-les indications de nuance
+les indications de nuance ;
@item
les crescendos et decrescendos s'étalant sur plusieurs notes@tie{};
les paroles.
@end itemize
+Si vous utilisez @ref{Le script Articulate}, d'autres éléments seront
+alors inclus@tie{}:
+
+@itemize
+@item articulations (lié, staccato, etc.),
+@item trilles et groupettos,
+@item rallentando et accelerando.
+@end itemize
+
@unnumberedsubsubsec Éléments non pris en compte dans le MIDI
@translationof Unsupported in MIDI
@c TODO index as above
LilyPond ne peut générer d'événement MIDI pour les éléments
-suivant@tie{}:
+suivant, sauf à utiliser @ref{Le script Articulate}@tie{}:
@itemize
@item
@translationof Repeats in MIDI
@cindex reprises développées
+@cindex MIDI et reprises
@funindex \unfoldRepeats
Au prix de quelques réglages, les reprises de toutes sortes peuvent être
\bar "|."
@end lilypond
+Dans une partition comportant plusieurs voix, le développement des
+reprises ne sera effectif en MIDI qu'à la condition que ces reprises
+soient mentionnée correctement dans @strong{toutes} les voix.
+
Lorsque l'on veut utiliser @code{\unfoldRepeats} seulement pour le rendu
MIDI, il faut établir deux blocs @code{\score}@tie{}: un pour le MIDI,
avec des reprises explicites, et l'autre pour la partition, avec des
n'étant pas répertoriée dans le jeu par défaut, elle ne produira aucun
effet en MIDI. Il en sera d'ailleurs de même pour toute indication
créée de toute pièce à l'aide de l'instruction
-@code{make-dynamic-script}. Voici comment procéder pour ajuster le
+@w{@code{make-dynamic-script}}. Voici comment procéder pour ajuster le
volume MIDI de ce @notation{rinforzando} que le compositeur a indiqué.
La fonction Scheme définit une fraction de 0,9 en cas de @notation{rfz},
et demande d'utiliser la fonction par défaut dans les autre cas.
Le standard @emph{general MIDI} ne dispose pas du @emph{rim shot}@tie{};
LilyPond lui subtitue un @emph{sidestick}.
+
+@node Le script Articulate
+@subsection Le script Articulate
+@translationof The Articulate script
+
+Vous obtiendrez un rendu MIDI plus @qq{réaliste} grâce au script
+@code{articulate}. Celui-ci va tout faire pour d'une part prendre en
+compte les articulations (liaisons, staccato, etc.) -- en ajoutant un
+blanc aux notes raccourcies -- et, d'autre part, développer les trilles
+ou groupettos ainsi que tenir compte des éventuels rallentando et
+accelerando.
+
+L'utilisation du script @code{articulate} se fait en deux temps. Vous
+devez dans un premier temps inclure son fichier d'initialisation en
+ajoutant en tête de votre fichier la ligne
+
+@example
+\include "articulate.ly"
+@end example
+
+puis, dans le bloc @code{\score}, indiquer que toutes les répétitions
+seront développées et appliquer la commande à votre musique@tie{}:
+
+@example
+\unfoldRepeats \articulate <<
+ tout le reste du bloc contenant la partition...
+>>
+@end example
+
+Une fois votre fichier modifié de la sorte, vous constaterez que la
+version imprimable aura été modifiée en profondeur. Le bloc
+@code{\midi} produira par contre un fichier MIDI de bien meilleure
+qualité.
+
+Bien que cela ne gène en rien le fonctionnement du script
+@code{articulate}, lui adjoindre la commande @code{\unfoldRepeats} comme
+illustré ci-dessus permettra le rendu d'un certain nombre
+d'articulations tels les trilles.
+
+@knownissues
+
+Dans la mesure où la script @code{articulate} tend à raccourcir les
+accords, certaines musiques, notamment pour l'orgue, paraîtront de moins
+bonne qualité.
+
+
+@node Extraction d'informations musicales
+@section Extraction d'informations musicales
+@translationof Extracting musical information
+
+En plus de générer du graphisme et du MIDI, LilyPond peut présenter
+l'information musicale sous forme textuelle.
+
+@menu
+* Affichage de notation au format LilyPond::
+* Affichage de la musique sous forme d'expression scheme::
+* Enregistrement d'événements musicaux dans un fichier::
+@end menu
+
+
+@node Affichage de notation au format LilyPond
+@subsection Affichage de notation au format LilyPond
+@translationof Displaying LilyPond notation
+
+@funindex \displayLilyMusic
+
+La fonction musicale @code{\displayLilyMusic} permet d'afficher en
+notation LilyPond une expression musicale. Le réultat défilera dans le
+terminal après avoir lancé LilyPond en ligne de commande. Par exemple,
+
+@example
+@{
+ \displayLilyMusic \transpose c a, @{ c4 e g a bes @}
+@}
+@end example
+
+affichera
+
+@example
+@{ a,4 cis e fis g @}
+@end example
+
+LilyPond affichera le résultat sous forme de message en console, au
+milieu de toutes les informations de compilation. Afin d'isoler ces
+messages et enregistrer le résultat de la fonction
+@code{\display@{MATÉRIAU@}}, pensez à rediriger la sortie vers un
+fichier.
+
+@example
+lilypond fichier.ly >affichage.txt
+@end example
+
+@funindex \void
+
+Vous noterez que LilyPond ne se contente pas de simplement afficher
+l'expression musicale, mais procède aussi à son interprétation -- du
+fait que @code{\displayLilyMusic} renvoie l'expression tout en
+l'affichant. S'il est bien pratique d'insérer un
+@code{\displayLilyMusic} dans une expression musicale pour en obtenir
+des informations, l'interprétation de cette expression peut toutefois
+être évitée en ajoutant un @code{\void} avant l'instruction@tie{}:
+
+@example
+@{
+ \void \displayLilyMusic \transpose c a, @{ c4 e g a bes @}
+@}
+@end example
+
+
+@node Affichage de la musique sous forme d'expression scheme
+@subsection Affichage de la musique sous forme d'expression scheme
+@translationof Displaying scheme music expressions
+
+Voir @rextend{Displaying music expressions}.
+
+
+@node Enregistrement d'événements musicaux dans un fichier
+@subsection Enregistrement d'événements musicaux dans un fichier
+@translationof Saving music events to a file
+
+LilyPond vous permet de sauvegarder dans un fichier séparé, sur la base
+de la portée, les événements musicaux. Vous devrez pour ce faire
+inclure dans votre fichier maître un fichier d'initialisation
+spécifique@tie{}:
+
+@example
+\include "event-listener.ly"
+@end example
+
+Pour chaque portée que comporte votre partition, vous obtiendrez un
+fichier @file{NOMFICHIER-PORTÉENOMMÉE.notes} ou
+@file{NOMFICHIER-unnamed-staff.notes}. Notez bien que si plusieurs
+portées ne sont pas explicitement nomées, tous leurs événements seront
+regroupés et mélangés dans le même fichier. Le résultat ressemblera à
+ceci@tie{}:
+
+@example
+0.000 note 57 4 p-c 2 12
+0.000 dynamic f
+0.250 note 62 4 p-c 7 12
+0.500 note 66 8 p-c 9 12
+0.625 note 69 8 p-c 14 12
+0.750 rest 4
+0.750 breathe
+@end example
+
+Il s'agit d'un tableau dont les colonnes sont délimitées par une
+tabulation. Chaque ligne comporte deux champs fixes suivis d'un certain
+nombre de paramètres optionnels.
+
+@example
+@var{temps} @var{type} @var{...paramètres...}
+@end example
+
+Ces informations peuvent faire l'objet d'un retraîtement par d'autres
+programmes, comme des scripts python, aux fins de recherche en analyse
+musicologique ou des expériences à partir du rendu de LilyPond.
+
+
+@knownissues
+
+Tous les événements ne sont pas pris en charge par
+@file{event-listener.ly}. Il s'agit en premier lieu d'une
+démonstration, un @qq{proof of concept} du potentiel de LilyPond. Si
+certains des éléments que vous cherchez à obtenir n'apparaîssent pas,
+recopiez le fichier @file{event-listener.ly} dans votre répoertoire et
+modifiez-le de telle sorte qu'il travaille selon vos attentes.