Use
\override DynamicLineSpanner #'padding = #-1.8
\override DynamicText #'extra-offset = #'( -2.1 . 0)
before the dynamics. (Taken from http://lilypond.org/doc/v2.10/Documentation/user/lilypond/Fitting-music-onto-fewer-pages)
You can use the following definition:
tempoMark = #(define-music-function (parser location padding marktext)
(number? string?)
#{
\once \override Score . RehearsalMark #'padding = $padding
\once \override Score . RehearsalMark #'no-spacing-rods = ##t
\mark \markup { $marktext }
#})
and then
\tempoMark #3.0 #"Andante"
in the notes. The first argument is the padding, the second the text. Of course you can modify the contents of \markup to make the text appear in bold/italic or whatever you like. (Taken from http://lilypond.org/doc/v2.10/Documentation/user/lilypond/Advanced-tweaks-with-Scheme#Advanced-tweaks-with-Scheme)
If you combine rests of two choir voices on the same staff, you can do this with:
GlobalSettings = {
...
\revert Rest #'direction
\revert MultiMeasureRest #'staff-position
}
However, then dotted rests will appear with two dots. The reason is apparently that \voiceOne and \voiceTwo settings also set different prefered directions for the dots. One possible solution is to try to add also
\revert Dots #'direction
and/or
\revert DotColumn #'direction
( Tip given by Mats Bengtsson on the Lilypond User Mailinglist, didn't work for me, though)
Lilypond is too aggressive puttint too much stuff in one line. As a workaround, try:
\override Score.SeparationItem #'padding = #0.5
(from the Lilypond Mailinglist and the documentation)
If a whole staff contains only rests, you can tell lilypond to hide such staves by using the RemoveEmptyStaffContext:
\layout {
\context {
\RemoveEmptyStaffContext
}
}
However, the first system will always have all staves, even if they are empty! This can be changed by
\layout {
\context { \Score
\override VerticalAxisGroup #'remove-first = ##t
}
}
(idea taken from http://www.mail-archive.com/lilypond-user%40gnu.org/msg23664.html)