<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!-- header_tag --> <html lang="en"> <head> <title>Feuilles de style - 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="Saving-typing-with-variables-and-functions.fr.html#Saving-typing-with-variables-and-functions" title="Économies de saisie grâce aux identificateurs et fonctions"> <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="Style-sheets"></a> Précédent : <a rel="previous" accesskey="p" href="Saving-typing-with-variables-and-functions.fr.html#Saving-typing-with-variables-and-functions">Économies de saisie grâce aux identificateurs et fonctions</a>, Haut : <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.5 Feuilles de style</h4> <p>La sortie que produit LilyPond peut être largement modifiée — voir <a href="Tweaking-output.fr.html#Tweaking-output">Retouche des partitions</a> pour plus de détails. Mais que faire si vous avez beaucoup de fichiers auxquels vous souhaitez appliquer vos retouches<font size="-4"> </font>? Ou si vous souhaitez simplement séparer les retouches de la musique elle-même<font size="-4"> </font>? Rien de plus facile. <p>Prenons un exemple. Ne vous inquiétez pas si vous ne comprenez pas les parties avec tous les <code>#()</code>. Celles-ci sont expliquées dans <a href="Advanced-tweaks-with-Scheme.fr.html#Advanced-tweaks-with-Scheme">Retouches avancées avec Scheme</a>. <blockquote> <pre class="verbatim"> mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0) #:line(#:dynamic "mp" #:text #:italic "dolce" ))) tempoMark = #(define-music-function (parser location markp) (string?) #{ \once \override Score . RehearsalMark #'self-alignment-X = #left \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0) \mark \markup { \bold $markp } #}) \relative c'' { \tempo 4=50 a4.\mpdolce d8 cis4--\glissando a | b4 bes a2 \tempoMark "Poco piu mosso" cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2 } </pre> <p> <a href="../15/lily-e5e30e86.ly"> <img align="middle" border="0" src="../15/lily-e5e30e86.png" alt="[image of music]"> </a> </p> </blockquote> <p>Il y a quelques problèmes de chevauchement ; nous allons arranger cela en utilisant les techniques de <a href="Moving-objects.fr.html#Moving-objects">Déplacement d'objets</a>. On peut aussi faire quelque chose pour les définitions de <code>mpdolce</code> et <code>tempoMark</code>. Elles produisent le résultat que nous désirons, mais nous pourrions aussi vouloir les utiliser dans une autre pièce. Il suffirait de les copier et les coller au début de chaque fichier, mais c'est fastidieux. De plus, cela laisse les définitions dans nos fichiers de musique, et je trouve personnellement tous ces <code>#()</code> assez laids. Stockons-les dans un autre fichier : <pre class="example">%%% enregistrez ceci dans un fichier nommé "definitions.ly" mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0) #:line(#:dynamic "mp" #:text #:italic "dolce" ))) tempoMark = #(define-music-function (parser location markp) (string?) #{ \once \override Score . RehearsalMark #'self-alignment-X = #left \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0) \mark \markup { \bold $markp } #}) </pre> <p>Maintenant, modifions notre musique (enregistrez ce fichier sous <samp><span class="file">"musique.ly"</span></samp>). <!-- We have to do this awkward example/lilypond-non-verbatim --> <!-- because we can't do the \include stuff in the manual. --> <pre class="example">\include "definitions.ly" \relative c'' { \tempo 4=50 a4.\mpdolce d8 cis4--\glissando a | b4 bes a2 \once \override Score.RehearsalMark #'padding = #2.0 \tempoMark "Poco piu mosso" cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2 } </pre> <blockquote> <p> <a href="../11/lily-5b03168d.ly"> <img align="middle" border="0" src="../11/lily-5b03168d.png" alt="[image of music]"> </a> </p> </blockquote> <p>C'est mieux, mais effectuons encore quelques retouches. Le glissando est peu visible, c'est pourquoi nous allons l'épaissir et le rapprocher des têtes de notes. Déplaçons l'indication métronomique au-dessus de la clef, au lieu de la laisser au-dessus de la première note. Et pour finir, mon professeur de composition déteste les chiffrages de mesure en «<font size="-4"> </font>C<font size="-4"> </font>», nous allons donc le transformer en «<font size="-4"> </font>4/4<font size="-4"> </font>». <p>Cependant, ne changez pas le fichier <samp><span class="file">musique.ly</span></samp>. Remplacez le fichier <samp><span class="file">definitions.ly</span></samp> par ceci : <pre class="example">%%% definitions.ly mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0) #:line( #:dynamic "mp" #:text #:italic "dolce" ))) tempoMark = #(define-music-function (parser location markp) (string?) #{ \once \override Score . RehearsalMark #'self-alignment-X = #left \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0) \mark \markup { \bold $markp } #}) \layout{ \context { \Score \override MetronomeMark #'extra-offset = #'(-9 . 0) \override MetronomeMark #'padding = #'3 } \context { \Staff \override TimeSignature #'style = #'numbered } \context { \Voice \override Glissando #'thickness = #3 \override Glissando #'gap = #0.1 } } </pre> <blockquote> <p> <a href="../f4/lily-44dde205.ly"> <img align="middle" border="0" src="../f4/lily-44dde205.png" alt="[image of music]"> </a> </p> </blockquote> <p>C'est encore mieux<font size="-4"> </font>! Mais supposons maintenant que je veuille publier cette pièce. Mon professeur de composition n'aime pas les chiffrages de mesure en «<font size="-4"> </font>C<font size="-4"> </font>», mais moi je les aime bien. Copions l'actuel <samp><span class="file">definitions.ly</span></samp> dans le fichier <samp><span class="file">publication-web.ly</span></samp>, et modifions ce dernier. Puisque la musique est destinée à produire un fichier PDF affiché sur écran, nous allons aussi augmenter la taille globale de police. <pre class="example">%%% definitions.ly mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0) #:line( #:dynamic "mp" #:text #:italic "dolce" ))) tempoMark = #(define-music-function (parser location markp) (string?) #{ \once \override Score . RehearsalMark #'self-alignment-X = #left \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0) \mark \markup { \bold $markp } #}) #(set-global-staff-size 23) \layout{ \context { \Score \override MetronomeMark #'extra-offset = #'(-9 . 0) \override MetronomeMark #'padding = #'3 } \context { \Staff } \context { \Voice \override Glissando #'thickness = #3 \override Glissando #'gap = #0.1 } } </pre> <blockquote> <p> <a href="../66/lily-c4610079.ly"> <img align="middle" border="0" src="../66/lily-c4610079.png" alt="[image of music]"> </a> </p> </blockquote> <p>Il ne nous reste plus qu'à remplacer <code>\include "definitions.ly"</code> par <code>\include "publication-web.ly"</code> dans notre fichier de musique. <p>Il est possible, bien sûr, de rendre cela encore plus pratique. Nous pourrions créer un fichier <samp><span class="file">definitions.ly</span></samp> qui ne contiendrait que les définitions de <code>mpdolce</code> et de <code>tempoMark</code>, un fichier <samp><span class="file">publication-web.ly</span></samp> qui ne contiendrait que la section <code>layout</code> décrite ci-dessus et un fichier <samp><span class="file">universite.ly</span></samp> qui ne contiendrait que les retouches pour produire le résultat que mon professeur préfère. Le début du fichier <samp><span class="file">musique.ly</span></samp> ressemblerait alors à <pre class="example">\include "definitions.ly" %%% Décommentez seulement une de ces deux lignes<font size="-4"> </font>! \include "publication-web.ly" %\include "universite.ly" </pre> <p>Cette approche peut être utile même si vous ne produisez qu'un seul jeu de partitions. J'utilise personnellement une demi-douzaine de fichiers de «<font size="-4"> </font>feuille de style<font size="-4"> </font>» pour mes projets. Je commence chaque fichier de musique par <code>\include "../global.ly"</code> qui contient : <pre class="example">%%% global.ly \version "2.11.57"<!-- /@w --> #(ly:set-option 'point-and-click #f) \include "../init/init-defs.ly" \include "../init/init-mise-en-page.ly" \include "../init/init-en-tetes.ly" \include "../init/init-papier.ly" </pre> <!-- footer_tag --><br><hr> <div class="node"> <p> Précédent : <a rel="previous" accesskey="p" href="Saving-typing-with-variables-and-functions.fr.html#Saving-typing-with-variables-and-functions">Économies de saisie grâce aux identificateurs et fonctions</a>, Haut : <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 : <a href="Style-sheets.html">English</a>, <a href="Style-sheets.es.html">español</a>, <a href="Style-sheets.de.html">deutsch</a>. <BR> </P> </BODY></html>