lilypond-user-fr
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: InstrumentName centrés par défaut?


From: Nicolas Sceaux
Subject: Re: InstrumentName centrés par défaut?
Date: Wed, 6 Feb 2008 21:12:57 +0100


Le 5 févr. 08 à 00:29, Xavier Scheuer a écrit :
PS : D'ailleurs je ne comprends pas pourquoi c'est l'alignement à droite qui a été choisi comme comportement par défaut. En effet, dans la plupart des partitions (conducteurs) que j'ai pu observer, les noms d'instruments étaient centrés (et non alignés à droite). Et dans les parties séparées il n'y a pas, en général, le nom de l'instrument en regard de la portée (et quand bien même, je pense que ça ne dérangerait pas qu'il soit centré). Quelqu'un aurait-il, par hasard, une idée/explication sur la (les) raison(s) qui a (ont) poussé(s) les développeurs à choisir ce comportment?

Tout simplement par ce que c'est le plus simple à coder.

Les choses qui seraient vraiment bien concernant les noms d'intruments:
- que l'indentation du système soit adaptée à l'espace qu'occupent
réellement les noms d'instrument ;
- que les noms d'instruments soient horizontalement centrés dans cet
espace ;
- que les noms d'instruments soient toujours alignés verticalement
avec la  portée, même s'il y a des paroles, des accords ou autres.

Pour contourner ces problèmes, on peut utiliser des bidouilles.
Pour centrer le nom d'un instrument, j'utilise la commande de markup
\instrument-name suivante :

#(define-markup-command (hcenter-pad layout props width arg)
  (number? markup?)
  (let* ((arg-stencil (interpret-markup layout props arg))
         (w (interval-length (ly:stencil-extent arg-stencil X)))
         (pad-stencil (ly:make-stencil ""
                       (cons 0 (if (> w width)
                                0
                                (/ (- width w) 2.0)))
                       '(-0.1 . 0.1))))
   (stack-stencil-line 0
    (list pad-stencil arg-stencil pad-stencil))))

#(define-markup-command (right-pad layout props pad arg)
  (number? markup?)
  (interpret-markup layout props (markup arg #:hspace pad)))

#(define-markup-command (instruments layout props texts) (markup-list?)
  (interpret-markup layout props
   (make-column-markup
    (map (lambda (m) (markup #:hcenter-pad 18 #:huge m))
     texts))))

#(define-markup-command (instrument-name layout props text) (markup?)
  (interpret-markup layout props
   (markup #:right-pad 1 #:instruments (text))))

==>

\set Staff . instrumentName = \markup \instrument-name Violon.

en supposant que l'indentation est 25mm (adapter le "18" dans la commande
\instruments).

Nicolas





reply via email to

[Prev in Thread] Current Thread [Next in Thread]