<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!-- header_tag --> <html lang="en"> <head> <title>Optimal page turning - 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="Breaks.de.html#Breaks" title="Breaks"> <link rel="prev" href="Optimal-page-breaking.de.html#Optimal-page-breaking" title="Optimal page breaking"> <link rel="next" href="Minimal-page-breaking.de.html#Minimal-page-breaking" title="Minimal page breaking"> <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="Optimal-page-turning"></a> Next: <a rel="next" accesskey="n" href="Minimal-page-breaking.de.html#Minimal-page-breaking">Minimal page breaking</a>, Previous: <a rel="previous" accesskey="p" href="Optimal-page-breaking.de.html#Optimal-page-breaking">Optimal page breaking</a>, Up: <a rel="up" accesskey="u" href="Breaks.de.html#Breaks">Breaks</a> <hr> </div> <h4 class="subsection">4.3.4 Optimal page turning</h4> <p><a name="index-ly_003apage_002dturn_002dbreaking-2552"></a><a name="index-ly_003apage_002dturn_002dbreaking-2553"></a> <p>Often it is necessary to find a page breaking configuration so that there is a rest at the end of every second page. This way, the musician can turn the page without having to miss notes. The <code>ly:page-turn-breaking</code> function attempts to find a page breaking minimizing cramping and stretching, but with the additional restriction that it is only allowed to introduce page turns in specified places. <p>There are two steps to using this page breaking function. First, you must enable it in the <code>\paper</code> block, as explained in <a href="Page-breaking.de.html#Page-breaking">Page breaking</a>. Then you must tell the function where you would like to allow page breaks. <p>There are two ways to achieve the second step. First, you can specify each potential page turn manually, by inserting <code>\allowPageTurn</code> into your input file at the appropriate places. <p>If this is too tedious, you can add a <code>Page_turn_engraver</code> to a Staff or Voice context. The <code>Page_turn_engraver</code> will scan the context for sections without notes (note that it does not scan for rests; it scans for the absence of notes. This is so that single-staff polyphony with rests in one of the parts does not throw off the <code>Page_turn_engraver</code>). When it finds a sufficiently long section without notes, the <code>Page_turn_engraver</code> will insert an <code>\allowPageTurn</code> at the final bar line in that section, unless there is a ‘special’ bar line (such as a double bar), in which case the <code>\allowPageTurn</code> will be inserted at the final ‘special’ bar line in the section. <p><a name="index-minimumPageTurnLength-2554"></a><a name="index-minimumPageTurnLength-2555"></a> The <code>Page_turn_engraver</code> reads the context property <code>minimumPageTurnLength</code> to determine how long a note-free section must be before a page turn is considered. The default value for <code>minimumPageTurnLength</code> is <code>#(ly:make-moment 1 1)</code>. If you want to disable page turns, you can set it to something very large. <pre class="example">\new Staff \with { \consists "Page_turn_engraver" } { a4 b c d | R1 | % a page turn will be allowed here a4 b c d | \set Staff.minimumPageTurnLength = #(ly:make-moment 5 2) R1 | % a page turn will not be allowed here a4 b r2 | R1*2 | % a page turn will be allowed here a1 } </pre> <p><a name="index-minimumRepeatLengthForPageTurn-2556"></a><a name="index-minimumRepeatLengthForPageTurn-2557"></a> The <code>Page_turn_engraver</code> detects volta repeats. It will only allow a page turn during the repeat if there is enough time at the beginning and end of the repeat to turn the page back. The <code>Page_turn_engraver</code> can also disable page turns if the repeat is very short. If you set the context property <code>minimumRepeatLengthForPageTurn</code> then the <code>Page_turn_engraver</code> will only allow turns in repeats whose duration is longer than this value. <p>The page turning commands, <code>\pageTurn</code>, <code>\noPageTurn</code> and <code>\allowPageTurn</code>, may also be used at top-level, between scores and top-level markups. <p class="noindent"> <h5 class="subsubheading">Predefined commands</h5> <p><a name="index-g_t_005cpageTurn-2558"></a><a name="index-g_t_005cpageTurn-2559"></a> <code>\pageTurn</code> <a name="index-g_t_005cnoPageTurn-2560"></a><a name="index-g_t_005cnoPageTurn-2561"></a> <code>\noPageTurn</code> <a name="index-g_t_005callowPageTurn-2562"></a><a name="index-g_t_005callowPageTurn-2563"></a> <code>\allowPageTurn</code> <p class="noindent"> <h5 class="subsubheading">Known issues and warnings</h5> <p>There should only be one <code>Page_turn_engraver</code> in a score. If there is more than one, they will interfere with each other. <!-- footer_tag --><br><hr> <div class="node"> <p> Next: <a rel="next" accesskey="n" href="Minimal-page-breaking.de.html#Minimal-page-breaking">Minimal page breaking</a>, Previous: <a rel="previous" accesskey="p" href="Optimal-page-breaking.de.html#Optimal-page-breaking">Optimal page breaking</a>, Up: <a rel="up" accesskey="u" href="Breaks.de.html#Breaks">Breaks</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>