Versetzungszeichen beim Generalbass ändern - Vertikale Abstände verrutschen

Begonnen von Grisu76, Montag, 8. August 2022, 16:42

« vorheriges - nächstes »

Grisu76

Liebe Spezialisten,
ich habe im Archiv (https://archiv.lilypondforum.de/index.php/topic,1379.msg7594.html#msg7594) einen Thread gefunden, der erklärt, wie man die Größe der Versetzungszeichen ändert. Das funktioniert wunderbar. Was leider nicht so wunderbar aussieht ist, dass die Vertikalabstände bei gleicher Bezifferung und zusätzlichem Versetzungszeichen verrutschten. Ich paste hier den Code vom Archiv, bei <5 3> uns <5+ 3> sieht man, was ich meine; hat wer eine Idee, wie man das fixen könnte?
Danke und lG, Grisu

P.S.: btw, das, was ich eigentlich bräuchte ist, dass die Versetzungszeichen OHNE Bezifferung gleich groß sein sollten wie die Ziffern, wenn sie mit den Ziffern gemeinsam sind, können die ruhig klein sein...  ::)

%;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
%;; Bass figures: copy of format-bass-figure

#(define-public (my-format-bass-figure figure event context)
  (let* ((fig (ly:event-property event 'figure))
(fig-markup (if (number? figure)

;; this is not very elegant, but center-aligning
;; all digits is problematic with other markups,
;; and shows problems in the (lack of) overshoot
;; of feta-alphabet glyphs.
((if (<= 10 figure)
      (lambda (y) (make-translate-scaled-markup
   (cons -0.7 0) y))
      identity)

  (cond
   ((eq? #t (ly:event-property event 'diminished))
    (markup #:slashed-digit figure))
   ((eq? #t (ly:event-property event 'augmented-slash))
    (markup #:backslashed-digit figure))
   (else (markup #:number (number->string figure 10)))))
#f))

(alt (ly:event-property event 'alteration))
(alt-markup
  (if (number? alt)
      (markup
               #:lower                                           ;inserted
                (cond                                            ;inserted
                 ((<= alt FLAT) 0.1)         ; any kind of flat  ;inserted
                 ((= alt NATURAL) 0.4)       ; natural           ;inserted
                 ((= alt SHARP) 0.4)         ; sharp             ;inserted
                 ((= alt DOUBLE-SHARP) -0.1) ; double-sharp      ;inserted
                 (else 0))                   ; anything else (?) ;inserted
       #:general-align Y DOWN  #:fontsize     
       (if (not (= alt DOUBLE-SHARP))               
;    -2 2)                     ;deleted
   0 2)                      ;inserted
       (alteration->text-accidental-markup alt))
      #f))

(plus-markup (if (eq? #t (ly:event-property event 'augmented))
  (markup #:number "+")
  #f))

(alt-dir (ly:context-property context 'figuredBassAlterationDirection))
(plus-dir (ly:context-property context 'figuredBassPlusDirection)))

    (if (and (not fig-markup) alt-markup)
(begin
  (set! fig-markup (markup #:left-align #:pad-around 0.3 alt-markup))
  (set! alt-markup #f)))


    ;; hmm, how to get figures centered between note, and
    ;; lone accidentals too?

    ;;    (if (markup? fig-markup)
    ;; (set!
    ;; fig-markup (markup #:translate (cons 1.0 0)
    ;;     #:center-align fig-markup)))

    (if alt-markup
(set! fig-markup
      (markup #:put-adjacent
      X (if (number? alt-dir)
    alt-dir
    LEFT)
      fig-markup
      #:pad-x 0.2 alt-markup)))

    (if plus-markup
(set! fig-markup
      (if fig-markup
  (markup #:put-adjacent
  X (if (number? plus-dir)
plus-dir
LEFT)
  fig-markup
  #:pad-x 0.2 plus-markup)
  plus-markup)))

    (if (markup? fig-markup)
(markup #:fontsize -2 fig-markup)
empty-markup)))


%%% TEST-BEISPIEL

\figures {
  <6--> <6-> <6!> <6+> <6++> <5 3> <5+ 3> 
  s
  \set figuredBassFormatter = #my-format-bass-figure
  <6--> <6-> <6!> <6+> <6++>   <5 3> <5+ 3>
}


harm6

https://gitlab.com/lilypond/lilypond/-/issues/816
ist gefixt ab 2.23.8.
Also schau mal, ob eine neue devel-Version Dein Problem schon löst.

Allerdings ist mir Dein Satz
Zitatbtw, das, was ich eigentlich bräuchte ist, dass die Versetzungszeichen OHNE Bezifferung gleich groß sein sollten wie die Ziffern, wenn sie mit den Ziffern gemeinsam sind, können die ruhig klein sein..
unverständlich.
Kannst Du das nochmal anders formulieren, am Besten mit Code-Beispiel aus dem dann hervor geht wo es eventuell noch hakt?

Gruß,
  Harm

Grisu76

Servus Harm,
danke für die Antwort, ich werd' mir das bei 2.23 ansehen;
das, was ich gemeint habe ist, dass es den Fall gibt, dass statt "3" oder "b3" oder "#3" im Generalbass oft nur "b" oder "#" oder der Auflöser steht; dann sollten diese Zeichen die gleiche Schriftgröße haben wie die Ziffern, da die Versetzungszeichen hier die Funktion der Bezifferung selbst übernehmen, nicht die Versetzungszeichen für die Generalbassziffer ist. War das verständlicher?
Cheers, Grisu