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

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

Re: déplacement vertical d'un markup


From: Jean Abou Samra
Subject: Re: déplacement vertical d'un markup
Date: Thu, 28 Apr 2022 14:15:15 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0

Le 28/04/2022 à 10:33, Olivier Charade a écrit :
Merci Jean (depuis le temps je me dis que je dois programmer une touche de mon clavier pour écrire ce texte qui sert tout le temps). Du coup je viens de franchir le pas d'oser installer une version "pas stable" de Lilypond, et de jouer un peu avec les vertical- et horizontal-skylines.
Et bien sûr, question:
Pourquoi l'activation des vertical-skylines sur les TextScript provoquent le dessin d'un contour de chaque caractère (y compris des lignes verticales entre le haut et le bas du caractère), alors que les horizontal-skyline marquent apparemment toujours les bords gauche et droit de la "boîte de texte"? Je me serais attendu à avoir juste un rectangle autour du texte si j'activais les deux.



Bonne question ! Et ce n'est pas si facile de répondre... En résumé,
pour des raisons d'utilité et d'efficacité. LilyPond pourrait
tout à fait calculer le contour précis horizontal du texte.
D'ailleurs, elle le fera si vous le lui demandez gentiment :

\version "2.23.8"

{
  \override TextScript.horizontal-skylines = #grob::always-horizontal-skylines-from-stencil
  \override TextScript.show-horizontal-skylines = ##t
  %\override TextScript.show-vertical-skylines = ##t
  c'1^"un peu de texte"
}


Mais à quoi pourrait lui servir ce contour ? La seule utilité potentielle
serait un espacement horizontal précis. Cependant, l'espacement horizontal
n'est de toute façon pas réalisé avec des contraintes exactes. Observons
un peu comment ça se passe :

\version "2.23.8"

\layout {
  \context {
    \Score
    \override PaperColumn.show-horizontal-skylines = ##t
    \override NonMusicalPaperColumn.show-horizontal-skylines = ##t
  }
}

<<
  \new Staff {
    c'1
  }
  \new Staff \relative {
    c'8 e g c e g c e
  }
>>


Comme vous pouvez le voir, ces lignes d'horizon (skylines) sont
approximatives. Elles sont calculées avant les sauts de ligne, donc
il n'est pas possible d'en avoir d'exactes, puisque, par exemple, la
pente d'une liaison dépend de l'espacement horizontal, qui lui-même
dépend des sauts de ligne. Pour casser le cercle vicieux, LilyPond se
débrouille pour faire des approximations. Dans ce contexte, il ne servirait
pas à grand-chose d'avoir des skylines très précises pour le texte.
Au mieux, cela ferait gagner un millimètre dans un endroit à l'espacement
horizontal serré. Par contre, pour l'espacement vertical, c'est important,
car cela se remarque visuellement : une nuance trop éloignée de la
note devient ambigüe, par exemple.

Par ailleurs, calculer les skylines a un certain coût (en termes de
temps de compilation). C'est la raison pour laquelle LilyPond ne
le fait pas systématiquement pour tous les objets.


En tous cas c'est un super outil pour mieux comprendre les placements respectifs des objets.


En tant que développeur ayant ajouté la fonctionnalité, je suis
heureux de l'entendre.

Cordialement,
Jean




reply via email to

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