Sophie

Sophie

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

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>Économies de saisie grâce aux identificateurs et fonctions - 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="Suggestions-for-writing-LilyPond-input-files.fr.html#Suggestions-for-writing-LilyPond-input-files" title="Suggestions de saisie des fichiers LilyPond">
<link rel="prev" href="Large-projects.fr.html#Large-projects" title="Projets d'envergure">
<link rel="next" href="Style-sheets.fr.html#Style-sheets" title="Feuilles de style">
<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="Saving-typing-with-variables-and-functions"></a>
Suivant&nbsp;:&nbsp;<a rel="next" accesskey="n" href="Style-sheets.fr.html#Style-sheets">Feuilles de style</a>,
Précédent&nbsp;:&nbsp;<a rel="previous" accesskey="p" href="Large-projects.fr.html#Large-projects">Projets d'envergure</a>,
Haut&nbsp;:&nbsp;<a rel="up" accesskey="u" href="Suggestions-for-writing-LilyPond-input-files.fr.html#Suggestions-for-writing-LilyPond-input-files">Suggestions de saisie des fichiers LilyPond</a>
<hr>
</div>

<h4 class="subsection">5.1.4 Économies de saisie grâce aux identificateurs et fonctions</h4>

<p><a name="index-variables-380"></a><a name="index-identificateurs-381"></a>
Jusqu'à maintenant, vous avez vu ce type de code&nbsp;:

   <blockquote>
<pre class="verbatim">     
     hornNotes = \relative c'' { c4 b dis c }
     \score {
       {
         \hornNotes
       }
     }
</pre>
     <p>
 <a href="../8a/lily-718d27d0.ly"> <img align="middle" border="0" src="../8a/lily-718d27d0.png" alt="[image of music]"> </a>
</p>

   </blockquote>

   <p>Vous comprendrez combien cela peut être utile pour écrire de la
musique minimaliste&nbsp;:

   <blockquote>
<pre class="verbatim">     
     fragmentA = \relative c'' { a4 a8. b16 }
     fragmentB = \relative c'' { a8. gis16 ees4 }
     violin = \new Staff { \fragmentA \fragmentA \fragmentB \fragmentA }
     \score {
       {
         \violin
       }
     }
</pre>
     <p>
 <a href="../3b/lily-928ad868.ly"> <img align="middle" border="0" src="../3b/lily-928ad868.png" alt="[image of music]"> </a>
</p>

   </blockquote>

   <p>Cependant, vous pouvez aussi utiliser ces identificateurs
&mdash; aussi connus sous le nom de variables, macros, ou commandes
(définies par l'utilisateur) &mdash; pour des retouches&nbsp;:

   <blockquote>
<pre class="verbatim">     
     dolce = \markup{ \italic \bold dolce }
     padText = { \once \override TextScript #'padding = #5.0 }
     fthenp=_\markup{ \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p }
     violin = \relative c'' {
       \repeat volta 2 {
         c4._\dolce b8 a8 g a b |
         \padText
         c4.^"hi there!" d8 e' f g d |
         c,4.\fthenp b8 c4 c-. |
       }
     }
     \score {
       {
         \violin
       }
     \layout{ragged-right=##t}
     }
</pre>
     <p>
 <a href="../fb/lily-ace13d5f.ly"> <img align="middle" border="0" src="../fb/lily-ace13d5f.png" alt="[image of music]"> </a>
</p>

   </blockquote>

   <p>Ces identificateurs sont évidemment utiles pour économiser de la
frappe.  Mais ils peuvent l'être même si vous ne les utilisez qu'une
seule fois&nbsp;: ils réduisent la complexité.  Regardons l'exemple
précédent sans aucun identificateur.  C'est beaucoup plus laborieux à
lire, et particulièrement la dernière ligne.

<pre class="example">violin = \relative c'' {
  \repeat volta 2 {
    c4._\markup{ \italic \bold dolce } b8 a8 g a b |
    \once \override TextScript #'padding = #5.0
    c4.^"hi there!" d8 e' f g d |
    c,4.\markup{ \dynamic f \italic \small { 2nd }
      \hspace #0.1 \dynamic p } b8 c4 c-. |
  }
}
</pre>
   <p>Jusqu'ici nous avons vu des substitutions statiques&nbsp;: quand LilyPond
rencontre <code>\padText</code>, il le remplace par le contenu que nous lui
avons défini &mdash; c'est-à-dire le contenu à droite de <code>padText=</code>.

   <p>LilyPond gère également des substitutions non-statiques &mdash; vous
pouvez les voir comme des fonctions.

   <blockquote>
<pre class="verbatim">     
     padText =
     #(define-music-function (parser location padding) (number?)
       #{
         \once \override TextScript #'padding = #$padding
       #})
     
     \relative c''' {
       c4^"piu mosso" b a b
       \padText #1.8
       c4^"piu mosso" d e f
       \padText #2.6
       c4^"piu mosso" fis a g
     }
</pre>
     <p>
 <a href="../fd/lily-5fb6bbf8.ly"> <img align="middle" border="0" src="../fd/lily-5fb6bbf8.png" alt="[image of music]"> </a>
</p>

   </blockquote>

   <p>Utiliser les identificateurs est aussi un bon moyen pour vous épargner
du travail si la syntaxe de LilyPond change un jour &mdash; voir
<a href="Updating-old-files.fr.html#Updating-old-files">Mise à jour d'anciens fichiers</a>.  Si vous avez une seule définition, par
exemple <code>\dolce</code>, pour tous vos fichiers (voir <a href="Style-sheets.fr.html#Style-sheets">Feuilles de style</a>), et que la syntaxe change, alors vous n'aurez qu'à mettre à
jour votre seule définition <code>\dolce</code>, au lieu de devoir modifier
chaque fichier <code>.ly</code>.

   <!-- footer_tag --><br><hr>
<div class="node">
<p>
Suivant&nbsp;:&nbsp;<a rel="next" accesskey="n" href="Style-sheets.fr.html#Style-sheets">Feuilles de style</a>,
Précédent&nbsp;:&nbsp;<a rel="previous" accesskey="p" href="Large-projects.fr.html#Large-projects">Projets d'envergure</a>,
Haut&nbsp;:&nbsp;<a rel="up" accesskey="u" href="Suggestions-for-writing-LilyPond-input-files.fr.html#Suggestions-for-writing-LilyPond-input-files">Suggestions de saisie des fichiers LilyPond</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="Saving-typing-with-variables-and-functions.html">English</a>, <a href="Saving-typing-with-variables-and-functions.es.html">español</a>, <a href="Saving-typing-with-variables-and-functions.de.html">deutsch</a>.
 <BR>
 
</P>
</BODY></html>