<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!-- header_tag --> <html lang="en"> <head> <title>Line styles - GNU LilyPond Notation Reference</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="description" content="GNU LilyPond Notation Reference"> <meta name="generator" content="makeinfo 4.11"> <link title="Top" rel="start" href="index.fr.html#Top"> <link rel="up" href="Common-properties.fr.html#Common-properties" title="Common properties"> <link rel="prev" href="Controlling-visibility-of-objects.fr.html#Controlling-visibility-of-objects" title="Controlling visibility of objects"> <link rel="next" href="Rotating-objects.fr.html#Rotating-objects" title="Rotating objects"> <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage"> <!-- Copyright (C) 1999--2007 by the authors 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="Line-styles"></a> Next: <a rel="next" accesskey="n" href="Rotating-objects.fr.html#Rotating-objects">Rotating objects</a>, Previous: <a rel="previous" accesskey="p" href="Controlling-visibility-of-objects.fr.html#Controlling-visibility-of-objects">Controlling visibility of objects</a>, Up: <a rel="up" accesskey="u" href="Common-properties.fr.html#Common-properties">Common properties</a> <hr> </div> <h4 class="subsection">5.5.2 Line styles</h4> <!-- TODO: split the following explanations between expressive marks and --> <!-- text-related stuff. Perhaps create a new subsection named --> <!-- "Spanner limits", "Spanner boundaries"? -vv --> <p>Some performance indications, e.g., <i>rallentando</i> and <i>accelerando</i> and <i>trills</i> are written as text and are extended over many measures with lines, sometimes dotted or wavy. <p>These all use the same routines as the glissando for drawing the texts and the lines, and tuning their behavior is therefore also done in the same way. It is done with a spanner, and the routine responsible for drawing the spanners is <code>ly:line-interface::print</code>. This routine determines the exact location of the two <i>span points</i> and draws a line in between, in the style requested. <p>Here is an example of the different line styles available, and how to tune them. <pre class="verbatim"> d2 \glissando d'2 \once \override Glissando #'style = #'dashed-line d,2 \glissando d'2 \override Glissando #'style = #'dotted-line d,2 \glissando d'2 \override Glissando #'style = #'zigzag d,2 \glissando d'2 \override Glissando #'style = #'trill d,2 \glissando d'2 </pre> <p> <a href="../06/lily-435f8cdf.ly"> <img align="middle" border="0" src="../06/lily-435f8cdf.png" alt="[image of music]"> </a> </p> <p>The information that determines the end-points is computed on-the-fly for every graphic object, but it is possible to override these. <pre class="verbatim"> e2 \glissando f \once \override Glissando #'bound-details #'right #'Y = #-2 e2 \glissando f </pre> <p> <a href="../7b/lily-32f3c227.ly"> <img align="middle" border="0" src="../7b/lily-32f3c227.png" alt="[image of music]"> </a> </p> <p>The <code>Glissando</code> object, like any other using the <code>ly:line-interface::print</code> routine, carries a nested association list. In the above statement, the value for <code>Y</code> is set to <code>-2</code> for the association list corresponding to the right end point. Of course, it is also possible to adjust the left side with <code>left</code> instead of <code>right</code>. <p>If <code>Y</code> is not set, the value is computed from the vertical position of right attachment point of the spanner. <p>In case of a line break, the values for the span-points are extended with contents of the <code>left-broken</code> and <code>right-broken</code> sublists, for example <pre class="verbatim"> \override Glissando #'breakable = ##T \override Glissando #'bound-details #'right-broken #'Y = #-3 c1 \glissando \break f1 </pre> <p> <a href="../03/lily-2b6a1010.ly"> <img align="middle" border="0" src="../03/lily-2b6a1010.png" alt="[image of music]"> </a> </p> <p>The following properties can be used for the <dl> <dt><code>Y</code><dd>This sets the Y-coordinate of the end point, in staff space. By default, it is the center of the bound object, so for a glissando it points to the vertical center of the note head. <p>For horizontal spanners, such as text spanner and trill spanners, it is hardcoded to 0. <br><dt><code>attach-dir</code><dd>This determines where the line starts and ends in X-direction, relative to the bound object. So, a value of <code>-1</code> (or <code>LEFT</code>) makes the line start/end at the left side of the note head it is attached to. <br><dt><code>X</code><dd>This is the absolute coordinate of the end point. It is usually computed on the fly, and there is little use in overriding it. <br><dt><code>stencil</code><dd>Line spanners may have symbols at the beginning or end, which is contained in this sub-property. This is for internal use, it is recommended to use <code>text</code>. <br><dt><code>text</code><dd>This is a markup that is evaluated to yield stencil. It is used to put <i>cresc.</i> and <i>tr</i> on horizontal spanners. <blockquote> <pre class="verbatim"> \override TextSpanner #'bound-details #'left #'text = \markup { \small \bold Slower } c2\startTextSpan b c a\stopTextSpan </pre> <p> <a href="../d1/lily-91046071.ly"> <img align="middle" border="0" src="../d1/lily-91046071.png" alt="[image of music]"> </a> </p> </blockquote> <br><dt><code>stencil-align-dir-y</code><br><dt><code>stencil-offset</code><dd>Without setting this, the stencil is simply put there at the end-point, as defined by the <code>X</code> and <code>Y</code> sub properties. Setting either <code>stencil-align-dir-y</code> or <code>stencil-offset</code> will move the symbol at the edge relative to the end point of the line <pre class="verbatim"> \override TextSpanner #'bound-details #'left #'stencil-align-dir-y = #DOWN \override TextSpanner #'bound-details #'right #'stencil-align-dir-y = #UP \override TextSpanner #'bound-details #'left #'text = #"gggg" \override TextSpanner #'bound-details #'right #'text = #"hhhh" c4^\startTextSpan c c c \stopTextSpan </pre> <p> <a href="../3e/lily-a46706df.ly"> <img align="middle" border="0" src="../3e/lily-a46706df.png" alt="[image of music]"> </a> </p> <br><dt><code>arrow</code><dd>Setting this sub property to <code>#t</code> produce an arrowhead at the end of the line. <br><dt><code>padding</code><dd>This sub property controls the space between the specified end-point of the line and the actual end. Without padding, a glissando would start and end in the center of each note head. </dl> <!-- TODO: Move to 5.4.4 --> <p>The music function \endSpanners terminates spanners and hairpins after exactly one note. <blockquote> <pre class="verbatim"> \endSpanners c2 \startTextSpan c2 c2 \< c2 </pre> <p> <a href="../81/lily-b983adc9.ly"> <img align="middle" border="0" src="../81/lily-b983adc9.png" alt="[image of music]"> </a> </p> </blockquote> <p>When using \endSpanners it is not necessary to close \startTextSpan with \stopTextSpan, nor is it necessary to close hairpins with \!. <p class="noindent"> <h5 class="subsubheading">See also</h5> <p class="indent"> <p>Internals Reference: <a name="index-TextSpanner-2735"></a><a href="../lilypond-internals/TextSpanner.fr.html#TextSpanner">TextSpanner</a>, <a name="index-Glissando-2736"></a><a href="../lilypond-internals/Glissando.fr.html#Glissando">Glissando</a>, <a name="index-VoiceFollower-2737"></a><a href="../lilypond-internals/VoiceFollower.fr.html#VoiceFollower">VoiceFollower</a>, <a name="index-TrillSpanner-2738"></a><a href="../lilypond-internals/TrillSpanner.fr.html#TrillSpanner">TrillSpanner</a>, <a name="index-line_002dspanner_002dinterface-2739"></a><a href="../lilypond-internals/line_002dspanner_002dinterface.fr.html#line_002dspanner_002dinterface">line-spanner-interface</a>. <!-- footer_tag --><br><hr> <div class="node"> <p> Next: <a rel="next" accesskey="n" href="Rotating-objects.fr.html#Rotating-objects">Rotating objects</a>, Previous: <a rel="previous" accesskey="p" href="Controlling-visibility-of-objects.fr.html#Controlling-visibility-of-objects">Controlling visibility of objects</a>, Up: <a rel="up" accesskey="u" href="Common-properties.fr.html#Common-properties">Common properties</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="Line-styles.es.html">español</a>. <BR> </P> </BODY></html>