<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!-- header_tag --> <html lang="en"> <head> <title>Explicit staff and system positioning - 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.de.html#Top"> <link rel="up" href="Vertical-spacing.de.html#Vertical-spacing" title="Vertical spacing"> <link rel="prev" href="Vertical-spacing-between-systems.de.html#Vertical-spacing-between-systems" title="Vertical spacing between systems"> <link rel="next" href="Two_002dpass-vertical-spacing.de.html#Two_002dpass-vertical-spacing" title="Two-pass vertical spacing"> <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="Explicit-staff-and-system-positioning"></a> Next: <a rel="next" accesskey="n" href="Two_002dpass-vertical-spacing.de.html#Two_002dpass-vertical-spacing">Two-pass vertical spacing</a>, Previous: <a rel="previous" accesskey="p" href="Vertical-spacing-between-systems.de.html#Vertical-spacing-between-systems">Vertical spacing between systems</a>, Up: <a rel="up" accesskey="u" href="Vertical-spacing.de.html#Vertical-spacing">Vertical spacing</a> <hr> </div> <h4 class="subsection">4.4.3 Explicit staff and system positioning</h4> <p>One way to understand the <code>VerticalAxisGroup</code> and <code>\paper</code> settings explained in the previous two sections is as a collection of different settings that primarily concern the amount of vertical padding different staves and systems running down the page. <p>It is possible to approach vertical spacing in a different way using <code>NonMusicalPaperColumn #'line-break-system-details</code>. Where <code>VerticalAxisGroup</code> and <code>\paper</code> settings specify vertical padding, <code>NonMusicalPaperColumn #'line-break-system-details</code> specifies exact vertical positions on the page. <p><code>NonMusicalPaperColumn #'line-break-system-details</code> accepts an associative list of five different settings: <ul> <li><code>X-offset</code> <li><code>Y-offset</code> <li><code>alignment-offsets</code> <li><code>alignment-extra-space</code> <li><code>fixed-alignment-extra-space</code> </ul> <p>Grob overrides, including the overrides for <code>NonMusicalPaperColumn</code> below, can occur in any of three different places in an input file: <ul> <li>in the middle of note entry directly <li>in a <code>\context</code> block <li>in the <code>\with</code> block </ul> <p>When we override <code>NonMusicalPaperColumn</code>, we use the usual <code>\override</code> command in <code>\context</code> blocks and in the <code>\with</code> block. On the other hand, when we override <code>NonMusicalPaperColumn</code> in the middle of note entry, use the special <code>\overrideProperty</code> command. Here are some example <code>NonMusicalPaperColumn</code> overrides with the special <code>\overrideProperty</code> command: <pre class="example">\overrideProperty NonMusicalPaperColumn #'line-break-system-details #'((X-offset . 20)) \overrideProperty NonMusicalPaperColumn #'line-break-system-details #'((Y-offset . 40)) \overrideProperty NonMusicalPaperColumn #'line-break-system-details #'((X-offset . 20) (Y-offset . 40)) \override NonMusicalPaperColumn #'line-break-system-details #'((alignment-offsets . (0 -15))) \override NonMusicalPaperColumn #'line-break-system-details #'((X-offset . 20) (Y-offset . 40) (alignment-offsets . (0 -15))) </pre> <p>To understand how each of these different settings work, we begin by looking at an example that includes no overrides at all. <blockquote> <p> <a href="../1e/lily-4dcde9b8.ly"> <img align="middle" border="0" src="../1e/lily-4dcde9b8.png" alt="[image of music]"> </a> </p> </blockquote> <p>This score isolates line- and page-breaking information in a dedicated voice. This technique of creating a breaks voice will help keep layout separate from music entry as our example becomes more complicated. See <a href="Using-an-extra-voice-for-breaks.de.html#Using-an-extra-voice-for-breaks">Using an extra voice for breaks</a>. <p>Explicit <code>\breaks</code> evenly divide the music into six measures per line. Vertical spacing results from LilyPond's defaults. To set the vertical startpoint of each system explicitly, we can set the <code>Y-offset</code> pair in the <code>line-break-system-details</code> attribute of the <code>NonMusicalPaperColumn</code> grob: <blockquote> <p> <a href="../3e/lily-0f4db552.ly"> <img align="middle" border="0" src="../3e/lily-0f4db552.png" alt="[image of music]"> </a> </p> </blockquote> <p>Note that <code>line-break-system-details</code> takes an associative list of potentially many values, but that we set only one value here. Note, too, that the <code>Y-offset</code> property here determines the exact vertical position on the page at which each new system will render. <p>Now that we have set the vertical startpoint of each system explicitly, we can also set the vertical startpoint of each staff within each system manually. We do this using the <code>alignment-offsets</code> subproperty of <code>line-break-system-details</code>. <blockquote> <p> <a href="../b4/lily-8b37ef9b.ly"> <img align="middle" border="0" src="../b4/lily-8b37ef9b.png" alt="[image of music]"> </a> </p> </blockquote> <p>Note that here we assign two different values to the <code>line-break-system-details</code> attribute of the <code>NonMusicalPaperColumn</code> grob. Though the <code>line-break-system-details</code> attribute alist accepts many additional spacing parameters (including, for example, a corresponding <code>X-offset</code> pair), we need only set the <code>Y-offset</code> and <code>alignment-offsets</code> pairs to control the vertical startpoint of every system and every staff. Finally, note that <code>alignment-offsets</code> specifies the vertical positioning of staves but not of staff groups. <blockquote> <p> <a href="../1f/lily-70cc7b64.ly"> <img align="middle" border="0" src="../1f/lily-70cc7b64.png" alt="[image of music]"> </a> </p> </blockquote> <p>Some points to consider: <ul> <li>When using <code>alignment-offsets</code>, lyrics count as a staff. <li>The units of the numbers passed to <code>X-offset</code>, <code>Y-offset</code> and <code>alignment-offsets</code> are interpreted as multiples of the distance between adjacent staff lines. Positive values move staves and lyrics up, negative values move staves and lyrics down. <li>Because the <code>NonMusicalPaperColumn #'line-break-system-details</code> settings given here allow the positioning of staves and systems anywhere on the page, it is possible to violate paper or margin boundaries or even to print staves or systems on top of one another. Reasonable values passed to these different settings will avoid this. </ul> <!-- footer_tag --><br><hr> <div class="node"> <p> Next: <a rel="next" accesskey="n" href="Two_002dpass-vertical-spacing.de.html#Two_002dpass-vertical-spacing">Two-pass vertical spacing</a>, Previous: <a rel="previous" accesskey="p" href="Vertical-spacing-between-systems.de.html#Vertical-spacing-between-systems">Vertical spacing between systems</a>, Up: <a rel="up" accesskey="u" href="Vertical-spacing.de.html#Vertical-spacing">Vertical spacing</a> </div> <div style="background-color: #e8ffe8; padding: 2; border: #c0ffc0 1px solid;"> <p> <font size="-1"> Diese Seite ist für LilyPond-2.11.57 (Entwicklungszweig). <br> <address> Fehler bitte an <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> melden. </address> <br> Ihre <a href="http://lilypond.org/web/devel/participating/documentation-adding">Vorschläge für die Dokumentation</a> sind willkommen. </font> </p> </div> </BODY></html>