Guide, node Updating translation committishes..
@end ignore
-@c \version "2.13.36"
+@c \version "2.14.0"
@node Tweaking output
@chapter Tweaking output
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
\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
* Using variables for tweaks::
* Style sheets::
* Other sources of information::
-* Avoiding tweaks with slower processing::
* Advanced tweaks with Scheme::
@end menu
@end example
We will refer to this file using the @code{\include} command near
-the top of the music file. (The extension @file{@/.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.
note. And finally, my composition professor hates @q{C} time signatures,
so we'd better make that @q{4/4} instead.
-Don't change @file{music@/.ly}, though. Replace our @file{definitions@/.ily}
+Don't change @file{music.ly}, though. Replace our @file{definitions.ily}
with this:
@example
That looks nicer! But now suppose that I want to publish this
piece. My composition professor doesn't like @q{C} time
signatures, but I'm somewhat fond of them. Let's copy the
-current @file{definitions@/.ily} to @file{web@/-publish@/.ily} and
+current @file{definitions.ily} to @file{web-publish.ily} and
modify that. Since this music is aimed at producing a pdf which
will be displayed on the screen, we'll also increase the
overall size of the output.
Now in our music, I simply replace
@code{\include "definitions.ily"} with
@code{\include "web-publish.ily"}. Of course, we could make this
-even more convenient. We could make a @file{definitions@/.ily} file which
+even more convenient. We could make a @file{definitions.ily} file which
contains only the definitions of @code{mpdolce} and @code{inst}, a
-@file{web@/-publish@/.ily} file which contains only the @code{\layout}
-section listed above, and a @file{university@/.ily} file which
+@file{web-publish.ily} file which contains only the @code{\layout}
+section listed above, and a @file{university.ily} file which
contains only the tweaks to produce the output that my professor
-prefers. The top of @file{music@/.ly} would then look like this:
+prefers. The top of @file{music.ly} would then look like this:
@example
\include "definitions.ily"
@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
Within this directory the two interesting subdirectories are
@itemize
-@item @file{ly/@/} - contains files in LilyPond format
-@item @file{scm/@/} - contains files in Scheme format
+@item @file{ly/} - contains files in LilyPond format
+@item @file{scm/} - contains files in Scheme format
@end itemize
-Let's begin by looking at some files in @file{ly/@/}.
-Open @file{ly/@/property@/-init@/.ly} in a text editor. The one
+Let's begin by looking at some files in @file{ly/}.
+Open @file{ly/property-init.ly} in a text editor. The one
you normally use for @code{.ly} files will be fine. This file
contains the definitions of all the standard LilyPond predefined
commands, such as @code{\stemUp} and @code{\slurDotted}. You will
head of your input file.
The following are the most useful files to be found in
-@file{ly/@/}:
+@file{ly/}:
@multitable @columnfractions .4 .6
@headitem Filename
@tab Contents
-@item @file{ly/@/engraver@/-init@/.ly}
+@item @file{ly/engraver-init.ly}
@tab Definitions of engraver Contexts
-@item @file{ly/@/paper@/-defaults@/-init@/.ly}
+@item @file{ly/paper-defaults-init.ly}
@tab Specifications of paper-related defaults
-@item @file{ly/@/performer@/-init@/.ly}
+@item @file{ly/performer-init.ly}
@tab Definitions of performer Contexts
-@item @file{ly/@/property@/-init@/.ly}
+@item @file{ly/property-init.ly}
@tab Definitions of all common predefined commands
-@item @file{ly/@/spanner@/-init@/.ly}
+@item @file{ly/spanner-init.ly}
@tab Definitions of spanner-related predefined commands
@end multitable
Other settings (such as the definitions of markup commands) are
-stored as @file{@/.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
@multitable @columnfractions .4 .6
@headitem Filename
@tab Contents
-@item @file{scm/@/auto@/-beam@/.scm}
+@item @file{scm/auto-beam.scm}
@tab Sub-beaming defaults
-@item @file{scm/@/define@/-grobs@/.scm}
+@item @file{scm/define-grobs.scm}
@tab Default settings for grob properties
-@item @file{scm/@/define@/-markup@/-commands@/.scm}
+@item @file{scm/define-markup-commands.scm}
@tab Specify all markup commands
-@item @file{scm/@/midi@/.scm}
+@item @file{scm/midi.scm}
@tab Default settings for MIDI output
-@item @file{scm/@/output@/-lib@/.scm}
+@item @file{scm/output-lib.scm}
@tab Settings that affect appearance of frets, colors,
accidentals, bar lines, etc
-@item @file{scm/@/parser@/-clef@/.scm}
+@item @file{scm/parser-clef.scm}
@tab Definitions of supported clefs
-@item @file{scm/@/script@/.scm}
+@item @file{scm/script.scm}
@tab Default settings for articulations
@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 using @code{\context} within a @code{\layout}
-block, rather than in-line in music, as follows:
-
-@example
-\score @{
- @{ @dots{}notes@dots{} @}
- \layout @{
- \context @{
- \Score
- % 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