Die ersten beiden funktionieren prima. Nicht elegant, aber für den Moment völlig ausreichend.
[...]
Mir ist noch etwas anderes aufgefallen: wenn ich Fretboards und Akkordsymbole verwende, werden die Griffbretter über der Note zentriert, die Akkorde dagegen linksbündig gesetzt. Kann man dieses Verhalten auch anpassen?
Naja, das Ausmaß an Eleganz wird wohl eher dadurch bestimmt, an welche Anwendung Du denkst. Ein einzelnes markup via padding-tweak bzw override zu versetzen ist absolut hinreichend und üblich.
Die konsequente Setzung von Griffdiagrammen wird aber eher den eigenen FretBoard-context benutzen wollen.

Das Akkordsymbol wird nicht linksbündig gesetzt, sondern der root-name (also das "c" in "cb5#9") wird über der Note zentriert. Weitere Zusätze werden rechts davon gesetzt.
Ich halte nichts davon den ganzen Akkord über der Note zu zentrieren. Aber im Code unten eine Möglichkeit, ich weiß allerdings nicht, ob sie immer klappt.
\version "2.16.2"
%%%%%%%%%%%%%%%%%%%%%%%%%
%% FretBoard-context with changed padding
%%%%%%%%%%%%%%%%%%%%%%%%%
<<
\new FretBoards
\with { \override VerticalAxisGroup #'(staff-staff-spacing padding) = #5 }
\chordmode { <d a cis' e'>4 }
\new Staff { d'4 a' cis'' e'' }
>>
aber ich bekomme nun neue Fehlermeldungen:
[...]
Die Änderungen zwischen den Versionen scheinen nicht so gravierend zu sein, daher ist die Frage, ob es sinnvoll ist, von der paketierten Version (Linux Mint 17) auf die ganz aktuelle zu wechseln.
Die Änderungen zwischen den Versionen sind für mich immer so bedeutsam, daß ich upgrade. Geht kinderleicht.
Allerdings behalte ich die alten stable Versionen. Multiple Versionen sind natürlich etwas aufwendiger...
Wenn mein Rechner nicht gerade kaput ist habe ich Zugriff auf alle stable seit 2.12 sowie die neueste devel-Version.
Zum Kernthema.
Folgender Code scheint auch mit 2.16. zu funktionieren:
\version "2.16.0"
%%%%%%%%%%%%%%%%%%%%%%%%%
%% FretBoard-context with changed padding
%%%%%%%%%%%%%%%%%%%%%%%%%
forPostOnly =
\with {
\consists "Text_engraver"
\override TextScript #'padding = #5
}
\include "predefined-guitar-fretboards.ly"
#(define x-off
(lambda (grob)
(let* ((stil (ly:grob-property grob 'stencil))
(stil-x-length (interval-length (ly:stencil-extent stil X)))
(text (ly:grob-property grob 'text))
;; poking in the ChorName-markup will likely not work in some cases
(root-name (caar (cdaadr text)))
(root-stil (grob-interpret-markup grob root-name))
(root-stil-x-length
(interval-length (ly:stencil-extent root-stil X))))
(+ (/ stil-x-length -2) (/ root-stil-x-length 2)))))
chrds = {
{ <d a cis' e'>1 }
\chordmode { c1 }
}
<<
\new ChordNames
\forPostOnly
{
<>^"default chords"
\chrds
}
\new FretBoards
\with {
\override VerticalAxisGroup #'default-staff-staff-spacing #'padding = #10
}
\chrds
\new ChordNames
\with {
\override ChordName #'X-offset = #x-off
\forPostOnly
}
{
<>^"whole chords centered on note"
\chrds
}
\new Staff { d'4 a' cis'' e'' c'1 }
>>HTH,
Harm