Hallo,
hier mein Versuch.
Du brauchst allerdings eine neuere devel-Version sonst funktioniert es nicht. Liegt an dem neuen property 'parent-alignment-X, dank an Janek Warchol.
\version "2.19.16"
\paper {
ragged-right = ##f
}
\header {
arranger = \markup \concat { "Ö " \fontsize #4 "181" ".3" }
}
\layout {
\context {
\Score
\override GraceSpacing.spacing-increment = #0
proportionalNotationDuration = #(ly:make-moment 1/8)
}
\context {
\Staff
\omit TimeSignature
\override LedgerLineSpanner.gap = -1
}
\context {
\Voice
\hide Stem
\hide Slur
}
\context {
\Lyrics
\override VerticalAxisGroup.nonstaff-relatedstaff-spacing.padding = #1
}
}
startGraceMusic = {
\temporary \override NoteHead.font-size = #0
\temporary \override NoteHead.X-extent = #'(0 . 0.85)
}
stopGraceMusic = {
\revert NoteHead.font-size
\revert NoteHead.X-extent
\once \override Lyrics.LyricText.parent-alignment-X = -1
}
\relative c' {
\key f \major
\cadenzaOn
c4 d \grace f g g
\bar "'"
a bes \grace a g f
\bar "'" %\break %% Zeilenumbruch nur bei einem Taktstrich möglich
g a \grace a g
\grace g g
\bar "|."
\tweak self-alignment-X #RIGHT
\tweak direction #DOWN
\tweak padding 2
\mark
\markup \fontsize #-4 {
\italic "Melodie:" "gregorianische Antiphon zum 6. oder 9.Psalmton"
}
}
\addlyrics {
Hal -- le -- test↑test -- ja, Hal -- le -- lu -- ja,
Hal -- le -- lu -- ja.
} HTH,
Harm
P.S.
Hier noch ein paar Anmerkungen zu Deinen Fragen
Fragen:
- Kann man mit geringem Aufwand das \tweak X-offset #'-4 abkürzen? Die übliche Notation eng=\tweak X-offset #'-4 und verwenden von \eng geht nicht.
\tweak ist eine music-function welche ein Musik-Argument erwartet, deshalb klappt es so nicht.
Du könntest folgendes versuchen:
eng =
#(define-music-function (parser location music)(ly:music?)
#{
\tweak X-offset #'-4
$music
#})
{
c4 \eng c c c
}2. Gibt es einen Parameter, mit dem man den Mindestabstand verringern kann? Ich habe etliche durchprobiert, aber nichts gefunden, das wirkt.
Mein Coding arbeitet mit 'spacing-increment sowie einem hack von 'X-extent.
Eine wirklich überzeugende Methode gibt es nicht.
LilyPond bemüht sich mit wirklich großem Aufwand um ein überzeugendes spacing. Das bedeutet aber auch, daß das ganze hochkomplex ist und Eingriffe von user-Seite ebenfalls hochkomplex sein würden. Ein paar Möglicheiten gibt es (->SpacingSpanner) und noch mehr wären zumindest denkbar.
Allerdings ist für GraceSpacing solche Art Eingriffe relativ einfach umsetzbar und auch als Möglichkeit implementiert.
Insoweit habe ich ja auch diesen Weg gewählt.

3. Wie kann man einen Zeilenwechsel erzwingen? \cadenzaOn schaltet lt. NR die Wirkung von \break aus,
aber die Sequenz \cadenzaOff \break \cadenzaOn sollte es doch bewirken? Papier kleiner machen geht meist, ist aber unbefriedigend.
Zeilenumbruch ist nur in Verbindung mit einem Taktstrich möglich (wie sonst auch) und sei es \bar ""
EDIT:
Benutze eher \bar "'" denn \breathe (wie von Pierre vogeschlagen). Ich habe das Code-Beispiel dahingehend geändert.