Previous: Extending the templates, Up: Putting it all together


4.3 Fixing overlapping notation

This may come as a surprise, but LilyPond isn't perfect. Some notation elements can overlap. This is unfortunate, but (in most cases) is easily solved.

     e4^\markup{ \italic ritenuto } g b e

[image of music]

The easiest solution is to increase the distance between the object (in this case text, but it could easily be fingerings or dynamics instead) and the note. In LilyPond, this is called the padding property. For most objects, it is around 1.0 or less (it varies with each object). We want to increase it, so let's try 1.5

     \once \override TextScript #'padding = #1.5
     e4^\markup{ \italic ritenuto } g b e

[image of music]

That looks better, but it isn't quite big enough. After experimenting with a few values, I think 2.3 is the best number. I leave this as an exercise for the reader.

Another solution gives us complete control over placing the object – we can move it horizontally or vertically. This is done with the extra-offset property. It is slightly more complicated and can cause other problems. When we move objects with extra-offset, the movement is done after LilyPond has placed all other objects. This means that the result can overlap with other objects.

     \once \override TextScript #'extra-offset = #'( 1.0 . -1.0 )
     e4^\markup{ \italic ritenuto } g b e

[image of music]

With extra-offset, the first number controls the horizontal movement (left is negative); the second number controls the vertial movement (up is positive). After a bit of experimenting, I decided that these values look good

     \once \override TextScript #'extra-offset = #'( -1.6 . 1.0 )
     e4^\markup{ \italic ritenuto } g b e

[image of music]

See also

This manual: The \override command, Common tweaks.

This page is for LilyPond-2.6.3 (stable-branch).

Report errors to <bug-lilypond@gnu.org>.

Other languages: English.
Using automatic language selection.