Guide, node Updating translation committishes..
@end ignore
-@c \version "2.12.0"
+@c \version "2.14.0"
@node Tweaking output
@chapter Tweaking output
Line thickness, generally measured in @code{line-thickness}
@end example
-This looks a good bet to change the heaviness. It tells us that
+This looks a good bet to change the heaviness. It tells us that
the value of @code{thickness} is a simple @emph{number},
that the default value is 1.2, and that the units are
in another property called @code{line-thickness}.
@code{outside-staff-priority}. The outside-staff objects are
taken one by one, beginning with the object with the lowest
@code{outside-staff-priority}, and placed so that they do not
-collide with any objects that have already been placed. That is,
+collide with any objects that have already been placed. That is,
if two outside-staff grobs are competing for the same space, the
one with the lower @code{outside-staff-priority} will be placed
closer to the staff. If two objects have the same
By default it is set to @code{#f} for all within-staff objects,
and to a numerical value appropriate to each outside-staff object
when the object is created. The following table shows the default
-numerical values for some of the commonest outside-staff objects
-which are, by default, placed in the @code{Staff} or @code{Voice}
-contexts.
+numerical values for some of the commonest outside-staff objects.
@cindex spanners
@headitem Layout Object
@tab Priority
@tab Controls position of:
-@item @code{MultiMeasureRestText}
- @tab @code{450}
- @tab Text over full-bar rests
+@item @code{RehearsalMark}
+ @tab @code{1500}
+ @tab Rehearsal marks
+@item @code{MetronomeMark}
+ @tab @code{1000}
+ @tab Metronome marks
+@item @code{VoltaBracketSpanner}
+ @tab @code{600}
+ @tab Volta brackets
@item @code{TextScript}
@tab @code{450}
@tab Markup text
+@item @code{MultiMeasureRestText}
+ @tab @code{450}
+ @tab Markup text over full-bar rests
@item @code{OttavaBracket}
@tab @code{400}
@tab Ottava brackets
@item @code{DynamicLineSpanner}
@tab @code{250}
@tab All dynamic markings
-@item @code{VoltaBracketSpanner}
- @tab @code{100}
- @tab Volta brackets
+@item @code{BarNumber}
+ @tab @code{ 100}
+ @tab Bar numbers
@item @code{TrillSpanner}
@tab @code{50}
@tab Spanning trills
@cindex tweaking rehearsal mark placement
@cindex rehearsal marks, tweaking placement
-Note that bar numbers, metronome marks and rehearsal marks are not
-shown. By default these are created in the @code{Score} context and
-their @code{outside-staff-priority} is ignored relative to the layout
-objects which are created in the @code{Staff} context. If you wish to
-place bar numbers, metronome marks or rehearsal marks in accordance
-with the value of their @code{outside-staff-priority} the
-@code{Bar_number_engraver}, @code{Metronome_mark_engraver} or
-@code{Mark_engraver} respectively should be removed from the
-@code{Score} context and placed in the top @code{Staff} context. If
-this is done, these marks will be given the following default
-@code{outside-staff-priority} values:
-
-@multitable @columnfractions .3 .3
-@headitem Layout Object @tab Priority
-@item @code{RehearsalMark} @tab @code{1500}
-@item @code{MetronomeMark} @tab @code{1000}
-@item @code{BarNumber} @tab @code{ 100}
-@end multitable
-
If the default values of @code{outside-staff-priority} do not give you
the placing you want, the priority of any of the objects may be
overridden. Suppose we would like the ottava bracket to be placed
c,4 c c c |
@end lilypond
+Note that some of these objects, in particular bar numbers,
+metronome marks and rehearsal marks, live by default in the
+@code{Score} context, so be sure to use the correct context
+when these are being overriden.
+
@cindex slurs and outside-staff-priority
@cindex slurs and articulations
@cindex articulations and slurs
@ref{Within-staff objects}.
@item
-@code{padding}, @code{left-padding},
-@code{right-padding}, @code{staff-padding}
+@code{padding}, @code{right-padding}, @code{staff-padding}
@cindex padding
-@cindex left-padding property
@cindex padding property
@cindex right-padding property
@cindex staff-padding property
@code{side-position-interface}.
Instead of @code{padding}, the placement of groups of accidentals
-is controlled by @code{left-padding} and @code{right-padding}.
-These properties are to be found in the @code{AccidentalPlacement}
-object which, note, lives in the @strong{staff} context. In the
-type-setting process the note heads are type-set first and then
-the accidentals, if any, are added to the left of the note heads
-using the @code{right-padding} property to determine the separation
-from the note heads. So only the @code{right-padding} property of the
-@code{AccidentalPlacement} object has any effect on the placement
-of the accidentals.
+is controlled by @code{right-padding}. This property is to be found
+in the @code{AccidentalPlacement} object which, note, lives in the
+@strong{Staff} context. In the typesetting process the note heads
+are typeset first and then the accidentals, if any, are added to the
+left of the note heads using the @code{right-padding} property to determine
+the separation from the note heads and between individual accidentals.
+So only the @code{right-padding} property of the @code{AccidentalPlacement}
+object has any effect on the placement of the accidentals.
The @code{staff-padding} property is closely related to the
@code{padding} property: @code{padding} controls the minimum amount of
@cindex positions property
This is most useful for manually adjusting the slope and height
-of beams, slurs, and tuplets. It takes a pair of numbers
+of beams, slurs, and tuplets. It takes a pair of numbers
giving the position of the left and right ends of the beam, slur,
etc. relative to the center line of the staff. Units are
staff-spaces. Note, though, that slurs and phrasing slurs cannot
@lilypond[quote,fragment,relative=1,verbatim]
% This will not work, see below
\override MetronomeMark #'padding = #3
-\tempo 4=120
+\tempo 4 = 120
c1 |
% This works
\override Score.MetronomeMark #'padding = #3
-\tempo 4=80
+\tempo 4 = 80
d1 |
@end lilypond
objects outside it are moved.
-@subheading left-padding and right-padding
+@subheading right-padding
-@cindex left-padding property
@cindex right-padding property
The @code{right-padding} property affects the spacing between the
\acciaccatura e8\( d8 c~ c d c d\)
@end lilypond
-Here's a further example taken from the opening of the left-hand
-staff of Chopin's Prelude Op 28 No. 2. We see that the beam
-collides with the upper notes:
+Here's a further example. We see that the beams
+collide with the ties:
@lilypond[quote,verbatim,fragment,ragged-right]
{
- \clef "bass"
- << { b,8 ais, b, g, } \\ { e,8 g e, g } >>
- << { b,8 ais, b, g, } \\ { e,8 g e, g } >>
+ \time 4/2
+ <<
+ { c'1 ~ c'2. e'8 f' }
+ \\
+ { e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' }
+ >>
+ <<
+ { c'1 ~ c'2. e'8 f' }
+ \\
+ { e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' }
+ >>
}
@end lilypond
@noindent
This can be resolved by manually moving both ends of the beam
-up from their position at 2 staff-spaces above the center line to,
-say, 3:
+up from their position at 1.81 staff-spaces below the center line to,
+say, 1:
@cindex Beam, example of overriding
@cindex positions property, example
@lilypond[quote,verbatim,fragment,ragged-right]
{
- \clef "bass"
+ \time 4/2
<<
- \override Beam #'positions = #'(3 . 3)
- { b,8 ais, b, g, }
- \\
- { e,8 g e, g }
+ { c'1 ~ c'2. e'8 f' }
+ \\
+ {
+ \override Beam #'positions = #'(-1 . -1)
+ e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g''
+ }
+ >>
+ <<
+ { c'1 ~ c'2. e'8 f' }
+ \\
+ { e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' }
>>
- << { b,8 ais, b, g, } \\ { e,8 g e, g } >>
}
@end lilypond
@noindent
Note that the override continues to apply in the first voice of
-the second block of quavers, but not to any of the beams in the
+the second measure of eighth notes, but not to any of the beams in the
second voice.
@subheading force-hshift property
@end lilypond
On to bar three and the start of the Moderato section. The tutorial
-showed how to add embolded text with the @code{\markup} command, so
+showed how to add bold text with the @code{\markup} command, so
adding @qq{Moderato} in bold is easy. But how do we merge notes in
different voices together? This is where we need to turn again to
the Notation Reference for help. A search for @qq{merge} in the
Notation Reference index quickly leads us to the commands for merging
differently headed and differently dotted notes in
-@ruser{Collision resolution}. In our example we need to merge both
+@ruser{Collision resolution}. In our example we need to merge both
types of note for the duration of the polyphonic section in bar 3,
so using the information we find in the Notation Reference we add
* Using variables for tweaks::
* Style sheets::
* Other sources of information::
-* Avoiding tweaks with slower processing::
* Advanced tweaks with Scheme::
@end menu
forces the following tempo indication too high while the
second (with the stencil removed) does not.
+@seealso
+Music Glossary:
+@rglos{system}.
+
@node Using variables for tweaks
@subsection Using variables for tweaks
@end example
We will refer to this file using the @code{\include} command near
-the top of the music file. (The extension @code{.ily} is used to
+the top of the music file. (The extension @file{.ily} is used to
distinguish this included file, which is not meant to be compiled
on its own, from the main file.)
-Now let's modify our music (let's save this file as @file{"music.ly"}).
+Now let's modify our music (let's save this file as @file{music.ly}).
@c We have to do this awkward example/lilypond-non-verbatim
@c because we can't do the \include stuff in the manual.
@item Linux
Navigate to
-@file{@var{INSTALLDIR}/lilypond/usr/share/lilypond/current/}
+@file{@var{INSTALLDIR}/lilypond/usr/@/share/lilypond/current/}
@item MacOS X
Navigate to
-@file{@var{INSTALLDIR}/LilyPond.app/Contents/Resources/share/lilypond/current/}
+@file{@var{INSTALLDIR}/LilyPond.app/Contents/@/Resources/share/lilypond/current/}
by either @code{cd}-ing into this directory from the
Terminal, or control-clicking on the LilyPond application and
selecting @q{Show Package Contents}.
@item Windows
Using Windows Explorer, navigate to
-@file{@var{INSTALLDIR}/LilyPond/usr/share/lilypond/current/}
+@file{@var{INSTALLDIR}/LilyPond/usr/@/share/lilypond/current/}
@end itemize
@end multitable
Other settings (such as the definitions of markup commands) are
-stored as @code{.scm} (Scheme) files. The Scheme programming
+stored as @file{.scm} (Scheme) files. The Scheme programming
language is used to provide a programmable interface into
LilyPond internal operation. Further explanation of these files
is currently outside the scope of this manual, as a knowledge of
@end multitable
-
-@node Avoiding tweaks with slower processing
-@subsection Avoiding tweaks with slower processing
-
-LilyPond can perform extra checks while it processes input files.
-These checks will take extra time to perform, but fewer manual tweaks
-may be required to obtain an acceptable result. If a text script
-or part of the lyrics extends over the margins these checks will
-compress that line of the score just enough to fit within the
-margins.
-
-To be effective under all circumstances these checks must be enabled
-by placing the overrides in a Score @code{\with} block, rather than
-in-line in music, as follows:
-
-@example
-\new Score \with @{
- % Makes sure text scripts and lyrics are within the paper margins
- \override PaperColumn #'keep-inside-line = ##t
- \override NonMusicalPaperColumn #'keep-inside-line = ##t
-@} @{
- ..
-@}
-@end example
-
-However, @code{keep-inside-line} is expensive and the recommendation
-is to not enable it, to allow for faster processing, until creating
-a final version. This way you do not need to manually add @code{\break}
-commands to avoid text running off the right-hand side of the page.
-
@node Advanced tweaks with Scheme
@subsection Advanced tweaks with Scheme