[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Position verticale du nom d'instrument
From: |
Jean Abou Samra |
Subject: |
Re: Position verticale du nom d'instrument |
Date: |
Wed, 26 Jan 2022 00:06:07 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 |
Le 25/01/2022 à 23:37, joel.gauvrit@free.fr a écrit :
Bonjour à tous,
Comment remonter l'indication d'instrument le modèle ci-dessous :
\version "2.22.1"
\new Staff
\with { instrumentName = \markup { \raise #1 TENOR }}
{ \override Staff.StaffSymbol.line-positions = #'(4 2 0 -2)
c''4 }
J'ai modifié le nombre de lignes de la portée et leurs dispositions, je vois bien que cela génère un décalage de "TENOR".
Est-il cependant possible de ne pas changer la position des lignes mais de centrer
verticalement "TENOR" ?
Bonjour,
Comme vous en informe la page de InstrumentName dans la
référence des propriétés internes
(http://lilypond.org/doc/v2.23/Documentation/internals/instrumentname),
cet objet prend en charge l'interface self-alignment-interface,
qui permet de modifier son alignment vertical avec la
propriété self-alignment-Y.
\version "2.22.1"
\new Staff \with {
instrumentName = \markup { \raise #2 TENOR }
\override InstrumentName.self-alignment-Y = -0.55
\override StaffSymbol.line-positions = #'(4 2 0 -2)
}
{
c''1
}
Cela dit, je trouve aussi le placement par défaut pas
très correct et ai ouvert le bug
https://gitlab.com/lilypond/lilypond/-/issues/6269
pour en discuter. On peut modifier légèrement le
code interne pour toujours centrer les noms d'instrument
sur la portée…
\version "2.22.1"
#(define (system-start-text::calc-y-offset-staff-centered grob)
(define (live-elements-list me)
(let ((elements (ly:grob-object me 'elements)))
(filter! grob::is-live?
(ly:grob-array->list elements))))
(let* ((left-bound (ly:spanner-bound grob LEFT))
(live-elts (live-elements-list grob))
(system (ly:grob-system grob))
(extent empty-interval))
(if (and (pair? live-elts)
(interval-sane? (ly:grob-extent grob system Y)))
(let get-extent ((lst live-elts))
(if (pair? lst)
(let ((axis-group (car lst)))
(if (and (ly:spanner? axis-group)
(equal? (ly:spanner-bound axis-group LEFT)
left-bound))
(set! extent (add-point extent
;; Modifié :
;;;(ly:grob-relative-coordinate
;;; axis-group system Y)
(interval-center
(ly:grob-extent
(ly:grob-object
axis-group 'staff-symbol)
system Y)))))
(get-extent (cdr lst)))))
;; no live axis group(s) for this instrument name -> remove
from system
(ly:grob-suicide! grob))
(+
(ly:self-alignment-interface::y-aligned-on-self grob)
(interval-center extent))))
\new Staff \with {
instrumentName = \markup { \raise #2 TENOR }
\override InstrumentName.Y-offset =
#system-start-text::calc-y-offset-staff-centered
\override StaffSymbol.line-positions = #'(4 2 0 -2)
}
{
c''1
}
… et je compte proposer le changement dans quelque jours
s'il n'y a pas d'objections sur le tracker.
Cordialement,
Jean