From f3bf879b45350fb09eb11913fb0f15e687caa5d2 Mon Sep 17 00:00:00 2001 From: Patrick McCarty Date: Sat, 6 Sep 2008 19:18:00 -0700 Subject: [PATCH] Fix dimensions for several output variables * Dimensions for the following output variables are now interpreted correctly since they have been added to the dimension-variables variable (heeding the warning at the top of ly/paper-defaults.ly): after-title-space before-title-space between-title-space bottom-margin foot-separation head-separation top-margin * page-turn-page-breaking-badturns.ly: slightly adjusted * NR 4.6: general rewrite, with updated information Signed-off-by: Patrick McCarty --- Documentation/user/spacing.itely | 102 +++++++++--------- .../page-turn-page-breaking-badturns.ly | 6 +- scm/paper.scm | 35 ++++-- 3 files changed, 84 insertions(+), 59 deletions(-) diff --git a/Documentation/user/spacing.itely b/Documentation/user/spacing.itely index 5d8dd6ec00..64977b0233 100644 --- a/Documentation/user/spacing.itely +++ b/Documentation/user/spacing.itely @@ -2122,28 +2122,29 @@ Sometimes you can end up with one or two staves on a second if you look at previous pages and it looks like there is plenty of room left on those. -When investigating layout issues, @code{annotate-spacing} is -an invaluable tool. This command prints the values of various -layout spacing commands; for more details see the following -section, @ref{Displaying spacing}. +When investigating layout issues, @code{annotate-spacing} is an +invaluable tool. This command prints the values of various layout +spacing variables; for more details see the following section, +@ref{Displaying spacing}. @menu * Displaying spacing:: * Changing spacing:: @end menu + @node Displaying spacing @subsection Displaying spacing @funindex annotate-spacing -@cindex Spacing, display of properties +@cindex spacing, display of layout -To graphically display the dimensions of vertical properties that may -be altered for page formatting, set @code{annotate-spacing} in the -@code{\paper} block, like this: +To graphically display the dimensions of vertical layout variables +that may be altered for page formatting, set +@code{annotate-spacing} in the @code{\paper} block: @c need to have \book{} otherwise we get the separate systems. -hwn -@lilypond[verbatim] +@lilypond[verbatim,quote] #(set-default-paper-size "a6" 'landscape) \book { \score { { c4 } } @@ -2151,31 +2152,31 @@ be altered for page formatting, set @code{annotate-spacing} in the } @end lilypond - -@c TODO: really bad vagueness due to bug in annotate-spacing. -gp @noindent -Some unit dimensions are measured in staff spaces, while others -are measured in millimeters. -The pairs -(@var{a},@var{b}) are intervals, where @var{a} is the lower edge and -@var{b} the upper edge of the interval. +All layout dimensions are displayed in staff spaces, regardless of +the units specified in the @code{\paper} or @code{\layout} block. +For example, @code{paper-height} has a value of 59.75 staff +spaces, using the default staff size of 20 points, which is +equivalent to 148 millimeters, the height of @code{a6} paper in +landscape orientation. The pairs (@var{a},@var{b}) are intervals, +where @var{a} is the lower edge and @var{b} the upper edge of the +interval. + @node Changing spacing @subsection Changing spacing -From the output of @code{annotate-spacing}, we can -see which margins we may wish to alter. - -@c TODO add info about or pointers to margin settings +The output of @code{annotate-spacing} reveals vertical dimensions +in great detail. For details about modifying margins and other +layout variables, see @ref{Page formatting}. Other than margins, there are a few other options to save space: @itemize @item -You may tell LilyPond to place systems as close together as -possible (to fit as many systems as possible onto a page), but -then to space those systems out so that there is no blank -space at the bottom of the page. +Force systems to move as close together as possible (to fit as +many systems as possible onto a page) while being spaced so that +there is no blank space at the bottom of the page. @example \paper @{ @@ -2187,9 +2188,9 @@ space at the bottom of the page. @end example @item -You may force the number of systems (i.e., if LilyPond wants -to typeset some music with 11 systems, you could force it to -use 10). +Force the number of systems. For example, if the default layout +has 11 systems, the following assignment will force a layout with +10 systems. @example \paper @{ @@ -2198,27 +2199,25 @@ use 10). @end example @item -Avoid (or reduce) objects which increase the vertical size of -a system. For example, volta repeats (or alternate repeats) -require extra space. If these repeats are spread over two -systems, they will take up more space than one system with -the volta repeats and another system without. - -Another example is moving dynamics which @q{stick out} of -a system, as in the second bar here: - -@lilypond[verbatim,quote,fragment,ragged-right,relative=1] +Avoid (or reduce) objects that increase the vertical size of a +system. For example, volta repeats (or alternate repeats) require +extra space. If these repeats are spread over two systems, they +will take up more space than one system with the volta repeats and +another system without. For example, dynamics that @q{stick out} of +a system can be moved closer to the staff: + +@lilypond[verbatim,quote,relative=1] e4 c g\f c \override DynamicText #'extra-offset = #'( -2.2 . 2.0) e4 c g\f c @end lilypond @item -Alter the horizontal spacing via @code{SpacingSpanner}. See -@ref{Changing horizontal spacing}, for more details. Here's -an example first showing the default behavior: +Alter the horizontal spacing via @code{SpacingSpanner}. For more +details, see @ref{Changing horizontal spacing}. The following +example illustrates the default spacing: -@lilypond[verbatim,quote,ragged-right] +@lilypond[verbatim,quote] \score { \relative c'' { g4 e e2 | @@ -2231,11 +2230,12 @@ an example first showing the default behavior: @end lilypond @noindent -and now with @code{common-shortest-duration} increased from the -value of @code{1/4} (a quarter note is the most common in this -example) to @code{1/2}: +The next example modifies @code{common-shortest-duration} from a +value of @code{1/4} to @code{1/2}. The quarter note is the most +common and shortest duration in this example, so by making this +duration longer, a @q{squeezing} effect occurs: -@lilypond[verbatim,quote,ragged-right] +@lilypond[verbatim,quote] \score { \relative c'' { g4 e e2 | @@ -2248,18 +2248,22 @@ example) to @code{1/2}: \context { \Score \override SpacingSpanner - #'common-shortest-duration = #(ly:make-moment 1 2) + #'common-shortest-duration = #(ly:make-moment 1 2) } } } @end lilypond @noindent -Note that this override cannot be modified dynamically, so it must -always be placed in a @code{\context@{..@}} block so that it applies -to the whole score. +The @code{common-shortest-duration} property cannot be modified +dynamically, so it must always be placed in a @code{\context} +block so that it applies to the whole score. @end itemize +@seealso +Notation Reference: +@ref{Page formatting}, +@ref{Changing horizontal spacing}. diff --git a/input/regression/page-turn-page-breaking-badturns.ly b/input/regression/page-turn-page-breaking-badturns.ly index def4fbfc7e..3bc8dddde1 100644 --- a/input/regression/page-turn-page-breaking-badturns.ly +++ b/input/regression/page-turn-page-breaking-badturns.ly @@ -1,6 +1,6 @@ -\version "2.11.51" +\version "2.11.58" -\header{ +\header { texidoc="If there are no good places to have a page turn, the optimal-breaker will just have to recover gracefully. This should appear on 3 pages. @@ -10,7 +10,7 @@ should appear on 3 pages. \book { \paper { #(define page-breaking ly:page-turn-breaking) - paper-height = #65 + paper-height = #60 print-page-number = ##t } diff --git a/scm/paper.scm b/scm/paper.scm index d587f5e9c0..0ff9fbc852 100644 --- a/scm/paper.scm +++ b/scm/paper.scm @@ -6,12 +6,33 @@ (define-public (set-paper-dimension-variables mod) (module-define! mod 'dimension-variables - '(pt mm cm in staff-height staff-space - page-top-space - between-system-space between-system-padding - line-width indent short-indent paper-width paper-height horizontal-shift - staff-space line-thickness ledgerline-thickness - blot-diameter left-margin right-margin))) + '(after-title-space + before-title-space + between-system-padding + between-system-space + between-title-space + blot-diameter + bottom-margin + cm + foot-separation + head-separation + horizontal-shift + in + indent + ledger-line-thickness + left-margin + line-thickness + line-width + mm + page-top-space + paper-height + paper-width + pt + right-margin + short-indent + staff-height + staff-space + top-margin))) (define (calc-line-thickness staff-space pt) ;; linear interpolation. @@ -50,7 +71,7 @@ (setm! 'line-thickness (calc-line-thickness ss pt)) ;; sync with feta - (setm! 'ledgerline-thickness (+ (* 0.5 pt) (/ ss 10))) + (setm! 'ledger-line-thickness (+ (* 0.5 pt) (/ ss 10))) ;; sync with feta (setm! 'blot-diameter (* 0.4 pt)) -- 2.39.2