Aaaalso, folgendes:
20pt Systemhöhe ist die Standardgröße, deswegen musst du immer um myStaffSize/20 skalieren. Es geht aber einfacher, als die Systemhöhe an zwei verschiedenen Stellen zu definieren. Üblicher ist es, die von LilyPond definierte Variable staff-height zu verwenden und dann im #(define fonts …)-Block diese durch pt und durch 20 zu teilen.
Das hat anscheinend folgenden Hintergrund: staff-height ist die Systemhöhe in Millimetern (warum auch immer nicht pt). Um die in pt umzurechnen gibts die Konstante pt=0.35… (außerdem gibts mm=1). Da set-global-staff-size die Systemhöhe in pt angibt, muss man staff-height also erst einmal durch pt teilen, um von mm nach pt umzurechnen, und dann noch durch 20 wie oben beschrieben. Denn wie du richtig festgestellt hast, ist die Zahl, die da angegeben werden soll, tatsächlich der Skalierungsfaktor bezüglich der Standardgröße. Klingt komplizierter als es in der Anwendung nachher ist. Und der folgende Code ist auch nur so lang, weil er die ganzen Zwischenschritte dieser Rechnung beim Übersetzen der Datei ausgibt, die write- und newline-Befehle brauchst du natürlich nicht.
\version "2.18.2"
#(set-global-staff-size 10)
\paper
{
#(write mm) % 1mm = 1mm
#(newline)
#(write pt) % 1pt = 0.35…mm
#(newline)
#(write staff-height) % staff-height = 10pt = 3.5…mm
#(newline)
#(write (/ staff-height pt)) % staff-height / 1pt = 10
#(newline)
#(write (/ (/ staff-height pt) 20)) % (staff-height / 1pt) / 20 = 10 / 20 = 0.5
#(newline)
#(write (/ staff-height pt 20)) % kürzere Schreibweise für staff-height / 1pt / 20 = 0.5
#(define fonts
(make-pango-font-tree "NewCenturySchoolbook"
"Liberation Sans"
"Liberation Sans Narrow"
(/ staff-height pt 20))) % die Fonts um 0.5 skalieren
}
\score { { c' d' e' f' } \layout {} }
Ab Version 2.19.12 gibt es übrigens einen neuen Befehl set-global-fonts, mit dem einzelne Fonts benannt gesetzt werden können (man braucht also nicht immer serif, sans und monospace); dieser kann außerdem auch die Noten- und Systemklammernfonts ersetzen (default: Emmentaler/Feta, mir ist da die Benennung nicht ganz klar; die Fontdateien heißen Emmentaler, in der Dokumentation wird er Feta genannt …). Im folgenden Beispiel setze ich z. B. nur den serif- und den sans-Font und verwende außerdem den neuen Musikfont haydn:\paper {
#(define fonts
(set-global-fonts
#:music "haydn"
#:brace "haydn"
#:roman "Times New Roman"
#:sans "Arial"
#:factor (/ staff-height pt 20)))
}