From 79165c00e7aadfefb0748ff55b29a1927cb87acd Mon Sep 17 00:00:00 2001 From: Jean-Charles Malahieude Date: Wed, 29 Dec 2010 22:22:29 +0100 Subject: [PATCH] Doc-fr: NR3.3 Working with input files New translation --- Documentation/fr/notation/input.itely | 499 +++++++++++++++++++++++--- 1 file changed, 443 insertions(+), 56 deletions(-) diff --git a/Documentation/fr/notation/input.itely b/Documentation/fr/notation/input.itely index 52c9484fbc..6ba0d2a713 100644 --- a/Documentation/fr/notation/input.itely +++ b/Documentation/fr/notation/input.itely @@ -1037,9 +1037,6 @@ Fichiers d'initialisation : @section Travail sur des fichiers texte @translationof Working with input files -@untranslated - - @menu * Insertion de fichiers LilyPond:: * Différentes éditions à partir d'une même source:: @@ -1051,15 +1048,132 @@ Fichiers d'initialisation : @subsection Insertion de fichiers LilyPond @translationof Including LilyPond files -@untranslated +@funindex \include +@cindex inclusion de fichiers + +Lorsqu'un projet prend de l'importance en volume, il est judicieux de le +scinder en plusieurs fichiers, auxquels vous fereez référence avec un +simple + +@example +\include "autrefichier.ly" +@end example + +Une ligne @code{\include "autrefichier.ly"} dans un fichier revient à +recopier intégralement le contenu de @file{autrefichier.ly} à l'endroit +même ou est placée l'instruction @code{\include}. Vous pouvez par +exemple écrire un fichier individuel par instrument, puis les regrouper +pour former le fichier @qq{conducteur}. Les différentes variables +définies dans les fichiers séparés seront normalement reprises et +utilisables dans le fichier formant le conducteur. Les sections +balisées dans les fichiers individuels peuvent être réutilisées en +différents endroit de la partition , comme expliqué à la rubrique +@ref{Différentes éditions à partir d'une même source}. + +Lorsque le fichier auquel il est fait référence se trouve dans le même +répertoire, donner seulement son nom en argument à la commande +@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 +supérieur au répertoire de travail, la ligne devra être + +@example +\include "../stuff.ly" +@end example + +@noindent +ou bien, si les fichiers correspondant aux parties d'orchestre se +trouvent dans le sous-répertoire @file{parties} relativement au +répertoire courant, vous devrez mentionner + +@example +\include "parties/VI.ly" +\include "parties/VII.ly" +... etc. +@end example + +Les fichiers à inclure peuvent eux-même contenir des instructions +@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 +@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. + +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 à +ces fichiers ne mentionnerra alors que leur nom. Par exemple, si vous +voulez compiler avec cette méthode le fichier @file{principal.ly} qui +inclut des fichiers situés dans le sous-répertoire @file{parties}, +placez vous dans le répertoire contenant @file{principal.ly}, puis tapez + +@example +lilypond --include=parties principal.ly +@end example + +tout en ayant bien dans @file{principal.ly} + +@example +\include "VI.ly" +\include "VII.ly" +... etc +@end example + +Lorsqu'un fichier est voué à être inclus dans nombre de partitions, vous +pouvez le placer dans le répertoire de LilyPond @file{../ly}. +Attention@tie{}: ce répertoire varie selon votre installation, comme +indiqué au chapitre @rlearning{Autres sources de documentation}. Ce +fichier sera inclus dès lors que vous fournirez uniquement son nom en +argument à la fonction @code{\include}. C'est par exemple le cas du +fichier de définition particulier @file{gregorian.ly}. + +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 +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 +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 +nouvelle version de LilyPond. + +Vous trouverez quelques exemples simples d'utilisation de la commande +@code{\include} au chapitre @rlearning{Conducteurs et parties}. + + +@seealso +Manuel d'initiation : +@rlearning{Autres sources de documentation}, +@rlearning{Conducteurs et parties}. + + +@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. @node Différentes éditions à partir d'une même source @subsection Différentes éditions à partir d'une même source @translationof Different editions from one source -@untranslated - +Différents mécanismes permettent de générer plusieurs 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. @menu * Utilisation de variables:: @@ -1070,108 +1184,381 @@ Fichiers d'initialisation : @unnumberedsubsubsec Utilisation de variables @translationof Using variables -@untranslated +@cindex variables, utilisation de + +Un fragment musical identifié par une variable est réutilisable à divers +endroits de la partition, comme nous l'avons vu à la rubrique +@rlearning{Organisation du code source avec des variables}. Par +exemple, une partition pour chœur @notation{a cappella} comporte souvent +une réduction pour piano reprenant toutes les voix@tie{}; il s'agit de +la même musique, et vous ne devrez donc la saisir qu'une seule fois. +D'autre part, la musique issue de deux variables peut se combiner sur +une seule portée, comme nous l'avons vu à la rubrique +@ref{Regroupement automatique de parties}. Prenons l'exemple +suivant@tie{}: + +@lilypond[verbatim,quote] +sopranoMusic = \relative c'' { a4 b c b8( a) } +altoMusic = \relative g' { e4 e e f } +tenorMusic = \relative c' { c4 b e d8( c) } +bassMusic = \relative c' { a4 gis a d, } +allLyrics = \lyricmode {King of glo -- ry } +<< + \new Staff = "Soprano" \sopranoMusic + \new Lyrics \allLyrics + \new Staff = "Alto" \altoMusic + \new Lyrics \allLyrics + \new Staff = "Tenor" { + \clef "treble_8" + \tenorMusic + } + \new Lyrics \allLyrics + \new Staff = "Bass" { + \clef "bass" + \bassMusic + } + \new Lyrics \allLyrics + \new PianoStaff << + \new Staff = "RH" { + \set Staff.printPartCombineTexts = ##f + \partcombine + \sopranoMusic + \altoMusic + } + \new Staff = "LH" { + \set Staff.printPartCombineTexts = ##f + \clef "bass" + \partcombine + \tenorMusic + \bassMusic + } + >> +>> +@end lilypond + +Générer une partition chorale ou la réduction pour piano ne requiert que +de modifier la structure des éléments, sans aucunement toucher à la +musique. + +Dans le cas d'une partition relativement longue, vous pouvez isoler la +définition des différentes variables dans des fichiers séparés que vous +rappellerez ensuite, comme indiqué à la rubrique +@ref{Insertion de fichiers LilyPond}. @node Utilisation de balises @unnumberedsubsubsec Utilisation de balises @translationof Using tags + @funindex \tag +@funindex \keepWithTag +@funindex \removeWithTag @cindex tag +@cindex balise + +La commande @code{\tag #'@var{partieA}} affecte à une expression +musicale le nom @var{partieA}. Les expressions ainsi balisées pourront +être filtrées par la suite, à l'aide de +@code{\keepWithTag@tie{}#'@var{nom}} ou +@code{\removeWithTag@tie{}#'@var{nom}}. Ces filtres fonctionnent de la +manière suivante@tie{}: + +@multitable @columnfractions .5 .5 +@headitem Filtre + @tab Résultat -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. +@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. + +@item +Musique balisée précédée de @code{\removeWithTag #'@var{nom}} + @tab Musique non balisée et fragments appelés autrement que @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 +@code{\removeWithTag} + @tab Musique balisée et non balisée seront incluses. + +@end multitable + +Les arguments des commandes @code{\tag}, @code{\keepWithTag} et +@code{\removeWithTag} doivent être un symbole (tel que +@code{#'conducteur} ou @code{#'partie}), suivi d'une expression +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. +comportera les ornements développés. -@example -c1 -<< - \tag #'partie << - R1 \\ - @{ - \set fontSize = #-1 - c4_"cue" f2 g4 @} - >> - \tag #'conducteur R1 ->> -c1 -@end example +@lilypond[verbatim,quote] +music = \relative g' { + g8. c32 d + \tag #'trills { d8.\trill } + \tag #'expand { \repeat unfold 3 { e32 d } } + c32 d + } + +\score { + \keepWithTag #'trills \music +} +\score { + \keepWithTag #'expand \music +} +@end lilypond @noindent -Ce principe peut s'appliquer aux articulations, textes, etc. Il -suffit de positionner +Il est parfois plus aisé d'exclure des fragments@tie{}: + +@lilypond[verbatim,quote] +music = \relative g' { + g8. c32 d + \tag #'trills { d8.\trill } + \tag #'expand {\repeat unfold 3 { e32 d } } + c32 d + } + +\score { + \removeWithTag #'expand + \music +} +\score { + \removeWithTag #'trills + \music +} +@end lilypond + +Ce principe de filtrage peut s'appliquer aux articulations, textes, etc. +Il suffit de positionner @example --\tag #@var{votre-balise} +-\tag #@var{ma-balise} @end example @noindent -avant l'articulation, comme ici : +avant l'articulation ou le texte, comme ici : @example -c1-\tag #'part ^4 +c1-\tag #'doigt ^4 +c1-\tag #'gaffe ^"Attention !" @end example @noindent -Ceci définira une note avec une indication de doigté conditionnelle. +Ceci définira une note avec une indication conditionnelle de doigté ou +un texte. -@cindex keepWithTag -@cindex removeWithTag -C'est grâce aux commandes @code{\keepWithTag} et @code{\removeWithTag} -que vous filtrerez les expressions balisées. Par exemple : +Vous pouvez baliser différemment la même expression musicale en +saisissant plusieurs @code{\tag}@tie{}: -@example +@lilypond[quote,verbatim] +music = \relative c'' { + \tag #'a \tag #'both { a4 a a a } + \tag #'b \tag #'both { b4 b b b } +} << - @var{de la musique} - \keepWithTag #'score @var{de la musique} - \keepWithTag #'part @var{de la musique} +\keepWithTag #'a \music +\keepWithTag #'b \music +\keepWithTag #'both \music >> -@end example +@end lilypond -@noindent -donnerait : +L'application concomitante de plusieurs filtres @code{\removeWithTag} à +la même expression musicale permet d'exclure plusieurs balisages@tie{}: -@lilypondfile[ragged-right,quote]{tag-filter.ly} +@lilypond[verbatim,quote] +music = \relative c'' { +\tag #'A { a4 a a a } +\tag #'B { b4 b b b } +\tag #'C { c4 c c c } +\tag #'D { d4 d d d } +} +{ +\removeWithTag #'B +\removeWithTag #'C +\music +} +@end lilypond -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}. +L'application de plus d'un filtre @code{\keepWithTag} à la même +expression musicale aboutit à l'exclusion de @b{tous} les balisages. +En effet, si le premier filtre exclut tous les autres balisages, +l'application du second exclura les effets du premier. -@example -\tag #'original-part \tag #'transposed-part @dots{} -@end example -@ignore -FIXME @seealso -Exemples : @lsr{parts,tag@/-filter@/.ly} -@end ignore +Manuel d'initiation : +@rlearning{Organisation du code source avec des variables}. + +Manuel de notation : +@ref{Regroupement automatique de parties}, +@ref{Insertion de fichiers LilyPond}. + +@ignore +@c This warning is more general than this placement implies. +@c Rests are not merged whether or not they come from tagged sections. +@c Should be deleted? -td @knownissues Lorsqu'elles comportent des silences, ceux-ci ne seront pas fusionnés si vous imprimez une partition avec les deux sections balisées. +@end ignore + @node Codage du texte @subsection Codage du texte @translationof Text encoding -@untranslated +@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 +nom unique et associé à un point de code, ce qui permet dans l'absolu de +couvrir tous les langages. Unicode permet de coder tous les caractères +utilisés par toutes les langues écrites du monde. LilyPond utilise le +codage UTF-8 (UTF pour @emph{Unicode Transformation Format}) qui permet +de représenter les caractères latins sur un octet et les autres sur une +longueur allant jusqu'à quatre octets. + +L'apparence réelle des caractères est déterminée par les glyphes ou +graphèmes tels que définis dans les différentes polices disponibles. +Une police, ou une fonte, définit la mise en correspondance d'un +sous-ensemble de points de code unicode en glyphes. LilyPond recourt à +la bibliothèque Pango pour assurer le rendu des textes multilingues. + +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 +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, +que ce soit vim, Emacs, jEdit et GEdit. Tous les systèmes Windows +postérieurs à NT utilisent Unicode en natif@tie{}; même Notepad est +capable d'éditer et sauvegarder un fichie en UTF-8 -- sans parler de +l'excellente alternative qu'est BabelPad. + +La compilation d'un fichier LilyPond comportant des caractères non ASCII +qui n'aurait pas été enregistré dans l'encodage UTF-8 vous renverra +l'erreur + +@example +FT_Get_Glyph_Name () erreur : invalid argument +@end example + +Voici un exemple utilisant du texte en cyrilique, en hébreux et en +portugais. + +@lilypond[quote] +%c No verbatim here as the code does not display correctly in PDF +% Cyrillic +bulgarian = \lyricmode { + Жълтата дюля беше щастлива, че пухът, който цъфна, замръзна като гьон. +} + +% Hebrew +hebrew = \lyricmode { + זה כיף סתם לשמוע איך תנצח קרפד עץ טוב בגן. +} + +% Portuguese +portuguese = \lyricmode { + à vo -- cê uma can -- ção legal +} + +\relative c' { + c2 d e f g f e +} +\addlyrics { \bulgarian } +\addlyrics { \hebrew } +\addlyrics { \portuguese } +@end lilypond + +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 +@code{\char@tie{}#dddd} au sein d'un bloc @code{\markup} -- @code{hhhh} +et @code{dddd} correspondant respectivement à la valeur hexadécimale ou +décimale. Même s'il est inutile de saisir les zéros superflus, il est +de bon ton de stipuler les quatre caractères formant la représentation +hexadécimale. Évitez cependant l'encodage UTF-8 d'un point de code +après un @code{\char}@tie{}; les encodages UTF-8 comprennent un bit +supplémentaire indiquant le nombre d'octets. Une table de +correspondance entre les codes Unicode et le nom des caractères ainsi +que leur code hexadécimal est disponible sur le site du consortium +Unicode, @uref{http://www.unicode.org/}. + +Par exemple, @code{\char ##x03BE} et @code{\char #958} correspondent +tous deux au caractère unicode U+03BE, dénommé @qq{Greek Small Letter +Xi}. + +Quel que soit le point de code spécifié de cette manière, il ne vous +sera alors pas nécessaire d'enregistrer votre fichier en UTF-8. Vous +devrez toutefois disposer d'une fonte contenant ce caractère qui soit +accessible à LilyPond. + +L'exemple suivant illustre la manière d'insérer un caractère sous sa +forme hexadécimale, à la fois dans un repère, dans une articulation, +dans des paroles et dans du texte indépendant. + +@lilypond[quote,verbatim] +\score { + \relative c'' { + c1 \mark \markup { \char ##x03EE } + c1_\markup { \tiny { \char ##x03B1 " to " \char ##x03C9 } } + } + \addlyrics { O \markup { \concat { Ph \char ##x0153 be! } } } +} +\markup { "Copyright 2008--2010" \char ##x00A9 } +@end lilypond + +@cindex copyright + +Le signe @emph{copyright} dans le champ de titrage consacré s'inscrit de +la manière suivante@tie{}: + +@example +\header @{ + copyright = \markup @{ \char ##x00A9 "2008" @} +@} +@end example @node Affichage de notation au format LilyPond @subsection Affichage de notation au format LilyPond @translationof Displaying LilyPond notation -@untranslated +@funindex \displayLilyMusic + +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, + +@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@{STUFF@}}, pensez à rediriger la sortie vers un fichier. + +@example +lilypond fichier.ly >display.txt +@end example @node Contrôle des sorties -- 2.39.2