Sophie

Sophie

distrib > Mandriva > 2009.0 > i586 > by-pkgid > 3a7b4dfc766af1222d90c7f03a0844e6 > files > 6206

lilypond-doc-2.11.57-1mdv2009.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- header_tag -->
<html lang="en">
<head>
<title>Modification des propriétés d'un contexte - GNU LilyPond - manuel d'initiation</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="GNU LilyPond - manuel d'initiation">
<meta name="generator" content="makeinfo 4.11">
<link title="Top" rel="start" href="index.fr.html#Top">
<link rel="up" href="Contexts-and-engravers.fr.html#Contexts-and-engravers" title="Contextes et graveurs">
<link rel="prev" href="Engravers-explained.fr.html#Engravers-explained" title="Tout savoir sur les graveurs">
<link rel="next" href="Adding-and-removing-engravers.fr.html#Adding-and-removing-engravers" title="Ajout et suppression de graveurs">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
Copyright (C) 1999--2008 par les auteurs

_The translation of the following copyright notice is provided
for courtesy to non-English speakers, but only the notice in English
legally counts._

_La traduction de la notice de droits d'auteur ci-dessous vise à
faciliter sa compréhension par le lecteur non anglophone, mais seule la
notice en anglais a valeur légale._

     Vous avez le droit de copier, distribuer et/ou modifier ce document
     selon les termes de la Licence GNU de documentation libre, version
     1.1 ou tout autre version ultérieure publiée par la Free Software
     Foundation, ``sans aucune section invariante''.  Une copie de la
     licence est fournie à la section ``Licence GNU de documentation
     libre''.
     Permission is granted to copy, distribute and/or modify this
     document under the terms of the GNU Free Documentation License,
     Version 1.1 or any later version published by the Free Software
     Foundation; with no Invariant Sections.  A copy of the license is
     included in the section entitled ``GNU Free Documentation
     License''.
   -->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc    { font-variant:small-caps }
  span.roman { font-family:serif; font-weight:normal; } 
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
hr { border:0; height:1; color: #000000; background-color: #000000; }
/* hr {
  border:  none;
  height: 1px;
  color: #666666;
  background-color: #666666;
}
body {
  border-left: 1px solid #666666;
  border-right: 1px solid #666666;
  color: #332d28;
  margin-right: auto;
  margin-left: auto;
  width: 60em;
  list-style-type: square;
  font-family: Arial,Helvetica,sans-serif;
  padding-right: 1em;
  padding-left: 1em;
}
a {
  border-bottom: 1px dashed #344242;
  text-decoration: none;
  color: #344242;
}
a:link {
  text-decoration: none;
}
a:visited {
  border-bottom: 1px dashed #666666;
  color: #666666;
}
a:active {
  border-bottom: 1px solid #00cccc;
  color: #00cccc;
}
a:hover {
  border-bottom: 1px solid #1d7b85;
  color: #1d7b85;
}
blockquote {
  border: 1px solid #cccccc;
  padding: 3px;
  width: 40em;
}
.node {
  border-left: 1px solid #666666;
  margin: -0.5em 0px 1em;
  padding: 2px 1px 0px;
  font-style: italic;
}
.node a {
  border:  none;
  text-decoration: underline;
  font-style: normal;
  font-weight: bold;
}
.verbatim {
  font-family: "Courier New",Courier,monospace;
}
.unnumberedsubsubsec {
  font-size: large;
  color: #1d7b85;
}
.subsubheading {
  font-size: large;
  color: #3b220d;
}
.contents {
  border: 1px dashed #339999;
  margin: 3px 2em;
  list-style-type: square;
  padding-right: 1em;
  width: 40em;
  background-color: #fcfff9;
}
.contents a {
  border-bottom: 1px dashed #423d34;
  text-decoration: none;
  color: #423d34;
}
.contents a:visited {
  border-bottom: 1px dashed #666666;
  color: #666666;
}
.contents a:active {
  border-bottom: 1px solid #f0d86d;
  color: #f0d86d;
}
.contents a:hover {
  border-bottom: 1px solid #3b220d;
  color: #3b220d;
}
.menu {
  border-left: 1px dashed #339999;
  margin: 3px 2em 1em;
  list-style-type: square;
  padding-left: 1.4em;
  width: 40em;
}
.unnumbered {
}
h2 {
  font-size: x-large;
  color: #1d7b85;
}
*/
--></style>
</head>
<BODY BGCOLOR=WHITE TEXT=BLACK>

<div class="node">
<p>
<a name="Modifying-context-properties"></a>
Suivant&nbsp;:&nbsp;<a rel="next" accesskey="n" href="Adding-and-removing-engravers.fr.html#Adding-and-removing-engravers">Ajout et suppression de graveurs</a>,
Précédent&nbsp;:&nbsp;<a rel="previous" accesskey="p" href="Engravers-explained.fr.html#Engravers-explained">Tout savoir sur les graveurs</a>,
Haut&nbsp;:&nbsp;<a rel="up" accesskey="u" href="Contexts-and-engravers.fr.html#Contexts-and-engravers">Contextes et graveurs</a>
<hr>
</div>

<h4 class="subsection">3.3.4 Modification des propriétés d'un contexte</h4>

<p><a name="index-contexte_002c-propri_00c3_00a9t_00c3_00a9s-327"></a><a name="index-propri_00c3_00a9t_00c3_00a9s-d_0027un-contexte_002c-modification-328"></a><a name="index-modification-des-propri_00c3_00a9t_00c3_00a9s-d_0027un-contexte-329"></a><a name="index-g_t_005cset-330"></a><a name="index-g_t_005cset-331"></a>
<a name="index-g_t_005cunset-332"></a><a name="index-g_t_005cunset-333"></a>

   <p>Les contextes gèrent les différentes valeurs des nombreuses
<em>propriétés</em> qui leur sont attachées.  Beaucoup d'entre elles
sont susceptibles d'être modifiées afin d'influer sur l'interprétation
de l'input et ainsi changer l'apparence du résultat.  On les modifie
grace à la commande <code>\set</code>, qui s'utilise ainsi&nbsp;:

<pre class="example">\set <em>ContexteNommé</em>.<em>propriétéNommée</em> = #<em>valeur</em>
</pre>
   <p>Où <em>ContexteNommé</em> est habituellement <code>Score</code>,
<code>Staff</code> ou <code>Voice</code>.  S'il n'est pas mentionné, il sera
considéré comme étant <code>Voice</code>.

   <p>Les noms des propriétés de contexte sont composés de mots accolés sans
trait d'union ni caractère souligné, et dont seul le premier n'aura pas
d'initiale en majuscule.  Voici quelques exemples de celles les plus
communément utilisées.

<!-- attempt to force this onto a new page -->
   <p><table summary=""><tr align="left"><th valign="top" width="25%">propriétéNommée
  </th><th valign="top" width="15%">Type
  </th><th valign="top" width="45%">Fonction
  </th><th valign="top" width="15%">Exemple de valeur
<br></th></tr><tr align="left"><td valign="top" width="25%">extraNatural
  </td><td valign="top" width="15%">Booléen
  </td><td valign="top" width="45%">Si vrai, ajoute un bécarre avant une altération accidentelle
  </td><td valign="top" width="15%"><code>#t</code>, <code>#f</code>
<br></td></tr><tr align="left"><td valign="top" width="25%">currentBarNumber
  </td><td valign="top" width="15%">Entier
  </td><td valign="top" width="45%">Détermine le numéro de la mesure en cours
  </td><td valign="top" width="15%"><code>50</code>
<br></td></tr><tr align="left"><td valign="top" width="25%">doubleSlurs
  </td><td valign="top" width="15%">Booléen
  </td><td valign="top" width="45%">Si vrai, imprime les liaisons au dessous et au dessus des notes
  </td><td valign="top" width="15%"><code>#t</code>, <code>#f</code>
<br></td></tr><tr align="left"><td valign="top" width="25%">instrumentName
  </td><td valign="top" width="15%">Texte
  </td><td valign="top" width="45%">Détermine le nom à afficher en début de portée
  </td><td valign="top" width="15%"><code>"Cello I"</code>
<br></td></tr><tr align="left"><td valign="top" width="25%">fontSize
  </td><td valign="top" width="15%">Réel
  </td><td valign="top" width="45%">Augmente ou diminue la taille de la fonte
  </td><td valign="top" width="15%"><code>2.4</code>
<br></td></tr><tr align="left"><td valign="top" width="25%">stanza
  </td><td valign="top" width="15%">Texte
  </td><td valign="top" width="45%">Détermine le texte à imprimer avant le début d'un couplet
  </td><td valign="top" width="15%"><code>"2"</code>
   <br></td></tr></table>

<p class="noindent">où un boléen correspond soit à vrai (<code>#t</code> pour <em>True</em> en
anglais) ou faux (<code>#f</code> pour <em>False</em> en anglais), un entier est
un nombre entier positif, un réel est en nombre décimal positif ou
négatif, et texte correspond à une suite de caractères encadrée par des
apostrophes doubles.  Attention à la présence des dièses (<code>#</code>) dans
deux cas particuliers&nbsp;: il sont partie intégrante des valeurs boléennes
et précèdent les <code>t</code> ou <code>f</code>, mais doivent aussi précéder
<em>valeur</em> dans le libellé de la commande <code>\set</code>. Il faudra
donc, dans le cas d'une valeur boléenne, ne pas oublier de saisir un
double dièse &ndash; par exemple <code>##t</code>.

   <p>Avant de déterminer l'une de ces propriétés, nous devons savoir dans
quel contexte elles interviennent.  Si cela est bien souvent évident, il
peut arriver que cela tourne au cauchemar.  Lorsque vous ne spécifiez
pas le bon contexte, aucun message d'erreur ne s'affiche et l'effet
attendu n'est pas au rendez-vous.  Par exemple, le <code>instrumentName</code>
est de manière incontestable membre du contexte <code>Staff</code>, puisque
c'est bien la portée que l'on va nommer. 
Dans l'exemple suivant, la première portée affiche effectivement un nom,
alors que ce n'est pas le cas pour la deuxième dans la mesure où le
contexte n'a pas été spécifié.

   <blockquote>
<pre class="verbatim">     
     &lt;&lt;
       \new Staff \relative c'' {
         \set Staff.instrumentName = #"Soprano"
         c4 c
      }
       \new Staff \relative c' {
       \set instrumentName = #"Alto"  % Wrong!
       d4 d
      }
     >>
</pre>
     <p>
 <a href="../73/lily-26476fe0.ly"> <img align="middle" border="0" src="../73/lily-26476fe0.png" alt="[image of music]"> </a>
</p>

   </blockquote>

   <p>Dans la mesure où le nom de contexte par défaut est <code>Voice</code>, la
deuxième commande <code>\set</code> a défini &laquo;<font size="-4">&nbsp;</font>Alto<font size="-4">&nbsp;</font>&raquo; comme propriété
<code>instrumentName</code> du contexte de voix.  Puisque LilyPond n'ira pas
chercher une telle propriété dans la contexte <code>Voice</code>, celle-ci ne
sera pas interpétée.  Il ne s'agit pas d'une erreur, aucun message
d'erreur ne sera ni émis ni enregistré.

   <p>De la même manière, une faute d'orthographe dans le nom de la propriété
ne génèrera aucun message d'erreur et l'action escomptée ne se produira
pas.  Vous pourriez déterminer par la commande <code>\set</code> n'importe
quelle &lsquo;propriété&rsquo;, même fictive, à partir de n'importe quel nom et
dans n'importe lequel des contextes disponibles.  Mais tant que ce nom
est inconnu de LilyPond, rien ne se passera.  Certains éditeurs de texte
disposent d'une prise en charge spécifique aux fichiers source LilyPond,
à l'instar de LilyPondTool couplé à JEdit et qui documente les noms des
pripriétés dans une infobulle lorsque vous les survolez à la souris, ou
les souligne différemment s'ils sont inconnus, comme ConTEXT.  Dans le
cas où votre éditeur ne dispose pas de ces fonctionnalités, nous vous
recommandons de vérifier le nom des propriétés que vous manipulez dans
le Manuel de références internes &ndash; voir
<a name="index-Tunable-context-properties-334"></a><a href="../lilypond-internals/Tunable-context-properties.fr.html#Tunable-context-properties">Tunable context properties</a>, ou <a name="index-Contexts-335"></a><a href="../lilypond-internals/Contexts.fr.html#Contexts">Contexts</a>.

   <p>La propriété <code>instrumentName</code> ne sera prise en compte que si elle
est définie dans un contexte <code>Staff</code>&nbsp;; d'autres propriétés peuvent
par contre être définies dans plusieurs contextes différents.  C'est le
cas de la propriété <code>extraNatural</code> qui est définie par défaut à ##t
(vrai) pour toutes les portées.  Si vous lui attribuez la valeur ##f
(faux) dans un contexte <code>Staff</code> particulier, elle ne s'appliquera
qu'aux altérations de la portée en question&nbsp;; si vous lui attribuez la
valeur &lsquo;faux&rsquo; au niveau du contexte <code>Score</code>, cela s'appliquera
alors à toutes les portées.

   <p>Voici comment supprimer les bécarres supplémentaires pour une portée&nbsp;:

   <blockquote>
<pre class="verbatim">     
     &lt;&lt;
       \new Staff \relative c'' {
         ais4 aes
      }
       \new Staff \relative c'' {
         \set Staff.extraNatural = ##f
         ais4 aes
      }
     >>
</pre>
     <p>
 <a href="../58/lily-ebcd81e3.ly"> <img align="middle" border="0" src="../58/lily-ebcd81e3.png" alt="[image of music]"> </a>
</p>

   </blockquote>

<p class="noindent">et pour toutes les portées&nbsp;:

   <blockquote>
<pre class="verbatim">     
     &lt;&lt;
       \new Staff \relative c'' {
         ais4 aes
      }
       \new Staff \relative c'' {
         \set Score.extraNatural = ##f
         ais4 aes
      }
     >>
</pre>
     <p>
 <a href="../d5/lily-767072b1.ly"> <img align="middle" border="0" src="../d5/lily-767072b1.png" alt="[image of music]"> </a>
</p>

   </blockquote>

   <p>Autre exemple, si la propriété <code>clefOctavation</code> est déterminée au
niveau du contexte <code>Score</code>, elle modifiera la valeur de l'octave en
cours pour toutes les portées actives&nbsp;; cette valeur sera considérée
comme étant la nouvelle valeur par défaut pour toutes les portées à
venir.

   <p>La commande opposée, <code>\unset</code>, efface la propriété du contexte&nbsp;; la
plupart des propriétés reviennent de ce fait à leur valeur par défaut. 
En règle générale, la commande <code>\unset</code> n'est pas nécessaire dès
lors que vous faites appel à une nouvelle commande <code>\set</code> pour
modifier le réglage.

   <p>Les commandes <code>\set</code> et <code>\unset</code> peuvent intervenir n'importe
où dans votre fichier source.  Elles seront effectives dès leur
apparition et jusqu'à la fin de la partition, à moins d'être affectée
par un <code>\unset</code> ou un nouveau <code>\set</code>.  À titre d'exemple, nous
allons modifier jouer avec la taille des fontes, ce qui affecte entre
autres la grosseur des tes de note.  Les modifications s'appliquent
toujours par rapport à la valeur par défaut, non par rapport à la
dernière valeur.

   <blockquote>
<pre class="verbatim">     
     c4
     % make note heads smaller
     \set fontSize = #-4
     d e
     % make note heads larger
     \set fontSize = #2.5
     f g
     % return to default size
     \unset fontSize
     a b
</pre>
     <p>
 <a href="../46/lily-ce378e56.ly"> <img align="middle" border="0" src="../46/lily-ce378e56.png" alt="[image of music]"> </a>
</p>

   </blockquote>

   <p>Nous venons de voir comment déterminer la valeur de différents types de
propriétés.  N'oubliez pas que les nombres, entiers ou réels, doivent
être précédés d'un dièse (<code>#</code>) et les valeurs vrai ou faux de deux
dièses &ndash; respectivement ##t et ##f &ndash;. Une valeur textuelle doit être
encadrée de guillemets anglais, <code>``... ''</code>, bien que, comme
nous le constaterons plus tard, la commande <code>\markup</code> permet aussi
de spécifier du texte.

<h5 class="unnumberedsubsubsec">Setting context properties with <code>\with</code></h5>

<p><a name="index-g_t_005cwith-336"></a><a name="index-g_t_005cwith-337"></a>
<a name="index-propri_00c3_00a9t_00c3_00a9s-d_0027un-contexte_002c-d_00c3_00a9finition-avec-_005cwith-338"></a>
Les propriétés d'un contexte peuvent aussi être réglées lors de la
création de ce contexte.  Ceci constitue parfois une façon plus claire
de spécifier les valeurs d'une propriété pour la durée de vie du
contexte.  Lorsque vous créez un contexte à l'aide de la commande
<code>\new</code>, vous pouvez la faire suivre immédiatement d'un bloc
<code>\with { .. }</code> qui contiendra les réglages des différentes
propriétés.  Ainsi, si nous voulons par exemple annuler l'impression des
bécarres supplémentaires sur la durée d'une portée, nous écririons&nbsp;:

<pre class="example">\new Staff \with { extraNatural = ##f }
</pre>
   <p class="noindent">ce qui donnerait&nbsp;:

   <blockquote>
<pre class="verbatim">     
     &lt;&lt;
       \new Staff
       \relative c'' {
         gis ges aes ais
       }
       \new Staff \with { extraNatural = ##f }
       \relative c'' {
         gis ges aes ais
       }
     >>
</pre>
     <p>
 <a href="../60/lily-b6cbcf03.ly"> <img align="middle" border="0" src="../60/lily-b6cbcf03.png" alt="[image of music]"> </a>
</p>

   </blockquote>

   <p>Les propriétés réglées de cette manière peuvent néanmoins être modifiées
de façon dynamique grace à <code>\set</code>&nbsp;; un <code>\unset</code> les ramènera à
leur valeur par défaut.

   <p>La propriété <code>fontSize</code> constitue une exception&nbsp;: lorsqu'elle est
déterminée au sein d'un bloc <code>\with</code>, cela redéfinit la valeur par
défaut de la taille de fonte.  Une modification est possible par la
commande <code>\set</code>, mais la commande <code>\unset fontSize</code> fera
revenir à la nouvelle valeur par défaut.

<h5 class="unnumberedsubsubsec">Setting context properties with <code>\context</code></h5>

<p>Vous pouvez régler les valeurs des propriétés de contexte en une seule
fois pour tous les contextes d'un même type, par exemple tous les
contextes <code>Staff</code>.  Le type du contexte doit être donné
explicitement d'après son nom, par exemple <code>Staff</code>, prédédé d'une
oblique inverse, donc nous saisirons <code>\Staff</code>.  La manière de
régler la valeur des propriétés est la même que ce que nous avons vu
avec la commande <code>\with</code>, puisqu'on se place dans un bloc
<code>\context</code> inclus dans un bloc <code>\layout</code>.  Chaque bloc
<code>\context</code> affectera tous les contextes concernés par le bloc
<code>\score</code> ou <code>\book</code> au sein duquel apparaît ce bloc
<code>\layout</code>.  Voici comment le mettre en place&nbsp;:

   <blockquote>
<pre class="verbatim">     
     \score {
       \new Staff {
         \relative c'' {
           cis4 e d ces
         }
       }
       \layout {
         \context {
           \Staff
           extraNatural = ##t
         }
       }
     }
</pre>
     <p>
 <a href="../c1/lily-bfa598af.ly"> <img align="middle" border="0" src="../c1/lily-bfa598af.png" alt="[image of music]"> </a>
</p>

   </blockquote>

<p class="noindent">Les propriétés de contextes ainsi définies peuvent être adaptées pour
chacun des contextes en particulier grace à un bloc <code>\with</code> ou bien
une commande <code>\set</code> au fil des notes.

<p class="noindent">

<h5 class="subsubheading">Voir aussi</h5>

<p>Manuel de notation&nbsp;: <a name="index-Changing-context-default-settings-339"></a><a href="../lilypond/Changing-context-default-settings.fr.html#Changing-context-default-settings">Modification des réglages par défaut d'un contexte</a>,
<a name="index-The-set-command-340"></a><a href="../lilypond/The-set-command.fr.html#The-set-command">The set command</a>.

   <p>Références internes&nbsp;: <a name="index-Contexts-341"></a><a href="../lilypond-internals/Contexts.fr.html#Contexts">Contexts</a>,
<a name="index-Tunable-context-properties-342"></a><a href="../lilypond-internals/Tunable-context-properties.fr.html#Tunable-context-properties">Tunable context properties</a>.

   <!-- footer_tag --><br><hr>
<div class="node">
<p>
Suivant&nbsp;:&nbsp;<a rel="next" accesskey="n" href="Adding-and-removing-engravers.fr.html#Adding-and-removing-engravers">Ajout et suppression de graveurs</a>,
Précédent&nbsp;:&nbsp;<a rel="previous" accesskey="p" href="Engravers-explained.fr.html#Engravers-explained">Tout savoir sur les graveurs</a>,
Haut&nbsp;:&nbsp;<a rel="up" accesskey="u" href="Contexts-and-engravers.fr.html#Contexts-and-engravers">Contextes et graveurs</a>
</div>

<div style="background-color: #e8ffe8; padding: 2; border: #c0ffc0 1px solid;">
<p>
<font size="-1">
Cette page documente LilyPond-2.11.57 (branche de développement).
<br>
<address>
Rapportez toute anomalie en français à <a href="mailto:lilypond-user-fr@gnu.org">lilypond-user-fr@gnu.org</a> ou en anglais à <a href="http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs">http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs</a> </address>
<br>
Vos <a href="http://lilypond.org/web/devel/participating/documentation-adding">suggestions à propos de la documentation</a> sont les bienvenues.
</font>
</p>
</div>


<P>
 Autres langues&nbsp;: <a href="Modifying-context-properties.html">English</a>, <a href="Modifying-context-properties.es.html">español</a>.
 <BR>
 
</P>
</BODY></html>